From 1b757f479a6ffc3bd2ecc0878972c898b328179a Mon Sep 17 00:00:00 2001 From: Paul Poulain Date: Tue, 28 Apr 2009 22:24:55 +0200 Subject: [PATCH] parcels management * deal with granular perms * deal with bookseller level GST --- acqui/parcel.pl | 103 +++++++++--------- acqui/parcels.pl | 4 +- .../prog/en/modules/acqui/parcel.tmpl | 10 +- 3 files changed, 61 insertions(+), 56 deletions(-) diff --git a/acqui/parcel.pl b/acqui/parcel.pl index 62c77e4ed7..15a08e73e8 100755 --- a/acqui/parcel.pl +++ b/acqui/parcel.pl @@ -1,9 +1,10 @@ #!/usr/bin/perl -#script to receive orders -#written by chris@katipo.co.nz 24/2/2000 +#script to recieve orders + # Copyright 2000-2002 Katipo Communications +# Copyright 2008-2009 BibLibre SARL # # This file is part of Koha. # @@ -61,44 +62,40 @@ use C4::Dates qw/format_date format_date_in_iso/; use strict; -my $input = new CGI; -my $supplierid = $input->param('supplierid'); -my $bookseller = GetBookSellerFromId($supplierid); - -my $invoice = $input->param('invoice') || ''; -my $freight = $input->param('freight'); -my $gst = $input->param('gst'); -my $datereceived = - ($input->param('op') eq 'new') - ? C4::Dates->new($input->param('datereceived')) - : C4::Dates->new($input->param('datereceived'), 'iso'); +my $input=new CGI; +my $supplierid=$input->param('supplierid'); +my $bookseller=GetBookSellerFromId($supplierid); + +my $invoice=$input->param('invoice') || ''; +my $freight=$input->param('freight'); +my $gst= $input->param('gst') || $bookseller->{gstrate} || C4::Context->preference("gist") || 0; +my $datereceived = ($input->param('op') eq 'new') ? C4::Dates->new($input->param('datereceived')) + : C4::Dates->new($input->param('datereceived'), 'iso') ; $datereceived = C4::Dates->new() unless $datereceived; my $code = $input->param('code'); my @rcv_err = $input->param('error'); my @rcv_err_barcode = $input->param('error_bc'); -my ($template, $loggedinuser, $cookie) = get_template_and_user( - { template_name => "acqui/parcel.tmpl", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => { acquisition => 1 }, - debug => 1, - } -); - -# If receiving error, report the error (coming from finishreceive.pl). -if (scalar(@rcv_err)) { - my $cnt = 0; - my $error_loop; - for my $err (@rcv_err) { - push @$error_loop, { "error_$err" => 1, barcode => $rcv_err_barcode[$cnt] }; - $cnt++; - } - $template->param( - receive_error => 1, - error_loop => $error_loop, - ); +my ($template, $loggedinuser, $cookie) + = get_template_and_user({template_name => "acqui/parcel.tmpl", + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => {acquisition => 'order_receive'}, + debug => 1, +}); + +# If receiving error, report the error (coming from finishrecieve.pl(sic)). +if( scalar(@rcv_err) ) { + my $cnt=0; + my $error_loop; + for my $err (@rcv_err) { + push @$error_loop, { "error_$err" => 1 , barcode => $rcv_err_barcode[$cnt] }; + $cnt++; + } + $template->param( receive_error => 1 , + error_loop => $error_loop, + ); } my $cfstr = "%.2f"; # currency format string -- could get this from currency table. @@ -146,20 +143,28 @@ my $ordergrandtotal; my @loop_orders = (); for (my $i = 0 ; $i < $countpendings ; $i++) { my %line; - %line = %{ $pendingorders->[$i] }; - $line{quantity} += 0; - $line{quantityreceived} += 0; - $line{unitprice} += 0; - $totalPunitprice += $line{unitprice}; - $totalPquantity += $line{quantity}; - $totalPqtyrcvd += $line{quantityreceived}; - $totalPecost += $line{ecost}; - $line{ecost} = sprintf("%.2f", $line{ecost}); - $line{ordertotal} = sprintf("%.2f", $line{ecost} * $line{quantity}); - $line{unitprice} = sprintf("%.2f", $line{unitprice}); - $line{invoice} = $invoice; - $line{gst} = $gst; - $line{total} = $total; + if ($toggle==0){ + $line{color}='#EEEEEE'; + $toggle=1; + } else { + $line{color}='white'; + $toggle=0; + } + %line = %{$pendingorders->[$i]}; + $line{quantity}+=0; + $line{quantrem} = $line{quantity} - $line{quantityreceived}; + $line{quantityreceived}+=0; + $line{unitprice}+=0; + $totalPunitprice += $line{unitprice}; + $totalPquantity +=$line{quantity}; + $totalPqtyrcvd +=$line{quantityreceived}; + $totalPecost += $line{ecost}; + $line{ecost} = sprintf("%.2f",$line{ecost}); + $line{ordertotal} = sprintf("%.2f",$line{ecost}*$line{quantity}); + $line{unitprice} = sprintf("%.2f",$line{unitprice}); + $line{invoice} = $invoice; + $line{gst} = $gst; + $line{total} = $total; $line{supplierid} = $supplierid; $ordergrandtotal += $line{ecost} * $line{quantity}; push @loop_orders, \%line; diff --git a/acqui/parcels.pl b/acqui/parcels.pl index 349be363da..0c573bf7ed 100755 --- a/acqui/parcels.pl +++ b/acqui/parcels.pl @@ -2,10 +2,10 @@ #script to show display basket of orders -#written by chris@katipo.co.nz 24/2/2000 # Copyright 2000-2002 Katipo Communications +# Copyright 2008-2009 BibLibre SARL # # This file is part of Koha. # @@ -84,7 +84,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {acquisition => 1}, + flagsrequired => {acquisition => 'order_receive'}, debug => 1, }); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tmpl index 54525e4af4..97429e348e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tmpl @@ -47,10 +47,10 @@
- + - + @@ -61,14 +61,14 @@ - + - + @@ -145,7 +145,7 @@ - + -- 2.20.1
QuantityQuantity/Edit order Basket/Order SummaryView RecordView Record/Edit shipment Est cost Actual cost TOTAL
&booksellerid="> ">  /   ">
ISBN:
author :
Publisher :
" title="MARC" rel="gb_page_center[600,500]">View MARC" title="MARC" rel="gb_page_center[600,500]">View MARC/&biblionumber=&supplierid=&invoice=&datereceived=" >Edit shipment &biblionumber=&datereceived=&invoice=&gst=&freight=&supplierid=">Receive order&datereceived=&invoice=&gst=&freight=&supplierid=">Receive order