Added eval; site now shows clean dataset missing message instead of server error...
[sgn.git] / lib / SGN / Controller / Order.pm
blobf46f72fc9938d7563314c9032e5006ed5d8af7e0
2 package SGN::Controller::Order;
4 use Moose;
5 use URI::FromHash 'uri';
6 use CXGN::Stock::Order;
7 use Data::Dumper;
10 BEGIN { extends 'Catalyst::Controller'; }
13 sub order_stocks :Path('/order/stocks/view') :Args(0) {
14 my $self = shift;
15 my $c = shift;
17 if (! $c->user()) {
18 $c->res->redirect( uri( path => '/user/login', query => { goto_url => $c->req->uri->path_query } ) );
19 return;
22 if ($c->user) {
23 my $check_vendor_role = $c->user->check_roles('vendor');
24 $c->stash->{check_vendor_role} = $check_vendor_role;
25 my $user_id = $c->user()->get_object()->get_sp_person_id();
26 $c->stash->{user_id} = $user_id;
29 my $tracking_order_activity = $c->config->{tracking_order_activity};
30 $c->stash->{tracking_order_activity} = $tracking_order_activity;
32 $c->stash->{template} = '/order/stocks.mas';
37 sub order_details :Path('/order/details/view') : Args(1) {
38 my $self = shift;
39 my $c = shift;
40 my $schema = $c->dbic_schema("Bio::Chado::Schema");
41 my $people_schema = $c->dbic_schema('CXGN::People::Schema');
42 my $dbh = $c->dbc->dbh;
43 my $order_properties = $c->config->{order_properties};
44 my @properties = split ',',$order_properties;
45 my $ordering_type = $c->config->{ordering_type};
47 if (! $c->user()) {
48 $c->res->redirect( uri( path => '/user/login', query => { goto_url => $c->req->uri->path_query } ) );
49 return;
52 if ($c->user) {
53 my $check_vendor_role = $c->user->check_roles('vendor');
54 $c->stash->{check_vendor_role} = $check_vendor_role;
57 my $order_number = shift;
58 my $order_obj = CXGN::Stock::Order->new({ dbh => $dbh, bcs_schema => $schema, people_schema => $people_schema, sp_order_id => $order_number});
59 my $order_result = $order_obj->get_order_details();
61 my $all_items = $order_result->[3];
62 my $item_name;
63 my $value_string;
64 my $empty_string = '';
65 my @all_item_details = ();
66 my $all_details_string;
68 foreach my $each_item (@$all_items) {
69 my @item_details = ();
70 my @all_values = ();
71 $item_name = (keys %$each_item)[0];
72 push @all_values, $item_name;
73 push @item_details, "<b>"."Item Name"."<b>". ":"."".$item_name;
74 foreach my $field (@properties) {
75 my $each_detail = $each_item->{$item_name}->{$field};
76 push @all_values, $each_detail;
77 my $detail_string = $field. ":"."".$each_detail;
78 push @item_details, $detail_string;
81 push @item_details, $empty_string;
82 my $details_string = join("<br>", @item_details);
83 $value_string = join(",", @all_values);
84 push @all_item_details, $details_string;
86 $all_details_string = join("<br>", @all_item_details);
88 $c->stash->{order_id} = $order_result->[0];
89 $c->stash->{order_from} = $order_result->[1];
90 $c->stash->{create_date} = $order_result->[2];
91 $c->stash->{item_list} = $all_details_string;
92 $c->stash->{order_to} = $order_result->[4];
93 $c->stash->{order_status} = $order_result->[5];
94 $c->stash->{comments} = $order_result->[6];
95 $c->stash->{order_properties} = $order_properties;
96 $c->stash->{order_values} = $value_string;
97 $c->stash->{ordering_type} = $ordering_type;
98 $c->stash->{template} = '/order/order_details.mas';