ffzg/recall_notices.pl: added --interval and --dedup
[koha.git] / acqui / lateorders.pl
index 0832974..9febcf6 100755 (executable)
@@ -4,18 +4,18 @@
 # Copyright 2005 Biblibre
 # This file is part of Koha.
 #
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 #
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
 
 =head1 NAME
 
@@ -44,7 +44,7 @@ To know on which branch this script have to display late order.
 =cut
 
 use Modern::Perl;
-use CGI;
+use CGI qw ( -utf8 );
 use C4::Bookseller qw( GetBooksellersWithLateOrders );
 use C4::Auth;
 use C4::Koha;
@@ -52,21 +52,22 @@ use C4::Output;
 use C4::Context;
 use C4::Acquisition;
 use C4::Letters;
-use C4::Branch; # GetBranches
 use Koha::DateUtils;
 
 my $input = new CGI;
-my ($template, $loggedinuser, $cookie) = get_template_and_user({
-       template_name => "acqui/lateorders.tmpl",
-       query => $input,
-        type => "intranet",
-       authnotrequired => 0,
-       flagsrequired => {acquisition => 'order_receive'},
-       debug => 1,
-});
+my ($template, $loggedinuser, $cookie) = get_template_and_user(
+    {
+        template_name   => "acqui/lateorders.tt",
+        query           => $input,
+        type            => "intranet",
+        authnotrequired => 0,
+        flagsrequired   => { acquisition => 'order_receive' },
+        debug           => 1,
+    }
+);
 
 my $booksellerid = $input->param('booksellerid') || undef; # we don't want "" or 0
-my $delay        = $input->param('delay');
+my $delay        = $input->param('delay') // 0;
 
 # Get the "date from" param if !defined is today
 my $estimateddeliverydatefrom = $input->param('estimateddeliverydatefrom');
@@ -101,18 +102,21 @@ if ( $delay and not $delay =~ /^\d{1,3}$/ ) {
 }
 
 if ($op and $op eq "send_alert"){
-    my @ordernums = $input->param("claim_for");# FIXME: Fallback values?
+    my @ordernums = $input->multi_param("ordernumber");
     my $err;
     eval {
-        $err = SendAlerts( 'claimacquisition', \@ordernums, $input->param("letter_code") );    # FIXME: Fallback value?
+        $err = SendAlerts( 'claimacquisition', \@ordernums, $input->param("letter_code") );
         if ( not ref $err or not exists $err->{error} ) {
             AddClaim ( $_ ) for @ordernums;
         }
     };
+
     if ( $@ ) {
         $template->param(error_claim => $@);
     } elsif ( ref $err and exists $err->{error} and $err->{error} eq "no_email" ) {
         $template->{VARS}->{'error_claim'} = "no_email";
+    } elsif ( ref $err and exists $err->{error} and $err->{error} eq "no_order_selected"){
+        $template->{VARS}->{'error_claim'} = "no_order_selected";
     } else {
         $template->{VARS}->{'info_claim'} = 1;
     }
@@ -130,7 +134,7 @@ push @parameters, $estimateddeliverydateto_dt
 my %supplierlist = GetBooksellersWithLateOrders(@parameters);
 
 my (@sloopy);  # supplier loop
-foreach (keys %supplierlist){
+foreach( sort { $supplierlist{$a} cmp $supplierlist{$b} } keys %supplierlist ) {
        push @sloopy, (($booksellerid and $booksellerid eq $_ )            ?
                                        {id=>$_, name=>$supplierlist{$_}, selected=>1} :
                                        {id=>$_, name=>$supplierlist{$_}} )            ;
@@ -158,17 +162,13 @@ foreach (@lateorders){
        $total += $_->{subtotal};
 }
 
-my @letters;
-my $letters=GetLetters("claimacquisition");
-foreach (keys %$letters){
-       push @letters, {code=>$_,name=>$letters->{$_}};
-}
-$template->param(letters=>\@letters) if (@letters);
+my $letters = GetLetters({ module => "claimacquisition" });
 
 $template->param(ERROR_LOOP => \@errors) if (@errors);
 $template->param(
        lateorders => \@lateorders,
        delay => $delay,
+    letters => $letters,
     estimateddeliverydatefrom => $estimateddeliverydatefrom,
     estimateddeliverydateto   => $estimateddeliverydateto,
        total => $total,