1 |
198 |
ahitrov |
<!-- Форма для редактирования объекта --> |
2 |
|
|
<a name="top"></a> |
3 |
|
|
% if ( $context eq 'facil' ) { |
4 |
|
|
<b style="font-size:110%">Комплектация ЗАКАЗА</b> |
5 |
|
|
% } elsif ( $context eq 'post' ) { |
6 |
|
|
<b style="font-size:110%">Доставка ЗАКАЗА</b> |
7 |
|
|
% } else { |
8 |
|
|
<b style="font-size:110%">Просмотр и редактирование ЗАКАЗА</b> |
9 |
|
|
% } |
10 |
|
|
<center> |
11 |
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0"> |
12 |
|
|
<tr> |
13 |
|
|
<td bgcolor="#999999"> |
14 |
|
|
|
15 |
|
|
|
16 |
|
|
<table width="100%" cellpadding="0" cellspacing="1" border="0"> |
17 |
|
|
<tr><td valign="top" width="50%" bgcolor="#ffffff"> |
18 |
|
|
|
19 |
|
|
<form enctype="multipart/form-data" action="<% $action %>" method="POST" name="form" onSubmit="javascript:Save()"> |
20 |
|
|
|
21 |
|
|
<table border="0" width="100%" cellspacing="0" cellpadding="6"> |
22 |
256 |
ahitrov |
<tr><td style="font:bold 15px;" align="center">ID = <% $object->id %></td> |
23 |
198 |
ahitrov |
<td align="right"> |
24 |
|
|
<input type="submit" value="Сохранить" class="input_btn"> |
25 |
|
|
<input type="submit" name="_save_and_leave" value="Сохранить и выйти" class="input_btn"> |
26 |
797 |
ahitrov |
<input type="submit" name="delete" value="Отменить" onClick="return confirm('Отменить заказ?');" class="input_btn"> |
27 |
|
|
% if ( $object->id ) { |
28 |
|
|
<input type="button" value="Экспорт в 1С" class="input_btn" onclick="export_1c();return false;"> |
29 |
|
|
% } |
30 |
|
|
<br> |
31 |
198 |
ahitrov |
% if ( $context eq 'facil' ) { |
32 |
|
|
<input type="submit" name="_ret_manager" value="Вернуть менеджеру" class="input_btn"> |
33 |
|
|
<input type="submit" name="_save_and_deliver" value="Отправить в доставку" class="input_btn"> |
34 |
|
|
% } elsif ( $context eq 'post' ) { |
35 |
|
|
<input type="submit" name="_ret_manager" value="Вернуть менеджеру" class="input_btn"> |
36 |
|
|
<input type="submit" name="_ret_facility" value="Вернуть в доставку" class="input_btn"> |
37 |
|
|
<input type="submit" name="_save_and_deliver" value="Отметка о доставке" class="input_btn"> |
38 |
|
|
% } else { |
39 |
|
|
<input type="submit" name="_save_and_complect" value="На комплектацию" class="input_btn"> |
40 |
|
|
<input type="submit" name="_save_and_deliver" value="Сразу в доставку" class="input_btn"> |
41 |
|
|
% } |
42 |
545 |
ahitrov |
<hr> |
43 |
|
|
<input type="submit" name="_save_status_6" value="Ожидание оплаты" class="input_btn"> |
44 |
|
|
<input type="submit" name="_save_status_7" value="Товар в резерве" class="input_btn"> |
45 |
|
|
<input type="submit" name="_save_status_8" value="Не дозвонились" class="input_btn"> |
46 |
198 |
ahitrov |
|
47 |
|
|
<input type="hidden" name="control_charset" value="Контроль"> |
48 |
|
|
% if ( ref $filter_params eq 'HASH' ) { |
49 |
|
|
% while ( my ($key, $value) = each %$filter_params ) { |
50 |
|
|
% next if grep { $_->{attr} eq $key } $object->structure(); |
51 |
|
|
<input type="hidden" name="<% $key %>" value="<% $value %>"> |
52 |
|
|
% } |
53 |
|
|
% } |
54 |
|
|
</td> |
55 |
|
|
</tr> |
56 |
|
|
</table> |
57 |
|
|
|
58 |
|
|
<center> |
59 |
|
|
<table width="98%" cellpadding="1" cellspacing="0" border="0"> |
60 |
|
|
|
61 |
|
|
<%perl> |
62 |
|
|
|
63 |
304 |
ahitrov |
my @properties = $object->structure(); |
64 |
198 |
ahitrov |
|
65 |
|
|
for (0..$#properties) |
66 |
|
|
{ |
67 |
|
|
|
68 |
|
|
my $prop = $properties[$_]; |
69 |
|
|
my $field = $prop->{attr}; |
70 |
|
|
next if ($prop->{hidden} == 1) || ($prop->{type} eq 'external'); |
71 |
|
|
if ( $context eq 'facil' ) { |
72 |
356 |
ahitrov |
unless ( $prop->{$context.'show'} || $prop->{$context."edit"} ) { |
73 |
|
|
$prop->{temp_hidden} = 1; |
74 |
|
|
next; |
75 |
|
|
} else { |
76 |
|
|
$prop->{temp_hidden} = 0; |
77 |
|
|
} |
78 |
198 |
ahitrov |
} elsif ( $context eq 'post' ) { |
79 |
356 |
ahitrov |
unless ( $prop->{$context.'show'} || $prop->{$context."edit"} ) { |
80 |
|
|
$prop->{temp_hidden} = 1; |
81 |
|
|
next; |
82 |
|
|
} else { |
83 |
|
|
$prop->{temp_hidden} = 0; |
84 |
|
|
} |
85 |
198 |
ahitrov |
} else { |
86 |
356 |
ahitrov |
if ( $prop->{manager_hidden} ) { |
87 |
|
|
$prop->{temp_hidden} = 1; |
88 |
|
|
next; |
89 |
|
|
} else { |
90 |
|
|
$prop->{temp_hidden} = 0; |
91 |
|
|
} |
92 |
198 |
ahitrov |
} |
93 |
|
|
|
94 |
|
|
</%perl> |
95 |
|
|
<tr><td height="8"></td></tr> |
96 |
|
|
<tr><td nowrap> |
97 |
|
|
<table cellpadding="0" cellspacing="0" border="0"> |
98 |
|
|
<tr> |
99 |
|
|
% if( ( $prop->{type} eq 'flag' ) || ($prop->{type} eq 'checkbox') ) { |
100 |
|
|
<td><& "/contenido/components/inputs/checkbox.msn", prop => $prop, object=>$object, options=>$options, name => $prop->{attr}, check => $object->{$prop->{attr}}, id => $object->id() &></td> |
101 |
|
|
% } |
102 |
|
|
<td nowrap><b><% $prop->{rusname} %></b> /</td> |
103 |
|
|
<td align="right" nowrap><font color="#888888" size="-1"> name="<% $prop->{attr} %>"</font></td> |
104 |
|
|
% if( $prop->{readonly} ) { |
105 |
|
|
<td align="right" nowrap> / <font color="#CC0000" size="-1">Значение нельзя изменить</font></td> |
106 |
|
|
% } |
107 |
|
|
</tr> |
108 |
|
|
</table> |
109 |
|
|
</td></tr> |
110 |
|
|
% if ( ($context && $prop->{$context.'show'}) || $prop->{manshow} ) { |
111 |
356 |
ahitrov |
% $prop->{temp_hidden} = 1; |
112 |
198 |
ahitrov |
% if ( exists $prop->{lookup_opts} ) { |
113 |
|
|
% my $doc = $keeper->get_document_by_id( $object->$field, class => $prop->{lookup_opts}{class} ); |
114 |
428 |
ahitrov |
<tr><td><% ref $doc ? $doc->name : 'Не определено' %></td></tr> |
115 |
198 |
ahitrov |
% } elsif ( $prop->{type} eq 'status' ) { |
116 |
|
|
% my ($case) = grep { $_->[0] == $object->$field } @{$prop->{cases}}; |
117 |
|
|
<tr><td><% ref $case ? $case->[1] : '<span style="color:red;">Значение: '.$object->$field.'</span>' %></td></tr> |
118 |
|
|
% } else { |
119 |
|
|
<tr><td><% $object->$field %></td></tr> |
120 |
|
|
% } |
121 |
|
|
% } else { |
122 |
356 |
ahitrov |
% $prop->{temp_hidden} = 0; |
123 |
198 |
ahitrov |
% if ($prop->{type} eq 'parent') { |
124 |
|
|
<tr><td><& "/contenido/components/inputs/$prop->{type}.msn", prop => $prop, object=>$object, options=>$options, name => $prop->{attr}, check => ($object->{$prop->{attr} } || $prop->{default} || $sect_id ), id => $object->id() &></td></tr> |
125 |
|
|
% } elsif( ( $prop->{type} ne 'flag' ) && ($prop->{type} ne 'checkbox') ) { |
126 |
|
|
<tr><td><& "/contenido/components/inputs/$prop->{type}.msn", prop => $prop, object=>$object, options => $options, name => $prop->{attr}, check => $object->{$prop->{attr}}, id => ($object->id() || 0) &></td></tr> |
127 |
|
|
% } |
128 |
|
|
% } |
129 |
|
|
% } |
130 |
|
|
<tr> |
131 |
|
|
<td><br> |
132 |
|
|
|
133 |
|
|
% for (0..$#properties) { |
134 |
|
|
% my $prop = $properties[$_]; |
135 |
356 |
ahitrov |
% next if $prop->{hidden} != 1 && $prop->{temp_hidden} != 1; |
136 |
|
|
% next if $prop->{attr} eq 'sections'; |
137 |
198 |
ahitrov |
<input type="hidden" name="<% $prop->{attr} %>" value="<% html_escape($object->{ $prop->{attr} }) %>"> |
138 |
|
|
% } |
139 |
|
|
<input type="hidden" name="sect_id" value="<% $sect_id %>"> |
140 |
|
|
%#если класса в свойствах обьекта нет все равно надо его пробросить как hidden |
141 |
|
|
% unless (grep {$_->{attr} eq 'class'} @properties) { |
142 |
|
|
<input type="hidden" name="class" value="<% html_escape($object->{class}) %>"> |
143 |
|
|
% } |
144 |
|
|
<input type="hidden" name="save" value="1"> |
145 |
|
|
|
146 |
|
|
</td> |
147 |
|
|
</tr> |
148 |
|
|
</table> |
149 |
|
|
</center> |
150 |
|
|
|
151 |
|
|
</form> |
152 |
|
|
|
153 |
|
|
</td> |
154 |
|
|
<td valign="top" bgcolor="white" width="50%"> |
155 |
|
|
<% spacer(w=>270) %> |
156 |
|
|
<div><iframe name="DocFinder" id="DocFinder" src="/contenido/find_document.html" frameborder="0" |
157 |
|
|
marginheight="0" marginwidth="0" width="100%" height="0"></iframe></div> |
158 |
|
|
<table width="100%" cellpadding="5" cellspacing="0" border="0"><tr><td> |
159 |
|
|
<p><font size=+1><b><nobr>Список позиций в заказе:</nobr></b></font></p> |
160 |
|
|
|
161 |
|
|
|
162 |
|
|
<& /contenido/webshop/components/order_list.msn, order => $object, filter_params => $filter_params, context => $context &> |
163 |
|
|
|
164 |
578 |
ahitrov |
% if ( (grep { $_ eq 'payments' } split /\s+/, $state->plugins) && ($active_rights == 0 || $active_rights == 1) ) { |
165 |
|
|
<h2>Онлайн-оплата:</h2> |
166 |
|
|
<& /contenido/payments/components/order_actions.msn, order_id => $object->id &> |
167 |
|
|
% } |
168 |
198 |
ahitrov |
|
169 |
|
|
</table> |
170 |
|
|
</td></tr></table> |
171 |
|
|
|
172 |
|
|
|
173 |
|
|
</td></tr> |
174 |
|
|
</table> |
175 |
|
|
|
176 |
|
|
</td></tr></table> |
177 |
|
|
</center> |
178 |
|
|
|
179 |
|
|
<script> |
180 |
|
|
<!-- |
181 |
|
|
function updateList(theFild,value,text) { |
182 |
|
|
for (var i = 0; i < theFild.options.length; i++) { |
183 |
|
|
if (theFild.options[i].value == value) { |
184 |
|
|
return false; |
185 |
|
|
} |
186 |
|
|
} |
187 |
|
|
var option_length = theFild.options.length++; |
188 |
|
|
eval("theFild.options[option_length].value=value"); |
189 |
|
|
eval("theFild.options[option_length].text=text"); |
190 |
|
|
|
191 |
|
|
Save(); this.form.submit(); |
192 |
|
|
|
193 |
|
|
} |
194 |
797 |
ahitrov |
% if ( $object->id ) { |
195 |
|
|
function export_1c() { |
196 |
|
|
document.location.href="/contenido/webshop/export_1c_<% $object->id %>.csv"; |
197 |
|
|
} |
198 |
|
|
% } |
199 |
198 |
ahitrov |
//--> |
200 |
|
|
</script> |
201 |
|
|
|
202 |
|
|
|
203 |
|
|
<%ARGS> |
204 |
|
|
|
205 |
|
|
$proto => 'documents' |
206 |
|
|
$object => undef |
207 |
|
|
$context => undef |
208 |
|
|
$sect_id => 1 |
209 |
|
|
$filter_params => undef |
210 |
|
|
|
211 |
|
|
</%ARGS> |
212 |
|
|
|
213 |
|
|
<%ONCE> |
214 |
|
|
my $PROTOS = { |
215 |
|
|
'documents' => ['документа','document.html','документу','документе'], |
216 |
|
|
'sections' => ['секции','section.html','секции','секции'], |
217 |
|
|
'links' => ['связи','link.html','связи','связи'], |
218 |
|
|
'users' => ['пользователя','users.html','пользователю','пользователе'], |
219 |
|
|
}; |
220 |
|
|
</%ONCE> |
221 |
|
|
|
222 |
|
|
<%INIT> |
223 |
|
|
return undef unless ref($object); |
224 |
|
|
|
225 |
578 |
ahitrov |
my $active_rights = $m->comp('/contenido/webshop/subs/user_rights.msn'); |
226 |
198 |
ahitrov |
my $action = $context eq 'facil' ? 'facility.html' : $context eq 'post' ? 'delivery.html' : 'take_care.html'; |
227 |
|
|
my $toopi = $project->$proto(); |
228 |
|
|
my $options = {}; |
229 |
|
|
if ($toopi && (ref($toopi) eq 'HASH') && (exists($toopi->{ $object->class }))) { |
230 |
|
|
%{ $options } = %{ $toopi->{ $object->class } }; |
231 |
|
|
} |
232 |
|
|
</%INIT> |