X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/0935b012a57196f883b59ec97bb7fe0882210c5a..d59576d22d6c7720c0078b3e17232c81bbaf9373:/js/kivi.Order.js?ds=inline diff --git a/js/kivi.Order.js b/js/kivi.Order.js index 3e6853554..c4aabf763 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; } @@ -14,8 +14,30 @@ namespace('kivi.Order', function(ns) { return true; }; - ns.save = function() { + ns.check_save_duplicate_parts = function() { + var id_arr = $('[name="order.orderitems[].parts_id"]').map(function() {return this.value;}).get(); + + var i, obj = {}, pos = []; + + for (i = 0; i < id_arr.length; i++) { + var id = id_arr[i]; + if (obj.hasOwnProperty(id)) { + pos.push(i + 1); + } + obj[id] = 0; + } + + if (pos.length > 0) { + return confirm(kivi.t8("There are duplicate parts at positions") + "\n" + + pos.join(', ') + "\n" + + kivi.t8("Do you really want to save?")); + } + return true; + }; + + ns.save = function(warn_on_duplicates) { if (!ns.check_cv()) return; + if (warn_on_duplicates && !ns.check_save_duplicate_parts()) return; var data = $('#order_form').serializeArray(); data.push({ name: 'action', value: 'Order/save' }); @@ -23,8 +45,9 @@ namespace('kivi.Order', function(ns) { $.post("controller.pl", data, kivi.eval_json_result); }; - ns.save_and_delivery_order = function() { + ns.save_and_delivery_order = function(warn_on_duplicates) { if (!ns.check_cv()) return; + if (warn_on_duplicates && !ns.check_save_duplicate_parts()) return; var data = $('#order_form').serializeArray(); data.push({ name: 'action', value: 'Order/save_and_delivery_order' }); @@ -115,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' }); @@ -175,17 +198,18 @@ 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) { + var row; + if(event.keyCode == 40 && event.shiftKey === true) { // shift arrow down event.preventDefault(); - var row = $(event.target).parents(".row_entry").first(); + row = $(event.target).parents(".row_entry").first(); $(row).children().not(':first').show(); 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 = $(event.target).parents(".row_entry").first(); $(row).children().not(':first').hide(); return false; } @@ -222,7 +246,7 @@ namespace('kivi.Order', function(ns) { } else { dir = "1"; src = "image/down.png"; - }; + } $('#' + order_by + '_header_id a').append('' + kivi.t8('sort items') + ''); @@ -245,7 +269,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(); @@ -355,7 +379,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(); @@ -390,7 +414,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(); @@ -419,9 +443,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') {