X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;ds=sidebyside;f=acqui%2Flateorders.pl;h=55031ecc9ba1fb80e515e678a1721a6853ba86fc;hb=f799c32307be124f461e2e02e4a2668fcc13cade;hp=7c7a7664567f38761bdace144e2e8033e3c68cb5;hpb=886fdce62588cd2bb21cfb222d2be765bc95e133;p=koha_gimpoz diff --git a/acqui/lateorders.pl b/acqui/lateorders.pl index 7c7a766456..55031ecc9b 100755 --- a/acqui/lateorders.pl +++ b/acqui/lateorders.pl @@ -43,8 +43,9 @@ To know on which branch this script have to display late order. =cut use strict; +use warnings; use CGI; -use C4::Bookseller; +use C4::Bookseller qw( GetBooksellersWithLateOrders ); use C4::Auth; use C4::Koha; use C4::Output; @@ -54,67 +55,73 @@ use C4::Letters; use C4::Branch; # GetBranches 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 => 1}, - debug => 1, - }); - -my $supplierid = $input->param('supplierid'); -my $delay = $input->param('delay'); -my $branch = $input->param('branch'); - -#default value for delay -$delay = 30 unless $delay; - -my %supplierlist = GetBooksellersWithLateOrders($delay,$branch); -my @select_supplier; -push @select_supplier,""; -foreach my $supplierid (keys %supplierlist){ - push @select_supplier, $supplierid; +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 $supplierid = $input->param('supplierid') || undef; # we don't want "" or 0 +my $delay = $input->param('delay'); +my $branch = $input->param('branch'); +my $op = $input->param('op'); + +my @errors = (); +$delay = 30 unless defined $delay; +unless ($delay =~ /^\d{1,3}$/) { + push @errors, {delay_digits => 1, bad_delay => $delay}; + $delay = 30; #default value for delay } -my $CGIsupplier=CGI::scrolling_list( -name => 'supplierid', - -values => \@select_supplier, - -default => $supplierid, - -id => 'supplierid', - -labels => \%supplierlist, - -size => 1, - -tabindex=>'', - -multiple => 0 ); +if ($op and $op eq "send_alert"){ + my @ordernums = $input->param("claim_for");# FIXME: Fallback values? + my $err; + eval { + $err = SendAlerts( 'claimacquisition', \@ordernums, $input->param("letter_code") ); # FIXME: Fallback value? + AddClaim ( $_ ) for @ordernums; + }; + if ( $@ ) { + $template->param(error_claim => $@); + } elsif ( defined $err->{error} and $err->{error} eq "no_email" ) { + $template->{VARS}->{'error_claim'} = "no_email"; + } else { + $template->{VARS}->{'info_claim'} = 1; + } +} +my %supplierlist = GetBooksellersWithLateOrders($delay); +my (@sloopy); # supplier loop +foreach (keys %supplierlist){ + push @sloopy, (($supplierid and $supplierid eq $_ ) ? + {id=>$_, name=>$supplierlist{$_}, selected=>1} : + {id=>$_, name=>$supplierlist{$_}} ) ; +} +$template->param(SUPPLIER_LOOP => \@sloopy); $template->param(Supplier=>$supplierlist{$supplierid}) if ($supplierid); +$template->param(SupplierId=>$supplierid) if ($supplierid); my @lateorders = GetLateOrders($delay,$supplierid,$branch); -my $count = scalar @lateorders; my $total; -foreach my $lateorder (@lateorders){ - $total+=$lateorder->{subtotal}; +foreach (@lateorders){ + $total += $_->{subtotal}; } my @letters; my $letters=GetLetters("claimacquisition"); foreach (keys %$letters){ - push @letters ,{code=>$_,name=>$letters->{$_}}; + push @letters, {code=>$_,name=>$letters->{$_}}; } - $template->param(letters=>\@letters) if (@letters); -my $op=$input->param("op"); -if ($op eq "send_alert"){ - my @ordernums=$input->param("claim_for"); - SendAlerts('claimacquisition',\@ordernums,$input->param("letter_code")); -} -$template->param(delay=>$delay) if ($delay); +$template->param(ERROR_LOOP => \@errors) if (@errors); $template->param( - CGIsupplier => $CGIsupplier, lateorders => \@lateorders, - total=>$total, + delay => $delay, + total => $total, intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"), - ); +); output_html_with_http_headers $input, $cookie, $template->output;