X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/0935b012a57196f883b59ec97bb7fe0882210c5a..7cfd5989c1b23a8a0d19711d68c900e92b1666ad:/js/kivi.Order.js diff --git a/js/kivi.Order.js b/js/kivi.Order.js index 3e6853554..d933def6f 100644 --- a/js/kivi.Order.js +++ b/js/kivi.Order.js @@ -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' }); @@ -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) { + 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) { // 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; }