Revision 8e18e2a9
Von Hans P. Schlaepfer vor etwa 4 Jahren hinzugefügt
templates/webpages/order/tabs/basic_data.html | ||
---|---|---|
4 | 4 |
[% USE L %] |
5 | 5 |
[% USE P %] |
6 | 6 |
|
7 |
[%- INCLUDE 'generic/set_longdescription.html' %]
|
|
7 |
[% INCLUDE 'generic/set_longdescription.html' %] |
|
8 | 8 |
|
9 | 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("order.${SELF.cv}" _ '_id', SELF.order.$cv_id, type=SELF.cv, style='width: 300px') %] |
|
19 |
[% P.button_tag("kivi.Order.show_vc_details_dialog()", LxERP.t8("Details (one letter abbreviation)")) %] |
|
20 |
</td> |
|
21 |
</tr> |
|
22 |
|
|
23 |
<tr id='cp_row' [%- IF !SELF.order.${SELF.cv}.contacts.size %]style='display:none'[%- END %]> |
|
24 |
<th align="right">[% 'Contact Person' | $T8 %]</th> |
|
25 |
<td>[% L.select_tag('order.cp_id', |
|
26 |
SELF.order.${SELF.cv}.contacts, |
|
27 |
default=SELF.order.cp_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.order.${SELF.cv}.shipto.size %]style='display:none'[%- END %]> |
|
38 |
[% shiptos = [ { shipto_id => "", displayable_id => LxERP.t8("No/individual shipping address") } ] ; |
|
39 |
FOREACH s = SELF.order.${SELF.cv}.shipto ; |
|
40 |
shiptos.push(s) ; |
|
41 |
END ; |
|
42 |
L.select_tag('order.shipto_id', |
|
43 |
shiptos, |
|
44 |
default=SELF.order.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.Order.edit_custom_shipto()", LxERP.t8("Custom shipto")) %] |
|
51 |
</td> |
|
52 |
</tr> |
|
53 |
|
|
54 |
[%- PROCESS order/tabs/_business_info_row.html SELF=SELF %] |
|
55 |
|
|
56 |
<tr> |
|
57 |
<th align="right">[% 'Steuersatz' | $T8 %]</th> |
|
58 |
<td>[% L.select_tag('order.taxzone_id', SELF.all_taxzones, default=SELF.order.taxzone_id, title_key='description', style='width: 300px', class='recalc') %]</td> |
|
59 |
</tr> |
|
60 |
|
|
61 |
[% SET currency_id = SELF.order.currency_id || INSTANCE_CONF.get_currency_id # use default currency for new order %] |
|
62 |
<tr id="currency_settings"> |
|
63 |
<th align="right">[% 'Currency' | $T8 %]</th> |
|
64 |
<td>[% L.select_tag('order.currency_id', SELF.all_currencies, default=currency_id, value_key='id', title_key='name') %]</td> |
|
65 |
</tr> |
|
66 |
<tr id="exchangerate_settings" [%- IF SELF.order.currency_id==INSTANCE_CONF.get_currency_id %]style='display:none'[%- END %]> |
|
67 |
<th align="right">[% 'Exchangerate' | $T8 %]</th> |
|
68 |
<td> 1 <span id="currency_name">[% SELF.order.currency.name %]</span> = |
|
69 |
[% L.input_tag('order.exchangerate_as_null_number', SELF.order.exchangerate_as_null_number, size="15", class="reformat_number_as_null_number numeric") %] |
|
70 |
[% INSTANCE_CONF.default_currency %] |
|
71 |
[% L.hidden_tag('old_currency_id', currency_id) %] |
|
72 |
[% L.hidden_tag('old_exchangerate', SELF.order.exchangerate_as_null_number) %] |
|
73 |
</td> |
|
74 |
</tr> |
|
75 |
|
|
76 |
[%- IF SELF.all_departments.size %] |
|
77 |
<tr> |
|
78 |
<th align="right">[% 'Department' | $T8 %]</th> |
|
79 |
<td> |
|
80 |
[% L.select_tag('order.department_id', SELF.all_departments, default=SELF.order.department_id, title_key='description', with_empty=1, style='width:300px') %] |
|
81 |
</td> |
|
82 |
</tr> |
|
83 |
[%- END %] |
|
84 |
|
|
85 |
<tr> |
|
86 |
<th align="right">[% 'Shipping Point' | $T8 %]</th> |
|
87 |
<td>[% L.input_tag('order.shippingpoint', SELF.order.shippingpoint, style='width: 300px') %]</td> |
|
88 |
</tr> |
|
89 |
|
|
90 |
<tr> |
|
91 |
<th align="right">[% 'Ship via' | $T8 %]</th> |
|
92 |
<td>[% L.input_tag('order.shipvia', SELF.order.shipvia, style='width: 300px') %]</td> |
|
93 |
</tr> |
|
94 |
|
|
95 |
<tr> |
|
96 |
<th align="right">[% 'Transaction description' | $T8 %]</th> |
|
97 |
<td>[% L.input_tag('order.transaction_description', SELF.order.transaction_description, 'data-validate'=INSTANCE_CONF.get_require_transaction_description_ps ? 'required' : '', style='width: 300px') %]</td> |
|
98 |
</tr> |
|
99 |
|
|
100 |
<tr> |
|
101 |
<th align="right">[% 'Project Number' | $T8 %]</th> |
|
102 |
<td>[% P.project.picker('order.globalproject_id', SELF.order.globalproject_id, style='width: 300px') %]</td> |
|
103 |
</tr> |
|
104 |
|
|
105 |
</table> |
|
106 |
</td> |
|
107 |
|
|
108 |
<td align="right"> |
|
109 |
<table> |
|
110 |
|
|
111 |
<tr> |
|
112 |
<td colspan="2" align="center"> |
|
113 |
[%- IF SELF.order.id %] |
|
114 |
<label for="order.delivered">[% 'Delivery Order(s) for full qty created' | $T8 %]</label> |
|
115 |
[% L.yes_no_tag('order.delivered', SELF.order.delivered) %] |
|
116 |
<label for="order.closed">[% 'Closed' | $T8 %]</label> |
|
117 |
[% L.yes_no_tag('order.closed', SELF.order.closed) %] |
|
118 |
[%- END %] |
|
119 |
</td> |
|
120 |
</tr> |
|
121 |
|
|
122 |
<tr> |
|
123 |
<th align="right">[% 'Employee' | $T8 %]</th> |
|
124 |
<td>[% L.select_tag('order.employee_id', |
|
125 |
SELF.all_employees, |
|
126 |
default=(SELF.order.employee_id ? SELF.order.employee_id : SELF.current_employee_id), |
|
127 |
title_key='safe_name') %]</td> |
|
128 |
</tr> |
|
129 |
|
|
130 |
[% IF SELF.cv == 'customer' %] |
|
131 |
<tr> |
|
132 |
<th align="right">[% 'Salesman' | $T8 %]</th> |
|
133 |
<td>[% L.select_tag('order.salesman_id', |
|
134 |
SELF.all_salesmen, |
|
135 |
default=(SELF.order.salesman_id ? SELF.order.salesman_id : SELF.current_employee_id), |
|
136 |
title_key='safe_name') %]</td> |
|
137 |
</tr> |
|
138 |
[% END %] |
|
139 |
|
|
140 |
[%- IF (SELF.type == "sales_order" || SELF.type == "purchase_order") -%] |
|
141 |
<tr> |
|
142 |
<th width="70%" align="right" nowrap>[% 'Order Number' | $T8 %]</th> |
|
143 |
<td>[% L.input_tag('order.ordnumber', SELF.order.ordnumber, size = 11, onchange='kivi.Order.set_number_in_title(this)') %]</td> |
|
144 |
</tr> |
|
145 |
[%- END -%] |
|
146 |
|
|
147 |
[%- IF (SELF.type == "sales_order" || SELF.type == "sales_quotation") -%] |
|
148 |
[%- SET quo_nr_txt = 'Quotation Number' -%] |
|
149 |
[%- ELSE -%] |
|
150 |
[%- SET quo_nr_txt = 'RFQ Number' -%] |
|
151 |
[%- END -%] |
|
152 |
<tr> |
|
153 |
<th width="70%" align="right" nowrap>[% quo_nr_txt | $T8 %]</th> |
|
154 |
[%- IF (SELF.type == "sales_order" || SELF.type == "purchase_order") -%] |
|
155 |
<td>[% L.input_tag('order.quonumber', SELF.order.quonumber, size = 11) %]</td> |
|
156 |
[%- ELSE -%] |
|
157 |
<td>[% L.input_tag('order.quonumber', SELF.order.quonumber, size = 11, onchange='kivi.Order.set_number_in_title(this)') %]</td> |
|
158 |
[%- END -%] |
|
159 |
</tr> |
|
160 |
|
|
161 |
[%- IF (SELF.type == "sales_order" || SELF.type == "purchase_order") -%] |
|
162 |
<tr> |
|
163 |
<th width="70%" align="right" nowrap>[% 'Customer Order Number' | $T8 %]</th> |
|
164 |
<td>[% L.input_tag('order.cusordnumber', SELF.order.cusordnumber, size = 11) %]</td> |
|
165 |
</tr> |
|
166 |
[%- END -%] |
|
167 |
|
|
168 |
[%- IF (SELF.type == "sales_order" || SELF.type == "purchase_order") -%] |
|
169 |
[%- SET transdate_txt = 'Order Date' -%] |
|
170 |
[%- ELSIF SELF.type == "sales_quotation" -%] |
|
171 |
[%- SET transdate_txt = 'Quotation Date' -%] |
|
172 |
[%- ELSE -%] |
|
173 |
[%- SET transdate_txt = 'RFQ Date' -%] |
|
174 |
[%- END -%] |
|
175 |
<tr> |
|
176 |
<th width="70%" align="right" nowrap>[% transdate_txt | $T8 %]</th> |
|
177 |
<td>[% L.date_tag('order.transdate_as_date', SELF.order.transdate_as_date) %]</td> |
|
178 |
</tr> |
|
179 |
|
|
180 |
[%- IF (SELF.type == "sales_order" || SELF.type == "purchase_order") -%] |
|
181 |
[%- SET reqdate_txt = 'Reqdate' -%] |
|
182 |
[%- ELSIF SELF.type == "sales_quotation" -%] |
|
183 |
[%- SET reqdate_txt = 'Valid until' -%] |
|
184 |
[%- ELSE -%] |
|
185 |
[%- SET reqdate_txt = 'Required by' -%] |
|
186 |
[%- END -%] |
|
187 |
<tr> |
|
188 |
<th width="70%" align="right" nowrap>[% reqdate_txt | $T8 %]</th> |
|
189 |
<td>[% L.date_tag('order.reqdate_as_date', SELF.order.reqdate_as_date) %]</td> |
|
190 |
</tr> |
|
191 |
|
|
192 |
[%- IF SELF.type == "sales_quotation" -%] |
|
193 |
<tr> |
|
194 |
<th width="70%" align="right" nowrap>[% 'Order probability' | $T8 %]</th> |
|
195 |
<td>[%- L.select_tag('order.order_probability', SELF.order_probabilities, title='title', default=SELF.order.order_probability) %]%</td> |
|
196 |
</tr> |
|
197 |
<tr> |
|
198 |
<th width="70%" align="right" nowrap>[% 'Expected billing date' | $T8 %]</th> |
|
199 |
<td>[%- L.date_tag('order.expected_billing_date_as_date', SELF.order.expected_billing_date_sa_date) %]</td> |
|
200 |
</tr> |
|
201 |
[%- END %] |
|
202 |
|
|
203 |
<tr> |
|
204 |
<th width="70%" align="right" nowrap>[% 'Insert Date' | $T8 %]</th> |
|
205 |
<td>[% SELF.order.itime_as_date %]</td> |
|
206 |
</tr> |
|
207 |
|
|
208 |
</table> |
|
209 |
|
|
210 |
</td> |
|
211 |
</tr> |
|
10 |
<!-- PENDENT: EXPERIMENTELL --> |
|
11 |
|
|
12 |
|
|
13 |
<div class="wrapper" id="wrapper-1"> |
|
14 |
[% INCLUDE 'generic/toggle_wrapper.html' %] |
|
15 |
|
|
16 |
<div class="col"> |
|
17 |
|
|
18 |
<table class="tbl-horizontal col"> |
|
19 |
<caption>[% 'Customer & Order info' | $T8 %]</caption> |
|
20 |
<colgroup><col class="wi-mediumsmall"><col class="wi-lightwide"></colgroup> |
|
21 |
<tbody> |
|
22 |
<tr> |
|
23 |
<th>[%- SELF.cv == "customer" ? LxERP.t8('Customer') : LxERP.t8('Vendor') -%]</th> |
|
24 |
[% SET cv_id = SELF.cv _ '_id' %] |
|
25 |
<td class="wi-lightwide"> |
|
26 |
[% P.customer_vendor.picker("order.${SELF.cv}" _ '_id', SELF.order.$cv_id, type=SELF.cv, class='wi-lightwide') %] |
|
27 |
[% #P.button_tag("kivi.Order.show_vc_details_dialog()", LxERP.t8("Details (one letter abbreviation)"), class='wi-tiny neutral') %] |
|
28 |
<a href="javascript:kivi.Order.show_vc_details_dialog();" title="[% 'Show detail informationen' | $T8 %]" class="button-image info"><img src="image/detail.png"></a> |
|
29 |
</td> |
|
30 |
</tr> |
|
31 |
<tr id='cp_row' [% IF !SELF.order.${SELF.cv}.contacts.size %]style='display:none'[% END %]> |
|
32 |
<th>[% 'Contact Person' | $T8 %]</th> |
|
33 |
<td>[% L.select_tag('order.cp_id', |
|
34 |
SELF.order.${SELF.cv}.contacts, |
|
35 |
default=SELF.order.cp_id, |
|
36 |
title_key='full_name_dep', |
|
37 |
value_key='cp_id', |
|
38 |
with_empty=1, |
|
39 |
class='wi-lightwide') %]</td> |
|
40 |
</tr> |
|
41 |
<tr> |
|
42 |
<th>[% 'Shipping Address' | $T8 %]</th> |
|
43 |
<td> |
|
44 |
<span id='shipto_selection' [% IF !SELF.order.${SELF.cv}.shipto.size %]style='display:none'[% END %]> |
|
45 |
[% shiptos = [ { shipto_id => "", displayable_id => LxERP.t8("No/individual shipping address") } ] ; |
|
46 |
FOREACH s = SELF.order.${SELF.cv}.shipto ; |
|
47 |
shiptos.push(s) ; |
|
48 |
END ; |
|
49 |
L.select_tag('order.shipto_id', |
|
50 |
shiptos, |
|
51 |
default=SELF.order.shipto_id, |
|
52 |
title_key='displayable_id', |
|
53 |
value_key='shipto_id', |
|
54 |
with_empty=0, |
|
55 |
style='width: 300px') %] |
|
56 |
</span> |
|
57 |
[% L.button_tag("kivi.Order.edit_custom_shipto()", LxERP.t8("Custom shipto")) %] |
|
58 |
</td> |
|
59 |
</tr> |
|
60 |
[% PROCESS order/tabs/_business_info_row.html SELF=SELF %] |
|
61 |
<tr> |
|
62 |
<th>[% 'Steuersatz' | $T8 %]</th> |
|
63 |
<td>[% L.select_tag('order.taxzone_id', SELF.all_taxzones, default=SELF.order.taxzone_id, title_key='description', class='recalc wi-lightwide') %]</td> |
|
64 |
</tr> |
|
65 |
[% SET currency_id = SELF.order.currency_id || INSTANCE_CONF.get_currency_id # use default currency for new order %] |
|
66 |
<tr id="currency_settings"> |
|
67 |
<th>[% 'Currency' | $T8 %]</th> |
|
68 |
<td>[% L.select_tag('order.currency_id', SELF.all_currencies, default=currency_id, value_key='id', title_key='name') %]</td> |
|
69 |
</tr> |
|
70 |
<tr id="exchangerate_settings" [%- IF SELF.order.currency_id==INSTANCE_CONF.get_currency_id %]style='display:none'[%- END %]> |
|
71 |
<th>[% 'Exchangerate' | $T8 %]</th> |
|
72 |
<td> 1 <span id="currency_name">[% SELF.order.currency.name %]</span> = |
|
73 |
[% L.input_tag('order.exchangerate_as_null_number', SELF.order.exchangerate_as_null_number, size="15", class="reformat_number_as_null_number numeric") %] |
|
74 |
[% INSTANCE_CONF.default_currency %] |
|
75 |
[% L.hidden_tag('old_currency_id', currency_id) %] |
|
76 |
[% L.hidden_tag('old_exchangerate', SELF.order.exchangerate_as_null_number) %] |
|
77 |
</td> |
|
78 |
</tr> |
|
79 |
[% IF SELF.all_departments.size %] |
|
80 |
<tr> |
|
81 |
<th>[% 'Department' | $T8 %]</th> |
|
82 |
<td> |
|
83 |
[% L.select_tag('order.department_id', SELF.all_departments, default=SELF.order.department_id, title_key='description', with_empty=1, class='wi-lightwide') %] |
|
84 |
</td> |
|
85 |
</tr> |
|
86 |
[% END %] |
|
87 |
<tr> |
|
88 |
<th>[% 'Shipping Point' | $T8 %]</th> |
|
89 |
<td>[% L.input_tag('order.shippingpoint', SELF.order.shippingpoint, class='wi-lightwide') %]</td> |
|
90 |
</tr> |
|
91 |
<tr> |
|
92 |
<th>[% 'Ship via' | $T8 %]</th> |
|
93 |
<td>[% L.input_tag('order.shipvia', SELF.order.shipvia, class='wi-lightwide') %]</td> |
|
94 |
</tr> |
|
95 |
<tr> |
|
96 |
<th>[% 'Transaction description' | $T8 %]</th> |
|
97 |
<td>[% L.input_tag('order.transaction_description', SELF.order.transaction_description, 'data-validate'=INSTANCE_CONF.get_require_transaction_description_ps ? 'required' : '', class='wi-lightwide') %]</td> |
|
98 |
</tr> |
|
99 |
<tr> |
|
100 |
<th>[% 'Project Number' | $T8 %]</th> |
|
101 |
<td>[% P.project.picker('order.globalproject_id', SELF.order.globalproject_id, class='wi-lightwide') %]</td> |
|
102 |
</tr> |
|
103 |
</tbody> |
|
212 | 104 |
</table> |
213 | 105 |
|
214 |
[%- PROCESS order/tabs/_item_input.html SELF=SELF %] |
|
106 |
<table class="tbl-horizontal col"> |
|
107 |
<caption>[% 'Terms' | $T8 %]</caption> |
|
108 |
<colgroup><col class="wi-mediumsmall"><col class="wi-lightwide"></colgroup> |
|
109 |
<tbody> |
|
110 |
<tr> |
|
111 |
<td colspan="2"> |
|
112 |
<span class="label above">[% 'Payment Terms' | $T8 %]</span> |
|
113 |
[% L.select_tag('order.payment_id', |
|
114 |
SELF.all_payment_terms, |
|
115 |
default = SELF.order.payment_id, |
|
116 |
with_empty = 1, |
|
117 |
title_key = 'description', |
|
118 |
class = 'wi-mediumsmall-lightwide') %] |
|
119 |
</td> |
|
120 |
</tr> |
|
121 |
<tr> |
|
122 |
<td colspan="2"> |
|
123 |
<span class="label above">[% 'Delivery Terms' | $T8 %]</span> |
|
124 |
[% L.select_tag('order.delivery_term_id', |
|
125 |
SELF.all_delivery_terms, |
|
126 |
default = SELF.order.delivery_term_id, |
|
127 |
with_empty = 1, |
|
128 |
title_key = 'description', |
|
129 |
class = 'wi-mediumsmall-lightwide') %] |
|
130 |
</td> |
|
131 |
</tr> |
|
132 |
<tr id="taxincluded_row_id"> |
|
133 |
<th>[% IF !SELF.taxes.size %]<label for="order.taxincluded">[% 'Tax Included' | $T8 %]</label> [% END %]</th> |
|
134 |
<td>[% IF !SELF.taxes.size %][% L.yes_no_tag('order.taxincluded', SELF.order.taxincluded, class='recalc') %][% END %]</td> |
|
135 |
</tr> |
|
136 |
[% IF SELF.type == "sales_order" %] |
|
137 |
<tr> |
|
138 |
<th>[% 'Periodic Invoices' | $T8 %]</th> |
|
139 |
<td> |
|
140 |
<span id='periodic_invoices_status' class="data wi-normal wi-lightwide">[% SELF.periodic_invoices_status %]</span> |
|
141 |
<span class="button-inline"> |
|
142 |
[% L.button_tag('kivi.Order.show_periodic_invoices_config_dialog()', LxERP.t8('Configure'), class='neutral inline below') %] |
|
143 |
<a href="doc/html/ch03.html#features.periodic-invoices.variables" target="_blank" class="button wi-tiny neutral" title="[% 'Documentation about periodic invoices in a new window' | $T8 %]">?</a> |
|
144 |
</span> |
|
145 |
</td> |
|
146 |
</tr> |
|
147 |
[% END %] |
|
148 |
</tbody> |
|
149 |
</table> |
|
215 | 150 |
|
216 |
[% L.button_tag('kivi.Order.show_multi_items_dialog()', LxERP.t8('Add multiple items')) %]
|
|
151 |
</div><!-- /.col -->
|
|
217 | 152 |
|
218 |
<table width="100%"> |
|
153 |
<table class="tbl-horizontal col"> |
|
154 |
<caption>[% 'Notes' | $T8 %]</caption> |
|
155 |
<colgroup><col class="wi-wide"></colgroup> |
|
156 |
<tbody> |
|
219 | 157 |
<tr> |
220 |
<td> |
|
221 |
[%- IF SELF.positions_scrollbar_height -%] |
|
222 |
[%- SET scroll_style = 'style="overflow-y: auto; height:' _ SELF.positions_scrollbar_height _ 'vh;"' -%] |
|
223 |
[%- ELSE -%] |
|
224 |
[%- SET scroll_style = '' -%] |
|
225 |
[%- END -%] |
|
226 |
<div id="row_table_scroll_id" [%- scroll_style -%]> |
|
227 |
<table id="row_table_id" width="100%"> |
|
228 |
<thead> |
|
229 |
<tr class="listheading"> |
|
230 |
<th class="listheading" style='text-align:center' nowrap width="1"> |
|
231 |
[%- IF MYCONFIG.show_form_details %] |
|
232 |
[%- 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") %] |
|
233 |
[%- ELSE %] |
|
234 |
[%- L.img_tag(src="image/expand.svg", alt=LxERP.t8('Show all details'), title=LxERP.t8('Show all details'), id='expand_all') %] |
|
235 |
[%- END %] |
|
236 |
</th> |
|
237 |
<th class="listheading" nowrap width="3" >[%- 'position' | $T8 %] </th> |
|
238 |
<th class="listheading" style='text-align:center' nowrap width="1"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th> |
|
239 |
<th class="listheading" style='text-align:center' nowrap width="1"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th> |
|
240 |
[%- IF SELF.show_update_button -%] |
|
241 |
<th class="listheading" style='text-align:center' nowrap width="1"> |
|
242 |
[%- L.img_tag(src="image/rotate_cw.svg", |
|
243 |
alt=LxERP.t8('Update from master data'), |
|
244 |
title= LxERP.t8('Update from master data'), |
|
245 |
onclick="if (!confirm('" _ LxERP.t8("Are you sure to update all positions from master data?") _ "')) return false; kivi.Order.update_all_rows_from_master_data();", |
|
246 |
id='update_from_master') %] |
|
247 |
</th> |
|
248 |
[%- END %] |
|
249 |
<th id="partnumber_header_id" class="listheading" nowrap width="15"><a href='#' onClick='javascript:kivi.Order.reorder_items("partnumber")'> [%- 'Partnumber' | $T8 %]</a></th> |
|
250 |
[%- IF SELF.search_cvpartnumber -%] |
|
251 |
<th id="cvpartnumber_header_id" class="listheading" nowrap width="15"><a href='#' onClick='javascript:kivi.Order.reorder_items("cvpartnumber")' > [%- SELF.cv == "customer" ? LxERP.t8('Customer Part Number') : LxERP.t8('Model') %]</a></th> |
|
252 |
[%- END -%] |
|
253 |
<th id="partclass_header_id" class="listheading" nowrap width="2">[%- 'Type' | $T8 %]</th> |
|
254 |
<th id="description_header_id" class="listheading" nowrap ><a href='#' onClick='javascript:kivi.Order.reorder_items("description")'>[%- 'Description' | $T8 %]</a></th> |
|
255 |
[%- IF (SELF.type == "sales_order" || SELF.type == "purchase_order") -%] |
|
256 |
<th id="shipped_qty_header_id" class="listheading" nowrap width="5" ><a href='#' onClick='javascript:kivi.Order.reorder_items("shipped_qty")'>[%- 'Delivered' | $T8 %]</a></th> |
|
257 |
[%- END -%] |
|
258 |
<th id="qty_header_id" class="listheading" nowrap width="5" ><a href='#' onClick='javascript:kivi.Order.reorder_items("qty")'> [%- 'Qty' | $T8 %]</a></th> |
|
259 |
<th class="listheading" nowrap width="5" >[%- 'Price Factor' | $T8 %] </th> |
|
260 |
<th class="listheading" nowrap width="5" >[%- 'Unit' | $T8 %] </th> |
|
261 |
<th class="listheading" nowrap width="5" >[%- 'Price Source' | $T8 %] </th> |
|
262 |
<th id="sellprice_header_id" class="listheading" nowrap width="15" ><a href='#' onClick='javascript:kivi.Order.reorder_items("sellprice")'> [%- 'Price' | $T8 %]</a></th> |
|
263 |
<th id="discount_header_id" class="listheading" nowrap width="15" ><a href='#' onClick='javascript:kivi.Order.reorder_items("discount")'> [%- 'Discount' | $T8 %]</a></th> |
|
264 |
<th class="listheading" nowrap width="10">[%- 'Extended' | $T8 %] </th> |
|
265 |
</tr> |
|
266 |
</thead> |
|
267 |
|
|
268 |
[%- FOREACH item = SELF.order.items_sorted %] |
|
269 |
[%- PROCESS order/tabs/_row.html ITEM=item ID=(item.id||item.new_fake_id) -%] |
|
270 |
[%- END %] |
|
271 |
|
|
272 |
</table> |
|
273 |
</div> |
|
274 |
|
|
275 |
</td> |
|
158 |
<td class="wi-wide">[% L.textarea_tag('order.notes', SELF.order.notes, wrap="soft",rows=7, class="texteditor wi-wide") %]</td> |
|
276 | 159 |
</tr> |
277 |
|
|
278 | 160 |
<tr> |
161 |
<td><span class="label above">[% 'Internal Notes' | $T8 %]</span>[% L.textarea_tag('order.intnotes', SELF.order.intnotes, wrap="soft", style="height: 150px", class="wi-wide") %]</td> |
|
279 | 162 |
</tr> |
280 |
|
|
163 |
</tbody> |
|
164 |
</table> |
|
165 |
|
|
166 |
<table class="tbl-horizontal col"> |
|
167 |
<caption>[% 'Handling, Dates & Numbers' | $T8 %]</caption> |
|
168 |
<colgroup> <col class="wi-mediumsmall"><col class="wi-lightwide"> </colgroup> |
|
169 |
<tbody> |
|
170 |
[% IF SELF.order.id %] |
|
281 | 171 |
<tr> |
282 |
<td colspan="100%" width="100%"> |
|
283 |
<table width="100%"> |
|
284 |
<tr> |
|
285 |
<td> |
|
286 |
<table> |
|
287 |
<tr> |
|
288 |
<th align="left">[% 'Notes' | $T8 %]</th> |
|
289 |
<th align="left">[% 'Internal Notes' | $T8 %]</th> |
|
290 |
</tr> |
|
291 |
<tr valign="top"> |
|
292 |
<td> |
|
293 |
[% L.textarea_tag('order.notes', SELF.order.notes, wrap="soft", style="width: 350px; height: 150px", class="texteditor") %] |
|
294 |
</td> |
|
295 |
<td> |
|
296 |
[% L.textarea_tag('order.intnotes', SELF.order.intnotes, wrap="soft", style="width: 350px; height: 150px") %] |
|
297 |
</td> |
|
298 |
</tr> |
|
299 |
</table> |
|
300 |
</td> |
|
301 |
|
|
302 |
<td> |
|
303 |
<table> |
|
304 |
<tr> |
|
305 |
<th align="right">[% 'Payment Terms' | $T8 %]</th> |
|
306 |
<td>[% L.select_tag('order.payment_id', |
|
307 |
SELF.all_payment_terms, |
|
308 |
default = SELF.order.payment_id, |
|
309 |
with_empty = 1, |
|
310 |
title_key = 'description', |
|
311 |
style = 'width: 250px') %]</td> |
|
312 |
</tr> |
|
313 |
<tr> |
|
314 |
<th align="right">[% 'Delivery Terms' | $T8 %]</th> |
|
315 |
<td>[% L.select_tag('order.delivery_term_id', |
|
316 |
SELF.all_delivery_terms, |
|
317 |
default = SELF.order.delivery_term_id, |
|
318 |
with_empty = 1, |
|
319 |
title_key = 'description', |
|
320 |
style = 'width: 250px') %]</td> |
|
321 |
</tr> |
|
322 |
[%- IF SELF.type == "sales_order" %] |
|
323 |
<tr> |
|
324 |
<th align="right">[%- 'Periodic Invoices' | $T8 %]</th> |
|
325 |
<td>[% L.button_tag('kivi.Order.show_periodic_invoices_config_dialog()', LxERP.t8('Configure')) %] |
|
326 |
(<span id='periodic_invoices_status'>[%- SELF.periodic_invoices_status -%]</span>) |
|
327 |
<a href="doc/html/ch03.html#features.periodic-invoices.variables" target="_blank">?</a> |
|
328 |
</td> |
|
329 |
</tr> |
|
330 |
[%- END %] |
|
331 |
</table> |
|
332 |
</td> |
|
172 |
<th><label for="order.delivered">[% 'Delivery Order(s) for full qty created' | $T8 %]</label></th> |
|
173 |
<td>[% L.yes_no_tag('order.delivered', SELF.order.delivered, class='wi-small') %]</td> |
|
174 |
</tr> |
|
175 |
<tr> |
|
176 |
<th><label for="order.closed">[% 'Closed' | $T8 %]</label></th> |
|
177 |
<td>[% L.yes_no_tag('order.closed', SELF.order.closed, class='wi-small') %]</td> |
|
178 |
</tr> |
|
179 |
[% END %] |
|
180 |
<tr> |
|
181 |
<th>[% 'Employee' | $T8 %]</th> |
|
182 |
<td>[% L.select_tag('order.employee_id', |
|
183 |
SELF.all_employees, |
|
184 |
default=(SELF.order.employee_id ? SELF.order.employee_id : SELF.current_employee_id), |
|
185 |
title_key='safe_name') %]</td> |
|
186 |
</tr> |
|
187 |
[% IF SELF.cv == 'customer' %] |
|
188 |
<tr> |
|
189 |
<th>[% 'Salesman' | $T8 %]</th> |
|
190 |
<td>[% L.select_tag('order.salesman_id', |
|
191 |
SELF.all_salesmen, |
|
192 |
default=(SELF.order.salesman_id ? SELF.order.salesman_id : SELF.current_employee_id), |
|
193 |
title_key='safe_name') %]</td> |
|
194 |
</tr> |
|
195 |
[% END %] |
|
196 |
[% IF (SELF.type == "sales_order" || SELF.type == "purchase_order") %] |
|
197 |
<tr> |
|
198 |
<th>[% 'Order Number' | $T8 %]</th> |
|
199 |
<td>[% L.input_tag('order.ordnumber', SELF.order.ordnumber, size = 11, onchange='kivi.Order.set_number_in_title(this)', class='wi-small numeric') %]</td> |
|
200 |
</tr> |
|
201 |
[% END %] |
|
202 |
[% IF (SELF.type == "sales_order" || SELF.type == "sales_quotation") %] |
|
203 |
[% SET quo_nr_txt = 'Quotation Number' %] |
|
204 |
[% ELSE %] |
|
205 |
[% SET quo_nr_txt = 'RFQ Number' %] |
|
206 |
[% END %] |
|
207 |
<tr> |
|
208 |
<th>[% quo_nr_txt | $T8 %]</th> |
|
209 |
[% IF (SELF.type == "sales_order" || SELF.type == "purchase_order") %] |
|
210 |
<td>[% L.input_tag('order.quonumber', SELF.order.quonumber, size=5, class='wi-small') %]</td> |
|
211 |
[% ELSE %] |
|
212 |
<td>[% L.input_tag('order.quonumber', SELF.order.quonumber, class='wi-small numeric', size=5, class='wi-small', onchange='kivi.Order.set_number_in_title(this)') %]</td> |
|
213 |
[% END %] |
|
214 |
</tr> |
|
215 |
[% IF (SELF.type == "sales_order" || SELF.type == "purchase_order") %] |
|
216 |
<tr> |
|
217 |
<th>[% 'Customer Order Number' | $T8 %]</th> |
|
218 |
<td>[% L.input_tag('order.cusordnumber', SELF.order.cusordnumber, size=5, class='wi-small numeric') %]</td> |
|
219 |
</tr> |
|
220 |
[% END %] |
|
221 |
[% IF (SELF.type == "sales_order" || SELF.type == "purchase_order") %] |
|
222 |
[% SET transdate_txt = 'Order Date' %] |
|
223 |
[% ELSIF SELF.type == "sales_quotation" %] |
|
224 |
[% SET transdate_txt = 'Quotation Date' %] |
|
225 |
[% ELSE %] |
|
226 |
[% SET transdate_txt = 'RFQ Date' %] |
|
227 |
[% END %] |
|
228 |
<tr> |
|
229 |
<th>[% transdate_txt | $T8 %]</th> |
|
230 |
<td>[% L.date_tag('order.transdate_as_date', SELF.order.transdate_as_date, class='wi-date') %]</td> |
|
231 |
</tr> |
|
232 |
[% IF (SELF.type == "sales_order" || SELF.type == "purchase_order") %] |
|
233 |
[% SET reqdate_txt = 'Reqdate' %] |
|
234 |
[% ELSIF SELF.type == "sales_quotation" %] |
|
235 |
[% SET reqdate_txt = 'Valid until' %] |
|
236 |
[% ELSE %] |
|
237 |
[% SET reqdate_txt = 'Required by' %] |
|
238 |
[% END %] |
|
239 |
<tr> |
|
240 |
<th>[% reqdate_txt | $T8 %]</th> |
|
241 |
<td>[% L.date_tag('order.reqdate_as_date', SELF.order.reqdate_as_date, class='wi-date') %]</td> |
|
242 |
</tr> |
|
243 |
[% IF SELF.type == "sales_quotation" %] |
|
244 |
<tr> |
|
245 |
<th>[% 'Order probability' | $T8 %]</th> |
|
246 |
<td>[% L.select_tag('order.order_probability', SELF.order_probabilities, title='title', default=SELF.order.order_probability) %]%</td> |
|
247 |
</tr> |
|
248 |
<tr> |
|
249 |
<th>[% 'Expected billing date' | $T8 %]</th> |
|
250 |
<td>[% L.date_tag('order.expected_billing_date_as_date', SELF.order.expected_billing_date_as_date) %]</td> |
|
251 |
</tr> |
|
252 |
[% END %] |
|
253 |
<tr> |
|
254 |
<th>[% 'Insert Date' | $T8 %]</th> |
|
255 |
<td><span class="data wi-small">[% SELF.order.itime_as_date %]</span></td> |
|
256 |
</tr> |
|
257 |
</tbody> |
|
258 |
</table> |
|
333 | 259 |
|
334 |
[%- IF (SELF.type == "sales_order" || SELF.type == "sales_quotation") -%] |
|
335 |
[%- SET marge_class = (SELF.order.marge_total < 0) ? 'plus0' : '' -%] |
|
336 |
<td> |
|
337 |
<table> |
|
338 |
<tr> |
|
339 |
<th align="left">[% 'Ertrag' | $T8 %]</th> |
|
340 |
<td align="right"> |
|
341 |
[%- L.div_tag(SELF.order.marge_total_as_number, id='marge_total_id', class=marge_class) %] |
|
342 |
</td> |
|
343 |
</tr> |
|
344 |
<tr> |
|
345 |
<th align="left">[% 'Ertrag prozentual' | $T8 %]</th> |
|
346 |
<td align="right"> |
|
347 |
[%- L.div_tag(LxERP.format_amount(SELF.order.marge_percent, 2), id='marge_percent_id', class=marge_class) %] |
|
348 |
</td> |
|
349 |
<td>[%- L.div_tag('%', id='marge_percent_sign_id', class=marge_class) %]</td> |
|
350 |
</tr> |
|
351 |
</table> |
|
352 |
</td> |
|
353 |
[%- END %] |
|
260 |
</div><!-- /.wrapper --> |
|
354 | 261 |
|
355 |
<td align="right"> |
|
356 |
<table> |
|
357 |
<tr id="taxincluded_row_id" [%- IF !SELF.taxes.size %]style="display:none"[%- END %]> |
|
358 |
<td align=right colspan="2"> |
|
359 |
<label for="order.taxincluded"><b>[% 'Tax Included' | $T8 %]</b></label> |
|
360 |
[% L.yes_no_tag('order.taxincluded', SELF.order.taxincluded, class='recalc') %] |
|
361 |
</td> |
|
362 |
</tr> |
|
262 |
[% PROCESS order/tabs/_item_input.html SELF=SELF %] |
|
363 | 263 |
|
364 |
<tr id="subtotal_row_id" [%- IF SELF.order.taxincluded %]style="display:none"[%- END %]> |
|
365 |
<th align="right">[%- 'Subtotal' | $T8 %]</th> |
|
366 |
<td align="right"> |
|
367 |
[%- L.div_tag(SELF.order.netamount_as_number, id='netamount_id') %] |
|
368 |
</td> |
|
369 |
</tr> |
|
370 |
[%- FOREACH tax = SELF.taxes %] |
|
371 |
[%- PROCESS order/tabs/_tax_row.html TAX=tax TAXINCLUDED=SELF.order.taxincluded %] |
|
372 |
[%- END %] |
|
373 |
<tr id="amount_row_id"> |
|
374 |
<th align="right">[%- 'Total' | $T8 %]</th> |
|
375 |
<td align="right"> |
|
376 |
[%- L.div_tag(SELF.order.amount_as_number, id='amount_id') %] |
|
377 |
</td> |
|
378 |
</tr> |
|
379 |
</table> |
|
380 |
</td> |
|
264 |
[%- IF SELF.positions_scrollbar_height -%] |
|
265 |
[%- SET scroll_style = 'style="overflow-y: auto; height:' _ SELF.positions_scrollbar_height _ 'vh;"' -%] |
|
266 |
[%- ELSE -%] |
|
267 |
[%- SET scroll_style = '' -%] |
|
268 |
[%- END -%] |
|
269 |
<div id="row_table_scroll_id" class="wrapper" [%- scroll_style -%]> |
|
381 | 270 |
|
382 |
</tr> |
|
383 |
</table> |
|
384 |
</td> |
|
271 |
<table id="row_table_id" class="tbl-list"> |
|
272 |
<caption>[% 'Articles' | $T8 %]</caption> |
|
273 |
<thead> |
|
274 |
<tr> |
|
275 |
<th class="center"> |
|
276 |
[% IF MYCONFIG.show_form_details %] |
|
277 |
[% 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") %] |
|
278 |
[% ELSE %] |
|
279 |
[% L.img_tag(src="image/expand.svg", alt=LxERP.t8('Show all details'), title=LxERP.t8('Show all details'), id='expand_all') %] |
|
280 |
[% END %] |
|
281 |
</th> |
|
282 |
<th>[% 'position' | $T8 %] </th> |
|
283 |
<th style='text-align:center'><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]"></th> |
|
284 |
<th style='text-align:center'><img src="image/close.png" alt="[% LxERP.t8('delete item') %]"></th> |
|
285 |
[%- IF SELF.show_update_button -%] |
|
286 |
<th class="listheading" style='text-align:center' nowrap width="1"> |
|
287 |
[%- L.img_tag(src="image/rotate_cw.svg", |
|
288 |
alt=LxERP.t8('Update from master data'), |
|
289 |
title= LxERP.t8('Update from master data'), |
|
290 |
onclick="if (!confirm('" _ LxERP.t8("Are you sure to update all positions from master data?") _ "')) return false; kivi.Order.update_all_rows_from_master_data();", |
|
291 |
id='update_from_master') %] |
|
292 |
</th> |
|
293 |
[%- END %] |
|
294 |
<th id="partnumber_header_id"><a href='#' onClick='javascript:kivi.Order.reorder_items("partnumber")'> [% 'Partnumber' | $T8 %]</a></th> |
|
295 |
[%- IF SELF.search_cvpartnumber -%] |
|
296 |
<th id="cvpartnumber_header_id"><a href='#' onClick='javascript:kivi.Order.reorder_items("cvpartnumber")'>[%- SELF.cv == "customer" ? LxERP.t8('Customer Part Number') : LxERP.t8('Model') %]</a></th> |
|
297 |
[%- END -%] |
|
298 |
<th id="partclass_header_id">[% 'Type' | $T8 %]</th> |
|
299 |
<th id="description_header_id"><a href='#' onClick='javascript:kivi.Order.reorder_items("description")'>[% 'Description' | $T8 %]</a></th> |
|
300 |
[%- IF (SELF.type == "sales_order" || SELF.type == "purchase_order") -%] |
|
301 |
<th id="shipped_qty_header_id"><a href='#' onClick='javascript:kivi.Order.reorder_items("shipped_qty")'>[% 'Delivered' | $T8 %]</a></th> |
|
302 |
[%- END -%] |
|
303 |
<th id="qty_header_id"><a href='#' onClick='javascript:kivi.Order.reorder_items("qty")'> [% 'Qty' | $T8 %]</a></th> |
|
304 |
<th >[% 'Price Factor' | $T8 %]</th> |
|
305 |
<th >[% 'Unit' | $T8 %]</th> |
|
306 |
<th >[% 'Price Source' | $T8 %]</th> |
|
307 |
<th id="sellprice_header_id"><a href='#' onClick='javascript:kivi.Order.reorder_items("sellprice")'> [% 'Price' | $T8 %]</a></th> |
|
308 |
<th id="discount_header_id" ><a href='#' onClick='javascript:kivi.Order.reorder_items("discount")'> [% 'Discount' | $T8 %]</a></th> |
|
309 |
<th>[% 'Extended' | $T8 %]</th> |
|
385 | 310 |
</tr> |
311 |
</thead> |
|
312 |
[% FOREACH item = SELF.order.items_sorted %] |
|
313 |
[% PROCESS order/tabs/_row.html ITEM=item ID=(item.id||item.new_fake_id) TYPE=SELF.type ALL_PRICE_FACTORS=SELF.all_price_factors SEARCH_CVPARTNUMBER=SELF.search_cvpartnumber %] |
|
314 |
[% END %] |
|
315 |
<tfoot> |
|
316 |
<tr id="subtotal_row_id"> |
|
317 |
<td colspan="11"></td> |
|
318 |
<th colspan="3">[% IF SELF.order.taxincluded %][% 'Subtotal' | $T8 %][% END %]</th> |
|
319 |
<td>[% IF SELF.order.taxincluded %][% L.div_tag(SELF.order.netamount_as_number, id='netamount_id') %][% END %]</td> |
|
320 |
</tr> |
|
321 |
[% FOREACH tax = SELF.taxes %] |
|
322 |
[% PROCESS order/tabs/_tax_row.html TAX=tax TAXINCLUDED=SELF.order.taxincluded %] |
|
323 |
[% END %] |
|
324 |
<tr id="amount_row_id"> |
|
325 |
[%- IF (SELF.type == "sales_order" || SELF.type == "sales_quotation") -%] |
|
326 |
[%- SET marge_class = (SELF.order.marge_total < 0) ? 'plus0' : '' -%] |
|
327 |
<th colspan="2">[% 'Ertrag' | $T8 %]</th> |
|
328 |
<td colspan="2" class="numeric">[%- L.div_tag(SELF.order.marge_total_as_number, id='marge_total_id', class=marge_class) %]</td> |
|
329 |
<th colspan="2">[% 'Ertrag prozentual' | $T8 %]</th> |
|
330 |
<td class="numeric">[%- LxERP.format_amount(SELF.order.marge_percent, 2) %] %</td> |
|
331 |
[%- ELSE -%] |
|
332 |
<td colspan="7"> |
|
333 |
[%- END -%] |
|
334 |
<td colspan="4"> |
|
335 |
<th colspan="3">[% 'Total' | $T8 %]</th> |
|
336 |
<td class="numeric">[% L.div_tag(SELF.order.amount_as_number, id='amount_id') %]</td> |
|
337 |
</tr> |
|
338 |
</tfoot> |
|
339 |
</table> |
|
386 | 340 |
|
387 |
</table>
|
|
341 |
</div><!-- /#row_table_scroll_id /.wrapper -->
|
|
388 | 342 |
|
389 |
</div> |
|
343 |
</div><!-- /#ui-tabs-basic-data -->
|
|
390 | 344 |
|
391 | 345 |
[% L.sortable_element('#row_table_id') %] |
Auch abrufbar als: Unified diff
Neues Design 2019 Standard-Code templates/webpages/order/tabs/basic_data.html