X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Forderreceive.pl;h=caabc932e54e4c9edb779cde75683ac9100ab512;hb=586ffbc6813317f040d67e9fabc7a39f9806793a;hp=5836227aa1a75b7f6e05aeaaf6a98a32aabd1b75;hpb=cdbbf1e7d8de0518ded4e122709c24316cdefbe5;p=koha.git diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl old mode 100644 new mode 100755 index 5836227aa1..caabc932e5 --- a/acqui/orderreceive.pl +++ b/acqui/orderreceive.pl @@ -1,6 +1,5 @@ #!/usr/bin/perl -# $Id$ #script to recieve orders #written by chris@katipo.co.nz 24/2/2000 @@ -37,7 +36,7 @@ It permit to write a new order as 'received'. =item supplierid to know on what supplier this script has to display receive order. -=item recieve +=item receive =item invoice the number of this invoice. @@ -47,7 +46,7 @@ the number of this invoice. =item biblio The biblionumber of this order. -=item daterecieved +=item datereceived =item catview @@ -58,13 +57,14 @@ The biblionumber of this order. =cut use strict; +# use warnings; # FIXME use CGI; use C4::Context; use C4::Koha; # GetKohaAuthorisedValues GetItemTypes use C4::Acquisition; use C4::Auth; use C4::Output; -use C4::Date; +use C4::Dates qw/format_date/; use C4::Bookseller; use C4::Members; use C4::Branch; # GetBranches @@ -73,18 +73,19 @@ my $input = new CGI; my $supplierid = $input->param('supplierid'); my $dbh = C4::Context->dbh; -my $search = $input->param('recieve'); +my $search = $input->param('receive'); my $invoice = $input->param('invoice'); my $freight = $input->param('freight'); -my $biblionumber = $input->param('biblionumber'); -my $daterecieved = $input->param('daterecieved') || format_date(join "-",Date::Calc::Today()); +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 @results = SearchOrder( $search, $supplierid, $biblionumber, $catview ); my $count = scalar @results; +my $order = GetOrder($search); -my @booksellers = GetBookSeller( $results[0]->{'booksellerid'} ); +my $bookseller = GetBookSellerFromId( $results[0]->{'booksellerid'} ); my $date = $results[0]->{'entrydate'}; @@ -98,63 +99,50 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( debug => 1, } ); -$template->param($count); if ( $count == 1 ) { + my (@itemtypesloop,@locationloop,@ccodeloop); my $itemtypes = GetItemTypes; - my @itemtypesloop; - foreach my $thisitemtype (sort keys %$itemtypes) { - my %row = ( - value => $thisitemtype, - description => $itemtypes->{$thisitemtype}->{'description'}, - ); - push @itemtypesloop, \%row; + foreach my $thisitemtype (sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'}} 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. + }; } - - $template->param(itemtypeloop => \@itemtypesloop); - - - my $locations = GetKohaAuthorisedValues( 'items.location' ); - if ($locations) { - my @location_codes = keys %$locations; - my $CGIlocation = CGI::scrolling_list( - -name => 'location', - -id => 'location', - -values => \@location_codes, - -default => $results[0]->{'itemtype'}, - -labels => $locations, - -size => 1, - -tabindex => '', - -multiple => 0 - ); - $template->param( CGIlocation => $CGIlocation ); + my $locs = GetKohaAuthorisedValues( 'items.location' ); + foreach my $thisloc (sort {$locs->{$a} cmp $locs->{$b}} keys %$locs) { + push @locationloop, { + value => $thisloc, + description => $locs->{$thisloc}, + }; } - my $onlymine=C4::Context->preference('IndependantBranches') && - C4::Context->userenv && - C4::Context->userenv->{flags} !=1 && - C4::Context->userenv->{branch}; - my $branches = GetBranches($onlymine); - my @branchloop; - foreach my $thisbranch ( sort keys %$branches ) { - my %row = ( - value => $thisbranch, - branchname => $branches->{$thisbranch}->{'branchname'}, - ); - push @branchloop, \%row; + my $ccodes = GetKohaAuthorisedValues( 'items.ccode' ); + foreach my $thisccode (sort {$ccodes->{$a} cmp $ccodes->{$b}} keys %$ccodes) { + push @ccodeloop, { + value => $thisccode, + description => $ccodes->{$thisccode}, + }; } - - my $auto_barcode = C4::Context->boolean_preference("autoBarcode") || 0; - - # See whether barcodes should be automatically allocated. - # Defaults to 0, meaning "no". + $template->param( + itemtypeloop => \@itemtypesloop, + locationloop => \@locationloop, + ccodeloop => \@ccodeloop, + branchloop => GetBranchesLoop($order->{branchcode}), + itype => C4::Context->preference('item-level_itypes'), + ); + my $barcode; - if ( $auto_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; - $sth->finish; } if ( $results[0]->{'quantityreceived'} == 0 ) { @@ -163,23 +151,17 @@ if ( $count == 1 ) { if ( $results[0]->{'unitprice'} == 0 ) { $results[0]->{'unitprice'} = ''; } - $results[0]->{'copyrightdate'} = - format_date( $results[0]->{'copyrightdate'} ); +# $results[0]->{'copyrightdate'} = format_date( $results[0]->{'copyrightdate'} ); # this usu fails. $template->param( - branchloop => \@branchloop, count => 1, biblionumber => $results[0]->{'biblionumber'}, ordernumber => $results[0]->{'ordernumber'}, biblioitemnumber => $results[0]->{'biblioitemnumber'}, supplierid => $results[0]->{'booksellerid'}, - freight => $freight, - gst => $gst, catview => ( $catview ne 'yes' ? 1 : 0 ), - name => $booksellers[0]->{'name'}, - date => format_date($date), title => $results[0]->{'title'}, author => $results[0]->{'author'}, - copyrightdate => format_date( $results[0]->{'copyrightdate'} ), + copyrightdate => $results[0]->{'copyrightdate'}, itemtype => $results[0]->{'itemtype'}, isbn => $results[0]->{'isbn'}, seriestitle => $results[0]->{'seriestitle'}, @@ -191,42 +173,30 @@ if ( $count == 1 ) { rrp => $results[0]->{'rrp'}, ecost => $results[0]->{'ecost'}, unitprice => $results[0]->{'unitprice'}, - invoice => $invoice, - daterecieved => $daterecieved, - notes => $results[0]->{'notes'}, - intranetcolorstylesheet => - C4::Context->preference("intranetcolorstylesheet"), - intranetstylesheet => C4::Context->preference("intranetstylesheet"), - IntranetNav => C4::Context->preference("IntranetNav"), ); } else { my @loop; for ( my $i = 0 ; $i < $count ; $i++ ) { my %line = %{ $results[$i] }; - - $line{invoice} = $invoice; - $line{daterecieved} = $daterecieved; - $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, - date => format_date($date), - daterecieved => $daterecieved, - name => $booksellers[0]->{'name'}, - supplierid => $supplierid, - invoice => $invoice, - daterecieved => $daterecieved, - intranetcolorstylesheet => - C4::Context->preference("intranetcolorstylesheet"), - intranetstylesheet => C4::Context->preference("intranetstylesheet"), - IntranetNav => C4::Context->preference("IntranetNav"), + 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, +); + output_html_with_http_headers $input, $cookie, $template->output;