Bug 10403: (follow-up) fix test to use vendor created earlier during test
[koha.git] / circ / branchoverdues.pl
index cc2ff76..c81547e 100755 (executable)
@@ -1,6 +1,5 @@
 #!/usr/bin/perl
 
-# $Id$
 #
 # This file is part of Koha.
 #
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
+#use warnings; FIXME - Bug 2505
 use C4::Context;
 use CGI;
-use C4::Interface::CGI::Output;
+use C4::Output;
 use C4::Auth;
-use C4::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 :
@@ -53,94 +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 );
-
+$debug and warn "HERE : $default / $location" . Dumper(@getoverdues);
 # search for location authorised value
-my ($tag,$subfield) = GetMarcFromKohaField($dbh,'items.location','');
-my $tagslib = &GetMarcStructure($dbh,1,'');
+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,
 );