X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=js%2Fkivi.Order.js;h=e7815d497d652275d2b9736c43fa2685738425f1;hb=452e195fa7d3ecf6cb625938d8016dd04bcc33ce;hp=673b9a3e40f47f8cfd724867291688698819f995;hpb=68da3b40ad7656aeb01dd92e037aa90859628f7a;p=kivitendo-erp.git diff --git a/js/kivi.Order.js b/js/kivi.Order.js index 673b9a3e4..e7815d497 100644 --- a/js/kivi.Order.js +++ b/js/kivi.Order.js @@ -14,7 +14,7 @@ namespace('kivi.Order', function(ns) { return true; }; - ns.check_save_duplicate_parts = function() { + ns.check_duplicate_parts = function(question) { var id_arr = $('[name="order.orderitems[].parts_id"]').map(function() { return this.value; }).get(); var i, obj = {}, pos = []; @@ -28,15 +28,16 @@ namespace('kivi.Order', function(ns) { } if (pos.length > 0) { + question = question || kivi.t8("Do you really want to save?"); return confirm(kivi.t8("There are duplicate parts at positions") + "\n" + pos.join(', ') + "\n" - + kivi.t8("Do you really want to save?")); + + question); } return true; }; ns.check_valid_reqdate = function() { - if ($('#order_reqdate').val() === '') { + if ($('#order_reqdate_as_date').val() === '') { alert(kivi.t8('Please select a delivery date.')); return false; } else { @@ -46,8 +47,8 @@ namespace('kivi.Order', function(ns) { ns.save = function(action, warn_on_duplicates, warn_on_reqdate) { if (!ns.check_cv()) return; - if (warn_on_duplicates && !ns.check_save_duplicate_parts()) return; - if (warn_on_reqdate && !ns.check_valid_reqdate()) return; + if (warn_on_duplicates && !ns.check_duplicate_parts()) return; + if (warn_on_reqdate && !ns.check_valid_reqdate()) return; var data = $('#order_form').serializeArray(); data.push({ name: 'action', value: 'Order/' + action }); @@ -62,8 +63,9 @@ namespace('kivi.Order', function(ns) { $.post("controller.pl", data, kivi.eval_json_result); }; - ns.show_print_options = function() { + ns.show_print_options = function(warn_on_duplicates) { if (!ns.check_cv()) return; + if (warn_on_duplicates && !ns.check_duplicate_parts(kivi.t8("Do you really want to print?"))) return; kivi.popup_dialog({ id: 'print_options', @@ -93,8 +95,10 @@ namespace('kivi.Order', function(ns) { $.download("controller.pl", data); }; - ns.email = function() { + ns.email = function(warn_on_duplicates) { + if (warn_on_duplicates && !ns.check_duplicate_parts(kivi.t8("Do you really want to send by mail?"))) return; if (!ns.check_cv()) return; + var data = $('#order_form').serializeArray(); data.push({ name: 'action', value: 'Order/show_email_dialog' }); @@ -284,10 +288,11 @@ 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(); ns.load_second_row(row); ns.show_second_row(row); return false; @@ -295,7 +300,7 @@ namespace('kivi.Order', function(ns) { 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(); ns.hide_second_row(row); return false; } @@ -380,17 +385,28 @@ namespace('kivi.Order', function(ns) { $.post("controller.pl", data, kivi.eval_json_result); }; + ns.setup_multi_items_dialog = function() { + $('#multi_items_filter_table input, #multi_items_filter_table select').keydown(function(event) { + if (event.keyCode == 13) { + event.preventDefault(); + ns.multi_items_dialog_update_result(); + return false; + } + }); + + $('#multi_items_filter_all_substr_multi_ilike').focus(); + }; + ns.show_multi_items_dialog = function() { if (!ns.check_cv()) return; $('#row_table_id thead a img').remove(); kivi.popup_dialog({ - url: 'controller.pl?action=Order/show_multi_items_dialog', - data: { type: $('#type').val(), - callback: 'Order/add_multi_items', - callback_data_id: 'order_form' }, - id: 'jq_multi_items_dialog', + url: 'controller.pl?action=Order/show_multi_items_dialog', + data: { type: $('#type').val() }, + id: 'jq_multi_items_dialog', + load: kivi.Order.setup_multi_items_dialog, dialog: { title: kivi.t8('Add multiple items'), width: 800, @@ -404,6 +420,73 @@ namespace('kivi.Order', function(ns) { $('#jq_multi_items_dialog').dialog('close'); }; + ns.multi_items_dialog_update_result = function() { + var data = $('#multi_items_form').serializeArray(); + data.push({ name: 'type', value: $('#type').val() }); + $.ajax({ + url: 'controller.pl?action=Order/multi_items_update_result', + data: data, + method: 'post', + success: function(data) { + $('#multi_items_result').html(data); + ns.multi_items_dialog_enable_continue(); + ns.multi_items_result_setup_events(); + } + }); + }; + + ns.multi_items_dialog_disable_continue = function() { + // disable keydown-event and continue button to prevent + // impatient users to add parts multiple times + $('#multi_items_result input').off("keydown"); + $('#multi_items_dialog_continue_button').prop('disabled', true); + }; + + ns.multi_items_dialog_enable_continue = function() { + $('#multi_items_result input').keydown(function(event) { + if(event.keyCode == 13) { + event.preventDefault(); + ns.add_multi_items(); + return false; + } + }); + $('#multi_items_dialog_continue_button').prop('disabled', false); + }; + + ns.multi_items_result_setup_events = function() { + $('#multi_items_all_qty').change(ns.reformat_number); + $('#multi_items_all_qty').change(function(event) { + $('.multi_items_qty').val($(event.target).val()); + }); + $('.multi_items_qty').change(ns.reformat_number); + } + + ns.add_multi_items = function() { + // rows at all + var n_rows = $('.multi_items_qty').length; + if (n_rows == 0) return; + + // filled rows + n_rows = $('.multi_items_qty').filter(function() { + return $(this).val().length > 0; + }).length; + if (n_rows == 0) return; + + ns.multi_items_dialog_disable_continue(); + + var data = $('#order_form').serializeArray(); + data = data.concat($('#multi_items_form').serializeArray()); + data.push({ name: 'action', value: 'Order/add_multi_items' }); + $.post("controller.pl", data, kivi.eval_json_result); + }; + + ns.set_input_to_one = function(clicked) { + if ($(clicked).val() == '') { + $(clicked).val(kivi.format_amount(1.00, -2)); + } + $(clicked).select(); + }; + ns.delete_order_item_row = function(clicked) { var row = $(clicked).parents("tbody").first(); $(row).remove(); @@ -548,12 +631,12 @@ namespace('kivi.Order', function(ns) { kivi.popup_dialog({ url: 'controller.pl?action=Order/show_periodic_invoices_config_dialog', - data: { type: $('#type').val(), - id: $('#id').val(), - config: $('#order_periodic_invoices_config').val(), - customer_id: $('#order_customer_id').val(), - transdate: $('#order_transdate').val(), - language_id: $('#language_id').val() + data: { type: $('#type').val(), + id: $('#id').val(), + config: $('#order_periodic_invoices_config').val(), + customer_id: $('#order_customer_id').val(), + transdate_as_date: $('#order_transdate_as_date').val(), + language_id: $('#language_id').val() }, id: 'jq_periodic_invoices_config_dialog', load: kivi.reinit_widgets,