[Koha-patches] [PATCH] Adding Registration Date filter in Patron Statistics Report
Amit Gupta
amit.gupta at osslabs.biz
Thu Jul 9 05:54:00 CEST 2009
---
.../prog/en/modules/reports/borrowers_stats.tmpl | 68 ++++++++++++++++++++
reports/borrowers_stats.pl | 17 ++++-
2 files changed, 81 insertions(+), 4 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 ba246ae..ead92ba 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
@@ -250,6 +250,74 @@
</td>
</tr>
<!-- /TMPL_IF -->
+<tr>
+ <td>Registration Date</td>
+ <td><input type="radio" name="Line" value="dateenrolled" /></td>
+ <td><input type="radio" name="Column" value="dateenrolled" /></td>
+ <td> From <input type="text" size="10" id="fromRO" name="Filter" value="" />
+ <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" alt="Show Calendar" border="0" id="openCalendarFromRO" style="cursor: pointer;" />
+ <script type="text/javascript">
+ //<![CDATA[
+ function validate1(date) {
+ var day = date.getDate();
+ var month = date.getMonth() + 1;
+ var year = date.getFullYear();
+ var weekDay = date.getDay();
+ var dayMonth = month + '-' + day;
+ var dateString = year + '-' + month + '-' + day;
+ var dateTo = document.getElementById('toRO').value.split("-");
+ var limitDate = new Date(dateTo[0], (dateTo[1] - 1), dateTo[2]);
+ if (date > limitDate) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ Calendar.setup(
+ {
+ inputField : "fromRO",
+ ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
+ button : "openCalendarFromRO",
+ disableFunc : validate1,
+ dateStatusFunc : validate1
+ }
+ );
+ //]]>
+ </script>
+ To <input type="text" size="10" id="toRO" name="Filter" value="" />
+ <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" alt="Show Calendar" id="openCalendarToRO" style="cursor: pointer;" border="0" />
+ <script type="text/javascript">
+ //<![CDATA[
+ function validate2(date) {
+ var day = date.getDate();
+ var month = date.getMonth() + 1;
+ var year = date.getFullYear();
+ var weekDay = date.getDay();
+ var dayMonth = month + '-' + day;
+ var dateString = year + '-' + month + '-' + day;
+ var dateFrom = document.getElementById('fromRO').value.split("-");
+ var limitDate = new Date(dateFrom[0], (dateFrom[1] - 1), dateFrom[2]);
+ if (limitDate > date) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ Calendar.setup(
+ {
+ inputField : "toRO",
+ ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
+ button : "openCalendarToRO",
+ disableFunc : validate2,
+ dateStatusFunc : validate2
+ }
+ );
+ //]]>
+ </script>
+ </td>
+ </tr>
</tbody>
</table><br /></fieldset>
diff --git a/reports/borrowers_stats.pl b/reports/borrowers_stats.pl
index ed062cb..0dbee00 100755
--- a/reports/borrowers_stats.pl
+++ b/reports/borrowers_stats.pl
@@ -28,6 +28,7 @@ use C4::Acquisition;
use C4::Output;
use C4::Reports;
use C4::Circulation;
+use C4::Dates qw/format_date format_date_in_iso/;
use Date::Calc qw(
Today
Add_Delta_YM
@@ -49,6 +50,8 @@ my $fullreportname = "reports/borrowers_stats.tmpl";
my $line = $input->param("Line");
my $column = $input->param("Column");
my @filters = $input->param("Filter");
+$filters[8]=format_date_in_iso($filters[8]);
+$filters[9]=format_date_in_iso($filters[9]);
my $digits = $input->param("digits");
my $period = $input->param("period");
my $borstat = $input->param("status");
@@ -194,7 +197,7 @@ sub calculate {
$colfilter = @$filters[7] if ($column =~ /sort2/);
my @loopfilter;
- for (my $i=0;$i<=7;$i++) {
+ for (my $i=0;$i<=9;$i++) {
my %cell;
if ( @$filters[$i] ) {
$cell{filter} .= @$filters[$i];
@@ -206,6 +209,8 @@ sub calculate {
$cell{crit} .="Sex" if ($i==5);
$cell{crit} .="Sort1" if ($i==6);
$cell{crit} .="Sort2" if ($i==7);
+ $cell{crit} .="Date Enrolled" if ($i==8);
+ $cell{crit} .="Date Enrolled" if ($i==9);
push @loopfilter, \%cell;
}
}
@@ -309,12 +314,16 @@ 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 sex like '" . @$filters[5] ."'" if ( @$filters[5] );
- @$filters[6]=~ s/\*/%/g if (@$filters[6]);
+ @$filters[5]=~ s/\*/%/g if (@$filters[5]);
+ $strcalc .= " AND sex like '" . @$filters[5] ."'" if ( @$filters[5] );
+ @$filters[6]=~ s/\*/%/g if (@$filters[6]);
$strcalc .= " AND sort1 like '" . @$filters[6] ."'" if ( @$filters[6] );
@$filters[7]=~ s/\*/%/g if (@$filters[7]);
$strcalc .= " AND sort2 like '" . @$filters[7] ."'" if ( @$filters[7] );
+ @$filters[8]=~ s/\*/%/g if (@$filters[8]);
+ $strcalc .= " AND dateenrolled > '" . @$filters[8] ."'" if ( @$filters[8] );
+ @$filters[9]=~ s/\*/%/g if (@$filters[9]);
+ $strcalc .= " AND dateenrolled < '" . @$filters[9] ."'" if ( @$filters[9] );
$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);
--
1.5.6
More information about the Koha-patches
mailing list