Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / templates / webpages / order / tabs / _row.html
diff --git a/templates/webpages/order/tabs/_row.html b/templates/webpages/order/tabs/_row.html
new file mode 100644 (file)
index 0000000..0c29b3b
--- /dev/null
@@ -0,0 +1,162 @@
+[%- USE T8 %]
+[%- USE HTML %]
+[%- USE LxERP %]
+[%- USE L %]
+[%- USE P %]
+
+<tbody class="row_entry listrow" data-position="[%- HTML.escape(ITEM.position) -%]"[%- IF MYCONFIG.show_form_details -%] data-expanded="1"[%- END -%]>
+  <tr>
+    <td align="center">
+      [%- IF MYCONFIG.show_form_details %]
+        [% L.img_tag(src="image/collapse.svg",
+                     alt=LxERP.t8('Hide details'), title=LxERP.t8('Hide details'), class="expand") %]
+      [%- ELSE %]
+        [% L.img_tag(src="image/expand.svg",
+                     alt=LxERP.t8('Show details'), title=LxERP.t8('Show details'), class="expand") %]
+      [%- END %]
+      [% L.hidden_tag("orderitem_ids[+]", ID) %]
+      [% L.hidden_tag("converted_from_orderitems_ids[+]", ITEM.converted_from_orderitems_id) %]
+      [% L.hidden_tag("order.orderitems[+].id", ITEM.id, id='item_' _ ID) %]
+      [% L.hidden_tag("order.orderitems[].parts_id", ITEM.parts_id) %]
+    </td>
+    <td>
+      <div name="position" class="numeric">
+        [% HTML.escape(ITEM.position) %]
+      </div>
+    </td>
+    <td align="center">
+      <img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]" class="dragdrop">
+    </td>
+    <td align="center">
+      [%- L.button_tag("kivi.Order.delete_order_item_row(this)",
+                       LxERP.t8("X"),
+                       confirm=LxERP.t8("Are you sure?")) %]
+    </td>
+    [%- IF SELF.show_update_button -%]
+    <td align="center">
+      [%- L.img_tag(src="image/rotate_cw.svg",
+                    alt=LxERP.t8('Update from master data'),
+                    title= LxERP.t8('Update from master data'),
+                    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);",
+                    id='update_from_master') %]
+    </td>
+    [%- END -%]
+    <td>
+      <div name="partnumber">
+        [%- 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')) -%]
+      </div>
+    </td>
+    [%- IF SELF.search_cvpartnumber -%]
+    <td>
+      <div name="cvpartnumber">[% HTML.escape(ITEM.cvpartnumber) %]</div>
+    </td>
+    [%- END -%]
+    <td>
+      <div name="partclassification">[% ITEM.part.presenter.typeclass_abbreviation %]</div>
+    </td>
+    <td>
+      [% L.areainput_tag("order.orderitems[].description",
+                     ITEM.description,
+                     size='40',
+                     style='width: 300px') %]
+      [%- L.hidden_tag("order.orderitems[].longdescription", ITEM.longdescription) %]
+      [%- L.button_tag("kivi.Order.show_longdescription_dialog(this)", LxERP.t8("L")) %]
+    </td>
+    [%- IF (SELF.type == "sales_order" || SELF.type == "purchase_order") -%]
+    <td nowrap>
+      [%- L.div_tag(LxERP.format_amount(ITEM.shipped_qty, 2, 0) _ ' ' _ ITEM.unit, name="shipped_qty", class="numeric") %]
+    </td>
+    [%- END -%]
+    <td nowrap>
+      [%- L.input_tag("order.orderitems[].qty_as_number",
+                      ITEM.qty_as_number,
+                      size = 5,
+                      class="recalc reformat_number numeric") %]
+      [%- IF ITEM.part.formel -%]
+        [%- L.button_tag("kivi.Order.show_calculate_qty_dialog(this)", LxERP.t8("*/")) %]
+        [%- L.hidden_tag("formula[+]", ITEM.part.formel) -%]
+      [%- END -%]
+    </td>
+    <td>
+      [%- L.select_tag("order.orderitems[].price_factor_id",
+                       SELF.all_price_factors,
+                       default = ITEM.price_factor_id,
+                       title_key = 'description',
+                       with_empty = 1,
+                       class="recalc") %]
+    </td>
+    <td nowrap>
+      [%- L.select_tag("order.orderitems[].unit",
+                      ITEM.part.available_units,
+                      default = ITEM.unit,
+                      title_key = 'name',
+                      value_key = 'name',
+                      class = 'unitselect') %]
+    </td>
+    <td>
+      [%- L.button_tag("kivi.Order.price_chooser_item_row(this)",
+                       ITEM.active_price_source.source_description _ ' | ' _ ITEM.active_discount_source.source_description,
+                       name = "price_chooser_button") %]
+    </td>
+    [% SET RIGHT_TO_EDIT_PRICES = 0 %]
+    [% IF (SELF.type == "sales_order" || SELF.type == "sales_quotation") %]
+      [% SET RIGHT_TO_EDIT_PRICES = AUTH.assert('sales_edit_prices', 1) %]
+    [% END %]
+    [% IF (SELF.type == "purchase_order" || SELF.type == "request_quotation") %]
+      [% SET RIGHT_TO_EDIT_PRICES = AUTH.assert('purchase_edit_prices', 1) %]
+    [% END %]
+    <td>
+      [%- L.hidden_tag("order.orderitems[].active_price_source", ITEM.active_price_source.source) %]
+      [%- SET EDIT_PRICE = (RIGHT_TO_EDIT_PRICES && ITEM.active_price_source.source == '') %]
+      <div name="editable_price" [%- IF !EDIT_PRICE %]style="display:none"[%- END %] class="numeric">
+        [%- L.input_tag("order.orderitems[].sellprice_as_number",
+                        ITEM.sellprice_as_number,
+                        size = 10,
+                        disabled=(EDIT_PRICE? '' : 1),
+                        class="recalc reformat_number numeric") %]
+      </div>
+      <div name="not_editable_price" [%- IF EDIT_PRICE %]style="display:none"[%- END %]>
+        [%- L.div_tag(ITEM.sellprice_as_number, name="sellprice_text", class="numeric") %]
+        [%- L.hidden_tag("order.orderitems[].sellprice_as_number",
+                         ITEM.sellprice_as_number,
+                         disabled=(EDIT_PRICE? 1 : '')) %]
+      </div>
+    </td>
+    <td>
+      [%- L.hidden_tag("order.orderitems[].active_discount_source", ITEM.active_discount_source.source) %]
+      [%- SET EDIT_DISCOUNT = (RIGHT_TO_EDIT_PRICES && ITEM.active_discount_source.source == '') %]
+      <div name="editable_discount" [%- IF !EDIT_DISCOUNT %]style="display:none"[%- END %] class="numeric">
+        [%- L.input_tag("order.orderitems[].discount_as_percent",
+                        ITEM.discount_as_percent,
+                        size = 5,
+                        disabled=(EDIT_DISCOUNT? '' : 1),
+                        class="recalc reformat_number numeric") %]
+      </div>
+      <div name="not_editable_discount" [%- IF EDIT_DISCOUNT %]style="display:none"[%- END %]>
+        [%- L.div_tag(ITEM.discount_as_percent, name="discount_text", class="numeric") %]
+        [%- L.hidden_tag("order.orderitems[].discount_as_percent",
+                         ITEM.discount_as_percent,
+                         disabled=(EDIT_DISCOUNT? 1 : '')) %]
+      </div>
+    </td>
+    <td align="right">
+      [%- L.div_tag(LxERP.format_amount(ITEM.linetotal, 2, 0), name="linetotal") %]
+    </td>
+
+  </tr>
+
+  <tr [%- IF !MYCONFIG.show_form_details -%]style="display:none"[%- END -%]>
+    <td colspan="100%">
+      [%- IF MYCONFIG.show_form_details || ITEM.render_second_row %]
+        <div name="second_row" data-loaded="1">
+          [%- PROCESS order/tabs/_second_row.html ITEM=ITEM TYPE=SELF.type %]
+        </div>
+      [%- ELSE %]
+        <div name="second_row" id="second_row_[% ID %]">
+          [%- LxERP.t8("Loading...") %]
+        </div>
+      [%- END %]
+    </td>
+  </tr>
+
+</tbody>