Bug 9416: (follow-up) reconcile with work done on bug 11699
authorGalen Charlton <gmc@esilibrary.com>
Sat, 19 Apr 2014 15:52:45 +0000 (15:52 +0000)
committerGalen Charlton <gmc@esilibrary.com>
Sat, 19 Apr 2014 15:55:38 +0000 (15:55 +0000)
This patch teaches the ordering receiving process how to
set vendor and internal order notes.

One observation: I'm not sure it's entirely useful to set
a note to communicate to the vendor during receiving --
how is it to be sent to them, and why?

Signed-off-by: Galen Charlton <gmc@esilibrary.com>

C4/Acquisition.pm
acqui/finishreceive.pl
t/db_dependent/Acquisition.t

index 9000fb2..c565db6 100644 (file)
@@ -1432,7 +1432,8 @@ sub GetCancelledOrders {
     budget_id => $budget_id,
     datereceived => $datereceived,
     received_itemnumbers => \@received_itemnumbers,
-    notes => $notes,
+    order_internalnote => $order_internalnote,
+    order_vendornote => $order_vendornote,
    });
 
 Updates an order, to reflect the fact that it was received, at least
@@ -1460,7 +1461,8 @@ sub ModReceiveOrder {
     my $budget_id = $params->{budget_id};
     my $datereceived = $params->{datereceived};
     my $received_items = $params->{received_items};
-    my $notes = $params->{notes};
+    my $order_internalnote = $params->{order_internalnote};
+    my $order_vendornote = $params->{order_vendornote};
 
     my $dbh = C4::Context->dbh;
     $datereceived = C4::Dates->output('iso') unless $datereceived;
@@ -1490,11 +1492,17 @@ q{SELECT * FROM aqorders WHERE biblionumber=? AND aqorders.ordernumber=?},
             UPDATE aqorders
             SET quantity = ?,
                 orderstatus = 'partial'|;
-        $query .= q|, notes = ?| if defined $notes;
+        $query .= q|, order_internalnote = ?| if defined $order_internalnote;
+        $query .= q|, order_vendornote = ?| if defined $order_vendornote;
         $query .= q| WHERE ordernumber = ?|;
         my $sth = $dbh->prepare($query);
 
-        $sth->execute($order->{quantity} - $quantrec, ( defined $notes ? $notes : () ), $ordernumber);
+        $sth->execute(
+            $order->{quantity} - $quantrec,
+            ( defined $order_internalnote ? $order_internalnote : () ),
+            ( defined $order_vendornote ? $order_vendornote : () ),
+            $ordernumber
+        );
 
         delete $order->{'ordernumber'};
         $order->{'budget_id'} = ( $budget_id || $order->{'budget_id'} );
@@ -1519,10 +1527,23 @@ q{SELECT * FROM aqorders WHERE biblionumber=? AND aqorders.ordernumber=?},
             update aqorders
             set quantityreceived=?,datereceived=?,invoiceid=?,
                 unitprice=?,rrp=?,ecost=?,budget_id=?,orderstatus='complete'|;
-        $query .= q|, notes = ?| if defined $notes;
+        $query .= q|, order_internalnote = ?| if defined $order_internalnote;
+        $query .= q|, order_vendornote = ?| if defined $order_vendornote;
         $query .= q| where biblionumber=? and ordernumber=?|;
         my $sth = $dbh->prepare( $query );
-        $sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$budget_id,( defined $notes ? $notes : () ),$biblionumber,$ordernumber);
+        $sth->execute(
+            $quantrec,
+            $datereceived,
+            $invoiceid,
+            $cost,
+            $rrp,
+            $ecost,
+            $budget_id,
+            ( defined $order_internalnote ? $order_internalnote : () ),
+            ( defined $order_vendornote ? $order_vendornote : () ),
+            $biblionumber,
+            $ordernumber
+        );
     }
     return ($datereceived, $new_ordernumber);
 }
index 6887094..fa68078 100755 (executable)
@@ -53,7 +53,8 @@ my $booksellerid     = $input->param('booksellerid');
 my $cnt              = 0;
 my $ecost            = $input->param('ecost');
 my $rrp              = $input->param('rrp');
-my $notes            = $input->param("notes");
+my $order_internalnote = $input->param("order_internalnote");
+my $order_vendornote = $input->param("order_vendornote");
 my $bookfund         = $input->param("bookfund");
 my $order            = GetOrder($ordernumber);
 my $new_ordernumber  = $ordernumber;
@@ -112,7 +113,8 @@ if ($quantityrec > $origquantityrec ) {
               budget_id        => $bookfund,
               datereceived     => $datereceived,
               received_items   => \@received_items,
-              notes            => $notes,
+              order_internalnote  => $order_internalnote,
+              order_vendornote    => $order_vendornote,
         } );
     }
 
index e12bb70..0cfc0b1 100755 (executable)
@@ -8,7 +8,7 @@ use POSIX qw(strftime);
 
 use C4::Bookseller qw( GetBookSellerFromId );
 
-use Test::More tests => 71;
+use Test::More tests => 72;
 
 BEGIN {
     use_ok('C4::Acquisition');
@@ -818,7 +818,8 @@ is(
         ecost            => 12,
         invoiceid        => $invoiceid,
         rrp              => 42,
-        notes            => "my notes",
+        order_internalnote => "my notes",
+        order_vendornote   => "my vendor notes",
     }
 );
 my $order2 = GetOrder( $ordernumbers[1] );
@@ -827,8 +828,10 @@ is( $order2->{'quantityreceived'},
 is( $order2->{'quantity'}, 40, '40 items on original order' );
 is( $order2->{'budget_id'}, $budgetid,
     'Budget on original order is unchanged' );
-is( $order2->{notes}, "my notes",
-    'ModReceiveOrder and GetOrder deal with notes' );
+is( $order2->{order_internalnote}, "my notes",
+    'ModReceiveOrder and GetOrder deal with internal notes' );
+is( $order2->{order_vendornote}, "my vendor notes",
+    'ModReceiveOrder and GetOrder deal with vendor notes' );
 
 $neworder = GetOrder($new_ordernumber);
 is( $neworder->{'quantity'}, 2, '2 items on new order' );
@@ -853,7 +856,7 @@ my $budgetid2 = C4::Budgets::AddBudget(
         invoiceid        => $invoiceid,
         rrp              => 42,
         budget_id        => $budgetid2,
-        notes            => "my other notes",
+        order_internalnote => "my other notes",
     }
 );
 
@@ -863,7 +866,7 @@ is( $order3->{'quantityreceived'},
 is( $order3->{'quantity'}, 2, '2 items on original order' );
 is( $order3->{'budget_id'}, $budgetid,
     'Budget on original order is unchanged' );
-is( $order3->{notes}, "my other notes",
+is( $order3->{order_internalnote}, "my other notes",
     'ModReceiveOrder and GetOrder deal with notes' );
 
 $neworder = GetOrder($new_ordernumber);
@@ -882,7 +885,7 @@ is( $neworder->{'budget_id'}, $budgetid2, 'Budget on new order is changed' );
         invoiceid        => $invoiceid,
         rrp              => 42,
         budget_id        => $budgetid2,
-        notes            => "my third notes",
+        order_internalnote => "my third notes",
     }
 );
 
@@ -890,7 +893,7 @@ $order3 = GetOrder( $ordernumbers[2] );
 is( $order3->{'quantityreceived'}, 2,          'Order not split up' );
 is( $order3->{'quantity'},         2,          '2 items on order' );
 is( $order3->{'budget_id'},        $budgetid2, 'Budget has changed' );
-is( $order3->{notes}, "my third notes", 'ModReceiveOrder and GetOrder deal with notes' );
+is( $order3->{order_internalnote}, "my third notes", 'ModReceiveOrder and GetOrder deal with notes' );
 
 my $nonexistent_order = GetOrder();
 is( $nonexistent_order, undef, 'GetOrder returns undef if no ordernumber is given' );