Dateispeicher "Webdav" auch für Kunden und Lieferanten
[kivitendo-erp.git] / js / kivi.Order.js
index 9cb18dd..580ff50 100644 (file)
@@ -164,6 +164,7 @@ namespace('kivi.Order', function(ns) {
   };
 
   ns.reload_cv_dependent_selections = function() {
+    $('#order_shipto_id').val('');
     var data = $('#order_form').serializeArray();
     data.push({ name: 'action', value: 'Order/customer_vendor_changed' });
 
@@ -174,9 +175,29 @@ namespace('kivi.Order', function(ns) {
     $(event.target).val(kivi.format_amount(kivi.parse_amount($(event.target).val()), -2));
   };
 
+  ns.reformat_number_as_null_number = function(event) {
+    if ($(event.target).val() === '') {
+      return;
+    }
+    ns.reformat_number(event);
+  };
+
   ns.update_exchangerate = function(event) {
-    var rate_input = $('#order_exchangerate_as_number');
-    rate_input.attr('name', '');
+    if (!ns.check_cv()) {
+      $('#order_currency_id').val($('#old_currency_id').val());
+      return;
+    }
+
+    var rate_input = $('#order_exchangerate_as_null_number');
+    // unset exchangerate if currency changed
+    if ($('#order_currency_id').val() !== $('#old_currency_id').val()) {
+      rate_input.val('');
+    }
+
+    // only set exchangerate if unset
+    if (rate_input.val() !== '') {
+      return;
+    }
 
     var data = $('#order_form').serializeArray();
     data.push({ name: 'action', value: 'Order/update_exchangerate' });
@@ -187,22 +208,21 @@ namespace('kivi.Order', function(ns) {
       method: 'POST',
       dataType: 'json',
       success: function(data){
-        if (data.currency_name) {
+        if (!data.is_standard) {
           $('#currency_name').text(data.currency_name);
-          var rate_text = $('#exchangerate_text');
           if (data.exchangerate) {
-            rate_text.text(data.exchangerate);
-            rate_input.hide();
+            rate_input.val(data.exchangerate);
           } else {
-            rate_text.text('');
-            rate_input.show().attr('name', rate_input.data('name')).val(0);
+            rate_input.val('');
           }
           $('#exchangerate_settings').show();
         } else {
+          rate_input.val('');
           $('#exchangerate_settings').hide();
         }
-        if ($('#order_currency_id').val() != $('#old_currency_id').val() || data.exchangerate != $('#old_exchangerate').val()) {
-          kivi.display_flash('warning', kivi.t8('You have changed the currency. Please update prices.'));
+        if ($('#order_currency_id').val() != $('#old_currency_id').val() ||
+            !data.is_standard && data.exchangerate != $('#old_exchangerate').val()) {
+          kivi.display_flash('warning', kivi.t8('You have changed the currency or exchange rate. Please check prices.'));
         }
         $('#old_currency_id').val($('#order_currency_id').val());
         $('#old_exchangerate').val(data.exchangerate);
@@ -210,6 +230,13 @@ namespace('kivi.Order', function(ns) {
     });
   };
 
+  ns.exchangerate_changed = function(event) {
+    if (kivi.parse_amount($('#order_exchangerate_as_null_number').val()) != kivi.parse_amount($('#old_exchangerate').val())) {
+      kivi.display_flash('warning', kivi.t8('You have changed the currency or exchange rate. Please check prices.'));
+      $('#old_exchangerate').val($('#order_exchangerate_as_null_number').val());
+    }
+  };
+
   ns.recalc_amounts_and_taxes = function() {
     var data = $('#order_form').serializeArray();
     data.push({ name: 'action', value: 'Order/recalc_amounts_and_taxes' });
@@ -819,6 +846,12 @@ namespace('kivi.Order', function(ns) {
     return true;
   };
 
+  ns.edit_custom_shipto = function() {
+    if (!ns.check_cv()) return;
+
+    kivi.SalesPurchase.edit_custom_shipto();
+  };
+
 });
 
 $(function() {
@@ -830,6 +863,7 @@ $(function() {
 
   $('#order_currency_id').change(kivi.Order.update_exchangerate);
   $('#order_transdate_as_date').change(kivi.Order.update_exchangerate);
+  $('#order_exchangerate_as_null_number').change(kivi.Order.exchangerate_changed);
 
   if ($('#type').val() == 'sales_order' || $('#type').val() == 'sales_quotation' ) {
     $('#add_item_parts_id').on('set_item:PartPicker', function(e,o) { $('#add_item_sellprice_as_number').val(kivi.format_amount(o.sellprice, -2)) });
@@ -877,4 +911,6 @@ $(function() {
     return false;
   });
 
+  $('.reformat_number_as_null_number').change(kivi.Order.reformat_number_as_null_number);
+
 });