remove unnecessary spaces
[kivitendo-erp.git] / js / kivi.Order.js
index a5a8c31..6c739b5 100644 (file)
@@ -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,10 +47,11 @@ 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: 'order.language_id', value: $('#language_id').val() }); // language from print options
     data.push({ name: 'action', value: 'Order/' + action });
 
     $.post("controller.pl", data, kivi.eval_json_result);
@@ -62,8 +64,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',
@@ -80,21 +83,16 @@ namespace('kivi.Order', function(ns) {
 
     var data = $('#order_form').serializeArray();
     data = data.concat($('#print_options_form').serializeArray());
+    data.push({ name: 'order.language_id', value: $('#language_id').val() }); // language from print options
     data.push({ name: 'action', value: 'Order/print' });
 
     $.post("controller.pl", data, kivi.eval_json_result);
   };
 
-  ns.download_pdf = function(pdf_filename, key) {
-    var data = [{ name: 'action',       value: 'Order/download_pdf' },
-                { name: 'type',         value: $('#type').val()     },
-                { name: 'pdf_filename', value: pdf_filename         },
-                { name: 'key',          value: key                  }];
-    $.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' });
 
@@ -151,6 +149,7 @@ namespace('kivi.Order', function(ns) {
     var data = $('#order_form').serializeArray();
     data = data.concat($('[name^="email_form."]').serializeArray());
     data = data.concat($('[name^="print_options."]').serializeArray());
+    data.push({ name: 'order.language_id', value: $('#language_id').val() }); // language from print options
     data.push({ name: 'action', value: 'Order/send_email' });
     $.post("controller.pl", data, kivi.eval_json_result);
   };
@@ -330,6 +329,12 @@ namespace('kivi.Order', function(ns) {
     });
   };
 
+  ns.redisplay_cvpartnumbers = function(data) {
+    $('.row_entry').each(function(idx, elt) {
+      $(elt).find('[name="cvpartnumber"]').html(data[idx][0]);
+    });
+  };
+
   ns.renumber_positions = function() {
     $('.row_entry [name="position"]').each(function(idx, elt) {
       $(elt).html(idx+1);
@@ -627,12 +632,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,
@@ -715,6 +720,34 @@ namespace('kivi.Order', function(ns) {
     return true;
   };
 
+  ns.update_row_from_master_data = function(clicked) {
+    var row = $(clicked).parents("tbody").first();
+    var item_id_dom = $(row).find('[name="orderitem_ids[+]"]');
+
+    var data = $('#order_form').serializeArray();
+    data.push({ name: 'action', value: 'Order/update_row_from_master_data' });
+    data.push({ name: 'item_ids[]', value: item_id_dom.val() });
+
+    $.post("controller.pl", data, kivi.eval_json_result);
+  };
+
+  ns.update_all_rows_from_master_data = function() {
+    var item_ids = $.map($('.row_entry'), 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/update_row_from_master_data' });
+    data = data.concat(item_ids);
+
+    $.post("controller.pl", data, kivi.eval_json_result);
+  };
+
   ns.show_calculate_qty_dialog = function(clicked) {
     var row        = $(clicked).parents("tbody").first();
     var input_id   = $(row).find('[name="order.orderitems[].qty_as_number"]').attr('id');