[Koha-patches] [PATCH] Add the feature to create reports with borrower's sex information(Men/Women) (bug #2671).

Nahuel Angelinetti nahuel.angelinetti at biblibre.com
Tue Oct 14 16:23:43 CEST 2008


---
 .../prog/en/modules/reports/borrowers_stats.tmpl   |   13 +++++++-
 reports/borrowers_stats.pl                         |   34 +++++++++++--------
 2 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/borrowers_stats.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/borrowers_stats.tmpl
index 2edf108..8044155 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/borrowers_stats.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/borrowers_stats.tmpl
@@ -208,7 +208,18 @@
                         </script>
                     </td>
                 </tr>
-
+            <tr>
+                <td>Sex</td>
+                <td><input type="radio" name="Line" value="sex" /></td>
+                <td><input type="radio" name="Column" value="sex" /></td>
+                <td>
+                    <select id="sex" size="1" name="Filter">
+                        <option value="" />
+                        <option value="M">Men</option>
+                        <option value="F">Women</option>
+                    </select>
+                </td>
+            </tr>
 			<!-- TMPL_IF name="SORT1_LOOP" -->
 				<tr class="highlight">
 				<td>Sort1</td>
diff --git a/reports/borrowers_stats.pl b/reports/borrowers_stats.pl
index b379067..f867197 100755
--- a/reports/borrowers_stats.pl
+++ b/reports/borrowers_stats.pl
@@ -70,7 +70,7 @@ my ($template, $borrowernumber, $cookie)
 				});
 $template->param(do_it => $do_it);
 if ($do_it) {
-	my $results = calculate($line, $column, $digits, $borstat,$borstat1 ,\@filters);
+	my $results = calculate($line, $column, $digits, $borstat, $borstat1,\@filters);
 	if ($output eq "screen"){
 		$template->param(mainloop => $results);
 		output_html_with_http_headers $input, $cookie, $template->output;
@@ -145,7 +145,7 @@ if ($do_it) {
 	$template->param(
 		CGIextChoice => $CGIextChoice,
 		CGIsepChoice => $CGIsepChoice,
-		DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
+		DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar('iso')
     );
 
 }
@@ -166,7 +166,7 @@ sub catcodes_hash() {
 }
 
 sub calculate {
-	my ($line, $column, $digits, $status, $activity, $filters) = @_;
+	my ($line, $column, $digits, $status, $activity,$filters) = @_;
 	my @mainloop;
 	my @loopfooter;
 	my @loopcol;
@@ -187,18 +187,20 @@ sub calculate {
  	$linefilter = @$filters[0] if ($line =~ /categorycode/ )  ;
  	$linefilter = @$filters[1] if ($line =~ /zipcode/ )  ;
  	$linefilter = @$filters[2] if ($line =~ /branchcode/ ) ;
- 	$linefilter = @$filters[5] if ($line =~ /sort1/ ) ;
- 	$linefilter = @$filters[6] if ($line =~ /sort2/ ) ;
+ 	$linefilter = @$filters[5] if ($line =~ /sex/ ) ;
+ 	$linefilter = @$filters[6] if ($line =~ /sort1/ ) ;
+    $linefilter = @$filters[7] if ($line =~ /sort2/);
 # 
  	my $colfilter = "";
  	$colfilter = @$filters[0] if ($column =~ /categorycode/);
  	$colfilter = @$filters[1] if ($column =~ /zipcode/);
  	$colfilter = @$filters[2] if ($column =~ /branchcode/);
- 	$colfilter = @$filters[5] if ($column =~ /sort1/);
- 	$colfilter = @$filters[6] if ($column =~ /sort2/);
+    $colfilter = @$filters[5] if ($column =~ /sex/);
+ 	$colfilter = @$filters[6] if ($column =~ /sort1/);
+    $colfilter = @$filters[7] if ($column =~ /sort2/);
 
 	my @loopfilter;
-	for (my $i=0;$i<=6;$i++) {
+	for (my $i=0;$i<=7;$i++) {
 		my %cell;
 		if ( @$filters[$i] ) {
 			$cell{filter} .= @$filters[$i];
@@ -207,8 +209,9 @@ sub calculate {
 			$cell{crit} .="Branchcode" if ($i==2);
 			$cell{crit} .="Date of Birth" if ($i==3);
 			$cell{crit} .="Date of Birth" if ($i==4);
-			$cell{crit} .="Sort1" if ($i==5);
-			$cell{crit} .="Sort2" if ($i==6);
+            $cell{crit} .="Sex" if ($i==5);
+			$cell{crit} .="Sort1" if ($i==6);
+            $cell{crit} .="Sort2" if ($i==7);
 			push @loopfilter, \%cell;
 		}
 	}
@@ -312,15 +315,18 @@ sub calculate {
 	$strcalc .= " AND dateofbirth > '" . @$filters[3] ."'" if ( @$filters[3] );
 	@$filters[4]=~ s/\*/%/g if (@$filters[4]);
 	$strcalc .= " AND dateofbirth < '" . @$filters[4] ."'" if ( @$filters[4] );
-	@$filters[5]=~ s/\*/%/g if (@$filters[5]);
-	$strcalc .= " AND sort1 like '" . @$filters[5] ."'" if ( @$filters[5] );
-	@$filters[6]=~ s/\*/%/g if (@$filters[6]);
-	$strcalc .= " AND sort2 like '" . @$filters[6] ."'" if ( @$filters[6] );
+    @$filters[7]=~ s/\*/%/g if (@$filters[5]);
+    $strcalc .= " AND sex like '" . @$filters[5] ."'" if ( @$filters[5] );
+	@$filters[5]=~ s/\*/%/g if (@$filters[6]);
+	$strcalc .= " AND sort1 like '" . @$filters[6] ."'" if ( @$filters[6] );
+    @$filters[6]=~ s/\*/%/g if (@$filters[7]);
+    $strcalc .= " AND sort2 like '" . @$filters[7] ."'" if ( @$filters[7] );
 	$strcalc .= " AND borrowernumber in (select distinct(borrowernumber) from old_issues where issuedate > '" . $newperioddate . "')" if ($activity eq 'active');
 	$strcalc .= " AND borrowernumber not in (select distinct(borrowernumber) from old_issues where issuedate > '" . $newperioddate . "')" if ($activity eq 'nonactive');
 	$strcalc .= " AND $status='1' " if ($status);
 	$strcalc .= " group by $linefield, $colfield";
 	push @loopfilter, {sql=>1, crit=>"Query", filter=>$strcalc};
+warn $strcalc;
 	my $dbcalc = $dbh->prepare($strcalc);
 	$dbcalc->execute;
 	
-- 
1.5.4.3




More information about the Koha-patches mailing list