[Koha-patches] [PATCH] Bug 5874 : circ/overdue.pl modified : permission & limit on date

Chris Cormack chrisc at catalyst.net.nz
Wed Mar 16 02:15:40 CET 2011


From: Paul Poulain <paul.poulain at biblibre.com>

- the Overdues.pl now is now available to ppl with reports->execute_reports permission
- there is a filter on date (to display only "old" or "new" overdues, for example)

(the permission is created in another patch)
---
 circ/overdue.pl                                    |   12 ++++++-
 .../prog/en/modules/circ/overdue.tmpl              |   33 +++++++++++++++++++-
 2 files changed, 42 insertions(+), 3 deletions(-)

diff --git a/circ/overdue.pl b/circ/overdue.pl
index cad8e6d..21a5254 100755
--- a/circ/overdue.pl
+++ b/circ/overdue.pl
@@ -26,7 +26,7 @@ use CGI qw(-oldstyle_urls);
 use C4::Auth;
 use C4::Branch;
 use C4::Debug;
-use C4::Dates qw/format_date/;
+use C4::Dates qw/format_date format_date_in_iso/;
 use Date::Calc qw/Today/;
 use Text::CSV_XS;
 
@@ -39,6 +39,8 @@ my $itemtypefilter  = $input->param('itemtype') || '';
 my $borflagsfilter  = $input->param('borflag') || '';
 my $branchfilter    = $input->param('branch') || '';
 my $op              = $input->param('op') || '';
+my $dateduefrom = format_date_in_iso($input->param( 'dateduefrom' )) || '';
+my $datedueto   = format_date_in_iso($input->param( 'datedueto' )) || '';
 my $isfiltered      = $op =~ /apply/i && $op =~ /filter/i;
 my $noreport        = C4::Context->preference('FilterBeforeOverdueReport') && ! $isfiltered && $op ne "csv";
 
@@ -48,7 +50,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { reports => 1, circulate => "circulate_remaining_permissions" },
+        flagsrequired   => { reports => 'execute_reports', circulate => "circulate_remaining_permissions" },
         debug           => 1,
     }
 );
@@ -206,6 +208,9 @@ $template->param(
     borcatloop=> \@borcatloop,
     itemtypeloop => \@itemtypeloop,
     patron_attr_filter_loop => \@patron_attr_filter_loop,
+    dateduefrom => $input->param( 'dateduefrom' ) || '',
+    datedueto   => $input->param( 'datedueto' ) || '',
+    DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
     borname => $bornamefilter,
     order => $order,
     showall => $showall);
@@ -253,6 +258,8 @@ if ($noreport) {
     $strsth.=" AND biblioitems.itemtype   = '" . $itemtypefilter . "' " if $itemtypefilter;
     $strsth.=" AND borrowers.flags        = '" . $borflagsfilter . "' " if $borflagsfilter;
     $strsth.=" AND borrowers.branchcode   = '" . $branchfilter   . "' " if $branchfilter;
+    $strsth .= " AND date_due < '" . $datedueto . "' "  if $datedueto;
+    $strsth .= " AND date_due > '" . $dateduefrom . "' " if $dateduefrom;
     # restrict patrons (borrowers) to those matching the patron attribute filter(s), if any
     my $bnlist = $have_pattr_filter_data ? join(',',keys %borrowernumber_to_attributes) : '';
     $strsth =~ s/WHERE 1=1/WHERE 1=1 AND borrowers.borrowernumber IN ($bnlist)/ if $bnlist;
@@ -284,6 +291,7 @@ if ($noreport) {
             push @patron_attr_value_loop, { value => join(', ', sort { lc $a cmp lc $b } @displayvalues) };
         }
 
+        $data->{email}=C4::Members::GetFirstValidEmailAddress($data->{borrowernumber});
         push @overduedata, {
             duedate                => format_date($data->{date_due}),
             borrowernumber         => $data->{borrowernumber},
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/overdue.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/overdue.tmpl
index 9682fb1..a37fdca 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/overdue.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/overdue.tmpl
@@ -69,6 +69,7 @@
 <style type="text/css">
     .sql {display:none;}
 </style>
+<!-- TMPL_INCLUDE NAME="calendar.inc" -->
 </head>
 <body>
 <!-- TMPL_INCLUDE NAME="header.inc" -->
@@ -137,6 +138,35 @@
   <fieldset class="brief">
 <h4>Filter On:</h4>
 	<ol>
+    <li style="border: dashed; border-width:1px;">Date due:
+        <label for="dateduefrom">From:
+        <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="dateduefrom_button" alt="Show Calendar" />
+        </label>
+        <input type="text" id="dateduefrom" name="dateduefrom" size="20" value="<!-- TMPL_VAR NAME="dateduefrom" -->" />
+        <script language="JavaScript" type="text/javascript">
+            Calendar.setup(
+            {
+                inputField : "dateduefrom",
+                ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
+                button : "dateduefrom_button"
+            }
+            );
+        </script>
+        
+        <label for="datedueto">To:
+        <img src="<!-- TMPL_VAR Name="themelang" -->/lib/calendar/cal.gif" id="datedueto_button" alt="Show Calendar" />
+        </label>
+        <input type="text" id="datedueto" name="datedueto" size="20" value="<!-- TMPL_VAR NAME="datedueto" -->" />
+        <script language="JavaScript" type="text/javascript">
+            Calendar.setup(
+            {
+                inputField : "datedueto",
+                ifFormat : "<!-- TMPL_VAR NAME="DHTMLcalendar_dateformat" -->",
+                button : "datedueto_button"
+            }
+            );
+        </script>
+    </li>
     <li><label>Name or cardnumber:</label><input type="text" name="borname" value="<!--TMPL_VAR Name="borname" escape="html" -->" /></li>
     <li><label>Patron category:</label><select name="borcat" id="borcat"><option value="">Any</option>
       <!-- TMPL_LOOP name="borcatloop" -->
@@ -233,7 +263,8 @@
 </li>
 </ol>
    <fieldset class="action">
-      <input type="submit" name="op" value="Apply Filter" class="submit" />
+        <input type="hidden" name="op" value="Apply Filter" />
+      <input type="submit" name="sub" value="Apply Filter" class="submit" />
    </fieldset>
    </fieldset>
   </form>
-- 
1.7.1



More information about the Koha-patches mailing list