X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Fparcels.pl;h=ffcbb66bbf3a2595230e806f1aa2de4b05a5ea97;hb=19a977dc7b779173c4a3e96b6b06dc35db663601;hp=4f2849d43f8862ef8e8873dd459584686775a513;hpb=4f44847c11add59ab7d0c55aeffac1fa2835cc1f;p=koha.git diff --git a/acqui/parcels.pl b/acqui/parcels.pl index 4f2849d43f..ffcbb66bbf 100755 --- a/acqui/parcels.pl +++ b/acqui/parcels.pl @@ -9,18 +9,18 @@ # # 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 . =head1 NAME @@ -68,18 +68,19 @@ To know how many results have to be display / page. use strict; use warnings; -use CGI; +use CGI qw ( -utf8 ); use C4::Auth; use C4::Output; -use C4::Dates qw/format_date/; use C4::Acquisition; -use C4::Bookseller qw/ GetBookSellerFromId /; use C4::Budgets; +use Koha::Acquisition::Bookseller; +use Koha::DateUtils qw( output_pref dt_from_string ); + my $input = CGI->new; my $booksellerid = $input->param('booksellerid'); -my $order = $input->param('orderby') || 'datereceived desc'; +my $order = $input->param('orderby') || 'shipmentdate desc'; my $startfrom = $input->param('startfrom'); my $code = $input->param('filter'); my $datefrom = $input->param('datefrom'); @@ -89,7 +90,7 @@ my $op = $input->param('op'); $resultsperpage ||= 20; our ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user( - { template_name => 'acqui/parcels.tmpl', + { template_name => 'acqui/parcels.tt', query => $input, type => 'intranet', authnotrequired => 0, @@ -98,14 +99,30 @@ our ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user( } ); -if($op and $op eq 'new') { - my $invoicenumber = $input->param('invoice'); - my $shipmentdate = $input->param('shipmentdate'); - my $shipmentcost = $input->param('shipmentcost'); - my $shipmentcost_budgetid = $input->param('shipmentcost_budgetid'); - if($shipmentdate) { - $shipmentdate = C4::Dates->new($shipmentdate)->output('iso'); +my $invoicenumber = $input->param('invoice'); +my $shipmentcost = $input->param('shipmentcost'); +my $shipmentcost_budgetid = $input->param('shipmentcost_budgetid'); +my $shipmentdate = $input->param('shipmentdate'); +$shipmentdate and $shipmentdate = output_pref({ str => $shipmentdate, dateformat => 'iso', dateonly => 1 }); + +if ( $op and $op eq 'new' ) { + if ( C4::Context->preference('AcqWarnOnDuplicateInvoice') ) { + my @invoices = GetInvoices( + supplierid => $booksellerid, + invoicenumber => $invoicenumber, + ); + if ( scalar @invoices > 0 ) { + $template->{'VARS'}->{'duplicate_invoices'} = \@invoices; + $template->{'VARS'}->{'invoicenumber'} = $invoicenumber; + $template->{'VARS'}->{'shipmentdate'} = $shipmentdate; + $template->{'VARS'}->{'shipmentcost'} = $shipmentcost; + $template->{'VARS'}->{'shipmentcost_budgetid'} = + $shipmentcost_budgetid; + } } + $op = 'confirm' unless $template->{'VARS'}->{'duplicate_invoices'}; +} +if ($op and $op eq 'confirm') { my $invoiceid = AddInvoice( invoicenumber => $invoicenumber, booksellerid => $booksellerid, @@ -122,12 +139,12 @@ if($op and $op eq 'new') { } } -my $bookseller = GetBookSellerFromId($booksellerid); +my $bookseller = Koha::Acquisition::Bookseller->fetch({ id => $booksellerid }); my @parcels = GetInvoices( supplierid => $booksellerid, invoicenumber => $code, - shipmentdatefrom => $datefrom, - shipmentdateto => $dateto, + ( $datefrom ? ( shipmentdatefrom => output_pref({ dt => dt_from_string($datefrom), dateformat => 'iso' }) ) : () ), + ( $dateto ? ( shipmentdateto => output_pref({ dt => dt_from_string($dateto), dateformat => 'iso' }) ) : () ), order_by => $order ); my $count_parcels = @parcels; @@ -151,7 +168,7 @@ for my $i ( $startfrom .. $last_row) { nullcode => $p->{invoicenumber} eq 'NULL', emptycode => $p->{invoicenumber} eq q{}, raw_datereceived => $p->{shipmentdate}, - datereceived => format_date( $p->{shipmentdate} ), + datereceived => $p->{shipmentdate}, bibcount => $p->{receivedbiblios} || 0, reccount => $p->{receiveditems} || 0, itemcount => $p->{itemsexpected} || 0, @@ -161,13 +178,25 @@ if ($count_parcels) { $template->param( searchresults => $loopres, count => $count_parcels ); } -my $budgets = GetBudgets(); -my @budgets_loop; -foreach my $budget (@$budgets) { - next unless CanUserUseBudget($loggedinuser, $budget, $flags); - push @budgets_loop, $budget; +# build budget list +my $budget_loop = []; +my $budgets = GetBudgetHierarchy; +foreach my $r (@{$budgets}) { + next unless (CanUserUseBudget($loggedinuser, $r, $flags)); + if (!defined $r->{budget_amount} || $r->{budget_amount} == 0) { + next; + } + push @{$budget_loop}, { + b_id => $r->{budget_id}, + b_txt => $r->{budget_name}, + b_active => $r->{budget_period_active}, + }; } +@{$budget_loop} = + sort { uc( $a->{b_txt}) cmp uc( $b->{b_txt}) } @{$budget_loop}; + + $template->param( orderby => $order, filter => $code, @@ -175,11 +204,10 @@ $template->param( dateto => $dateto, resultsperpage => $resultsperpage, name => $bookseller->{'name'}, - DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), - shipmentdate_today => C4::Dates->new()->output(), + shipmentdate_today => dt_from_string, booksellerid => $booksellerid, GST => C4::Context->preference('gist'), - budgets => \@budgets_loop, + budgets => $budget_loop, ); output_html_with_http_headers $input, $cookie, $template->output;