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