X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Fneworderempty.pl;h=ac4a934c4ebe9aa62bbdcff1453f9743dd668813;hb=498821eaee64965be6477deef9457d5e357fbd3d;hp=587c1fcf42264e60d2d3456121ea115e6f7496c9;hpb=3818a8dc384f1687d287e77fdb683b3eb518e036;p=koha.git diff --git a/acqui/neworderempty.pl b/acqui/neworderempty.pl index 587c1fcf42..ac4a934c4e 100755 --- a/acqui/neworderempty.pl +++ b/acqui/neworderempty.pl @@ -65,35 +65,58 @@ if this order comes from a suggestion. use strict; use CGI; use C4::Context; +use C4::Input; + use C4::Auth; use C4::Bookfund; -use C4::Bookseller; +use C4::Bookseller; # GetBookSellerFromId use C4::Acquisition; -use C4::Suggestions; -use C4::Biblio; -use C4::Search; +use C4::Suggestions; # GetSuggestion +use C4::Biblio; # GetBiblioData +use C4::Output; +use C4::Input; use C4::Koha; -use C4::Interface::CGI::Output; +use C4::Branch; # GetBranches use C4::Members; -use C4::Input; -use C4::Date; my $input = new CGI; -my $booksellerid = $input->param('booksellerid'); +my $booksellerid = $input->param('booksellerid'); # FIXME: else ERROR! my $title = $input->param('title'); my $author = $input->param('author'); my $copyright = $input->param('copyright'); -my @booksellers = GetBookSeller($booksellerid); -my $count = scalar @booksellers; +my $bookseller = GetBookSellerFromId($booksellerid); # FIXME: else ERROR! my $ordnum = $input->param('ordnum'); -my $biblionumber = $input->param('biblionumber'); +my $biblionumber = $input->param('biblionumber'); my $basketno = $input->param('basketno'); +my $purchaseorder= $input->param('purchaseordernumber'); my $suggestionid = $input->param('suggestionid'); +# my $donation = $input->param('donation'); my $close = $input->param('close'); my $data; my $new; -my $dbh = C4::Context->dbh; +if ( $ordnum eq '' ) { # create order + $new = 'yes'; + + # $ordnum=newordernum; + if ( $biblionumber && !$suggestionid ) { + $data = GetBiblioData($biblionumber); + } + +# get suggestion fields if applicable. If it's a subscription renewal, then the biblio already exists +# otherwise, retrieve suggestion information. + if ($suggestionid) { + $data = ($biblionumber) ? GetBiblioData($biblionumber) : GetSuggestion($suggestionid); + } +} +else { #modify order + $data = GetOrder($ordnum); + $biblionumber = $data->{'biblionumber'}; + #get basketno and supplierno. too! + my $data2 = GetBasket( $data->{'basketno'} ); + $basketno = $data2->{'basketno'}; + $booksellerid = $data2->{'booksellerid'}; +} my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { @@ -105,69 +128,8 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( debug => 1, } ); -my $me= C4::Context->userenv; -my $homebranch=$me->{'branch'} ; -my $branch; -my $bookfundid; -my $discount= $booksellers[0]->{'discount'}; -my $gstrate=C4::Context->preference('gist')*100; -if ( $ordnum eq '' ) { # create order - $new = 'yes'; - if ( $biblionumber ) { - my $record=XMLgetbibliohash($dbh,$biblionumber); - ###Error checking if a non existent biblionumber given manually - if (!$record){ - print $input->redirect("/cgi-bin/koha/acqui/basket.pl?supplierid=$booksellerid"); - } - $data = XMLmarc2koha_onerecord($dbh,$record,"biblios"); - }elsif($suggestionid){ - $data = GetSuggestion($suggestionid); - - if ( $data->{'title'} eq '' ) { - $data->{'title'} = $title; - $data->{'author'} = $author; - $data->{'copyrightdate'} = $copyright; - } - }### if biblionumber - if ($basketno){ - my $basket = GetBasket( $basketno); - my @orders=GetOrders($basketno); - if (@orders){ - $template->param( - purchaseordernumber => $orders[0]->{purchaseordernumber}, ); - } - $template->param( - creationdate => format_date( $basket->{creationdate} ), - authorisedbyname => $basket->{authorisedbyname},); - }else{ - my @datetoday = localtime(); - my $date = (1900+$datetoday[5])."-".($datetoday[4]+1)."-". $datetoday[3]; - $template->param( - creationdate => format_date($date), - authorisedbyname => $loggedinuser,); - } -}else { #modify order - $data = GetSingleOrder($ordnum); - $biblionumber = $data->{'biblionumber'}; - #get basketno and suppleirno. too! - my $data2 = GetBasket( $data->{'basketno'} ); - $basketno = $data->{'basketno'}; - $booksellerid = $data2->{'booksellerid'}; - $discount=$data->{'discount'}; - $gstrate=$data->{'gst'} ; - $bookfundid =$data->{'bookfundid'}; - my $aqbookfund=GetBookFund($data->{'bookfundid'}); -$branch=$aqbookfund->{branchcode}; -$template->param( - purchaseordernumber => $data->{purchaseordernumber}, - creationdate => format_date( $data2->{creationdate} ), - authorisedbyname => $data2->{authorisedbyname},); - -} - - -# get currencies (for exchange rates calcs if needed) +# get currencies (for change rates calcs if needed) my @rates = GetCurrencies(); my $count = scalar @rates; @@ -179,54 +141,58 @@ for ( my $i = 0 ; $i < $count ; $i++ ) { push @loop_currency, \%line; } +# build itemtype list +my $itemtypes = GetItemTypes; - - +my @itemtypesloop; +foreach my $thisitemtype (sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'}} keys %$itemtypes) { + push @itemtypesloop, { itemtype => $itemtypes->{$thisitemtype}->{'itemtype'} , desc => $itemtypes->{$thisitemtype}->{'description'} } ; +} # build branches list -my $branches = GetBranches; +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 $selected=1 if $thisbranch eq $branch; - my %row = ( +foreach my $thisbranch ( sort {$branches->{$a}->{'branchname'} cmp $branches->{$b}->{'branchname'}} keys %$branches ) { + my %row = ( value => $thisbranch, branchname => $branches->{$thisbranch}->{'branchname'}, - selected=>$selected , ); + $row{'selected'} = 1 if( $thisbranch eq $data->{branchcode}) ; push @branchloop, \%row; } -$template->param( branchloop => \@branchloop ); +$template->param( branchloop => \@branchloop , itypeloop => \@itemtypesloop ); # build bookfund list +my $borrower= GetMember($loggedinuser); +my ( $flags, $homebranch )= ($borrower->{'flags'},$borrower->{'branchcode'}); -my $count2; -my @bookfund; my @select_bookfund; my %select_bookfunds; -my $selbookfund; -@bookfund = GetBookFunds($homebranch); -$count2 = scalar @bookfund; + +my @bookfund = GetBookFunds($homebranch); +my $count2 = scalar @bookfund; for ( my $i = 0 ; $i < $count2 ; $i++ ) { push @select_bookfund, $bookfund[$i]->{'bookfundid'}; $select_bookfunds{ $bookfund[$i]->{'bookfundid'} } = $bookfund[$i]->{'bookfundname'}; - if ($bookfund[$i]->{'bookfundid'} eq $bookfundid){ - $selbookfund=1; - } } my $CGIbookfund = CGI::scrolling_list( - -name => 'bookfundid', + -name => 'bookfund', + -id => 'bookfund', -values => \@select_bookfund, - -default => $data->{'bookfundid'}, + -default => ($data->{'bookfundid'} ? $data->{'bookfundid'} : $select_bookfund[0]), -labels => \%select_bookfunds, - -size => 1, - -selected =>$selbookfund, + #-size => 1, -multiple => 0 ); my $bookfundname; - +my $bookfundid; if ($close) { $bookfundid = $data->{'bookfundid'}; $bookfundname = $select_bookfunds{$bookfundid}; @@ -236,34 +202,36 @@ if ($close) { my $CGIsort1 = buildCGIsort( "Asort1", "sort1", $data->{'sort1'} ); if ($CGIsort1) { $template->param( CGIsort1 => $CGIsort1 ); -} -else { +} else { $template->param( sort1 => $data->{'sort1'} ); } my $CGIsort2 = buildCGIsort( "Asort2", "sort2", $data->{'sort2'} ); if ($CGIsort2) { $template->param( CGIsort2 => $CGIsort2 ); -} -else { +} else { $template->param( sort2 => $data->{'sort2'} ); } -my $bibitemsexists; - -# - - $template->param( bibitemexists => "1" ) if $biblionumber; - my @bibitemloop; - my %line; - $line{isbn} = $data->{'isbn'}; - $line{itemtype} = $data->{'itemtype'}; - $line{volumeddesc} = $data->{'volumeddesc'}; +#do a biblioitems lookup on bib +my @bibitems = GetBiblioItemByBiblioNumber($biblionumber); +my $bibitemscount = scalar @bibitems; + +if ( $bibitemscount > 0 ) { + # warn "NEWBIBLIO: bibitems for $biblio exists\n"; + my @bibitemloop; + for ( my $i = 0 ; $i < $bibitemscount ; $i++ ) { + my %line; + $line{biblioitemnumber} = $bibitems[$i]->{'biblioitemnumber'}; + $line{isbn} = $bibitems[$i]->{'isbn'}; + $line{itemtype} = $bibitems[$i]->{'itemtype'}; + $line{volumeddesc} = $bibitems[$i]->{'volumeddesc'}; push( @bibitemloop, \%line ); $template->param( bibitemloop => \@bibitemloop ); - - + } + $template->param( bibitemexists => "1" ); +} # fill template $template->param( @@ -279,18 +247,21 @@ $template->param( basketno => $basketno, booksellerid => $booksellerid, suggestionid => $suggestionid, - biblionumber => $biblionumber, + biblionumber => $biblionumber, + authorisedbyname => $borrower->{'firstname'} . " " . $borrower->{'surname'}, + biblioitemnumber => $data->{'biblioitemnumber'}, itemtype => $data->{'itemtype'}, - discount => $discount, - listincgst => $booksellers[0]->{'listincgst'}, - listprice => $booksellers[0]->{'listprice'}, - gstreg => $booksellers[0]->{'gstreg'}, - invoiceinc => $booksellers[0]->{'invoiceincgst'}, - invoicedisc => $booksellers[0]->{'invoicedisc'}, - nocalc => $booksellers[0]->{'nocalc'}, - name => $booksellers[0]->{'name'}, - currency => $booksellers[0]->{'listprice'}, - gstrate =>$gstrate, + itemtype_desc => $itemtypes->{$data->{'itemtype'}}->{description}, + discount => $bookseller->{'discount'}, + listincgst => $bookseller->{'listincgst'}, + listprice => $bookseller->{'listprice'}, + gstreg => $bookseller->{'gstreg'}, + invoiceinc => $bookseller->{'invoiceincgst'}, + invoicedisc => $bookseller->{'invoicedisc'}, + nocalc => $bookseller->{'nocalc'}, + name => $bookseller->{'name'}, + currency => $bookseller->{'listprice'}, + gstrate => C4::Context->preference("gist") || 0, loop_currencies => \@loop_currency, orderexists => ( $new eq 'yes' ) ? 0 : 1, title => $data->{'title'}, @@ -302,11 +273,10 @@ $template->param( quantity => $data->{'quantity'}, listprice => $data->{'listprice'}, rrp => $data->{'rrp'}, + total => $data->{ecost}*$data->{quantity}, invoice => $data->{'booksellerinvoicenumber'}, ecost => $data->{'ecost'}, - total =>$data->{'unitprice'}* $data->{'quantity'}, - unitprice => $data->{'unitprice'}, - gst => $data->{'ecost'}*$gstrate/100, + purchaseordernumber => $data->{'purchaseordernumber'}, notes => $data->{'notes'}, publishercode => $data->{'publishercode'}, # donation => $donation