<tr>
<th align="right">[% SELF.cv | $T8 %]</th>
[% SET cv_id = SELF.cv _ '_id' %]
- <td>[% L.customer_vendor_picker('order.cv_id', SELF.order.$cv_id, type=SELF.cv, style='width: 300px') %]</td>
+ <td>[% L.customer_vendor_picker("order.${SELF.cv}" _ '_id', SELF.order.$cv_id, type=SELF.cv, style='width: 300px') %]</td>
</tr>
<tr id='cp_row' [%- IF !SELF.order.${SELF.cv}.contacts.size %]style='display:none;'[%- END %]>
title_key='safe_name') %]</td>
</tr>
+ [% IF SELF.cv == 'customer' %]
+ <tr>
+ <th align="right">[% 'Salesman' | $T8 %]</th>
+ <td>[% L.select_tag('order.employee_id',
+ SELF.all_employees,
+ default=(SELF.order.salesman_id ? SELF.order.salesman_id : SELF.current_employee_id),
+ title_key='safe_name') %]</td>
+ </tr>
+ [% END %]
+
<tr>
<th width="70%" align="right" nowrap>[% 'Order Number' | $T8 %]</th>
<td>[% L.input_tag('order.ordnumber', SELF.order.ordnumber, size = 11) %]</td>
</tr>
</table>
+ [%- PROCESS order/tabs/_item_input.html %]
+
<table width="100%">
<tr>
<td>
- <table id="row_table_id" width="100%">
- <thead>
- <tr class="listheading">
- <th class="listheading" style='display:none'></th>
- <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th>
- <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th>
- <th class="listheading" nowrap >[%- 'Part' | $T8 %] </th>
- <th class="listheading" nowrap width="5" >[%- 'Qty' | $T8 %] </th>
- <th class="listheading" nowrap width="5" >[%- 'Price Factor' | $T8 %] </th>
- <th class="listheading" nowrap width="5" >[%- 'Unit' | $T8 %] </th>
- <th class="listheading" nowrap width="15">[%- 'Price' | $T8 %] </th>
- <th class="listheading" nowrap width="5" >[%- 'Discount' | $T8 %] </th>
- <th class="listheading" nowrap width="10">[%- 'Extended' | $T8 %] </th>
- </tr>
- </thead>
-
- <tbody>
- [%- FOREACH item = SELF.order.items_sorted %]
- [%- PROCESS order/tabs/_row.html ITEM=item %]
- [%- END %]
- [%- IF !SELF.order.items.size %]
- [%- PROCESS order/tabs/_row.html ITEM='' %]
- [%- END %]
- </tbody>
- </table>
- </td>
- </tr>
+ <div id="row_table_scroll_id" style="overflow-y: auto; height: 45vh;">
+ <table id="row_table_id" width="100%">
+ <thead>
+ <tr class="listheading">
+ <th class="listheading" style='display:none'></th>
+ <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th>
+ <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th>
+ <th class="listheading" nowrap width="15">[%- 'Partnumber' | $T8 %] </th>
+ <th class="listheading" nowrap >[%- 'Description' | $T8 %] </th>
+ <th class="listheading" nowrap width="5" >[%- 'Qty' | $T8 %] </th>
+ <th class="listheading" nowrap width="5" >[%- 'Price Factor' | $T8 %] </th>
+ <th class="listheading" nowrap width="5" >[%- 'Unit' | $T8 %] </th>
+ <th class="listheading" nowrap width="15">[%- 'Price' | $T8 %] </th>
+ <th class="listheading" nowrap width="5" >[%- 'Discount' | $T8 %] </th>
+ <th class="listheading" nowrap width="10">[%- 'Extended' | $T8 %] </th>
+ </tr>
+ </thead>
+
+ <tbody>
+ [%- FOREACH item = SELF.order.items_sorted %]
+ [%- PROCESS order/tabs/_row.html ITEM=item %]
+ [%- END %]
+ </tbody>
+
+ </table>
+ </div>
- <tr>
+ </td>
</tr>
<tr>
- <td>[%- L.button_tag('add_order_item_row()', LxERP.t8("Add Row")) -%]</td>
</tr>
<tr>
[%- IF NOT taxincluded %]
<tr>
<th align="right">[%- 'Subtotal' | $T8 %]</th>
- <td align="right">[%- SELF.order.netamount_as_number %]</td>
+ <td align="right">
+ [%- L.div_tag(SELF.order.netamount_as_number, id='netamount_id') %]
+ </td>
</tr>
[%- END %]
[%- FOREACH tax = SELF.taxes %]
- <tr>
- <th align="right">[%- tax.tax.description %] [% tax.tax.rate_as_percent %]%</th>
- <td align="right">[%- LxERP.format_amount(tax.amount, 2, 0) %]</td>
- </tr>
+ [%- PROCESS order/tabs/_tax_row.html TAX=tax %]
[%- END %]
- <tr>
+ <tr id="amount_row_id">
<th align="right">[%- 'Total' | $T8 %]</th>
- <td align="right">[%- SELF.order.amount_as_number %]</td>
+ <td align="right">
+ [%- L.div_tag(SELF.order.amount_as_number, id='amount_id') %]
</tr>
</table>
</td>
<script type='text/javascript'>
function reload_cv_dependend_selections() {
$.post("controller.pl", { 'action': 'Order/customer_vendor_changed',
- 'cv_id': function(){ return $('#order_cv_id').val() },
+ 'cv_id': function(){ return $('#order_[%- cv_id%]').val() },
'type': function(){ return $('#type').val() },
}, kivi.eval_json_result);
}
-function add_order_item_row() {
- $.post("controller.pl", { 'action': 'Order/add_item_row',
- 'type' : function(){ return $('#type').val() }
- }, kivi.eval_json_result);
+function add_item() {
+ if ($('#add_item_parts_id').val() == '') return;
+
+ var data = $('#order_form').serialize();
+ data += '&action=Order/add_item';
+ data += '&type=' + $('#type').val();
+
+ $.post("controller.pl", data, kivi.eval_json_result);
}
function delete_order_item_row(clicked) {
var row = $(clicked).parents("tr").first();
$(row).remove();
-}
-function set_item_values(event) {
- var cv_id = $('#order_cv_id').val();
- var parts_id = $(event.target).val();
- var row = $(event.target).parents("tr").first();
-
- var item_id_dom = $(row).find('[name="item_id"]');
- var qty_dom = $(row).find('[id^="order_orderitems"][id$="qty_as_number"]');
- var unit_dom = $(row).find('[id^="order_orderitems"][id$="unit"]');
- var sellprice_dom = $(row).find('[id^="order_orderitems"][id$="sellprice_as_number"]');
- var discount_dom = $(row).find('[id^="order_orderitems"][id$="discount_as_percent"]');
-
- $.post("controller.pl", { 'action': 'Order/set_item_values',
- 'item_id': item_id_dom.val(),
- 'cv_id': cv_id,
- 'parts_id': parts_id,
- 'qty': qty_dom.val(),
- 'discount': discount_dom.val(),
- 'sellprice': sellprice_dom.val(),
- 'qty_dom_id': qty_dom.attr("id"),
- 'unit_dom_id': unit_dom.attr("id"),
- 'sellprice_dom_id': sellprice_dom.attr("id"),
- 'discount_dom_id': discount_dom.attr("id"),
- 'type': function(){ return $('#type').val() }
- }, kivi.eval_json_result);
+ recalc_amounts_and_taxes()
}
-function recalc_linetotal(item_id, amount) {
- $('#item_' + item_id).parents("tr").first().find('[name="linetotal"]').html(amount);
+function recalc_amounts_and_taxes() {
+ var data = $('#order_form').serialize();
+ data += '&action=Order/recalc_amounts_and_taxes';
+ data += '&type=' + $('#type').val();
+
+ $.post("controller.pl", data, kivi.eval_json_result);
}
+function row_table_scroll_down() {
+ $('#row_table_scroll_id').scrollTop($('#row_table_scroll_id')[0].scrollHeight);
+}
$(function(){
- $('#order_cv_id').change(reload_cv_dependend_selections);
- $('[id^="order_orderitems"][id$="parts_id"]').change(set_item_values);
+ $('#order_[%- cv_id %]').change(reload_cv_dependend_selections);
+ $('#add_item_parts_id').on('set_item:PartPicker', function(e,o) { $('#add_item_sellprice_as_number').val(kivi.format_amount(o.sellprice, -2)) });
+ $('#add_item_parts_id').on('set_item:PartPicker', function(e,o) { $('#add_item_description').val(o.description) });
+ $('.add_item_input').keydown(function(event) {
+ if(event.keyCode == 13) {
+ event.preventDefault();
+ add_item();
+ return false;
+ }
+ });
});
+
</script>