]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/support-scripts/test-scripts/print_po.pl
add pcrud controller for ccmcmtm and ccmcmt
[working/Evergreen.git] / Open-ILS / src / support-scripts / test-scripts / print_po.pl
1 #!/usr/bin/perl
2
3 #----------------------------------------------------------------
4 # Print PO
5 #----------------------------------------------------------------
6
7 require '../oils_header.pl';
8 use vars qw/$apputils/;
9 use strict;
10 use Data::Dumper;
11 my $config              = shift; 
12 my $username    = shift || 'admin';
13 my $password    = shift || 'open-ils';
14 my $po_id       = shift;
15 my $hook        = shift || 'format.po.jedi';
16
17 osrf_connect($config);
18 oils_login($username, $password);
19 my $e = OpenILS::Utils::CStoreEditor->new;
20
21 use OpenILS::Utils::Fieldmapper;
22 $e->xact_begin;
23 my $bt = $e->retrieve_acq_currency_type('USD');
24 $bt->label('vvvv');
25 my $resp = $e->update_acq_currency_type($bt);
26 print Dumper($resp);
27 $e->xact_rollback;
28
29
30 my $po = $e->retrieve_acq_purchase_order($po_id) or oils_event_die($e->event);
31 my $orgs = $apputils->get_org_ancestors($po->ordering_agency);
32 $orgs = $e->search_actor_org_unit([{id => $orgs}, {flesh => 1, flesh_fields => {aou => ['ou_type']}}]);
33 $orgs = [ sort { $a->ou_type->depth cmp $b->ou_type->depth } @$orgs ];
34 my $def;
35 for my $org (reverse @$orgs) { 
36     $def = $e->search_action_trigger_event_definition({hook => $hook, owner => $org->id})->[0];
37     last if $def;
38 }
39
40 die "No event_definition found with hook $hook\n" unless $def;
41 print "using def " . $def->id . " at org_unit " . $def->owner . "\n";
42
43 my $event_id = $apputils->simplereq(
44     'open-ils.trigger', 
45     'open-ils.trigger.event.autocreate.by_definition',
46     $def->id, $po, $po->ordering_agency);
47
48
49 my $result = $apputils->simplereq(
50     'open-ils.trigger',
51     'open-ils.trigger.event.fire', $event_id);
52
53
54 print "Event state is " . $result->{event}->state . "\n";
55
56 my $event = $e->retrieve_action_trigger_event(
57     [
58         $event_id, 
59         {flesh => 1, flesh_fields => {atev => ['template_output', 'error_output']}}
60     ]
61 );
62
63 print "$event\n";
64
65 if($event->template_output) {
66     print $event->template_output->data . "\n";
67 }
68 if($event->error_output) {
69     print $event->error_output->data . "\n";
70 }
71