100e6a9808
So this implies quite a change for files. Sorry about conflicts which will be caused. directory Interface::CGI should now be dropped. I noticed that many scripts (reports ones, but also some circ/stats.pl or opac-topissues) still use Date::Manip.
171 lines
5.2 KiB
Perl
171 lines
5.2 KiB
Perl
#!/usr/bin/perl
|
|
|
|
# $Id$
|
|
|
|
#script to show display basket of orders
|
|
#written by chris@katipo.co.nz 24/2/2000
|
|
|
|
|
|
# Copyright 2000-2002 Katipo Communications
|
|
#
|
|
# 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 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., 59 Temple Place,
|
|
# Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
=head1 NAME
|
|
|
|
parcels.pl
|
|
|
|
=head1 DESCRIPTION
|
|
This script shows all orders/parcels receipt or pending for a given supplier.
|
|
It allows to write an order/parcels as 'received' when he arrives.
|
|
|
|
=head1 CGI PARAMETERS
|
|
|
|
=over 4
|
|
|
|
=item supplierid
|
|
To know the supplier this script has to show orders.
|
|
|
|
=item orderby
|
|
sort list of order by 'orderby'.
|
|
Orderby can be equals to
|
|
* datereceived desc (default value)
|
|
* aqorders.booksellerinvoicenumber
|
|
* datereceived
|
|
* aqorders.booksellerinvoicenumber desc
|
|
|
|
=item filter
|
|
|
|
=item datefrom
|
|
To filter on date
|
|
|
|
=item dateto
|
|
To filter on date
|
|
|
|
=item resultsperpage
|
|
To know how many results have to be display / page.
|
|
|
|
=back
|
|
|
|
=cut
|
|
|
|
use strict;
|
|
use CGI;
|
|
use C4::Auth;
|
|
use C4::Output;
|
|
|
|
use C4::Date;
|
|
|
|
use C4::Acquisition;
|
|
use C4::Bookseller;
|
|
|
|
my $input=new CGI;
|
|
my $supplierid=$input->param('supplierid');
|
|
my $order=$input->param('orderby') || "datereceived desc";
|
|
my $startfrom=$input->param('startfrom');
|
|
my $code=$input->param('filter');
|
|
my $datefrom=$input->param('datefrom');
|
|
my $dateto=$input->param('dateto');
|
|
my $resultsperpage = $input->param('resultsperpage');
|
|
|
|
my @booksellers=GetBookSeller($supplierid);
|
|
my $count = scalar @booksellers;
|
|
|
|
my ($template, $loggedinuser, $cookie)
|
|
= get_template_and_user({template_name => "acqui/parcels.tmpl",
|
|
query => $input,
|
|
type => "intranet",
|
|
authnotrequired => 0,
|
|
flagsrequired => {acquisition => 1},
|
|
debug => 1,
|
|
});
|
|
|
|
|
|
$resultsperpage = 20 unless ($resultsperpage);
|
|
my @results =GetParcels($supplierid, $order, $code,$datefrom,$dateto);
|
|
$count = scalar @results;
|
|
|
|
# multi page display gestion
|
|
$startfrom=0 unless ($startfrom);
|
|
if ($count>$resultsperpage){
|
|
my $displaynext=0;
|
|
my $displayprev=$startfrom;
|
|
if(($count - ($startfrom+$resultsperpage)) > 0 ) {
|
|
$displaynext = 1;
|
|
}
|
|
|
|
my @numbers = ();
|
|
if ($count>$resultsperpage) {
|
|
for (my $i=1; $i<$count/$resultsperpage+1; $i++) {
|
|
if ($i<16) {
|
|
my $highlight=0;
|
|
($startfrom/$resultsperpage==($i-1)) && ($highlight=1);
|
|
push @numbers, { number => $i,
|
|
highlight => $highlight ,
|
|
# searchdata=> "test",
|
|
startfrom => ($i-1)*$resultsperpage};
|
|
}
|
|
}
|
|
}
|
|
|
|
my $from = $startfrom*$resultsperpage+1;
|
|
my $to;
|
|
if($count < (($startfrom+1)*$resultsperpage)){
|
|
$to = $count;
|
|
} else {
|
|
$to = (($startfrom+1)*$resultsperpage);
|
|
}
|
|
$template->param(numbers=>\@numbers,
|
|
displaynext=>$displaynext,
|
|
displayprev=>$displayprev,
|
|
nextstartfrom=>(($startfrom+$resultsperpage<$count)?$startfrom+$resultsperpage:$count),
|
|
prevstartfrom=>(($startfrom-$resultsperpage>0)?$startfrom-$resultsperpage:0)
|
|
);
|
|
}
|
|
my @loopres;
|
|
|
|
my $hilighted=0;
|
|
for (my $i=$startfrom;$i<=($startfrom+$resultsperpage-1<$count-1?$startfrom+$resultsperpage-1:$count-1);$i++){
|
|
### startfrom: $startfrom
|
|
### resultsperpage: $resultsperpage
|
|
### count: $count
|
|
### code: $results[$i]->{booksellerinvoicenumber}
|
|
### datereceived: $results[$i]->{datereceived}
|
|
|
|
my %cell;
|
|
$cell{number}=$i+1;
|
|
$cell{code}=$results[$i]->{booksellerinvoicenumber};
|
|
$cell{nullcode}=$results[$i]->{booksellerinvoicenumber} eq "NULL";
|
|
$cell{emptycode}=$results[$i]->{booksellerinvoicenumber} eq '';
|
|
$cell{raw_datereceived}=$results[$i]->{datereceived};
|
|
$cell{datereceived}=format_date($results[$i]->{datereceived});
|
|
$cell{bibcount}=$results[$i]->{biblio};
|
|
$cell{reccount}=$results[$i]->{itemsreceived};
|
|
$cell{itemcount}=$results[$i]->{itemsexpected};
|
|
$cell{hilighted} = $hilighted%2;
|
|
$hilighted++;
|
|
push @loopres, \%cell;
|
|
}
|
|
$template->param(searchresults=>\@loopres, count=>$count) if ($count);
|
|
$template->param(orderby=>$order, filter=>$code, datefrom=>$datefrom,dateto=>$dateto, resultsperpage=>$resultsperpage);
|
|
$template->param(
|
|
name => $booksellers[0]->{'name'},
|
|
supplierid => $supplierid,
|
|
intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
|
|
intranetstylesheet => C4::Context->preference("intranetstylesheet"),
|
|
IntranetNav => C4::Context->preference("IntranetNav"),
|
|
);
|
|
|
|
output_html_with_http_headers $input, $cookie, $template->output;
|