X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Forderreceive.pl;h=98ba544246117386b3a0383cd4154fcc6eb24704;hb=b2155fc483f09b34c4a6ba92256f2732152bb1d5;hp=5836227aa1a75b7f6e05aeaaf6a98a32aabd1b75;hpb=100e6a9808ead4ee8d951da59ead1550e75bb4c3;p=koha.git diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl old mode 100644 new mode 100755 index 5836227aa1..98ba544246 --- 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 @@ -18,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'. @@ -35,19 +35,22 @@ 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 recieve +=item receive =item invoice + the number of this invoice. =item freight =item biblio + The biblionumber of this order. -=item daterecieved +=item datereceived =item catview @@ -58,35 +61,45 @@ The biblionumber of this order. =cut use strict; +#use warnings; FIXME - Bug 2505 use CGI; use C4::Context; use C4::Koha; # GetKohaAuthorisedValues GetItemTypes use C4::Acquisition; use C4::Auth; use C4::Output; -use C4::Date; -use C4::Bookseller; +use C4::Dates qw/format_date/; +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 $search = $input->param('recieve'); +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 $daterecieved = $input->param('daterecieved') || format_date(join "-",Date::Calc::Today()); -my $catview = $input->param('catview'); -my $gst = $input->param('gst'); +my $datereceived = $input->param('datereceived'); + + +$datereceived = $datereceived ? C4::Dates->new($datereceived, 'iso') : C4::Dates->new(); + +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 @results = SearchOrder( $search, $supplierid, $biblionumber, $catview ); -my $count = scalar @results; +my $count = scalar @$results; +my $order = GetOrder($ordernumber); -my @booksellers = GetBookSeller( $results[0]->{'booksellerid'} ); -my $date = $results[0]->{'entrydate'}; +my $date = @$results[0]->{'entrydate'}; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { @@ -94,139 +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, } ); -$template->param($count); +# prepare the form for receiving if ( $count == 1 ) { - - my $itemtypes = GetItemTypes; - my @itemtypesloop; - foreach my $thisitemtype (sort keys %$itemtypes) { - my %row = ( - value => $thisitemtype, - description => $itemtypes->{$thisitemtype}->{'description'}, - ); - push @itemtypesloop, \%row; - } - - $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 $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 $auto_barcode = C4::Context->boolean_preference("autoBarcode") || 0; - - # See whether barcodes should be automatically allocated. - # Defaults to 0, meaning "no". - my $barcode; - if ( $auto_barcode ) { - my $sth = $dbh->prepare("Select max(barcode) from items"); - $sth->execute; - my $data = $sth->fetchrow_hashref; - $barcode = $results[0]->{'barcode'} + 1; - $sth->finish; + 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'} ); $template->param( - branchloop => \@branchloop, count => 1, - biblionumber => $results[0]->{'biblionumber'}, - ordernumber => $results[0]->{'ordernumber'}, - biblioitemnumber => $results[0]->{'biblioitemnumber'}, - supplierid => $results[0]->{'booksellerid'}, + 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'}, + name => $bookseller->{'name'}, date => format_date($date), - title => $results[0]->{'title'}, - author => $results[0]->{'author'}, - copyrightdate => format_date( $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'}, + 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, - daterecieved => $daterecieved, - notes => $results[0]->{'notes'}, - intranetcolorstylesheet => - C4::Context->preference("intranetcolorstylesheet"), - intranetstylesheet => C4::Context->preference("intranetstylesheet"), - IntranetNav => C4::Context->preference("IntranetNav"), + 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] }; + my %line = %{ @$results[$i] }; $line{invoice} = $invoice; - $line{daterecieved} = $daterecieved; + $line{datereceived} = $datereceived->output(); $line{freight} = $freight; $line{gst} = $gst; - $line{title} = $results[$i]->{'title'}; - $line{author} = $results[$i]->{'author'}; + $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, ); - +} +my $op = $input->param('op'); +if ($op eq 'edit'){ + $template->param(edit => 1); } output_html_with_http_headers $input, $cookie, $template->output;