Bug 10403: (follow-up) fix test to use vendor created earlier during test
[koha.git] / circ / branchoverdues.pl
index bbc67c6..c81547e 100755 (executable)
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
+#use warnings; FIXME - Bug 2505
 use C4::Context;
 use CGI;
 use C4::Output;
 use C4::Auth;
-use C4::Dates qw/format_date/;
 use C4::Overdues;    # AddNotifyLine
 use C4::Biblio;
 use C4::Koha;
-use Mail::Sendmail;
-use Getopt::Long;
-use Date::Calc qw/Today Today_and_Now Now/;
+use C4::Debug;
+use C4::Branch;
+use Koha::DateUtils;
+use Data::Dumper;
 
 =head1 branchoverdues.pl
 
  this module is a new interface, allow to the librarian to check all items on overdues (based on the acountlines type 'FU' )
- this interface is filtered by branches (automaticly), and by location (optional) ....
+ this interface is filtered by branches (automatically), and by location (optional) ....
  all informations are stocked in the notifys BDD
 
  FIXME for this time, we have only four methods to notify :
@@ -52,95 +53,94 @@ use Date::Calc qw/Today Today_and_Now Now/;
        - 2) item issues is not returned
        - 3) this item as not been already notify
 
+  FIXME: who is the author?
+  FIXME: No privisions (i.e. "actions") for handling notices are implemented.
+  FIXME: This is linked as "Overdue Fines" but the relationship to fines in GetOverduesForBranch is more complicated than that.
+
 =cut
 
 my $input       = new CGI;
 my $dbh = C4::Context->dbh;
 
-my $theme = $input->param('theme');    # only used if allowthemeoverride is set
-
-my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
-    {
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user({
         template_name   => "circ/branchoverdues.tmpl",
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { circulate => 1 },
+        flagsrequired   => { circulate => "circulate_remaining_permissions" },
         debug           => 1,
-    }
-);
+});
 
 my $default = C4::Context->userenv->{'branch'};
 
-# Initate localtime
-my ( $year, $month, $day ) = &Today;
-my $todaysdate = join "-", ( $year, $month, $day );
-
 # Deal with the vars recept from the template
 my $borrowernumber = $input->param('borrowernumber');
 my $itemnumber     = $input->param('itemnumber');
 my $method         = $input->param('method');
 my $overduelevel   = $input->param('overduelevel');
 my $notifyId       = $input->param('notifyId');
-my $location = $input->param('location');
+my $location       = $input->param('location');
+
+# FIXME: better check that borrowernumber is defined and valid.
+# FIXME: same for itemnumber and other variables passed in here.
 
 # now create the line in bdd (notifys)
 if ( $input->param('action') eq 'add' ) {
     my $addnotify =
       AddNotifyLine( $borrowernumber, $itemnumber, $overduelevel, $method,
-        $notifyId );
+        $notifyId )    # FIXME: useless variable, no TMPL code for "action" exists.;
 }
-
-#  possibility to remove notify line
-if ( $input->param('action') eq 'remove' ) {
+elsif ( $input->param('action') eq 'remove' ) {
     my $notify_date  = $input->param('notify_date');
     my $removenotify =
-      RemoveNotifyLine( $borrowernumber, $itemnumber, $notify_date );
+      RemoveNotifyLine( $borrowernumber, $itemnumber, $notify_date );    # FIXME: useless variable, no TMPL code for "action" exists.
 }
 
 my @overduesloop;
-my @todayoverduesloop;
-my $counter = 0;
-
 my @getoverdues = GetOverduesForBranch( $default, $location );
-use Data::Dumper;
-warn "HERE : $default / $location".Dumper(@getoverdues);
+$debug and warn "HERE : $default / $location" . Dumper(@getoverdues);
 # search for location authorised value
 my ($tag,$subfield) = GetMarcFromKohaField('items.location','');
 my $tagslib = &GetMarcStructure(1,'');
 if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
     my $values= GetAuthorisedValues($tagslib->{$tag}->{$subfield}->{authorised_value});
+    for (@$values) { $_->{selected} = 1 if $location eq $_->{authorised_value} }
     $template->param(locationsloop => $values);
 }
 # now display infos
 foreach my $num (@getoverdues) {
-
     my %overdueforbranch;
-    $overdueforbranch{'date_due'}          = format_date( $num->{'date_due'} );
+    my $record = GetMarcBiblio($num->{biblionumber});
+    if ($record){
+        $overdueforbranch{'subtitle'} = GetRecordValue('subtitle',$record,'')->[0]->{subfield};
+    }
+    my $dt = dt_from_string($num->{date_due}, 'sql');
+    $overdueforbranch{'date_due'}          = output_pref($dt);
     $overdueforbranch{'title'}             = $num->{'title'};
     $overdueforbranch{'description'}       = $num->{'description'};
     $overdueforbranch{'barcode'}           = $num->{'barcode'};
     $overdueforbranch{'biblionumber'}      = $num->{'biblionumber'};
+    $overdueforbranch{'author'}            = $num->{'author'};
     $overdueforbranch{'borrowersurname'}   = $num->{'surname'};
     $overdueforbranch{'borrowerfirstname'} = $num->{'firstname'};
     $overdueforbranch{'borrowerphone'}     = $num->{'phone'};
     $overdueforbranch{'borroweremail'}     = $num->{'email'};
+    $overdueforbranch{'homebranch'}        = GetBranchName($num->{'homebranch'});
     $overdueforbranch{'itemcallnumber'}    = $num->{'itemcallnumber'};
     $overdueforbranch{'borrowernumber'}    = $num->{'borrowernumber'};
     $overdueforbranch{'itemnumber'}        = $num->{'itemnumber'};
 
     # now we add on the template, the differents values of notify_level
+    # FIXME: numerical comparison, not string eq.
     if ( $num->{'notify_level'} eq '1' ) {
         $overdueforbranch{'overdue1'}     = 1;
         $overdueforbranch{'overdueLevel'} = 1;
     }
-
-    if ( $num->{'notify_level'} eq '2' ) {
+    elsif ( $num->{'notify_level'} eq '2' ) {
         $overdueforbranch{'overdue2'}     = 1;
         $overdueforbranch{'overdueLevel'} = 2;
     }
-
-    if ( $num->{'notify_level'} eq '3' ) {
+    elsif ( $num->{'notify_level'} eq '3' ) {
         $overdueforbranch{'overdue3'}     = 1;
         $overdueforbranch{'overdueLevel'} = 3;
     }
@@ -152,7 +152,6 @@ foreach my $num (@getoverdues) {
 # initiate the templates for the overdueloop
 $template->param(
     overduesloop => \@overduesloop,
-    show_date    => format_date($todaysdate),
     location     => $location,
 );