[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