From 6a03fc5aeb4c13b1b7521ca13a37a5fec44b6901 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 19 Aug 2010 14:22:28 +0000 Subject: [PATCH] automatically create lineitem assets (i.e. load bibs and items) during po activation when necessary since activation requires it; only do this during non-dry-run calls git-svn-id: svn://svn.open-ils.org/ILS/trunk@17263 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../perlmods/OpenILS/Application/Acq/Order.pm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Order.pm b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Order.pm index d67091f8ff..f5aa9fecb9 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Order.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Order.pm @@ -2191,11 +2191,24 @@ sub activate_purchase_order_impl { update_purchase_order($mgr, $po) or return $e->die_event; my $query = [ - {purchase_order => $po_id, state => 'pending-order'}, + { + purchase_order => $po_id, + '-or' => [{state => 'pending-order'}, {state => 'new'}] + }, {limit => 1} ]; - while( my $li = $e->search_acq_lineitem($query)->[0] ) { + while( my $li_id = $e->search_acq_lineitem($query, {idlist => 1})->[0] ) { + + my $li; + if($dry_run) { + $li = $e->retrieve_acq_lineitem($li_id); + } else { + # can't activate a PO w/o assets. Create lineitem assets as necessary + my $data = create_lineitem_assets($mgr, $li_id) or return $e->die_event; + $li = $data->{li}; + } + $li->state('on-order'); create_lineitem_debits($mgr, $li, $dry_run) or return $e->die_event; update_lineitem($mgr, $li) or return $e->die_event; -- 2.43.2