X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=js%2Fkivi.Order.js;h=5d891d56eaa767aede739681bea79c89e99bf2bc;hb=3d60ae4d1cd9ff7573acb3592f1eadd6cc0aee3f;hp=eea906df523febfa9b4c70744d1833962d50da95;hpb=e09f2da35e02b34569254b5d1550aa5dd287761f;p=kivitendo-erp.git diff --git a/js/kivi.Order.js b/js/kivi.Order.js index eea906df5..5d891d56e 100644 --- a/js/kivi.Order.js +++ b/js/kivi.Order.js @@ -1,12 +1,12 @@ namespace('kivi.Order', function(ns) { ns.check_cv = function() { if ($('#type').val() == 'sales_order') { - if ($('#order_customer_id').val() == '') { + if ($('#order_customer_id').val() === '') { alert(kivi.t8('Please select a customer.')); return false; } } else { - if ($('#order_vendor_id').val() == '') { + if ($('#order_vendor_id').val() === '') { alert(kivi.t8('Please select a vendor.')); return false; } @@ -138,7 +138,7 @@ namespace('kivi.Order', function(ns) { email_dialog.dialog("close"); }; - ns.reload_cv_dependend_selections = function() { + ns.reload_cv_dependant_selections = function() { var data = $('#order_form').serializeArray(); data.push({ name: 'action', value: 'Order/customer_vendor_changed' }); @@ -182,6 +182,67 @@ namespace('kivi.Order', function(ns) { html_elt.html(price_str); }; + ns.load_second_row = function(row) { + var item_id_dom = $(row).find('[name="orderitem_ids[+]"]'); + var div_elt = $(row).find('[name="second_row"]'); + + if ($(div_elt).data('loaded') == 1) { + return; + } + var data = $('#order_form').serializeArray(); + data.push({ name: 'action', value: 'Order/load_second_rows' }); + data.push({ name: 'item_ids[]', value: item_id_dom.val() }); + + $.post("controller.pl", data, kivi.eval_json_result); + }; + + ns.load_all_second_rows = function() { + var rows = $('.row_entry').filter(function(idx, elt) { + return $(elt).find('[name="second_row"]').data('loaded') != 1; + }); + + var item_ids = $.map(rows, function(elt) { + var item_id = $(elt).find('[name="orderitem_ids[+]"]').val(); + return { name: 'item_ids[]', value: item_id }; + }); + + if (item_ids.length == 0) { + return; + } + + var data = $('#order_form').serializeArray(); + data.push({ name: 'action', value: 'Order/load_second_rows' }); + data = data.concat(item_ids); + + $.post("controller.pl", data, kivi.eval_json_result); + }; + + ns.hide_second_row = function(row) { + $(row).children().not(':first').hide(); + $(row).data('expanded', 0); + var elt = $(row).find('.expand'); + elt.attr('src', "image/expand.svg"); + elt.attr('alt', kivi.t8('Show details')); + elt.attr('title', kivi.t8('Show details')); + }; + + ns.show_second_row = function(row) { + $(row).children().not(':first').show(); + $(row).data('expanded', 1); + var elt = $(row).find('.expand'); + elt.attr('src', "image/collapse.svg"); + elt.attr('alt', kivi.t8('Hide details')); + elt.attr('title', kivi.t8('Hide details')); + }; + + ns.toggle_second_row = function(row) { + if ($(row).data('expanded') == 1) { + ns.hide_second_row(row); + } else { + ns.show_second_row(row); + } + }; + ns.init_row_handlers = function() { kivi.run_once_for('.recalc', 'on_change_recalc', function(elt) { $(elt).change(ns.recalc_amounts_and_taxes); @@ -198,33 +259,48 @@ namespace('kivi.Order', function(ns) { kivi.run_once_for('.row_entry', 'on_kbd_click_show_hide', function(elt) { $(elt).keydown(function(event) { - if(event.keyCode == 40 && event.shiftKey == true) { + 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(); + ns.load_second_row(row); + ns.show_second_row(row); return false; } - if(event.keyCode == 38 && event.shiftKey == true) { + 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(); + ns.hide_second_row(row); return false; } }); - $(elt).dblclick(function(event) { + }); + + kivi.run_once_for('.expand', 'expand_second_row', function(elt) { + $(elt).click(function(event) { event.preventDefault(); var row = $(event.target).parents(".row_entry").first(); - $(row).children().not(':first').toggle(); + ns.load_second_row(row); + ns.toggle_second_row(row); return false; - }); + }) }); + }; - ns.redisplay_linetotals = function(data) { - $('.row_entry [name="linetotal"]').each(function(idx, elt) { - $(elt).html(data[idx]); + ns.redisplay_line_values = function(is_sales, data) { + $('.row_entry').each(function(idx, elt) { + $(elt).find('[name="linetotal"]').html(data[idx][0]); + if (is_sales && $(elt).find('[name="second_row"]').data('loaded') == 1) { + var mt = data[idx][1]; + var mp = data[idx][2]; + var h = ''); @@ -268,7 +344,7 @@ namespace('kivi.Order', function(ns) { }; ns.add_item = function() { - if ($('#add_item_parts_id').val() == '') return; + if ($('#add_item_parts_id').val() === '') return; if (!ns.check_cv()) return; $('#row_table_id thead a img').remove(); @@ -378,7 +454,7 @@ namespace('kivi.Order', function(ns) { var editable_div_elt = $(row).find('[name="editable_price"]'); var not_editable_div_elt = $(row).find('[name="not_editable_price"]'); - if (price_editable == 1 && source == '') { + if (price_editable == 1 && source === '') { // editable $(editable_div_elt).show(); $(not_editable_div_elt).hide(); @@ -413,7 +489,7 @@ namespace('kivi.Order', function(ns) { var editable_div_elt = $(row).find('[name="editable_discount"]'); var not_editable_div_elt = $(row).find('[name="not_editable_discount"]'); - if (price_editable == 1 && source == '') { + if (price_editable == 1 && source === '') { // editable $(editable_div_elt).show(); $(not_editable_div_elt).hide(); @@ -442,9 +518,9 @@ namespace('kivi.Order', function(ns) { $(function(){ if ($('#type').val() == 'sales_order') { - $('#order_customer_id').change(kivi.Order.reload_cv_dependend_selections); + $('#order_customer_id').change(kivi.Order.reload_cv_dependant_selections); } else { - $('#order_vendor_id').change(kivi.Order.reload_cv_dependend_selections); + $('#order_vendor_id').change(kivi.Order.reload_cv_dependant_selections); } if ($('#type').val() == 'sales_order') { @@ -469,4 +545,28 @@ $(function(){ $('#row_table_id thead a img').remove(); kivi.Order.renumber_positions(); }); + + $('#expand_all').on('click', function(event) { + event.preventDefault(); + if ($('#expand_all').data('expanded') == 1) { + $('#expand_all').data('expanded', 0); + $('#expand_all').attr('src', 'image/expand.svg'); + $('#expand_all').attr('alt', kivi.t8('Show all details')); + $('#expand_all').attr('title', kivi.t8('Show all details')); + $('.row_entry').each(function(idx, elt) { + kivi.Order.hide_second_row(elt); + }); + } else { + $('#expand_all').data('expanded', 1); + $('#expand_all').attr('src', "image/collapse.svg"); + $('#expand_all').attr('alt', kivi.t8('Hide all details')); + $('#expand_all').attr('title', kivi.t8('Hide all details')); + kivi.Order.load_all_second_rows(); + $('.row_entry').each(function(idx, elt) { + kivi.Order.show_second_row(elt); + }); + } + return false; + }); + });