From 9a5eccc7e2c9fb921e61af91360c749bfec6810e Mon Sep 17 00:00:00 2001 From: erickson Date: Fri, 24 Sep 2010 22:23:58 +0000 Subject: [PATCH] clean up the fire_object_events cstore xact git-svn-id: svn://svn.open-ils.org/ILS/trunk@17978 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/AppUtils.pm | 33 +++++++++++++--------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm b/Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm index d48463e4c9..a91a714763 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm @@ -1634,7 +1634,7 @@ sub fire_object_event { if($event_def) { $def = $e->retrieve_action_trigger_event_definition($event_def) - or return $e->event; + or return $e->die_event; $auto_method .= '.include_inactive'; @@ -1642,9 +1642,11 @@ sub fire_object_event { # find the most appropriate event def depending on context org $def = $self->find_event_def_by_hook($hook, $context_org, $e) - or return $e->event; + or return $e->die_event; } + my $final_resp; + if($def->group_field) { # we have a list of objects $object = [$object] unless ref $object eq 'ARRAY'; @@ -1675,12 +1677,13 @@ sub fire_object_event { ); } - return undef unless $resp and $resp->{events} and @{$resp->{events}}; + if($resp and $resp->{events} and @{$resp->{events}}) { - return $e->retrieve_action_trigger_event([ - $resp->{events}->[0]->id, - {flesh => 1, flesh_fields => {atev => ['template_output', 'error_output']}} - ]); + $final_resp = $e->retrieve_action_trigger_event([ + $resp->{events}->[0]->id, + {flesh => 1, flesh_fields => {atev => ['template_output', 'error_output']}} + ]); + } } else { @@ -1714,13 +1717,17 @@ sub fire_object_event { $event_id ); } - return undef unless $resp and $resp->{event}; - - return $e->retrieve_action_trigger_event([ - $resp->{event}->id, - {flesh => 1, flesh_fields => {atev => ['template_output', 'error_output']}} - ]); + + if($resp and $resp->{event}) { + $final_resp = $e->retrieve_action_trigger_event([ + $resp->{event}->id, + {flesh => 1, flesh_fields => {atev => ['template_output', 'error_output']}} + ]); + } } + + $e->rollback; + return $final_resp; } -- 2.11.0