From 3ba54d73c959fabb08b6bc4a4fc909b212b539fe Mon Sep 17 00:00:00 2001 From: Henri-Damien LAURENT Date: Tue, 6 Oct 2009 13:34:56 +0200 Subject: [PATCH] using SQLHelper in C4/Acquisition Changing addorder to send orderinfo from input decoding And using SQLHelper to filter information --- C4/Acquisition.pm | 27 +++-------- acqui/addorder.pl | 112 +++++++++++++++------------------------------- 2 files changed, 42 insertions(+), 97 deletions(-) diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm index 797f0b647b..eeb25e5f1c 100644 --- a/C4/Acquisition.pm +++ b/C4/Acquisition.pm @@ -25,6 +25,7 @@ use C4::Dates qw(format_date format_date_in_iso); use MARC::Record; use C4::Suggestions; use C4::Debug; +use C4::SQLHelper qw(InsertInTable); use Time::localtime; use HTML::Entities; @@ -910,6 +911,8 @@ table of the Koha database. =item $hashref->{'uncertainprice'} may be 0 for "the price is known" or 1 for "the price is uncertain" +=item defaults entrydate to Now + The following keys are used: "biblionumber", "title", "basketno", "quantity", "notes", "biblioitemnumber", "rrp", "ecost", "gst", "unitprice", "subscription", "sort1", "sort2", "booksellerinvoicenumber", "listprice", "budgetdate", "purchaseordernumber", "branchcode", "booksellerinvoicenumber", "bookfundid". =back @@ -935,29 +938,9 @@ sub NewOrder { } else { $orderinfo->{'subscription'} = 0; } + $orderinfo->{'entrydate'} ||= C4::Dates->new()->output("iso"); - my $query = "INSERT INTO aqorders ("; - foreach my $orderinfokey (keys %{$orderinfo}) { - next if $orderinfokey =~ m/branchcode|entrydate/; # skip branchcode and entrydate, branchcode isnt a vaild col, entrydate we add manually with NOW() - $query .= "$orderinfokey,"; - push(@params, $orderinfo->{$orderinfokey}); - } - - $query .= "entrydate) VALUES ("; - foreach (@params) { - $query .= "?,"; - } - $query .= " NOW() )"; #ADDING CURRENT DATE TO 'budgetdate, entrydate, purchaseordernumber'... - - my $sth = $dbh->prepare($query); - - $sth->execute(@params); - $sth->finish; - - #get ordnum MYSQL dependant, but $dbh->last_insert_id returns null - my $ordnum = $dbh->{'mysql_insertid'}; - - $sth->finish; + my $ordnum=InsertInTable("aqorders",$orderinfo); return ( $orderinfo->{'basketno'}, $ordnum ); } diff --git a/acqui/addorder.pl b/acqui/addorder.pl index 198cdf0e76..8705c46e99 100755 --- a/acqui/addorder.pl +++ b/acqui/addorder.pl @@ -146,40 +146,41 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( ); # get CGI parameters -my $ordnum = $input->param('ordnum'); -my $basketno = $input->param('basketno'); -my $booksellerid = $input->param('booksellerid'); -my $existing = $input->param('existing'); # existing biblio, (not basket or order) -my $title = $input->param('title'); -my $author = $input->param('author'); -my $publicationyear= $input->param('publicationyear'); -my $isbn = $input->param('ISBN'); -my $itemtype = $input->param('format'); -my $quantity = $input->param('quantity'); # FIXME: else ERROR! -my $listprice = $input->param('list_price') || 0; -my $branch = $input->param('branch'); -my $series = $input->param('series'); -my $notes = $input->param('notes'); -my $budget_id = $input->param('budget_id'); -my $sort1 = $input->param('sort1'); -my $sort2 = $input->param('sort2'); -my $rrp = $input->param('rrp'); -my $ecost = $input->param('ecost'); -my $gst = $input->param('GST'); -my $budget = $input->param('budget'); -my $cost = $input->param('cost'); -my $sub = $input->param('sub'); -my $purchaseorder = $input->param('purchaseordernumber'); -my $invoice = $input->param('invoice'); -my $publishercode = $input->param('publishercode'); -my $suggestionid = $input->param('suggestionid'); -my $biblionumber = $input->param('biblionumber'); +my $orderinfo = $input->Vars; +$orderinfo->{'list_price'} ||= 0; +#my $ordnum = $input->param('ordnum'); +#my $basketno = $input->param('basketno'); +#my $booksellerid = $input->param('booksellerid'); +#my $existing = $input->param('existing'); # existing biblio, (not basket or order) +#my $title = $input->param('title'); +#my $author = $input->param('author'); +#my $publicationyear= $input->param('publicationyear'); +#my $isbn = $input->param('ISBN'); +#my $itemtype = $input->param('format'); +#my $quantity = $input->param('quantity'); # FIXME: else ERROR! +#my $branch = $input->param('branch'); +#my $series = $input->param('series'); +#my $notes = $input->param('notes'); +#my $budget_id = $input->param('budget_id'); +#my $sort1 = $input->param('sort1'); +#my $sort2 = $input->param('sort2'); +#my $rrp = $input->param('rrp'); +#my $ecost = $input->param('ecost'); +#my $gst = $input->param('GST'); +#my $budget = $input->param('budget'); +#my $cost = $input->param('cost'); +#my $sub = $input->param('sub'); +#my $purchaseorder = $input->param('purchaseordernumber'); +#my $invoice = $input->param('invoice'); +#my $publishercode = $input->param('publishercode'); +#my $suggestionid = $input->param('suggestionid'); +#my $biblionumber = $input->param('biblionumber'); +#my $uncertainprice = $input->param('uncertainprice'); +#my $import_batch_id= $input->param('import_batch_id'); +# +#my $createbibitem = $input->param('createbibitem'); +# my $user = $input->remote_user; -my $uncertainprice = $input->param('uncertainprice'); -my $import_batch_id= $input->param('import_batch_id'); - -my $createbibitem = $input->param('createbibitem'); - # create, modify or delete biblio # create if $quantity>=0 and $existing='no' # modify if $quantity>=0 and $existing='yes' @@ -205,54 +206,15 @@ if ( $quantity ne '0' ) { if ($suggestionid) { ModStatus( $suggestionid, 'ORDERED', '', $biblionumber ); } + $orderinfo->{biblioitemnumber}=$bibitemnum; } # if we already have $ordnum, then it's an ordermodif if ($ordnum) { - my %orderinfo = ("biblionumber", $biblionumber, - "ordernumber", $ordnum, - "basketno", $basketno, - "quantity", $quantity, - "listprice", $listprice, - "notes", $notes, - "biblioitemnumber", $bibitemnum, - "rrp", $rrp, - "ecost", $ecost, - "gst", $gst, - "unitprice", $cost, - "subscription", $sub, - "sort1", $sort1, - "sort2", $sort2, -# "budgetdate", $budget, - "purchaseordernumber", $purchaseorder, - "branchcode", $branch, - "booksellerinvoicenumber", $invoice, - "budget_id", $budget_id, - "uncertainprice", $uncertainprice); - ModOrder( \%orderinfo); + ModOrder( $orderinfo); } else { # else, it's a new line - my %orderinfo = ("biblionumber", $biblionumber, - "ordernumber", $ordnum, - "basketno", $basketno, - "quantity", $quantity, - "listprice", $listprice, - "notes", $notes, - "biblioitemnumber", $bibitemnum, - "rrp", $rrp, - "ecost", $ecost, - "gst", $gst, - "unitprice", $cost, - "subscription", $sub, - "sort1", $sort1, - "sort2", $sort2, -# "budgetdate", $budget, - "purchaseordernumber", $purchaseorder, - "branchcode", $branch, - "booksellerinvoicenumber", $invoice, - "budget_id", $budget_id, - "uncertainprice", $uncertainprice); - ( $basketno, $ordnum ) = NewOrder(\%orderinfo); + ( $basketno, $ordnum ) = NewOrder($orderinfo); } # now, add items if applicable -- 2.39.5