b93b728619593a77b606f0a01c4b9d2f843e0bd9
[kivitendo-erp.git] / templates / webpages / order / tabs / _row.html
1 [%- USE T8 %]
2 [%- USE HTML %]
3 [%- USE LxERP %]
4 [%- USE L %]
5 [%- USE P %]
6
7 <tbody class="row_entry listrow" data-position="[%- HTML.escape(ITEM.position) -%]"[%- IF MYCONFIG.show_form_details -%] data-expanded="1"[%- END -%]>
8   <tr>
9     <td align="center">
10       [%- IF MYCONFIG.show_form_details %]
11         [% L.img_tag(src="image/collapse.svg",
12                      alt=LxERP.t8('Hide details'), title=LxERP.t8('Hide details'), class="expand") %]
13       [%- ELSE %]
14         [% L.img_tag(src="image/expand.svg",
15                      alt=LxERP.t8('Show details'), title=LxERP.t8('Show details'), class="expand") %]
16       [%- END %]
17       [% L.hidden_tag("orderitem_ids[+]", ID) %]
18       [% L.hidden_tag("converted_from_orderitems_ids[+]", ITEM.converted_from_orderitems_id) %]
19       [% L.hidden_tag("order.orderitems[+].id", ITEM.id, id='item_' _ ID) %]
20       [% L.hidden_tag("order.orderitems[].parts_id", ITEM.parts_id) %]
21     </td>
22     <td>
23       <div name="position" class="numeric">
24         [% HTML.escape(ITEM.position) %]
25       </div>
26     </td>
27     <td align="center">
28       <img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]" class="dragdrop">
29     </td>
30     <td align="center">
31       [%- L.button_tag("kivi.Order.delete_order_item_row(this)",
32                        LxERP.t8("X"),
33                        confirm=LxERP.t8("Are you sure?")) %]
34     </td>
35     [%- IF SELF.show_update_button -%]
36     <td align="center">
37       [%- L.img_tag(src="image/rotate_cw.svg",
38                     alt=LxERP.t8('Update from master data'),
39                     title= LxERP.t8('Update from master data'),
40                     onclick="if (!confirm('" _ LxERP.t8("Are you sure to update this position from master data?") _ "')) return false; kivi.Order.update_row_from_master_data(this);",
41                     id='update_from_master') %]
42     </td>
43     [%- END -%]
44     <td>
45       <div name="partnumber">
46         [%- 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')) -%]
47       </div>
48     </td>
49     [%- IF SELF.search_cvpartnumber -%]
50     <td>
51       <div name="cvpartnumber">[% HTML.escape(ITEM.cvpartnumber) %]</div>
52     </td>
53     [%- END -%]
54     <td>
55       <div name="partclassification">[% ITEM.part.presenter.typeclass_abbreviation %]</div>
56     </td>
57     <td>
58       [% L.areainput_tag("order.orderitems[].description",
59                      ITEM.description,
60                      size='40',
61                      style='width: 300px') %]
62       [%- IF ITEM.render_longdescription -%]
63         [%- L.hidden_tag("order.orderitems[].longdescription", ITEM.longdescription) %]
64       [%- END -%]
65       [%- L.button_tag("kivi.Order.show_longdescription_dialog(this)", LxERP.t8("L")) %]
66     </td>
67     [%- IF (SELF.type == "sales_order" || SELF.type == "purchase_order") -%]
68     <td nowrap>
69       [%- L.div_tag(LxERP.format_amount(ITEM.shipped_qty, 2, 0) _ ' ' _ ITEM.unit, name="shipped_qty", class="numeric") %]
70     </td>
71     [%- END -%]
72     <td nowrap>
73       [%- L.input_tag("order.orderitems[].qty_as_number",
74                       ITEM.qty_as_number,
75                       size = 5,
76                       class="recalc reformat_number numeric") %]
77       [%- IF ITEM.part.formel -%]
78         [%- L.button_tag("kivi.Order.show_calculate_qty_dialog(this)", LxERP.t8("*/")) %]
79         [%- L.hidden_tag("formula[+]", ITEM.part.formel) -%]
80       [%- END -%]
81     </td>
82     <td>
83       [%- L.select_tag("order.orderitems[].price_factor_id",
84                        SELF.all_price_factors,
85                        default = ITEM.price_factor_id,
86                        title_key = 'description',
87                        with_empty = 1,
88                        class="recalc") %]
89     </td>
90     <td nowrap>
91       [%- L.select_tag("order.orderitems[].unit",
92                       ITEM.part.available_units,
93                       default = ITEM.unit,
94                       title_key = 'name',
95                       value_key = 'name',
96                       class = 'unitselect') %]
97     </td>
98     <td>
99       [%- L.button_tag("kivi.Order.price_chooser_item_row(this)",
100                        ITEM.active_price_source.source_description _ ' | ' _ ITEM.active_discount_source.source_description,
101                        name = "price_chooser_button") %]
102     </td>
103     [% SET RIGHT_TO_EDIT_PRICES = 0 %]
104     [% IF (SELF.type == "sales_order" || SELF.type == "sales_quotation") %]
105       [% SET RIGHT_TO_EDIT_PRICES = AUTH.assert('sales_edit_prices', 1) %]
106     [% END %]
107     [% IF (SELF.type == "purchase_order" || SELF.type == "request_quotation") %]
108       [% SET RIGHT_TO_EDIT_PRICES = AUTH.assert('purchase_edit_prices', 1) %]
109     [% END %]
110     <td>
111       [%- L.hidden_tag("order.orderitems[].active_price_source", ITEM.active_price_source.source) %]
112       [%- SET EDIT_PRICE = (RIGHT_TO_EDIT_PRICES && ITEM.active_price_source.source == '') %]
113       <div name="editable_price" [%- IF !EDIT_PRICE %]style="display:none"[%- END %] class="numeric">
114         [%- L.input_tag("order.orderitems[].sellprice_as_number",
115                         ITEM.sellprice_as_number,
116                         size = 10,
117                         disabled=(EDIT_PRICE? '' : 1),
118                         class="recalc reformat_number numeric") %]
119       </div>
120       <div name="not_editable_price" [%- IF EDIT_PRICE %]style="display:none"[%- END %]>
121         [%- L.div_tag(ITEM.sellprice_as_number, name="sellprice_text", class="numeric") %]
122         [%- L.hidden_tag("order.orderitems[].sellprice_as_number",
123                          ITEM.sellprice_as_number,
124                          disabled=(EDIT_PRICE? 1 : '')) %]
125       </div>
126     </td>
127     <td>
128       [%- L.hidden_tag("order.orderitems[].active_discount_source", ITEM.active_discount_source.source) %]
129       [%- SET EDIT_DISCOUNT = (RIGHT_TO_EDIT_PRICES && ITEM.active_discount_source.source == '') %]
130       <div name="editable_discount" [%- IF !EDIT_DISCOUNT %]style="display:none"[%- END %] class="numeric">
131         [%- L.input_tag("order.orderitems[].discount_as_percent",
132                         ITEM.discount_as_percent,
133                         size = 5,
134                         disabled=(EDIT_DISCOUNT? '' : 1),
135                         class="recalc reformat_number numeric") %]
136       </div>
137       <div name="not_editable_discount" [%- IF EDIT_DISCOUNT %]style="display:none"[%- END %]>
138         [%- L.div_tag(ITEM.discount_as_percent, name="discount_text", class="numeric") %]
139         [%- L.hidden_tag("order.orderitems[].discount_as_percent",
140                          ITEM.discount_as_percent,
141                          disabled=(EDIT_DISCOUNT? 1 : '')) %]
142       </div>
143     </td>
144     <td align="right">
145       [%- L.div_tag(LxERP.format_amount(ITEM.linetotal, 2, 0), name="linetotal") %]
146     </td>
147
148   </tr>
149
150   <tr [%- IF !MYCONFIG.show_form_details -%]style="display:none"[%- END -%]>
151     <td colspan="100%">
152       [%- IF MYCONFIG.show_form_details || ITEM.render_second_row %]
153         <div name="second_row" data-loaded="1">
154           [%- PROCESS order/tabs/_second_row.html ITEM=ITEM TYPE=SELF.type %]
155         </div>
156       [%- ELSE %]
157         <div name="second_row" id="second_row_[% ID %]">
158           [%- LxERP.t8("Loading...") %]
159         </div>
160       [%- END %]
161     </td>
162   </tr>
163
164 </tbody>