Adding More filters for member.pl page :
authorHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Mon, 14 Sep 2009 20:01:54 +0000 (22:01 +0200)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Wed, 30 Sep 2009 09:30:34 +0000 (11:30 +0200)
Adding Search Function on Members which is a search on all the fields in Members
Adding search.tmpl which adds a filter possiblity on Member page
Adding the management and the use of Search function in C4::Members

C4/Members.pm
koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/members/search.tmpl [new file with mode: 0644]
members/member.pl

index 00998b8..e813d90 100644 (file)
@@ -28,7 +28,7 @@ use C4::Overdues;
 use C4::Reserves;
 use C4::Accounts;
 use C4::Biblio;
-use C4::SQLHelper qw(InsertInTable UpdateInTable);
+use C4::SQLHelper qw(InsertInTable UpdateInTable SearchInTable);
 
 our ($VERSION,@ISA,@EXPORT,@EXPORT_OK,$debug);
 
@@ -39,6 +39,7 @@ BEGIN {
        @ISA = qw(Exporter);
        #Get data
        push @EXPORT, qw(
+               &Search
                &SearchMember 
                &GetMemberDetails
                &GetMember
@@ -253,6 +254,14 @@ AND attribute like ?
     return ( scalar(@$data), $data );
 }
 
+sub Search {
+    my ($filter,$orderby ) = @_;
+
+       my $data=SearchInTable("borrowers",$filter,$orderby);
+
+    return ( $data );
+}
+
 =head2 GetMemberDetails
 
 ($borrower) = &GetMemberDetails($borrowernumber, $cardnumber);
index 96b29ac..de5f160 100644 (file)
@@ -8,11 +8,14 @@
 
 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <!-- TMPL_IF NAME="searching" --><a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>  &rsaquo; Search Results<!-- TMPL_ELSE -->Patrons<!-- /TMPL_IF --></div>
 
-<div id="doc" class="yui-t7">
+<div id="doc" class="yui-t2">
    
    <div id="bd">
        <div id="yui-main">
-       <div class="yui-g">
+<div class="yui-g">
+<!-- TMPL_INCLUDE NAME="search.tmpl" -->
+</div>
+       <div class="yui-g first">
        
 <!-- TMPL_INCLUDE NAME="patron-toolbar.inc" -->
 
@@ -109,4 +112,5 @@ No results found
 <!-- TMPL_INCLUDE NAME="members-menu.inc" -->
 </div>
 </div>
+</div>
 <!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/search.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/members/search.tmpl
new file mode 100644 (file)
index 0000000..15bc172
--- /dev/null
@@ -0,0 +1,30 @@
+    <form action="member.pl" method="get">
+                <fieldset> <legend>search</legend><fieldset><legend>
+                       Patron information
+                </legend>
+                    <label for="firstname"> Firstname :</label><input type="text" name="firstname" value="<!-- TMPL_VAR name="firstname"-->" /><br/>
+                    <label for="surname"> Surname :</label><input type="text" name="surname" value="<!-- TMPL_VAR name="surname"-->" /><br/>
+                    <label for="address"> Address :</label><input type="text" name="address1" value="<!-- TMPL_VAR name="address"-->" /><br/>
+                    <label for="zipcode"> Zipcode :</label><input type="text" name="zipcode" value="<!-- TMPL_VAR name="zipcode"-->" /><br/>
+                    <label for="city"> City :</label><input type="text" name="city" value="<!-- TMPL_VAR name="city"-->" /><br />
+                    <label for="email"> email :</label><input type="text" name="email" value="<!-- TMPL_VAR name="email"-->" /><br />
+                </fieldset>
+                <fieldset ><legend>
+                Library Management 
+                </legend>
+                    <label for="branchcode"> Library :</label><select name="branchcode" id="branchcode">
+        <option value="">Any</option><!-- TMPL_LOOP name="branchloop" -->
+        <!-- TMPL_IF NAME="selected" -->
+        <option value="<!-- TMPL_VAR name="value" -->" selected="selected"><!-- TMPL_VAR name="branchname" --></option><!-- TMPL_ELSE -->
+        <option value="<!-- TMPL_VAR name="value" -->"><!-- TMPL_VAR name="branchname" --></option><!-- /TMPL_IF -->
+      <!-- /TMPL_LOOP --></select><br />
+                    <label for="categorycode"> categorycode :</label><select name="categorycode" id="categorycode">
+        <option value="">Any</option><!-- TMPL_LOOP name="categoryloop" -->
+        <!-- TMPL_IF NAME="selected" -->
+        <option value="<!-- TMPL_VAR name="categorycode" -->" selected="selected"><!-- TMPL_VAR name="description" --></option><!-- TMPL_ELSE -->
+        <option value="<!-- TMPL_VAR name="categorycode" -->"><!-- TMPL_VAR name="description" --></option><!-- /TMPL_IF -->
+      <!-- /TMPL_LOOP --></select>
+                </fieldset>
+                    <input type="submit" value="Search" />
+                </fieldset>
+            </form>
index fcc6ee1..9192be8 100755 (executable)
@@ -27,7 +27,8 @@ use C4::Auth;
 use C4::Output;
 use CGI;
 use C4::Members;
-
+use C4::Branch;
+use C4::Category;
 
 my $input = new CGI;
 my $quicksearch = $input->param('quicksearch');
@@ -80,45 +81,40 @@ $member =~ s/\*/%/g;
 
 my ($count,$results);
 
-if(length($member) == 1)
-{
-    ($count,$results)=SearchMember($member,$orderby,"simple");
+my $patron = $input->Vars;
+foreach (keys %$patron){
+       delete $$patron{$_} unless($$patron{$_}); 
 }
-else
-{
-    ($count,$results)=SearchMember($member,$orderby,"advanced");
+($results)=Search($patron,{surname=>1,firstname=>1}) if (keys %$patron);
+$count =scalar(@$results);
+use YAML;
+warn Dump($results);
+unless ($count){
+       if(length($member) == 1)
+       {
+               ($count,$results)=SearchMember($member,$orderby,"simple");
+       }
+       else
+       {
+               ($count,$results)=SearchMember($member,$orderby,"advanced");
+       }
 }
 
-
 my @resultsdata;
 my $to=($count>($startfrom*$resultsperpage)?$startfrom*$resultsperpage:$count);
 for (my $i=($startfrom-1)*$resultsperpage; $i < $to; $i++){
   #find out stats
   my ($od,$issue,$fines)=GetMemberIssuesAndFines($results->[$i]{'borrowernumber'});
 
+  $$results[$i]{'dateexpiry'}= C4::Dates->new($results->[$i]{'dateexpiry'},'iso')->output('syspref');
+
   my %row = (
     count => $i+1,
-    borrowernumber => $results->[$i]{'borrowernumber'},
-    cardnumber => $results->[$i]{'cardnumber'},
-    surname => $results->[$i]{'surname'},
-    firstname => $results->[$i]{'firstname'},
-    categorycode => $results->[$i]{'categorycode'},
-    category_type => $results->[$i]{'category_type'},
-    category_description => $results->[$i]{'description'},
-    address => $results->[$i]{'address'},
-       address2 => $results->[$i]{'address2'},
-    city => $results->[$i]{'city'},
-       zipcode => $results->[$i]{'zipcode'},
-       country => $results->[$i]{'country'},
-    branchcode => $results->[$i]{'branchcode'},
+       %{$results->[$i]},
     overdues => $od,
     issues => $issue,
     odissue => "$od/$issue",
     fines =>  sprintf("%.2f",$fines),
-    borrowernotes => $results->[$i]{'borrowernotes'},
-    sort1 => $results->[$i]{'sort1'},
-    sort2 => $results->[$i]{'sort2'},
-    dateexpiry => C4::Dates->new($results->[$i]{'dateexpiry'},'iso')->output('syspref'),
     );
   push(@resultsdata, \%row);
 }
@@ -134,6 +130,7 @@ my $base_url =
     )
   );
 
+my @categories=C4::Category->all;
 $template->param(
     paginationbar => pagination_bar(
         $base_url,  int( $count / $resultsperpage ) + 1,
@@ -143,6 +140,8 @@ $template->param(
     from      => ($startfrom-1)*$resultsperpage+1,  
     to        => $to,
     multipage => ($count != $to || $startfrom!=1),
+       branchloop=>GetBranchesLoop(),
+       categoryloop=>\@categories,
 );
 
 $template->param(