Bug 27793: Store FTX free text in vendor note
authorColin Campbell <colin.campbell@ptfs-europe.com>
Thu, 25 Feb 2021 10:59:24 +0000 (10:59 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 7 May 2021 12:44:00 +0000 (14:44 +0200)
This is important for proquest ordering to distinguish types of
material.

FTX segment from quote is stored as vendor note.
Contents of vendornote are included in the order FTX segment.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Koha/EDI.pm
Koha/Edifact/Order.pm

index af31039..5857f4e 100644 (file)
@@ -697,7 +697,7 @@ sub quote_item {
         quantity           => $order_quantity,
         quantityreceived   => 0,
         order_vendornote   => q{},
-        order_internalnote => $order_note,
+        order_internalnote => q{},
         replacementprice   => $price,
         rrp_tax_included   => $price,
         rrp_tax_excluded   => $price,
@@ -736,7 +736,9 @@ sub quote_item {
             $txt .= $si;
             ++$occ;
         }
-        $order_hash->{order_vendornote} = $txt;
+    }
+    if ($order_note) {
+        $order_hash->{order_vendornote} = $order_note;
     }
 
     if ( $item->internal_notes() ) {
index fa356b0..f1648c6 100644 (file)
@@ -408,10 +408,6 @@ sub order_line {
     }
     my $budget = GetBudget( $orderline->budget_id );
     my $ol_fields = { budget_code => $budget->{budget_code}, };
-    if ( $orderline->order_vendornote ) {
-        $ol_fields->{servicing_instruction} = $orderline->order_vendornote;
-        chomp $ol_fields->{servicing_instruction};
-    }
 
     my $item_fields = [];
     for my $item (@items) {
@@ -434,8 +430,16 @@ sub order_line {
 
     # TBD what if #items exceeds quantity
 
-    # FTX free text for current orderline TBD
-    #    dont really have a special instructions field to encode here
+    # FTX free text for current orderline
+    #    Pass vendor note in FTX free text segment
+    if ( $orderline->order_vendornote ) {
+        my $vendornote = $orderline->order_vendornote;
+        chomp $vendornote;
+        my $ftx = 'FTX+LIN+++';
+        $ftx .= $vendornote;
+        $ftx .= $seg_terminator;
+        $self->add_seg($ftx);
+    }
     # Encode notes here
     # PRI-CUX-DTM unit price on which order is placed : optional
     # Coutts read this as 0.00 if not present