fix pdf generation by removing obsolete module
[koha.git] / acqui / invoices.pl
index 44589ab..8ab7a32 100755 (executable)
@@ -3,18 +3,18 @@
 # Copyright 2011 BibLibre SARL
 # 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
 
@@ -26,21 +26,21 @@ Search for invoices
 
 =cut
 
-use strict;
-use warnings;
+use Modern::Perl;
 
-use CGI;
+use CGI qw ( -utf8 );
 use C4::Auth;
 use C4::Output;
 
-use C4::Acquisition;
-use C4::Bookseller qw/GetBookSeller/;
-use C4::Branch;
+use C4::Acquisition qw/GetInvoices/;
+use C4::Budgets;
+use Koha::DateUtils;
+use Koha::Acquisition::Booksellers;
 
-my $input = new CGI;
+my $input = CGI->new;
 my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
     {
-        template_name   => 'acqui/invoices.tmpl',
+        template_name   => 'acqui/invoices.tt',
         query           => $input,
         type            => 'intranet',
         authnotrequired => 0,
@@ -61,97 +61,76 @@ my $author           = $input->param('author');
 my $publisher        = $input->param('publisher');
 my $publicationyear  = $input->param('publicationyear');
 my $branch           = $input->param('branch');
+my $message_id       = $input->param('message_id');
 my $op               = $input->param('op');
 
-my @results_loop = ();
-if ( $op and $op eq "do_search" ) {
-    my $shipmentdatefrom_iso = C4::Dates->new($shipmentdatefrom)->output("iso");
-    my $shipmentdateto_iso   = C4::Dates->new($shipmentdateto)->output("iso");
-    my $billingdatefrom_iso  = C4::Dates->new($billingdatefrom)->output("iso");
-    my $billingdateto_iso    = C4::Dates->new($billingdateto)->output("iso");
-    my @invoices             = GetInvoices(
+$shipmentdatefrom and $shipmentdatefrom = eval { dt_from_string( $shipmentdatefrom ) };
+$shipmentdateto   and $shipmentdateto   = eval { dt_from_string( $shipmentdateto ) };
+$billingdatefrom  and $billingdatefrom  = eval { dt_from_string( $billingdatefrom ) };
+$billingdateto    and $billingdateto    = eval { dt_from_string( $billingdateto ) };
+
+my $invoices = [];
+if ( $op and $op eq 'do_search' ) {
+    @{$invoices} = GetInvoices(
         invoicenumber    => $invoicenumber,
         supplierid       => $supplierid,
-        shipmentdatefrom => $shipmentdatefrom_iso,
-        shipmentdateto   => $shipmentdateto_iso,
-        billingdatefrom  => $billingdatefrom_iso,
-        billingdateto    => $billingdateto_iso,
+        shipmentdatefrom => $shipmentdatefrom ? output_pref( { str => $shipmentdatefrom, dateformat => 'iso' } ) : undef,
+        shipmentdateto   => $shipmentdateto   ? output_pref( { str => $shipmentdateto,   dateformat => 'iso' } ) : undef,
+        billingdatefrom  => $billingdatefrom  ? output_pref( { str => $billingdatefrom,  dateformat => 'iso' } ) : undef,
+        billingdateto    => $billingdateto    ? output_pref( { str => $billingdateto,    dateformat => 'iso' } ) : undef,
         isbneanissn      => $isbneanissn,
         title            => $title,
         author           => $author,
         publisher        => $publisher,
         publicationyear  => $publicationyear,
-        branchcode       => $branch
+        branchcode       => $branch,
+        message_id       => $message_id,
     );
-    foreach (@invoices) {
-        my %row = (
-            invoiceid       => $_->{invoiceid},
-            billingdate     => $_->{billingdate},
-            invoicenumber   => $_->{invoicenumber},
-            suppliername    => $_->{suppliername},
-            booksellerid      => $_->{booksellerid},
-            receivedbiblios => $_->{receivedbiblios},
-            receiveditems   => $_->{receiveditems},
-            subscriptionid  => $_->{subscriptionid},
-            closedate       => $_->{closedate},
-        );
-        push @results_loop, \%row;
-    }
 }
 
 # Build suppliers list
-my @suppliers      = GetBookSeller(undef);
-my @suppliers_loop = ();
+my @suppliers      = Koha::Acquisition::Booksellers->search( undef, { order_by => { -asc => 'name' } } );
+my $suppliers_loop = [];
 my $suppliername;
 foreach (@suppliers) {
     my $selected = 0;
-    if ( $supplierid && $supplierid == $_->{'id'} ) {
-        $selected     = 1;
-        $suppliername = $_->{'name'};
+    if ($supplierid && $supplierid == $_->id ) {
+        $selected = 1;
+        $suppliername = $_->name;
     }
-    my %row = (
-        suppliername => $_->{'name'},
-        booksellerid   => $_->{'id'},
+    push @{$suppliers_loop},
+      {
+        suppliername => $_->name,
+        booksellerid   => $_->id,
         selected     => $selected,
-    );
-    push @suppliers_loop, \%row;
+      };
 }
 
-# Build branches list
-my $branches      = GetBranches();
-my @branches_loop = ();
-my $branchname;
-foreach ( sort keys %$branches ) {
-    my $selected = 0;
-    if ( $branch && $branch eq $_ ) {
-        $selected   = 1;
-        $branchname = $branches->{$_}->{'branchname'};
-    }
-    my %row = (
-        branchcode => $_,
-        branchname => $branches->{$_}->{'branchname'},
-        selected   => $selected,
-    );
-    push @branches_loop, \%row;
+my $budgets = GetBudgets();
+my @budgets_loop;
+foreach my $budget (@$budgets) {
+    push @budgets_loop, $budget if CanUserUseBudget( $loggedinuser, $budget, $flags );
 }
 
+$template->{'VARS'}->{'budgets_loop'} = \@budgets_loop;
+
 $template->param(
-    do_search => ( $op and $op eq "do_search" ) ? 1 : 0,
-    results_loop             => \@results_loop,
-    invoicenumber            => $invoicenumber,
-    booksellerid             => $supplierid,
-    suppliername             => $suppliername,
-    billingdatefrom          => $billingdatefrom,
-    billingdateto            => $billingdateto,
-    isbneanissn              => $isbneanissn,
-    title                    => $title,
-    author                   => $author,
-    publisher                => $publisher,
-    publicationyear          => $publicationyear,
-    branch                   => $branch,
-    branchname               => $branchname,
-    suppliers_loop           => \@suppliers_loop,
-    branches_loop            => \@branches_loop,
+    do_search => ( $op and $op eq 'do_search' ) ? 1 : 0,
+    invoices => $invoices,
+    invoicenumber   => $invoicenumber,
+    booksellerid    => $supplierid,
+    suppliername    => $suppliername,
+    shipmentdatefrom => $shipmentdatefrom,
+    shipmentdateto   => $shipmentdateto,
+    billingdatefrom => $billingdatefrom,
+    billingdateto   => $billingdateto,
+    isbneanissn     => $isbneanissn,
+    title           => $title,
+    author          => $author,
+    publisher       => $publisher,
+    publicationyear => $publicationyear,
+    branch          => $branch,
+    suppliers_loop  => $suppliers_loop,
 );
 
 output_html_with_http_headers $input, $cookie, $template->output;