LP#1785887 edi_order_pusher.pl sets message account
authorBill Erickson <berickxx@gmail.com>
Tue, 7 Aug 2018 20:26:27 +0000 (16:26 -0400)
committerChris Sharp <csharp@georgialibraries.org>
Tue, 11 Sep 2018 21:46:52 +0000 (17:46 -0400)
Apply the edi_message.account value when sending EDI order messages via
edi_order_pusher.pl.  This solves a problem where EDI ORDERS message
were not visible in the interface, because there was no way to complete
the permission check.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Open-ILS/src/support-scripts/edi_order_pusher.pl

index 3d383f2..c6c8c11 100755 (executable)
@@ -183,6 +183,22 @@ for $po_id (@$po_ids) {
         $message->purchase_order($po_id);
         $message->message_type('ORDERS');
         $message->isnew(1);
+
+        my $po = $e->retrieve_acq_purchase_order([$po_id, {
+            flesh => 2,
+            flesh_fields => {
+                acqpo  => ['provider'],
+                acqpro => ['edi_default'],
+            }
+        }]);
+
+        if (!$po->provider->edi_default) {
+            announce('error', "Provider for PO $po_id has no default EDI ".
+                "account, EDI message will not be sent.");
+            next;
+        }
+
+        $message->account($po->provider->edi_default->id);
     }
 
     $message->edi($edi);