X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Forderreceive.pl;h=2b59698a71c5f11b9fbfca75beb436f449afbc75;hb=HEAD;hp=bb1de0855b52f5e19b5061a706fff591bf9711ca;hpb=0c2bb2ada2b463c1602bd2af919c5ba5627533bc;p=koha_gimpoz diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl index bb1de0855b..2b59698a71 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'. @@ -33,17 +34,20 @@ It permit to write a new order as 'received'. =over 4 -=item supplierid +=item booksellerid + 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 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,39 @@ 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; +use C4::Suggestions; + my $input = new CGI; -my $supplierid = $input->param('supplierid'); -my $dbh = C4::Context->dbh; +my $dbh = C4::Context->dbh; +my $booksellerid = $input->param('booksellerid'); +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; +$datereceived = $datereceived ? C4::Dates->new($datereceived, 'iso') : C4::Dates->new(); -my @booksellers = GetBookSeller( $results[0]->{'booksellerid'} ); +my $bookseller = GetBookSellerFromId($booksellerid); +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 $date = $results[0]->{'entrydate'}; + +my $count = scalar @$results; +my $order = GetOrder($ordernumber); + + +my $date = @$results[0]->{'entrydate'}; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { @@ -93,134 +109,94 @@ 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') { + # Check if ACQ framework exists + my $marc = GetMarcStructure(1, 'ACQ'); + unless($marc) { + $template->param('NoACQframework' => 1); + } + $template->param( + AcqCreateItemReceiving => 1, + UniqueItemFields => C4::Context->preference('UniqueItemFields'), + ); } - my $locs = GetKohaAuthorisedValues( 'items.location' ); - foreach my $thisloc (sort keys %$locs) { - warn $thisloc; - my $row = { - value => $thisloc, - description => $locs->{$thisloc}, - }; - push @locationloop, $row; + if ( @$results[0]->{'quantityreceived'} == 0 ) { + @$results[0]->{'quantityreceived'} = ''; } - 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, - 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 $suggestion = GetSuggestionInfoFromBiblionumber(@$results[0]->{'biblionumber'}); + + 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'} ); $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'}, + booksellerid => @$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 => $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'), + notes => $order->{notes}, + suggestionid => $suggestion->{suggestionid}, + surnamesuggestedby => $suggestion->{surnamesuggestedby}, + firstnamesuggestedby => $suggestion->{firstnamesuggestedby}, ); } 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{supplierid} = $supplierid; + $line{title} = @$results[$i]->{'title'}; + $line{author} = @$results[$i]->{'author'}; + $line{booksellerid} = $booksellerid; push @loop, \%line; } + $template->param( - loop => \@loop, - date => format_date($date), - datereceived => $datereceived->output(), - name => $booksellers[0]->{'name'}, - supplierid => $supplierid, - invoice => $invoice, + loop => \@loop, + booksellerid => $booksellerid, ); - +} +my $op = $input->param('op'); +if ($op eq 'edit'){ + $template->param(edit => 1); } output_html_with_http_headers $input, $cookie, $template->output;