From: erickson Date: Tue, 31 Mar 2009 21:37:50 +0000 (+0000) Subject: created method that takes a circ-based event def and a copy barcode, creates the... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=724d29899ee288463af629cbc3484ac581cbf338;p=evergreen%2Fmasslnc.git created method that takes a circ-based event def and a copy barcode, creates the event if possible and fires the event. this is primarily for testing notifications git-svn-id: svn://svn.open-ils.org/ILS/trunk@12746 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm index 82991687b1..58bccd388c 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm @@ -1069,6 +1069,51 @@ sub fleshed_circ_retrieve { }; } + + +__PACKAGE__->register_method( + method => "test_batch_circ_events", + api_name => "open-ils.circ.trigger_event_by_def_and_barcode.fire" +); + +# method for testing the behavior of a given event definition +sub test_batch_circ_events { + my($self, $conn, $auth, $event_def, $barcode) = @_; + + my $e = new_editor(authtoken => $auth); + return $e->event unless $e->checkauth; + return $e->event unless $e->allowed('VIEW_CIRCULATIONS'); + + my $def = $e->retrieve_action_trigger_event_definition($event_def) + or return $e->event; + + my $copy = $e->search_asset_copy({barcode => $barcode, deleted => 'f'})->[0] + or return $e->event; + + my $circ = $e->search_action_circulation( + {target_copy => $copy->id, checkin_time => undef})->[0] + or return $e->event; + + return undef unless $circ; + + my $event_id = $U->simplereq( + 'open-ils.trigger', + 'open-ils.trigger.event.autocreate.by_definition', + $event_def, $circ, $e->requestor->ws_ou); + + my $fire = 'open-ils.trigger.event.fire'; + + if($def->group_field) { + $fire =~ s/event/event_group/o; + $event_id = [$event_id]; + } + + return $U->simplereq('open-ils.trigger', $fire, $event_id); +} + + + + # {"select":{"acp":["id"],"circ":[{"aggregate":true,"transform":"count","alias":"count","column":"id"}]},"from":{"acp":{"circ":{"field":"target_copy","fkey":"id","type":"left"},"acn"{"field":"id","fkey":"call_number"}}},"where":{"+acn":{"record":200057}}