Line # Revision Author
1 198 ahitrov <& "/contenido/components/header.msn" &>
2
3 <style>
4 <!--
5 .inverted td { font-weight:bold; color:white; background-color:#8093B0; }
6 .inverted td a { color:white; font-weight:bold; }
7 //-->
8 </style>
9
10 270 ahitrov <% spacer( h=>10 ) %>
11
12 198 ahitrov <table width="100%" cellspacing="0" cellpadding="0" border="0">
13 <tr valign="top">
14 <td width="35%">
15
16 <& /contenido/webshop/components/block_order_status_changer.msn, status => $ost &>
17
18 270 ahitrov <& /contenido/webshop/components/block_coupons.msn &>
19 422 ahitrov <& /contenido/webshop/components/block_order_finder.msn &>
20 270 ahitrov
21 198 ahitrov </td>
22 <td width="1%">&nbsp;</td>
23 <td width="65%">
24
25 <fieldset>
26 <legend>Заказы со статусом "<span style="color:yellow"><% $current_status->[1] %></span>"</legend>
27
28 % if ( $total ) {
29
30 <div style="font-size:75%; font-family:Arial;">
31 <& /inc/pages_.msn, p=>$p, n=>$size, total=>$total, params=>\%filter_params, &>
32 <div style="height:5px"><spacer type="block" height="5"></div>
33 </div>
34
35 <& /contenido/webshop/components/order_browse.msn, documents => \@documents, columns => \@columns, filter => \%filter_params, status => $ost, %ARGS &>
36
37 <div style="font-size:75%; font-family:Arial;">
38 <& /inc/pages_.msn, p=>$p, n=>$size, total=>$total, params=>\%filter_params, &>
39 <div style="height:5px"><spacer type="block" height="5"></div>
40 </div>
41
42 % } else {
43 <h4 align="center"><i>---- Нет документов -----</i></h4>
44 % }
45
46 </td>
47 <td width="1%">&nbsp;</td>
48 </tr>
49 </table>
50
51 </body>
52 </html>
53 <%args>
54
55 $ost => 1
56 $p => 1
57 205 ahitrov $delete => undef
58 303 ahitrov $drop_owner => undef
59 198 ahitrov
60 </%args>
61 <%init>
62
63 my %filter_params;
64
65 my (@documents, $total);
66 $filter_params{ost} = $ost if $ost != 1;
67 my $size = 40;
68
69 @documents = $keeper->get_documents(
70 class => 'webshop::Order',
71 status => $ost,
72 limit => $size,
73 offset => ($p-1)*$size,
74 );
75 $total = $keeper->get_documents(
76 class => 'webshop::Order',
77 status => $ost,
78 count => 1,
79 );
80 my @structure = webshop::Order->new( $keeper->{webshop} )->structure;
81 my @columns = sort { $a->{column} <=> $b->{column} }
82 grep { $_->{column} } @structure;
83 push @columns, {attr => '_act_', rusname => 'Действия'};
84 my ($status_map) = grep { $_->{attr} eq 'status' } @structure;
85 my ($current_status) = grep { $_->[0] == $ost } @{$status_map->{cases}};
86
87 205 ahitrov my $active_rights = $m->comp('/contenido/webshop/subs/user_rights.msn');
88 if ( !$active_rights && $delete ) {
89 my $return_params = join ('&', map { $_.'='.$filter_params{$_} } grep { $_ ne 's' } keys %filter_params );
90 my %deleted;
91 while ( my ($field, $value) = each %ARGS ) {
92 if ( $field =~ /^delete_(\d+)_(\w+)$/ ) {
93 my $oid = $1;
94 my $attr = $2;
95 $deleted{$oid}{$attr} = $value;
96 }
97 }
98 my %classes = map { $_->{class} => 1 } values %deleted;
99 foreach my $delete_class ( keys %classes ) {
100 my @ids;
101 while ( my ($oid, $attr) = each %deleted) {
102 push @ids, $oid if exists $attr->{id} && $attr->{id} && ($attr->{class} eq $delete_class);
103 }
104 my @objects = $keeper->get_documents (
105 id => \@ids,
106 class => $delete_class
107 ) if @ids;
108 foreach my $object ( @objects ) {
109 my $document_access = $user->section_accesses($user, $object->section);
110 next unless $document_access == 2;
111 297 ahitrov if ( $user->type ) {
112 $object->status( 5 );
113 $object->store;
114 } else {
115 $object->delete;
116 }
117 205 ahitrov }
118 }
119 $m->redirect("/contenido/webshop/".($return_params ? '?'.$return_params : ''));
120 303 ahitrov } elsif ( $active_rights == 0 && $drop_owner ) {
121 my $id = $ARGS{id};
122 my $doc = $keeper->get_document_by_id( $id,
123 class => 'webshop::Order',
124 ) if $id && $id =~ /^\d+$/;
125 if ( ref $doc ) {
126 my $user_id = $ARGS{field};
127 $doc->$user_id( 0 );
128 $doc->store;
129 $m->redirect( $r->header_in('Referer') );
130 }
131 205 ahitrov }
132
133 198 ahitrov </%init>