X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Forderreceive.pl;h=98ba544246117386b3a0383cd4154fcc6eb24704;hb=b2155fc483f09b34c4a6ba92256f2732152bb1d5;hp=c13eda38d85835fed74fc2dd01b32d1bddcc5bc7;hpb=d5dbaf2a6d79a800034c0cf034864142c75f6142;p=koha.git diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl index c13eda38d8..98ba544246 100755 --- a/acqui/orderreceive.pl +++ b/acqui/orderreceive.pl @@ -17,15 +17,16 @@ # 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 +# 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. =head1 NAME orderreceive.pl =head1 DESCRIPTION + This script shows all order already receive and all pendings orders. It permit to write a new order as 'received'. @@ -34,16 +35,19 @@ It permit to write a new order as 'received'. =over 4 =item supplierid + to know on what supplier this script has to display receive order. =item receive =item invoice + the number of this invoice. =item freight =item biblio + The biblionumber of this order. =item datereceived @@ -57,7 +61,7 @@ The biblionumber of this order. =cut use strict; -# use warnings; # FIXME +#use warnings; FIXME - Bug 2505 use CGI; use C4::Context; use C4::Koha; # GetKohaAuthorisedValues GetItemTypes @@ -65,29 +69,37 @@ use C4::Acquisition; use C4::Auth; use C4::Output; use C4::Dates qw/format_date/; -use C4::Bookseller; +use C4::Bookseller qw/ GetBookSellerFromId /; use C4::Members; use C4::Branch; # GetBranches +use C4::Items; +use C4::Biblio; + my $input = new CGI; -my $supplierid = $input->param('supplierid'); -my $dbh = C4::Context->dbh; +my $dbh = C4::Context->dbh; +my $supplierid = $input->param('supplierid'); +my $ordernumber = $input->param('ordernumber'); my $search = $input->param('receive'); my $invoice = $input->param('invoice'); my $freight = $input->param('freight'); -my $biblionumber = $input->param('biblionumber'); -my $datereceived = C4::Dates->new($input->param('datereceived'),'iso') || C4::Dates->new(); -my $catview = $input->param('catview'); -my $gst = $input->param('gst'); +my $datereceived = $input->param('datereceived'); -my @results = SearchOrder( $search, $supplierid, $biblionumber, $catview ); -my $count = scalar @results; -my $order = GetOrder($search); -my $bookseller = GetBookSellerFromId( $results[0]->{'booksellerid'} ); +$datereceived = $datereceived ? C4::Dates->new($datereceived, 'iso') : C4::Dates->new(); -my $date = $results[0]->{'entrydate'}; +my $bookseller = GetBookSellerFromId($supplierid); +my $input_gst = ($input->param('gst') eq '' ? undef : $input->param('gst')); +my $gst= $input_gst // $bookseller->{gstrate} // C4::Context->preference("gist") // 0; +my $results = SearchOrder($ordernumber,$search); + + +my $count = scalar @$results; +my $order = GetOrder($ordernumber); + + +my $date = @$results[0]->{'entrydate'}; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { @@ -95,108 +107,82 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { acquisition => 1 }, + flagsrequired => {acquisition => 'order_receive'}, debug => 1, } ); +# prepare the form for receiving if ( $count == 1 ) { - - my (@itemtypesloop,@locationloop,@ccodeloop); - my $itemtypes = GetItemTypes; - foreach my $thisitemtype (sort keys %$itemtypes) { - push @itemtypesloop, { - value => $thisitemtype, - description => $itemtypes->{$thisitemtype}->{'description'}, - selected => ($thisitemtype eq $results[0]->{itemtype}), # ifdef itemtype @ bibliolevel, use it as default for item level. - }; - } - my $locs = GetKohaAuthorisedValues( 'items.location' ); - foreach my $thisloc (sort keys %$locs) { - push @locationloop, { - value => $thisloc, - description => $locs->{$thisloc}, - }; - } - my $ccodes = GetKohaAuthorisedValues( 'items.ccode' ); - foreach my $thisccode (sort keys %$ccodes) { - push @ccodeloop, { - value => $thisccode, - description => $ccodes->{$thisccode}, - }; - } - $template->param( - itemtypeloop => \@itemtypesloop, - locationloop => \@locationloop, - ccodeloop => \@ccodeloop, - branchloop => GetBranchesLoop($order->{branchcode}), - itype => C4::Context->preference('item-level_itypes'), - ); - - my $barcode; - # See whether barcodes should be automatically allocated. - # FIXME : only incremental is implemented here, and it creates a race condition. - # FIXME : Same problems as other autoBarcode: breaks if any unexpected data is encountered (like alphanumerical barcode) - # FIXME : Fails when >1 items are added (via js). - if ( C4::Context->preference('autoBarcode') eq 'incremental' ) { - my $sth = $dbh->prepare("Select max(barcode) from items"); - $sth->execute; - my $data = $sth->fetchrow_hashref; - $barcode = $results[0]->{'barcode'} + 1; + if (C4::Context->preference('AcqCreateItem') eq 'receiving') { + # prepare empty item form + my $cell = PrepareItemrecordDisplay('','','','ACQ'); + unless ($cell) { + $cell = PrepareItemrecordDisplay('','','',''); + $template->param('NoACQframework' => 1); + } + my @itemloop; + push @itemloop,$cell; + + $template->param(items => \@itemloop); } - if ( $results[0]->{'quantityreceived'} == 0 ) { - $results[0]->{'quantityreceived'} = ''; + if ( @$results[0]->{'quantityreceived'} == 0 ) { + @$results[0]->{'quantityreceived'} = ''; } - if ( $results[0]->{'unitprice'} == 0 ) { - $results[0]->{'unitprice'} = ''; + if ( @$results[0]->{'unitprice'} == 0 ) { + @$results[0]->{'unitprice'} = ''; } -# $results[0]->{'copyrightdate'} = format_date( $results[0]->{'copyrightdate'} ); # this usu fails. $template->param( count => 1, - biblionumber => $results[0]->{'biblionumber'}, - ordernumber => $results[0]->{'ordernumber'}, - biblioitemnumber => $results[0]->{'biblioitemnumber'}, - supplierid => $results[0]->{'booksellerid'}, - catview => ( $catview ne 'yes' ? 1 : 0 ), - title => $results[0]->{'title'}, - author => $results[0]->{'author'}, - copyrightdate => $results[0]->{'copyrightdate'}, - itemtype => $results[0]->{'itemtype'}, - isbn => $results[0]->{'isbn'}, - seriestitle => $results[0]->{'seriestitle'}, - barcode => $barcode, - bookfund => $results[0]->{'bookfundid'}, - quantity => $results[0]->{'quantity'}, - quantityreceivedplus1 => $results[0]->{'quantityreceived'} + 1, - quantityreceived => $results[0]->{'quantityreceived'}, - rrp => $results[0]->{'rrp'}, - ecost => $results[0]->{'ecost'}, - unitprice => $results[0]->{'unitprice'}, + biblionumber => @$results[0]->{'biblionumber'}, + ordernumber => @$results[0]->{'ordernumber'}, + biblioitemnumber => @$results[0]->{'biblioitemnumber'}, + supplierid => @$results[0]->{'booksellerid'}, + freight => $freight, + gst => $gst, + name => $bookseller->{'name'}, + date => format_date($date), + title => @$results[0]->{'title'}, + author => @$results[0]->{'author'}, + copyrightdate => @$results[0]->{'copyrightdate'}, + isbn => @$results[0]->{'isbn'}, + seriestitle => @$results[0]->{'seriestitle'}, + bookfund => @$results[0]->{'bookfundid'}, + quantity => @$results[0]->{'quantity'}, + quantityreceivedplus1 => @$results[0]->{'quantityreceived'} + 1, + quantityreceived => @$results[0]->{'quantityreceived'}, + rrp => @$results[0]->{'rrp'}, + ecost => @$results[0]->{'ecost'}, + unitprice => @$results[0]->{'unitprice'}, + invoice => $invoice, + datereceived => $datereceived->output(), + datereceived_iso => $datereceived->output('iso'), + notes => $order->{notes} ); } else { my @loop; for ( my $i = 0 ; $i < $count ; $i++ ) { - my %line = %{ $results[$i] }; - $line{title} = $results[$i]->{'title'}; - $line{author} = $results[$i]->{'author'}; + my %line = %{ @$results[$i] }; + + $line{invoice} = $invoice; + $line{datereceived} = $datereceived->output(); + $line{freight} = $freight; + $line{gst} = $gst; + $line{title} = @$results[$i]->{'title'}; + $line{author} = @$results[$i]->{'author'}; + $line{supplierid} = $supplierid; push @loop, \%line; } + $template->param( loop => \@loop, supplierid => $supplierid, ); } - -$template->param( - date => format_date($date), - datereceived => $datereceived->output(), - datereceived_iso => $datereceived->output('iso'), - invoice => $invoice, - name => $bookseller->{'name'}, - freight => $freight, - gst => $gst, -); - +my $op = $input->param('op'); +if ($op eq 'edit'){ + $template->param(edit => 1); +} output_html_with_http_headers $input, $cookie, $template->output;