Revision 6918860d
Von Tamino Steinert vor fast 2 Jahren hinzugefügt
templates/design40_webpages/reclamation/_report_bottom.html | ||
---|---|---|
1 |
[% USE L %] |
|
2 |
[%- L.paginate_controls(models=models) %] |
templates/design40_webpages/reclamation/_report_top.html | ||
---|---|---|
1 |
[%- USE L %] |
|
2 |
[%- FILTER_HTML %] |
|
3 |
<hr> |
templates/design40_webpages/reclamation/form.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE LxERP %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE HTML %] |
|
5 |
[% # L.dump( SELF.reclamation.items_sorted ) %] |
|
6 |
|
|
7 |
<h1>[% FORM.title %] <span id='nr_in_title'>[%- SELF.reclamation.record_number -%]</span></h1> |
|
8 |
|
|
9 |
<div id="print_options" style="display:none"> |
|
10 |
<form method="post" action="controller.pl" id="print_options_form"> |
|
11 |
[% SELF.print_options %] |
|
12 |
<br> |
|
13 |
[% L.button_tag('kivi.Reclamation.print()', LxERP.t8('Print')) %] |
|
14 |
<a href="#" onclick="$('#print_options').dialog('close');">[% LxERP.t8("Cancel") %]</a> |
|
15 |
</form> |
|
16 |
</div> |
|
17 |
|
|
18 |
<div id="shipto_dialog" class="hidden"></div> |
|
19 |
|
|
20 |
<form method="post" action="controller.pl" id="reclamation_form"> |
|
21 |
[% L.hidden_tag('callback', FORM.callback) %] |
|
22 |
[% L.hidden_tag('type', FORM.type) %] |
|
23 |
[% L.hidden_tag('id', SELF.reclamation.id) %] |
|
24 |
[% L.hidden_tag('converted_from_record_type_ref', SELF.reclamation.converted_from_record_type_ref) %] |
|
25 |
[% L.hidden_tag('converted_from_record_id', SELF.reclamation.converted_from_record_id) %] |
|
26 |
|
|
27 |
[% IF !SELF.reclamation.id %] |
|
28 |
[% L.hidden_tag('form_validity_token', FORM.form_validity_token) %] |
|
29 |
[% END %] |
|
30 |
|
|
31 |
[%- INCLUDE 'common/flash.html' %] |
|
32 |
|
|
33 |
<div class="tabwidget" id="reclamation_tabs"> |
|
34 |
<ul> |
|
35 |
<li><a href="#ui-tabs-basic-data">[% 'Basic Data' | $T8 %]</a></li> |
|
36 |
[%- IF INSTANCE_CONF.get_webdav %] |
|
37 |
<li><a href="#ui-tabs-webdav">[% 'WebDAV' | $T8 %]</a></li> |
|
38 |
[%- END %] |
|
39 |
[%- IF SELF.reclamation.id AND INSTANCE_CONF.get_doc_storage %] |
|
40 |
<li><a href="controller.pl?action=File/list&file_type=document&object_type=[% HTML.escape(FORM.type) %]&object_id=[% HTML.url(SELF.reclamation.id) %]">[% 'Documents' | $T8 %]</a></li> |
|
41 |
<li><a href="controller.pl?action=File/list&file_type=attachment&object_type=[% HTML.escape(FORM.type) %]&object_id=[% HTML.url(SELF.reclamation.id) %]">[% 'Attachments' | $T8 %]</a></li> |
|
42 |
[%- END %] |
|
43 |
[%- IF SELF.reclamation.id %] |
|
44 |
<li><a href="controller.pl?action=RecordLinks/ajax_list&object_model=Reclamation&object_id=[% SELF.reclamation.id %]">[% 'Linked Records' | $T8 %]</a></li> |
|
45 |
[%- END %] |
|
46 |
</ul> |
|
47 |
|
|
48 |
[% PROCESS "reclamation/tabs/basic_data.html" %] |
|
49 |
[% PROCESS 'webdav/_list.html' %] |
|
50 |
<div id="ui-tabs-1"> |
|
51 |
[%- LxERP.t8("Loading...") %] |
|
52 |
</div> |
|
53 |
|
|
54 |
<div id="shipto_inputs" class="hidden"> |
|
55 |
[%- PROCESS 'common/_ship_to_dialog.html' |
|
56 |
cv_obj=SELF.reclamation.customervendor |
|
57 |
cs_obj=SELF.reclamation.custom_shipto |
|
58 |
cvars=SELF.reclamation.custom_shipto.cvars_by_config |
|
59 |
id_selector='#reclamation_shipto_id' %] |
|
60 |
</div> |
|
61 |
|
|
62 |
</div> |
|
63 |
|
|
64 |
</form> |
templates/design40_webpages/reclamation/tabs/basic_data.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- USE LxERP %] |
|
4 |
[%- USE L %] |
|
5 |
[%- USE P %] |
|
6 |
|
|
7 |
[%- INCLUDE 'generic/set_longdescription.html' %] |
|
8 |
|
|
9 |
<div id="ui-tabs-basic-data"> |
|
10 |
<table width="100%"> |
|
11 |
<tr valign="top"> |
|
12 |
<td> |
|
13 |
<table width="100%"> |
|
14 |
<tr> |
|
15 |
<th align="right">[%- SELF.cv == "customer" ? LxERP.t8('Customer') : LxERP.t8('Vendor') -%]</th> |
|
16 |
[% SET cv_id = SELF.cv _ '_id' %] |
|
17 |
<td> |
|
18 |
[% P.customer_vendor.picker("reclamation.${SELF.cv}" _ '_id', SELF.reclamation.$cv_id, type=SELF.cv, style='width: 300px') %] |
|
19 |
[% P.button_tag("kivi.Reclamation.show_cv_details_dialog()", LxERP.t8("Details (one letter abbreviation)")) %] |
|
20 |
</td> |
|
21 |
</tr> |
|
22 |
|
|
23 |
<tr id='contact_row' [%- IF !SELF.reclamation.${SELF.cv}.contacts.size %]style='display:none'[%- END %]> |
|
24 |
<th align="right">[% 'Contact Person' | $T8 %]</th> |
|
25 |
<td>[% L.select_tag('reclamation.contact_id', |
|
26 |
SELF.reclamation.${SELF.cv}.contacts, |
|
27 |
default=SELF.reclamation.contact_id, |
|
28 |
title_key='full_name_dep', |
|
29 |
value_key='cp_id', |
|
30 |
with_empty=1, |
|
31 |
style='width: 300px') %]</td> |
|
32 |
</tr> |
|
33 |
|
|
34 |
<tr> |
|
35 |
<th align="right">[% 'Shipping Address' | $T8 %]</th> |
|
36 |
<td> |
|
37 |
<span id='shipto_selection' [%- IF !SELF.reclamation.${SELF.cv}.shipto.size %] style='display:none'[%- END %] > |
|
38 |
[% shiptos = [ { shipto_id => "", displayable_id => LxERP.t8("No/individual shipping address") } ] ; |
|
39 |
FOREACH s = SELF.reclamation.${SELF.cv}.shipto ; |
|
40 |
shiptos.push(s) ; |
|
41 |
END ; |
|
42 |
L.select_tag('reclamation.shipto_id', |
|
43 |
shiptos, |
|
44 |
default=SELF.reclamation.shipto_id, |
|
45 |
title_key='displayable_id', |
|
46 |
value_key='shipto_id', |
|
47 |
with_empty=0, |
|
48 |
style='width: 300px') %] |
|
49 |
</span> |
|
50 |
[% L.button_tag("kivi.Reclamation.edit_custom_shipto()", LxERP.t8("Custom shipto")) %] |
|
51 |
</td> |
|
52 |
</tr> |
|
53 |
|
|
54 |
[%- IF SELF.cv == "customer" %] |
|
55 |
<tr id="billing_address_row"[% IF !SELF.reclamation.customer.additional_billing_addresses.as_list.size %] style="display:none"[% END %]> |
|
56 |
<th align="right">[% 'Custom Billing Address' | $T8 %]</th> |
|
57 |
<td> |
|
58 |
[% L.select_tag('reclamation.billing_address_id', |
|
59 |
SELF.reclamation.customer.additional_billing_addresses, |
|
60 |
default=SELF.reclamation.billing_address_id, |
|
61 |
title_key='displayable_id', |
|
62 |
value_key='id', |
|
63 |
with_empty=1, |
|
64 |
style='width: 300px') %] |
|
65 |
</td> |
|
66 |
</tr> |
|
67 |
[%- END %] |
|
68 |
|
|
69 |
[%- PROCESS reclamation/tabs/basic_data/_business_info_row.html SELF=SELF %] |
|
70 |
|
|
71 |
<tr> |
|
72 |
<th align="right">[% 'Tax rate' | $T8 %]</th> |
|
73 |
<td>[% L.select_tag('reclamation.taxzone_id', SELF.all_taxzones, default=SELF.reclamation.taxzone_id, title_key='description', style='width: 300px', class='recalc') %]</td> |
|
74 |
</tr> |
|
75 |
|
|
76 |
[% SET currency_id = SELF.reclamation.currency_id || INSTANCE_CONF.get_currency_id # use default currency for new reclamation %] |
|
77 |
<tr id="currency_settings"> |
|
78 |
<th align="right">[% 'Currency' | $T8 %]</th> |
|
79 |
<td>[% L.select_tag('reclamation.currency_id', SELF.all_currencies, default=currency_id, value_key='id', title_key='name') %]</td> |
|
80 |
</tr> |
|
81 |
<tr id="exchangerate_settings" [%- IF SELF.reclamation.currency_id==INSTANCE_CONF.get_currency_id %]style='display:none'[%- END %]> |
|
82 |
<th align="right">[% 'Exchangerate' | $T8 %]</th> |
|
83 |
<td> 1 <span id="currency_name">[% SELF.reclamation.currency.name %]</span> = |
|
84 |
[% L.input_tag('reclamation.exchangerate_as_null_number', SELF.reclamation.exchangerate_as_null_number, size="15", class="reformat_number_as_null_number numeric") %] |
|
85 |
[% INSTANCE_CONF.default_currency %] |
|
86 |
[% L.hidden_tag('old_currency_id', currency_id) %] |
|
87 |
[% L.hidden_tag('old_exchangerate', SELF.reclamation.exchangerate_as_null_number) %] |
|
88 |
</td> |
|
89 |
</tr> |
|
90 |
|
|
91 |
[%- IF SELF.all_languages.size %] |
|
92 |
<tr> |
|
93 |
<th align="right">[% 'Language' | $T8 %]</th> |
|
94 |
<td> |
|
95 |
[% L.select_tag('reclamation.language_id', SELF.all_languages, default=SELF.reclamation.language_id, title_key='description', with_empty=1, style='width:300px') %] |
|
96 |
</td> |
|
97 |
</tr> |
|
98 |
[%- END %] |
|
99 |
|
|
100 |
[%- IF SELF.all_departments.size %] |
|
101 |
<tr> |
|
102 |
<th align="right">[% 'Department' | $T8 %]</th> |
|
103 |
<td> |
|
104 |
[% L.select_tag('reclamation.department_id', SELF.all_departments, default=SELF.reclamation.department_id, title_key='description', with_empty=1, style='width:300px') %] |
|
105 |
</td> |
|
106 |
</tr> |
|
107 |
[%- END %] |
|
108 |
|
|
109 |
<tr> |
|
110 |
<th align="right">[% 'Shipping Point' | $T8 %]</th> |
|
111 |
<td>[% L.input_tag('reclamation.shippingpoint', SELF.reclamation.shippingpoint, style='width: 300px') %]</td> |
|
112 |
</tr> |
|
113 |
|
|
114 |
<tr> |
|
115 |
<th align="right">[% 'Ship via' | $T8 %]</th> |
|
116 |
<td>[% L.input_tag('reclamation.shipvia', SELF.reclamation.shipvia, style='width: 300px') %]</td> |
|
117 |
</tr> |
|
118 |
|
|
119 |
<tr> |
|
120 |
<th align="right">[% 'Transaction description' | $T8 %]</th> |
|
121 |
<td>[% L.input_tag('reclamation.transaction_description', SELF.reclamation.transaction_description, 'data-validate'=INSTANCE_CONF.get_require_transaction_description_ps ? 'required' : '', style='width: 300px') %]</td> |
|
122 |
</tr> |
|
123 |
|
|
124 |
<tr> |
|
125 |
<th align="right">[% 'Project Number' | $T8 %]</th> |
|
126 |
<td>[% P.project.picker('reclamation.globalproject_id', SELF.reclamation.globalproject_id, style='width: 300px') %]</td> |
|
127 |
</tr> |
|
128 |
|
|
129 |
</table> |
|
130 |
</td> |
|
131 |
|
|
132 |
<td align="right"> |
|
133 |
<table> |
|
134 |
|
|
135 |
<tr> |
|
136 |
<td colspan="2" align="center"> |
|
137 |
[%- IF SELF.reclamation.id %] |
|
138 |
<label for="reclamation.delivered">[% 'Delivery Order(s) for full qty created' | $T8 %]</label> |
|
139 |
[% L.yes_no_tag('reclamation.delivered', SELF.reclamation.delivered) %] |
|
140 |
<label for="reclamation.closed">[% 'Closed' | $T8 %]</label> |
|
141 |
[% L.yes_no_tag('reclamation.closed', SELF.reclamation.closed) %] |
|
142 |
[%- END %] |
|
143 |
</td> |
|
144 |
</tr> |
|
145 |
|
|
146 |
<tr> |
|
147 |
<th align="right">[% 'Employee' | $T8 %]</th> |
|
148 |
<td>[% L.select_tag('reclamation.employee_id', |
|
149 |
SELF.all_employees, |
|
150 |
default=(SELF.reclamation.employee_id ? SELF.reclamation.employee_id : SELF.current_employee_id), |
|
151 |
title_key='safe_name') %]</td> |
|
152 |
</tr> |
|
153 |
|
|
154 |
[% IF SELF.cv == 'customer' %] |
|
155 |
<tr> |
|
156 |
<th align="right">[% 'Salesman' | $T8 %]</th> |
|
157 |
<td>[% L.select_tag('reclamation.salesman_id', |
|
158 |
SELF.all_salesmen, |
|
159 |
default=(SELF.reclamation.salesman_id ? SELF.reclamation.salesman_id : SELF.current_employee_id), |
|
160 |
title_key='safe_name') %]</td> |
|
161 |
</tr> |
|
162 |
[% END %] |
|
163 |
|
|
164 |
<tr> |
|
165 |
<th width="70%" align="right" nowrap>[% 'Reclamation Number' | $T8 %]</th> |
|
166 |
<td>[% L.input_tag('reclamation.record_number', SELF.reclamation.record_number, size = 11, onchange='kivi.Reclamation.set_number_in_title(this)') %]</td> |
|
167 |
</tr> |
|
168 |
|
|
169 |
<tr> |
|
170 |
<th width="70%" align="right" nowrap>[% 'Customer Record Number' | $T8 %]</th> |
|
171 |
<td>[% L.input_tag('reclamation.cv_record_number', SELF.reclamation.cv_record_number, size = 11) %]</td> |
|
172 |
</tr> |
|
173 |
|
|
174 |
<tr> |
|
175 |
<th width="70%" align="right" nowrap>[% 'Reclamation Date' | $T8 %]</th> |
|
176 |
<td>[% L.date_tag('reclamation.transdate_as_date', SELF.reclamation.transdate_as_date) %]</td> |
|
177 |
</tr> |
|
178 |
|
|
179 |
<tr> |
|
180 |
<th width="70%" align="right" nowrap>[% 'Tax point' | $T8 %]</th> |
|
181 |
<td>[% L.date_tag('reclamation.tax_point_as_date', SELF.reclamation.tax_point_as_date, class="recalc") %]</td> |
|
182 |
</tr> |
|
183 |
|
|
184 |
<tr> |
|
185 |
<th width="70%" align="right" nowrap>[% 'Deadline' | $T8 %]</th> |
|
186 |
<td>[% L.date_tag('reclamation.reqdate_as_date', SELF.reclamation.reqdate_as_date, class="recalc") %]</td> |
|
187 |
</tr> |
|
188 |
|
|
189 |
<tr> |
|
190 |
<th width="70%" align="right" nowrap>[% 'Insert Date' | $T8 %]</th> |
|
191 |
<td>[% SELF.reclamation.itime_as_date %]</td> |
|
192 |
</tr> |
|
193 |
|
|
194 |
</table> |
|
195 |
|
|
196 |
</td> |
|
197 |
</tr> |
|
198 |
</table> |
|
199 |
|
|
200 |
[%- PROCESS reclamation/tabs/basic_data/_item_input.html SELF=SELF %] |
|
201 |
|
|
202 |
[% L.button_tag('kivi.Reclamation.open_multi_items_dialog()', LxERP.t8('Add multiple items')) %] |
|
203 |
|
|
204 |
<table width="100%"> |
|
205 |
<tr> |
|
206 |
<td> |
|
207 |
[%- IF SELF.positions_scrollbar_height -%] |
|
208 |
[%- SET scroll_style = 'style="overflow-y: auto; height:' _ SELF.positions_scrollbar_height _ 'vh;"' -%] |
|
209 |
[%- ELSE -%] |
|
210 |
[%- SET scroll_style = '' -%] |
|
211 |
[%- END -%] |
|
212 |
<div id="row_table_scroll_id" [%- scroll_style -%]> |
|
213 |
<table id="row_table_id" width="100%"> |
|
214 |
<thead> |
|
215 |
<tr class="listheading"> |
|
216 |
<th class="listheading" style='text-align:center' nowrap width="1"> |
|
217 |
[%- IF MYCONFIG.show_form_details %] |
|
218 |
[%- L.img_tag(src="image/collapse.svg", alt=LxERP.t8('Hide all details'), title=LxERP.t8('Hide all details'), id='expand_all', "data-expanded"="1") %] |
|
219 |
[%- ELSE %] |
|
220 |
[%- L.img_tag(src="image/expand.svg", alt=LxERP.t8('Show all details'), title=LxERP.t8('Show all details'), id='expand_all') %] |
|
221 |
[%- END %] |
|
222 |
</th> |
|
223 |
<th class="listheading" nowrap width="3" >[%- 'position' | $T8 %] </th> |
|
224 |
<th class="listheading" style='text-align:center' nowrap width="1"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th> |
|
225 |
<th class="listheading" style='text-align:center' nowrap width="1"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th> |
|
226 |
[%- IF SELF.show_update_button -%] |
|
227 |
<th class="listheading" style='text-align:center' nowrap width="1"> |
|
228 |
[%- L.img_tag(src="image/rotate_cw.svg", |
|
229 |
alt=LxERP.t8('Update from master data'), |
|
230 |
title= LxERP.t8('Update from master data'), |
|
231 |
onclick="if (!confirm('" _ LxERP.t8("Are you sure to update all positions from master data?") _ "')) return false; kivi.Reclamation.update_all_rows_from_master_data();", |
|
232 |
id='update_from_master') %] |
|
233 |
</th> |
|
234 |
[%- END %] |
|
235 |
<th id="partnumber_header_id" class="listheading" nowrap width="15"><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("partnumber")'> [%- 'Partnumber' | $T8 %]</a></th> |
|
236 |
[%- IF SELF.search_cvpartnumber -%] |
|
237 |
<th id="cvpartnumber_header_id" class="listheading" nowrap width="15"><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("cvpartnumber")' > [%- SELF.cv == "customer" ? LxERP.t8('Customer Part Number') : LxERP.t8('Model') %]</a></th> |
|
238 |
[%- END -%] |
|
239 |
<th id="partclass_header_id" class="listheading" nowrap width="2">[%- 'Type' | $T8 %]</th> |
|
240 |
<th id="description_header_id" class="listheading" nowrap ><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("description")'>[%- 'Description' | $T8 %]</a></th> |
|
241 |
<th id="reason_header_id" class="listheading" nowrap width="100"><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("reason")'>[%- 'Reason' | $T8 %]</a></th> |
|
242 |
<th id="reason_description_ext_header_id" class="listheading" nowrap ><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("reason_description_ext")'>[%- 'Reason Description Extern' | $T8 %]</a></th> |
|
243 |
<th id="reason_description_int_header_id" class="listheading" nowrap ><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("reason_description_int")'>[%- 'Reason Description Intern' | $T8 %]</a></th> |
|
244 |
<th id="qty_header_id" class="listheading" nowrap width="5" ><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("qty")'> [%- 'Qty' | $T8 %]</a></th> |
|
245 |
<th class="listheading" nowrap width="5" >[%- 'Price Factor' | $T8 %] </th> |
|
246 |
<th class="listheading" nowrap width="5" >[%- 'Unit' | $T8 %] </th> |
|
247 |
<th class="listheading" nowrap width="5" >[%- 'Price Source' | $T8 %] </th> |
|
248 |
<th id="sellprice_header_id" class="listheading" nowrap width="15" ><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("sellprice")'> [%- 'Price' | $T8 %]</a></th> |
|
249 |
<th id="discount_header_id" class="listheading" nowrap width="15" ><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("discount")'> [%- 'Discount' | $T8 %]</a></th> |
|
250 |
<th class="listheading" nowrap width="10">[%- 'Extended' | $T8 %] </th> |
|
251 |
</tr> |
|
252 |
</thead> |
|
253 |
|
|
254 |
[%- FOREACH item = SELF.reclamation.items_sorted %] |
|
255 |
[%- PROCESS reclamation/tabs/basic_data/_row.html ITEM=item ID=(item.id||item.new_fake_id) -%] |
|
256 |
[%- END %] |
|
257 |
|
|
258 |
</table> |
|
259 |
</div> |
|
260 |
|
|
261 |
</td> |
|
262 |
</tr> |
|
263 |
|
|
264 |
<tr> |
|
265 |
</tr> |
|
266 |
|
|
267 |
<tr> |
|
268 |
<td colspan="100%" width="100%"> |
|
269 |
<table width="100%"> |
|
270 |
<tr> |
|
271 |
<td> |
|
272 |
<table> |
|
273 |
<tr> |
|
274 |
<th align="left">[% 'Notes' | $T8 %]</th> |
|
275 |
<th align="left">[% 'Internal Notes' | $T8 %]</th> |
|
276 |
</tr> |
|
277 |
<tr valign="top"> |
|
278 |
<td> |
|
279 |
[% L.textarea_tag('reclamation.notes', SELF.reclamation.notes, wrap="soft", style="width: 350px; height: 150px", class="texteditor") %] |
|
280 |
</td> |
|
281 |
<td> |
|
282 |
[% L.textarea_tag('reclamation.intnotes', SELF.reclamation.intnotes, wrap="soft", style="width: 350px; height: 150px") %] |
|
283 |
</td> |
|
284 |
</tr> |
|
285 |
</table> |
|
286 |
</td> |
|
287 |
|
|
288 |
<td> |
|
289 |
<table> |
|
290 |
<tr> |
|
291 |
<th align="right">[% 'Payment Terms' | $T8 %]</th> |
|
292 |
<td>[% L.select_tag('reclamation.payment_id', |
|
293 |
SELF.all_payment_terms, |
|
294 |
default = SELF.reclamation.payment_id, |
|
295 |
with_empty = 1, |
|
296 |
title_key = 'description', |
|
297 |
style = 'width: 250px') %]</td> |
|
298 |
</tr> |
|
299 |
<tr> |
|
300 |
<th align="right">[% 'Delivery Terms' | $T8 %]</th> |
|
301 |
<td>[% L.select_tag('reclamation.delivery_term_id', |
|
302 |
SELF.all_delivery_terms, |
|
303 |
default = SELF.reclamation.delivery_term_id, |
|
304 |
with_empty = 1, |
|
305 |
title_key = 'description', |
|
306 |
style = 'width: 250px') %]</td> |
|
307 |
</tr> |
|
308 |
</table> |
|
309 |
</td> |
|
310 |
|
|
311 |
|
|
312 |
<td align="right"> |
|
313 |
<table> |
|
314 |
<tr id="taxincluded_row_id" [%- IF !SELF.taxes.size %]style="display:none"[%- END %]> |
|
315 |
<td align=right colspan="2"> |
|
316 |
<label for="reclamation.taxincluded"><b>[% 'Tax Included' | $T8 %]</b></label> |
|
317 |
[% L.yes_no_tag('reclamation.taxincluded', SELF.reclamation.taxincluded, class='recalc') %] |
|
318 |
</td> |
|
319 |
</tr> |
|
320 |
|
|
321 |
<tr id="subtotal_row_id" [%- IF SELF.reclamation.taxincluded %]style="display:none"[%- END %]> |
|
322 |
<th align="right">[%- 'Subtotal' | $T8 %]</th> |
|
323 |
<td align="right"> |
|
324 |
[%- L.div_tag(SELF.reclamation.netamount_as_number, id='netamount_id') %] |
|
325 |
</td> |
|
326 |
</tr> |
|
327 |
[%- FOREACH tax = SELF.reclamation.taxes %] |
|
328 |
[%- PROCESS reclamation/tabs/basic_data/_tax_row.html TAX=tax TAXINCLUDED=SELF.reclamation.taxincluded %] |
|
329 |
[%- END %] |
|
330 |
<tr id="amount_row_id"> |
|
331 |
<th align="right">[%- 'Total' | $T8 %]</th> |
|
332 |
<td align="right"> |
|
333 |
[%- L.div_tag(SELF.reclamation.amount_as_number, id='amount_id') %] |
|
334 |
</td> |
|
335 |
</tr> |
|
336 |
</table> |
|
337 |
</td> |
|
338 |
|
|
339 |
</tr> |
|
340 |
</table> |
|
341 |
</td> |
|
342 |
</tr> |
|
343 |
|
|
344 |
</table> |
|
345 |
|
|
346 |
</div> |
|
347 |
|
|
348 |
[% L.sortable_element('#row_table_id') %] |
templates/design40_webpages/reclamation/tabs/basic_data/_business_info_row.html | ||
---|---|---|
1 |
[%- USE T8 %][%- USE HTML %] |
|
2 |
|
|
3 |
<tr id='business_info_row' [%- IF !SELF.reclamation.customervendor.business_id %]style='display:none'[%- END %]> |
|
4 |
<th align="right">[%- IF SELF.cv == 'customer' -%] |
|
5 |
[%- 'Customer type' | $T8 -%] |
|
6 |
[%- ELSE -%] |
|
7 |
[%- 'Vendor type' | $T8 -%] |
|
8 |
[%- END -%]</th> |
|
9 |
<td>[% HTML.escape(SELF.reclamation.customervendor.business.description) %]; [% 'Trade Discount' | $T8 %] [% SELF.reclamation.customervendor.business.discount_as_percent %] %</td> |
|
10 |
</tr> |
templates/design40_webpages/reclamation/tabs/basic_data/_item_input.html | ||
---|---|---|
1 |
[%- USE T8 %][%- USE HTML %][%- USE LxERP %][%- USE L %][%- USE P %] |
|
2 |
|
|
3 |
<div> |
|
4 |
<table id="input_row_table_id"> |
|
5 |
<thead> |
|
6 |
<tr class="listheading"> |
|
7 |
<th class="listheading" nowrap >[%- '+' | $T8 %] </th> |
|
8 |
<th class="listheading" nowrap >[%- 'position' | $T8 %] </th> |
|
9 |
<th class="listheading" nowrap >[%- 'Part' | $T8 %] </th> |
|
10 |
<th class="listheading" nowrap >[%- 'Description' | $T8 %] </th> |
|
11 |
<th class="listheading" nowrap width="5" >[%- 'Qty' | $T8 %] </th> |
|
12 |
<th class="listheading" nowrap width="15">[%- 'Price' | $T8 %] </th> |
|
13 |
<th class="listheading" nowrap width="5" >[%- 'Discount' | $T8 %] </th> |
|
14 |
<th></th> |
|
15 |
</tr> |
|
16 |
</thead> |
|
17 |
<tbody> |
|
18 |
<tr valign="top" class="listrow"> |
|
19 |
<td class="tooltipster-html" title="[%- 'Create a new part' | $T8 -%]"> |
|
20 |
[% SET type_options = [[ 'part', LxERP.t8('Part') ], [ 'assembly', LxERP.t8('Assembly') ], [ 'service', LxERP.t8('Service') ] ] %] |
|
21 |
[%- IF INSTANCE_CONF.get_feature_experimental_assortment %] |
|
22 |
[%- type_options.push([ 'assortment', LxERP.t8('Assortment')]) %] |
|
23 |
[%- END %] |
|
24 |
[% L.select_tag('add_item.create_part_type', type_options) %] |
|
25 |
[% L.button_tag('kivi.Reclamation.create_part()', LxERP.t8('+')) %] |
|
26 |
</td> |
|
27 |
<td>[% L.input_tag('add_item.position', '', size = 5, class="add_item_input numeric") %]</td> |
|
28 |
<td> |
|
29 |
[%- SET PARAM_KEY = SELF.cv == "customer" ? 'with_customer_partnumber' : 'with_makemodel' -%] |
|
30 |
[%- SET PARAM_VAL = SELF.search_cvpartnumber -%] |
|
31 |
[% P.part.picker('add_item.parts_id', SELF.created_part, style='width: 300px', class="add_item_input", |
|
32 |
fat_set_item=1, |
|
33 |
multiple_pos_input=1, |
|
34 |
action={set_multi_items='kivi.Reclamation.add_multi_items'}, |
|
35 |
classification_id=SELF.part_picker_classification_ids.as_list.join(','), |
|
36 |
$PARAM_KEY=PARAM_VAL) %]</td> |
|
37 |
<td>[% L.input_tag('add_item.description', SELF.created_part.description, class="add_item_input") %]</td> |
|
38 |
<td> |
|
39 |
[% L.input_tag('add_item.qty_as_number', '', size = 5, class="add_item_input numeric") %] |
|
40 |
[% L.hidden_tag('add_item.unit', SELF.created_part.unit, class="add_item_input") %] |
|
41 |
</td> |
|
42 |
[%- SET price = LxERP.format_amount(((SELF.type == 'sales_reclamation') ? SELF.created_part.sellprice : SELF.created_part.lastcost), -2) -%] |
|
43 |
<td>[% L.input_tag('add_item.sellprice_as_number', price, size = 10, class="add_item_input numeric") %]</td> |
|
44 |
<td>[% L.input_tag('add_item.discount_as_percent', '', size = 5, class="add_item_input numeric") %]</td> |
|
45 |
<td>[% L.button_tag('kivi.Reclamation.add_item()', LxERP.t8('Add part')) %]</td> |
|
46 |
</tr> |
|
47 |
</tbody> |
|
48 |
</table> |
|
49 |
</div> |
templates/design40_webpages/reclamation/tabs/basic_data/_price_sources_dialog.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- USE L %] |
|
4 |
[%- USE LxERP %] |
|
5 |
[%- #L.dump( price_source ) %] |
|
6 |
|
|
7 |
[% SET best_price = price_source.best_price %] |
|
8 |
[% SET best_discount = price_source.best_discount %] |
|
9 |
|
|
10 |
[% SET price_editable = 0 %] |
|
11 |
[% IF (FORM.type == "sales_reclamation") %] |
|
12 |
[% SET price_editable = AUTH.assert('sales_edit_prices', 1) %] |
|
13 |
[% END %] |
|
14 |
[% IF (FORM.type == "purchase_reclamation") %] |
|
15 |
[% SET price_editable = AUTH.assert('purchase_edit_prices', 1) %] |
|
16 |
[% END %] |
|
17 |
|
|
18 |
[% SET exfactor = price_source.record.exchangerate ? 1 / price_source.record.exchangerate : 1 %] |
|
19 |
[% SET exnoshow = price_source.record.currency_id==INSTANCE_CONF.get_currency_id %] |
|
20 |
[% SET places = exnoshow ? -2 : 5 %] |
|
21 |
<h2>[% 'Prices' | $T8 %]</h2> |
|
22 |
|
|
23 |
<table> |
|
24 |
<tr class='listheading'> |
|
25 |
<th></th> |
|
26 |
<th>[% 'Price Source' | $T8 %]</th> |
|
27 |
<th>[% 'Price' | $T8 %]</th> |
|
28 |
<th [%- IF exnoshow -%]style='display:none'[%- END %]> |
|
29 |
[% 'Price' | $T8 -%]/[%- price_source.record.currency.name %] |
|
30 |
</th> |
|
31 |
<th>[% 'Best Price' | $T8 %]</th> |
|
32 |
<th>[% 'Details' | $T8 %]</th> |
|
33 |
</tr> |
|
34 |
<tr class='listrow'> |
|
35 |
[%- IF price_source.record_item.active_price_source %] |
|
36 |
<td>[% L.button_tag('kivi.Reclamation.update_price_source(\'' _ FORM.item_id _ '\', \'\', \'' _ LxERP.t8('None (PriceSource)') _ '\', \'\', ' _ price_editable _ ')', LxERP.t8('Select')) %]</td> |
|
37 |
[%- ELSE %] |
|
38 |
<td><b>[% 'Selected' | $T8 %]</b></td> |
|
39 |
[%- END %] |
|
40 |
<td>[% 'None (PriceSource)' | $T8 %]</td> |
|
41 |
<td>-</td> |
|
42 |
<td [%- IF exnoshow -%]style='display:none'[%- END %]>-</td> |
|
43 |
<td></td> |
|
44 |
<td></td> |
|
45 |
</tr> |
|
46 |
[%- FOREACH price IN price_source.available_prices %] |
|
47 |
<tr class='listrow'> |
|
48 |
[%- IF price_source.record_item.active_price_source != price.source %] |
|
49 |
<td>[% L.button_tag('kivi.Reclamation.update_price_source(\'' _ FORM.item_id _ '\', \'' _ price.source _ '\', \'' _ price.source_description _ '\', \'' _ LxERP.format_amount(price.price * exfactor, places) _ '\', ' _ price_editable _ ')', LxERP.t8('Select')) %]</td> |
|
50 |
[%- ELSIF price_source.record_item.sellprice * 1 != price.price * 1 %] |
|
51 |
<td>[% L.button_tag('kivi.Reclamation.update_price_source(\'' _ FORM.item_id _ '\', \'' _ price.source _ '\', \'' _ price.source_description _ '\', \'' _ LxERP.format_amount(price.price * exfactor, places) _ '\', ' _ price_editable _ ')', LxERP.t8('Update Price')) %]</td> |
|
52 |
[%- ELSE %] |
|
53 |
<td><b>[% 'Selected' | $T8 %]</b></td> |
|
54 |
[% END %] |
|
55 |
<td>[% price.source_description | html %]</td> |
|
56 |
<td>[% price.price_as_number %]</td> |
|
57 |
<td [%- IF exnoshow -%]style='display:none'[%- END %]> |
|
58 |
[% LxERP.format_amount(price.price * exfactor, places) %] |
|
59 |
</td> |
|
60 |
[% IF price.source == best_price.source %] |
|
61 |
<td align='center'>•</td> |
|
62 |
[% ELSE %] |
|
63 |
<td></td> |
|
64 |
[% END %] |
|
65 |
<td>[% price.description | html %]</td> |
|
66 |
</tr> |
|
67 |
[%- END %] |
|
68 |
</table> |
|
69 |
|
|
70 |
<h2>[% 'Discounts' | $T8 %]</h2> |
|
71 |
|
|
72 |
<table> |
|
73 |
<tr class='listheading'> |
|
74 |
<th></th> |
|
75 |
<th>[% 'Price Source' | $T8 %]</th> |
|
76 |
<th>[% 'Discount' | $T8 %]</th> |
|
77 |
<th>[% 'Best Discount' | $T8 %]</th> |
|
78 |
<th>[% 'Details' | $T8 %]</th> |
|
79 |
</tr> |
|
80 |
<tr class='listrow'> |
|
81 |
[%- IF price_source.record_item.active_discount_source %] |
|
82 |
<td>[% L.button_tag('kivi.Reclamation.update_discount_source(\'' _ FORM.item_id _ '\', \'\', \'' _ LxERP.t8('None (PriceSource Discount)') _ '\', \'\', ' _ price_editable _ ')', LxERP.t8('Select')) %]</td> |
|
83 |
[%- ELSE %] |
|
84 |
<td><b>[% 'Selected' | $T8 %]</b></td> |
|
85 |
[%- END %] |
|
86 |
<td>[% 'None (PriceSource Discount)' | $T8 %]</td> |
|
87 |
<td>-</td> |
|
88 |
<td></td> |
|
89 |
<td></td> |
|
90 |
</tr> |
|
91 |
[%- FOREACH price IN price_source.available_discounts %] |
|
92 |
<tr class='listrow'> |
|
93 |
[%- IF price_source.record_item.active_discount_source != price.source %] |
|
94 |
<td>[% L.button_tag('kivi.Reclamation.update_discount_source(\'' _ FORM.item_id _ '\', \'' _ price.source _ '\', \'' _ price.source_description _ '\', \'' _ price.discount_as_percent _ '\', ' _ price_editable _ ')', LxERP.t8('Select')) %]</td> |
|
95 |
[%- ELSIF price_source.record_item.discount * 1 != price.discount * 1 %] |
|
96 |
<td>[% L.button_tag('kivi.Reclamation.update_discount_source(\'' _ FORM.item_id _ '\', \'' _ price.source _ '\', \'' _ price.source_description _ '\', \'' _ price.discount_as_percent _ '\', ' _ price_editable _ ')', LxERP.t8('Update Discount')) %]</td> |
|
97 |
[%- ELSE %] |
|
98 |
<td><b>[% 'Selected' | $T8 %]</b></td> |
|
99 |
[% END %] |
|
100 |
<td>[% price.source_description | html %]</td> |
|
101 |
<td>[% price.discount_as_percent %] %</td> |
|
102 |
[% IF price.source == best_discount.source %] |
|
103 |
<td align='center'>•</td> |
|
104 |
[% ELSE %] |
|
105 |
<td></td> |
|
106 |
[% END %] |
|
107 |
<td>[% price.description | html %]</td> |
|
108 |
</tr> |
|
109 |
[%- END %] |
|
110 |
</table> |
templates/design40_webpages/reclamation/tabs/basic_data/_row.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- USE LxERP %] |
|
4 |
[%- USE L %] |
|
5 |
[%- USE P %] |
|
6 |
[% # L.dump( ITEM ) %] |
|
7 |
|
|
8 |
<tbody class="row_entry listrow" data-position="[%- HTML.escape(ITEM.position) -%]"[%- IF MYCONFIG.show_form_details -%] data-expanded="1"[%- END -%]> |
|
9 |
<tr> |
|
10 |
[% L.hidden_tag("reclamation_items_ids[+]", ID) %] |
|
11 |
[% L.hidden_tag("converted_from_record_item_type_refs[+]", ITEM.converted_from_record_item_type_ref) %] |
|
12 |
[% L.hidden_tag("converted_from_record_item_ids[+]", ITEM.converted_from_record_item_id) %] |
|
13 |
[% L.hidden_tag("reclamation.reclamation_items[+].id", ITEM.id, id='item_' _ ID) %] |
|
14 |
[% L.hidden_tag("reclamation.reclamation_items[].parts_id", ITEM.parts_id) %] |
|
15 |
<td align="center"> |
|
16 |
[%- IF MYCONFIG.show_form_details %] |
|
17 |
[% L.img_tag(src="image/collapse.svg", |
|
18 |
alt=LxERP.t8('Hide details'), title=LxERP.t8('Hide details'), class="expand") %] |
|
19 |
[%- ELSE %] |
|
20 |
[% L.img_tag(src="image/expand.svg", |
|
21 |
alt=LxERP.t8('Show details'), title=LxERP.t8('Show details'), class="expand") %] |
|
22 |
[%- END %] |
|
23 |
</td> |
|
24 |
<td> |
|
25 |
<div name="position" class="numeric"> |
|
26 |
[% HTML.escape(ITEM.position) %] |
|
27 |
</div> |
|
28 |
</td> |
|
29 |
<td align="center"> |
|
30 |
<img src="image/updown.png" alt="[%- LxERP.t8('reclamation item') %]" class="dragdrop"> |
|
31 |
</td> |
|
32 |
<td align="center"> |
|
33 |
[%- L.button_tag("kivi.Reclamation.delete_reclamation_item_row(this)", |
|
34 |
LxERP.t8("X"), |
|
35 |
confirm=LxERP.t8("Are you sure?")) %] |
|
36 |
</td> |
|
37 |
[%- IF SELF.show_update_button -%] |
|
38 |
<td align="center"> |
|
39 |
[%- L.img_tag(src="image/rotate_cw.svg", |
|
40 |
alt=LxERP.t8('Update from master data'), |
|
41 |
title= LxERP.t8('Update from master data'), |
|
42 |
onclick="if (!confirm('" _ LxERP.t8("Are you sure to update this position from master data?") _ "')) return false; kivi.Reclamation.update_row_from_master_data(this);", |
|
43 |
id='update_from_master') %] |
|
44 |
</td> |
|
45 |
[%- END -%] |
|
46 |
<td> |
|
47 |
<div name="partnumber"> |
|
48 |
[%- P.link_tag(SELF.url_for(controller='Part', action='edit', 'part.id'=ITEM.part.id), ITEM.part.partnumber, target="_blank", title=LxERP.t8('Open in new window')) -%] |
|
49 |
</div> |
|
50 |
</td> |
|
51 |
[%- IF SELF.search_cvpartnumber -%] |
|
52 |
<td> |
|
53 |
<div name="cvpartnumber">[% HTML.escape(ITEM.cvpartnumber) %]</div> |
|
54 |
</td> |
|
55 |
[%- END -%] |
|
56 |
<td> |
|
57 |
<div name="partclassification">[% ITEM.part.presenter.typeclass_abbreviation %]</div> |
|
58 |
</td> |
|
59 |
<td> |
|
60 |
[% L.areainput_tag("reclamation.reclamation_items[].description", |
|
61 |
ITEM.description, |
|
62 |
size='40', |
|
63 |
style='width: 300px') %] |
|
64 |
[%- L.hidden_tag("reclamation.reclamation_items[].longdescription", ITEM.longdescription) %] |
|
65 |
[%- L.button_tag("kivi.Reclamation.show_longdescription_dialog(this)", LxERP.t8("L")) %] |
|
66 |
</td> |
|
67 |
<td>[% L.select_tag("reclamation.reclamation_items[].reason_id", |
|
68 |
SELF.reclamation.valid_reclamation_reasons, |
|
69 |
default=ITEM.reason_id, |
|
70 |
title_key = 'name', |
|
71 |
value_key = 'id', |
|
72 |
with_empty=1,) %] |
|
73 |
</td> |
|
74 |
<td> |
|
75 |
[% L.areainput_tag("reclamation.reclamation_items[].reason_description_ext", |
|
76 |
ITEM.reason_description_ext, |
|
77 |
size='40', |
|
78 |
style='width: 150px') %] |
|
79 |
</td> |
|
80 |
<td> |
|
81 |
[% L.areainput_tag("reclamation.reclamation_items[].reason_description_int", |
|
82 |
ITEM.reason_description_int, |
|
83 |
size='40', |
|
84 |
style='width: 150px') %] |
|
85 |
</td> |
|
86 |
<td nowrap> |
|
87 |
[%- L.input_tag("reclamation.reclamation_items[].qty_as_number", |
|
88 |
ITEM.qty_as_number, |
|
89 |
size = 5, |
|
90 |
class="recalc reformat_number numeric") %] |
|
91 |
[%- IF ITEM.part.formel -%] |
|
92 |
[%- L.button_tag("kivi.Reclamation.show_calculate_qty_dialog(this)", LxERP.t8("*/")) %] |
|
93 |
[%- L.hidden_tag("formula[+]", ITEM.part.formel) -%] |
|
94 |
[%- END -%] |
|
95 |
</td> |
|
96 |
<td> |
|
97 |
[%- L.select_tag("reclamation.reclamation_items[].price_factor_id", |
|
98 |
SELF.all_price_factors, |
|
99 |
default = ITEM.price_factor_id, |
|
100 |
title_key = 'description', |
|
101 |
with_empty = 1, |
|
102 |
class="recalc") %] |
|
103 |
</td> |
|
104 |
<td nowrap> |
|
105 |
[%- L.select_tag("reclamation.reclamation_items[].unit", |
|
106 |
ITEM.part.available_units, |
|
107 |
default = ITEM.unit, |
|
108 |
title_key = 'name', |
|
109 |
value_key = 'name', |
|
110 |
class = 'unitselect') %] |
|
111 |
</td> |
|
112 |
<td> |
|
113 |
[%- SET EDIT_PRICE_SOURCE = !(ITEM.is_linked_to_record) %] |
|
114 |
<div name="editable_price_source" [%- IF !EDIT_PRICE_SOURCE %]style="display:none"[%- END %]> |
|
115 |
[%- L.button_tag("kivi.Reclamation.price_chooser_item_row(this)", |
|
116 |
ITEM.active_price_source.source_description _ ' | ' _ ITEM.active_discount_source.source_description, |
|
117 |
name = "price_chooser_button") %] |
|
118 |
</div> |
|
119 |
<div name="not_editable_price_source" [%- IF EDIT_PRICE_SOURCE %]style="display:none"[%- END %]> |
|
120 |
[%- L.div_tag(ITEM.active_price_source.description _ ' | ' _ ITEM.active_discount_source.source_description, style="white-space:nowrap;") %] |
|
121 |
</div> |
|
122 |
</td> |
|
123 |
[% SET RIGHT_TO_EDIT_PRICES = 0 %] |
|
124 |
[% IF (SELF.type == "sales_reclamation") %] |
|
125 |
[% SET RIGHT_TO_EDIT_PRICES = AUTH.assert('sales_edit_prices', 1) %] |
|
126 |
[% END %] |
|
127 |
[% IF (SELF.type == "purchase_reclamation") %] |
|
128 |
[% SET RIGHT_TO_EDIT_PRICES = AUTH.assert('purchase_edit_prices', 1) %] |
|
129 |
[% END %] |
|
130 |
<td> |
|
131 |
[%- L.hidden_tag("reclamation.reclamation_items[].active_price_source", ITEM.active_price_source.source) %] |
|
132 |
[%- SET EDIT_PRICE = (RIGHT_TO_EDIT_PRICES && ITEM.active_price_source.source == '' && !ITEM.is_linked_to_record) %] |
|
133 |
<div name="editable_price" [%- IF !EDIT_PRICE %]style="display:none"[%- END %] class="numeric"> |
|
134 |
[%- L.input_tag("reclamation.reclamation_items[].sellprice_as_number", |
|
135 |
ITEM.sellprice_as_number, |
|
136 |
size = 10, |
|
137 |
disabled=(EDIT_PRICE? '' : 1), |
|
138 |
class="recalc reformat_number numeric") %] |
|
139 |
</div> |
|
140 |
<div name="not_editable_price" [%- IF EDIT_PRICE %]style="display:none"[%- END %]> |
|
141 |
[%- L.div_tag(ITEM.sellprice_as_number, name="sellprice_text", class="numeric") %] |
|
142 |
[%- L.hidden_tag("reclamation.reclamation_items[].sellprice_as_number", |
|
143 |
ITEM.sellprice_as_number, |
|
144 |
disabled=(EDIT_PRICE? 1 : '')) %] |
|
145 |
</div> |
|
146 |
</td> |
|
147 |
<td> |
|
148 |
[%- L.hidden_tag("reclamation.reclamation_items[].active_discount_source", ITEM.active_discount_source.source) %] |
|
149 |
[%- SET EDIT_DISCOUNT = (RIGHT_TO_EDIT_PRICES && ITEM.active_discount_source.source == '' && !ITEM.is_linked_to_record) %] |
|
150 |
<div name="editable_discount" [%- IF !EDIT_DISCOUNT %]style="display:none"[%- END %] class="numeric"> |
|
151 |
[%- L.input_tag("reclamation.reclamation_items[].discount_as_percent", |
|
152 |
ITEM.discount_as_percent, |
|
153 |
size = 5, |
|
154 |
disabled=(EDIT_DISCOUNT? '' : 1), |
|
155 |
class="recalc reformat_number numeric") %] |
|
156 |
</div> |
|
157 |
<div name="not_editable_discount" [%- IF EDIT_DISCOUNT %]style="display:none"[%- END %]> |
|
158 |
[%- L.div_tag(ITEM.discount_as_percent, name="discount_text", class="numeric") %] |
|
159 |
[%- L.hidden_tag("reclamation.reclamation_items[].discount_as_percent", |
|
160 |
ITEM.discount_as_percent, |
|
161 |
disabled=(EDIT_DISCOUNT? 1 : '')) %] |
|
162 |
</div> |
|
163 |
</td> |
|
164 |
<td align="right"> |
|
165 |
[%- L.div_tag(LxERP.format_amount(ITEM.linetotal, 2, 0), name="linetotal") %] |
|
166 |
</td> |
|
167 |
|
|
168 |
</tr> |
|
169 |
|
|
170 |
<tr [%- IF !MYCONFIG.show_form_details -%]style="display:none"[%- END -%]> |
|
171 |
<td colspan="100%"> |
|
172 |
[%- IF MYCONFIG.show_form_details || ITEM.render_second_row %] |
|
173 |
<div name="second_row" data-loaded="1"> |
|
174 |
[%- PROCESS reclamation/tabs/basic_data/_second_row.html ITEM=ITEM TYPE=SELF.type %] |
|
175 |
</div> |
|
176 |
[%- ELSE %] |
|
177 |
<div name="second_row" id="second_row_[% ID %]"> |
|
178 |
[%- LxERP.t8("Loading...") %] |
|
179 |
</div> |
|
180 |
[%- END %] |
|
181 |
</td> |
|
182 |
</tr> |
|
183 |
|
|
184 |
</tbody> |
templates/design40_webpages/reclamation/tabs/basic_data/_second_row.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- USE LxERP %] |
|
4 |
[%- USE L %] |
|
5 |
[%- USE P %] |
|
6 |
|
|
7 |
<table> |
|
8 |
<tr><td colspan="100%"> |
|
9 |
<b>[%- 'Serial No.' | $T8 %]</b> |
|
10 |
[%- L.input_tag("reclamation.reclamation_items[].serialnumber", ITEM.serialnumber, size = 15) %] |
|
11 |
<b>[%- 'Project' | $T8 %]</b> |
|
12 |
[% P.project.picker("reclamation.reclamation_items[].project_id", ITEM.project_id, size = 15) %] |
|
13 |
<b>[%- 'Reqdate' | $T8 %]</b> |
|
14 |
[% L.date_tag("reclamation.reclamation_items[].reqdate_as_date", ITEM.reqdate_as_date) %] |
|
15 |
[%- IF (TYPE == "sales_reclamation") %] |
|
16 |
<b>[%- 'LP' | $T8 %]</b> |
|
17 |
[%- LxERP.format_amount(ITEM.part.listprice, 2, 0) %] |
|
18 |
<b>[%- 'EK' | $T8 %]</b> |
|
19 |
[%- L.input_tag("reclamation.reclamation_items[].lastcost_as_number", |
|
20 |
ITEM.lastcost_as_number, |
|
21 |
size = 5, |
|
22 |
class="recalc reformat_number numeric") %] |
|
23 |
[%- END %] |
|
24 |
<b>[%- 'On Hand' | $T8 %]</b> |
|
25 |
<span[%- IF ITEM.part.onhand < ITEM.part.rop -%] class="numeric plus0"[%- END -%]> |
|
26 |
[%- ITEM.part.onhand_as_number -%] [%- ITEM.part.unit -%] |
|
27 |
</span> |
|
28 |
</td></tr> |
|
29 |
|
|
30 |
<tr> |
|
31 |
[%- SET n = 0 %] |
|
32 |
[%- FOREACH var = ITEM.cvars_by_config %] |
|
33 |
[%- NEXT UNLESS (var.config.processed_flags.editable && ITEM.part.cvar_by_name(var.config.name).is_valid) %] |
|
34 |
[%- SET n = n + 1 %] |
|
35 |
<th> |
|
36 |
[% var.config.description %] |
|
37 |
</th> |
|
38 |
<td> |
|
39 |
[% L.hidden_tag('reclamation.reclamation_items[].custom_variables[+].config_id', var.config.id) %] |
|
40 |
[% L.hidden_tag('reclamation.reclamation_items[].custom_variables[].id', var.id) %] |
|
41 |
[% L.hidden_tag('reclamation.reclamation_items[].custom_variables[].sub_module', var.sub_module) %] |
|
42 |
[% INCLUDE 'common/render_cvar_input.html' var_name='reclamation.reclamation_items[].custom_variables[].unparsed_value' %] |
|
43 |
</td> |
|
44 |
[%- IF (n % (MYCONFIG.form_cvars_nr_cols || 3)) == 0 %] |
|
45 |
</tr><tr> |
|
46 |
[%- END %] |
|
47 |
[%- END %] |
|
48 |
</tr> |
|
49 |
</table> |
templates/design40_webpages/reclamation/tabs/basic_data/_tax_row.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- USE LxERP %] |
|
4 |
[%- USE L %] |
|
5 |
|
|
6 |
<tr class="tax_row"> |
|
7 |
<th align="right">[%- IF TAXINCLUDED %][%- 'Including' | $T8 %] [%- END %][%- TAX.tax.taxdescription %] [% TAX.tax.rate_as_percent %]%</th> |
|
8 |
<td align="right">[%- LxERP.format_amount(TAX.amount, 2, 0) %]</td> |
|
9 |
</tr> |
|
10 |
[%- IF TAXINCLUDED %] |
|
11 |
<tr class="tax_row"> |
|
12 |
<th align="right">[%- 'Net amount' | $T8 %]</th> |
|
13 |
<td align="right">[%- LxERP.format_amount(TAX.netamount, 2, 0) %]</td> |
|
14 |
</tr> |
|
15 |
[%- END%] |
templates/design40_webpages/reclamation_reason/_sort_list_row.html | ||
---|---|---|
1 |
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%][% USE P %] |
|
2 |
[% FOREACH reason = RECLAMATION_REASONS %] |
|
3 |
<tr class="listrow" id="reclamation_reason_id_[% reason.id %]"> |
|
4 |
<td align="center" class="dragdrop"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></td> |
|
5 |
<td><a href="[% SELF.url_for(action='edit', id=reason.id) %]">[% HTML.escape(reason.name) %]</a></td> |
|
6 |
<td>[% reason.description | $T8 %]</td> |
|
7 |
<td>[% reason.valid_for | $T8 %]</td> |
|
8 |
</tr> |
|
9 |
[% END %] |
templates/design40_webpages/reclamation_reason/form.html | ||
---|---|---|
1 |
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE P -%][%- USE T8 -%] |
|
2 |
[% INCLUDE 'common/flash.html' %] |
|
3 |
|
|
4 |
<h1>[% HTML.escape(title) %]</h1> |
|
5 |
<div style="padding-left:2em"> |
|
6 |
[% SET style="width: 400px" %] |
|
7 |
|
|
8 |
<form action="controller.pl" method="post" id="form"> |
|
9 |
[%- L.hidden_tag("id", SELF.reclamation_reason.id) %] |
|
10 |
|
|
11 |
<table> |
|
12 |
<tr> |
|
13 |
<th align="right">[% 'Name' | $T8 %]</th> |
|
14 |
<td>[%- L.input_tag("reclamation_reason.name", SELF.reclamation_reason.name, "data-validate"="required", "data-title"=LxERP.t8("Name")) %]</td> |
|
15 |
</tr> |
|
16 |
<tr> |
|
17 |
<th align="right">[% 'Description' | $T8 %]</th> |
|
18 |
<td>[%- L.textarea_tag("reclamation_reason.description", SELF.reclamation_reason.description, "data-validate"="required", cols = 50 rows = 2, "data-title"=LxERP.t8("Description")) %]</td> |
|
19 |
</tr> |
|
20 |
<tr> |
|
21 |
<th align="right">[% 'Valid for Sales' | $T8 %]</th> |
|
22 |
<td align="left">[% L.checkbox_tag("reclamation_reason.valid_for_sales", checked=SELF.reclamation_reason.valid_for_sales, for_submit=1) %]</td> |
|
23 |
</tr> |
|
24 |
<tr> |
|
25 |
<th align="right">[% 'Valid for Purchase' | $T8 %]</th> |
|
26 |
<td align="left">[% L.checkbox_tag("reclamation_reason.valid_for_purchase", checked=SELF.reclamation_reason.valid_for_purchase, for_submit=1) %]</td> |
|
27 |
</tr> |
|
28 |
</table> |
|
29 |
</form> |
|
30 |
</div> |
templates/design40_webpages/reclamation_reason/list.html | ||
---|---|---|
1 |
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%] |
|
2 |
[%- INCLUDE 'common/flash.html' %] |
|
3 |
|
|
4 |
<h1>[% title %]</h1> |
|
5 |
|
|
6 |
<p> |
|
7 |
<table id="partsgroup_list"> |
|
8 |
<thead> |
|
9 |
<tr class="listheading"> |
|
10 |
<th>[% 'Reclamation Reason' | $T8 %]</th> |
|
11 |
<th>[% 'Description' | $T8 %]</th> |
|
12 |
<th>[% 'Valid for Sales' | $T8 %]</th> |
|
13 |
<th>[% 'Valid for Purchase' | $T8 %]</th> |
|
14 |
</tr> |
|
15 |
</thead> |
|
16 |
|
|
17 |
<tbody> |
|
18 |
[%- FOREACH reason = RECLAMATION_REASONS %] |
|
19 |
<tr class="listrow" id="reason_id_[% reason.id %]"> |
|
20 |
<td><a href="[% SELF.url_for(action='edit', id=reason.id) %]">[% HTML.escape(reason.name) %] |
|
21 |
[% # reason.level %]</a></td> |
|
22 |
<td>[% reason.description | html %]</td> |
|
23 |
<td>[% reason.valid_for_sales_as_bool_yn %]</td> |
|
24 |
<td>[% reason.valid_for_purchase_as_bool_yn %]</td> |
|
25 |
[%- END %] |
|
26 |
</tbody> |
|
27 |
</table> |
|
28 |
</p> |
templates/design40_webpages/reclamation_reason/sort_list.html | ||
---|---|---|
1 |
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE P -%][%- USE T8 -%] |
|
2 |
[% INCLUDE 'common/flash.html' %] |
|
3 |
|
|
4 |
<h1>[% HTML.escape(title) %]</h1> |
|
5 |
[% SET style="width: 400px" %] |
|
6 |
|
|
7 |
<form method="post" action="controller.pl" id="form"> |
|
8 |
<table id="reclamation_reasons"> |
|
9 |
<thead> |
|
10 |
<tr> |
|
11 |
<th align="center"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th> |
|
12 |
<th align="left">[% 'Reclamation Reason' | $T8 %]</th> |
|
13 |
<th align="left">[% 'Description' | $T8 %]</th> |
|
14 |
<th align="left">[% 'Valid for' | $T8 %]</th> |
|
15 |
</tr> |
|
16 |
</thead> |
|
17 |
|
|
18 |
<tbody id="table_body"> |
|
19 |
[% PROCESS 'reclamation_reason/_sort_list_row.html', RECLAMATION_REASONS = RECLAMATION_REASONS %] |
|
20 |
</tbody> |
|
21 |
</table> |
|
22 |
</form> |
|
23 |
|
|
24 |
[% L.sortable_element('#table_body', url=SELF.url_for(action='reorder'), with='reclamation_reason_id') %] |
Auch abrufbar als: Unified diff
Design 4.0: Reklamationsmasken kopiert