X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Forderreceive.pl;h=753071dea6ed795a6a5d7e435c8d7c514be7fbe0;hb=47b7b91d148faa62a8d0bb257bec2b3fa716d234;hp=5e86eb53d0367da7b020a138b4b77147eaf4c675;hpb=31ddb16fa2d142706b7f17c924b05a46e9774edb;p=koha_gimpoz diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl index 5e86eb53d0..753071dea6 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,6 +61,7 @@ The biblionumber of this order. =cut use strict; +#use warnings; FIXME - Bug 2505 use CGI; use C4::Context; use C4::Koha; # GetKohaAuthorisedValues GetItemTypes @@ -64,28 +69,38 @@ 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::Budgets qw/ GetBudget /; 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'); + + +$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( { @@ -93,133 +108,90 @@ 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 (@itemtypesloop,@locationloop,@ccodeloop); - my $itemtypes = GetItemTypes; - foreach my $thisitemtype (sort keys %$itemtypes) { - my %row = ( - value => $thisitemtype, - description => $itemtypes->{$thisitemtype}->{'description'}, - selected => ($thisitemtype eq $results[0]->{itemtype}), # ifdef itemtype @ bibliolevel, use it as default for item level. - ); - push @itemtypesloop, \%row; + 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); } - my $locs = GetKohaAuthorisedValues( 'items.location' ); - foreach my $thisloc (sort keys %$locs) { - my $row = { - value => $thisloc, - description => $locs->{$thisloc}, - }; - push @locationloop, $row; - } - my $ccodes= GetKohaAuthorisedValues( 'items.ccode' ); - foreach my $thisccode (sort keys %$ccodes) { - push @ccodeloop, { - value => $thisccode, - description => $ccodes->{$thisccode}, - }; + if ( @$results[0]->{'quantityreceived'} == 0 ) { + @$results[0]->{'quantityreceived'} = ''; } - $template->param(itemtypeloop => \@itemtypesloop , - locationloop => \@locationloop, - ccodeloop => \@ccodeloop, - itype => C4::Context->preference('item-level_itypes'), - ); - - 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, - description => $branches->{$thisbranch}->{'branchname'}, - ); - push @branchloop, \%row; + if ( @$results[0]->{'unitprice'} == 0 ) { + @$results[0]->{'unitprice'} = ''; } - 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; - } + my $authorisedby = @$results[0]->{'authorisedby'}; + my $member = GetMember( borrowernumber => $authorisedby ); + + my $budget = GetBudget( @$results[0]->{'budget_id'} ); - if ( $results[0]->{'quantityreceived'} == 0 ) { - $results[0]->{'quantityreceived'} = ''; - } - if ( $results[0]->{'unitprice'} == 0 ) { - $results[0]->{'unitprice'} = ''; - } -# $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'}, + 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 => $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 => $budget->{budget_name}, + 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'}, + memberfirstname => $member->{firstname} || "", + membersurname => $member->{surname} || "", invoice => $invoice, datereceived => $datereceived->output(), - datereceived_iso => $datereceived->output('iso'), + 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{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), - datereceived => $datereceived->output(), - name => $booksellers[0]->{'name'}, - supplierid => $supplierid, - invoice => $invoice, + 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;