# 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
=cut
-use strict;
-use warnings;
+use Modern::Perl;
-use CGI;
-use C4::Auth;
-use C4::Output;
+use CGI qw ( -utf8 );
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
-use C4::Acquisition;
-use C4::Bookseller qw/GetBookSeller/;
-use C4::Branch;
+use C4::Acquisition qw( GetInvoices GetInvoice );
+use C4::Budgets qw( GetBudget GetBudgets CanUserUseBudget );
+use Koha::DateUtils qw( dt_from_string output_pref );
+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,
flagsrequired => { 'acquisition' => '*' },
- debug => 1,
}
);
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 $budgets = GetBudgets();
+my @budgets_loop;
+foreach my $budget (@$budgets) {
+ push @budgets_loop, $budget if CanUserUseBudget( $loggedinuser, $budget, $flags );
+}
+
+my (@openedinvoices, @closedinvoices);
+for my $sub ( @{$invoices} ) {
+ unless ( $sub->{closedate} ) {
+ push @openedinvoices, $sub
+ } else {
+ push @closedinvoices, $sub
}
- my %row = (
- branchcode => $_,
- branchname => $branches->{$_}->{'branchname'},
- selected => $selected,
- );
- push @branches_loop, \%row;
}
+$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,
+ openedinvoices => \@openedinvoices,
+ closedinvoices => \@closedinvoices,
+ 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;