4 # Copyright 2005 Biblibre
5 # This file is part of Koha.
7 # Koha is free software; you can redistribute it and/or modify it under the
8 # terms of the GNU General Public License as published by the Free Software
9 # Foundation; either version 2 of the License, or (at your option) any later
12 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License along
17 # with Koha; if not, write to the Free Software Foundation, Inc.,
18 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
26 this script shows late orders for a specific supplier, branch and delay
34 To know on which supplier this script have to display late order.
37 To know the time boundary. Default value is 30 days.
40 To know on which branch this script have to display late order.
48 use C4
::Bookseller
qw( GetBooksellersWithLateOrders );
55 use C4
::Branch
; # GetBranches
59 my ($template, $loggedinuser, $cookie) = get_template_and_user
({
60 template_name
=> "acqui/lateorders.tmpl",
64 flagsrequired
=> {acquisition
=> 'order_receive'},
68 my $booksellerid = $input->param('booksellerid') || undef; # we don't want "" or 0
69 my $delay = $input->param('delay');
71 # Get the "date from" param if !defined is today
72 my $estimateddeliverydatefrom = $input->param('estimateddeliverydatefrom');
73 my $estimateddeliverydateto = $input->param('estimateddeliverydateto');
75 my $estimateddeliverydatefrom_dt =
76 $estimateddeliverydatefrom
77 ? dt_from_string
($estimateddeliverydatefrom)
80 # Get the "date to" param. If it is not defined and $delay is not defined too, it is the today's date.
81 my $estimateddeliverydateto_dt = $estimateddeliverydateto
82 ? dt_from_string
($estimateddeliverydateto)
83 : ( not defined $delay and not defined $estimateddeliverydatefrom)
87 # Format the output of "date from" and "date to"
88 if ($estimateddeliverydatefrom_dt) {
89 $estimateddeliverydatefrom = output_pref
($estimateddeliverydatefrom_dt, undef, 1);
91 if ($estimateddeliverydateto_dt) {
92 $estimateddeliverydateto = output_pref
($estimateddeliverydateto_dt, undef, 1);
95 my $branch = $input->param('branch');
96 my $op = $input->param('op');
99 if ( $delay and not $delay =~ /^\d{1,3}$/ ) {
100 push @errors, {delay_digits
=> 1, bad_delay
=> $delay};
103 if ($op and $op eq "send_alert"){
104 my @ordernums = $input->param("claim_for");# FIXME: Fallback values?
107 $err = SendAlerts
( 'claimacquisition', \
@ordernums, $input->param("letter_code") ); # FIXME: Fallback value?
108 if ( not ref $err or not exists $err->{error
} ) {
109 AddClaim
( $_ ) for @ordernums;
113 $template->param(error_claim
=> $@
);
114 } elsif ( ref $err and exists $err->{error
} and $err->{error
} eq "no_email" ) {
115 $template->{VARS
}->{'error_claim'} = "no_email";
117 $template->{VARS
}->{'info_claim'} = 1;
121 my @parameters = ( $delay, $branch );
122 push @parameters, $estimateddeliverydatefrom_dt
123 ?
$estimateddeliverydatefrom_dt->ymd()
126 push @parameters, $estimateddeliverydateto_dt
127 ?
$estimateddeliverydateto_dt->ymd()
130 my %supplierlist = GetBooksellersWithLateOrders
(@parameters);
132 my (@sloopy); # supplier loop
133 foreach (keys %supplierlist){
134 push @sloopy, (($booksellerid and $booksellerid eq $_ ) ?
135 {id
=>$_, name
=>$supplierlist{$_}, selected
=>1} :
136 {id
=>$_, name
=>$supplierlist{$_}} ) ;
138 $template->param(SUPPLIER_LOOP
=> \
@sloopy);
140 $template->param(Supplier
=>$supplierlist{$booksellerid}) if ($booksellerid);
141 $template->param(booksellerid
=>$booksellerid) if ($booksellerid);
144 ( $delay, $booksellerid, $branch );
145 if ($estimateddeliverydatefrom_dt) {
146 push @parameters, $estimateddeliverydatefrom_dt->ymd();
149 push @parameters, undef;
151 if ($estimateddeliverydateto_dt) {
152 push @parameters, $estimateddeliverydateto_dt->ymd();
154 my @lateorders = GetLateOrders
( @parameters );
157 foreach (@lateorders){
158 $total += $_->{subtotal
};
162 my $letters=GetLetters
("claimacquisition");
163 foreach (keys %$letters){
164 push @letters, {code
=>$_,name
=>$letters->{$_}};
166 $template->param(letters
=>\
@letters) if (@letters);
168 $template->param(ERROR_LOOP
=> \
@errors) if (@errors);
170 lateorders
=> \
@lateorders,
172 estimateddeliverydatefrom
=> $estimateddeliverydatefrom,
173 estimateddeliverydateto
=> $estimateddeliverydateto,
175 intranetcolorstylesheet
=> C4
::Context
->preference("intranetcolorstylesheet"),
176 DHTMLcalendar_dateformat
=> C4
::Dates
->DHTMLcalendar(),
178 output_html_with_http_headers
$input, $cookie, $template->output;