From: Bill Erickson Date: Fri, 23 Mar 2012 19:17:50 +0000 (-0400) Subject: ACQ guarantee no PO re-activation X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=c4b4e2dd0248f63c352f5d8f7bfdc4ae7ac9e1d4;p=working%2FEvergreen.git ACQ guarantee no PO re-activation Prevent the possibility of double PO activation by preventing it within the API. There have been reports in the wild of double-activation, even though the UI is supposed to prevent it. Signed-off-by: Bill Erickson Signed-off-by: Michael Peters --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm index 8baf9eaa7f..b66b1f0c41 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm @@ -2324,6 +2324,10 @@ sub activate_purchase_order_impl { my $po = $e->retrieve_acq_purchase_order($po_id) or return $e->die_event; return $e->die_event unless $e->allowed('CREATE_PURCHASE_ORDER', $po->ordering_agency); + + return $e->die_event(OpenILS::Event->new('PO_ALREADY_ACTIVATED')) + if $po->order_date; # PO cannot be re-activated + my $provider = $e->retrieve_acq_provider($po->provider); # find lineitems and create assets for all