using SQLHelper in C4/Acquisition
authorHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Tue, 6 Oct 2009 11:34:56 +0000 (13:34 +0200)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Tue, 6 Oct 2009 11:34:56 +0000 (13:34 +0200)
Changing addorder to send orderinfo from input decoding
And using SQLHelper to filter information

C4/Acquisition.pm
acqui/addorder.pl

index 797f0b6..eeb25e5 100644 (file)
@@ -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 );
 }
 
index 198cdf0..8705c46 100755 (executable)
@@ -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