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>
<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>
+
+ <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>
+
[%- FOREACH item = SELF.order.items_sorted %]
[%- PROCESS order/tabs/_row.html ITEM=item %]
[%- END %]
- </tbody>
- </table>
+ </table>
+ </div>
+
</td>
</tr>
</div>
-[% L.sortable_element('#row_table_id tbody') %]
+[% L.sortable_element('#row_table_id') %]
<script type='text/javascript'>
function reload_cv_dependend_selections() {
}
function add_item() {
+ if ($('#add_item_parts_id').val() == '') return;
+
var data = $('#order_form').serialize();
data += '&action=Order/add_item';
data += '&type=' + $('#type').val();
}
function delete_order_item_row(clicked) {
- var row = $(clicked).parents("tr").first();
+ var row = $(clicked).parents("tbody").first();
$(row).remove();
- recalc_amounts_and_taxes()
+ recalc_amounts_and_taxes();
}
-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="order.orderitems[+].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"]');
-
+function recalc_amounts_and_taxes() {
var data = $('#order_form').serialize();
- data += '&action=Order/set_item_values';
+ data += '&action=Order/recalc_amounts_and_taxes';
data += '&type=' + $('#type').val();
- data += '&item_id=' + item_id_dom.val();
- data += '&qty_dom_id=' + qty_dom.attr("id");
- data += '&unit_dom_id=' + unit_dom.attr("id");
- data += '&sellprice_dom_id=' + sellprice_dom.attr("id");
- data += '&discount_dom_id=' + discount_dom.attr("id");
$.post("controller.pl", data, kivi.eval_json_result);
}
-function recalc_amounts_and_taxes() {
- var data = $('#order_form').serialize();
- data += '&action=Order/recalc_amounts_and_taxes';
- data += '&type=' + $('#type').val();
+function redisplay_linetotals(data) {
+ $('.row_entry [name="linetotal"]').each(function(idx, elt) {
+ $(elt).html(data[idx]);
+ });
+}
- $.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 display_linetotal(item_id, amount) {
- $('#item_' + item_id).parents("tr").first().find('[name="linetotal"]').html(amount);
+function row_set_keyboard_events_by_id(item_id) {
+ var row = $('#item_' + item_id).parents("tbody").first();
+
+ row_set_keyboard_events(row);
}
+function row_set_keyboard_events(rows) {
+ $(rows).keydown(function(event) {
+ if(event.keyCode == 40 && event.shiftKey == true) {
+ // shift arrow down
+ event.preventDefault();
+ var row = $(event.target).parents(".row_entry").first();
+ $(row).children().not(':first').show();
+ return false;
+ }
+ if(event.keyCode == 38 && event.shiftKey == true) {
+ // shift arrow up
+ event.preventDefault();
+ var row = $(event.target).parents(".row_entry").first();
+ $(row).children().not(':first').hide();
+ return false;
+ }
+ });
+
+ $(rows).dblclick(function(event) {
+ event.preventDefault();
+ var row = $(event.target).parents(".row_entry").first();
+ $(row).children().not(':first').toggle();
+ return false;
+ });
+}
$(function(){
$('#order_[%- cv_id %]').change(reload_cv_dependend_selections);
- $('[id^="order_orderitems"][id$="parts_id"]').change(set_item_values);
$('#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();
return false;
}
});
+ row_set_keyboard_events($('.row_entry'));
+ $('.recalc').change(recalc_amounts_and_taxes);
});
</script>