Testfall Kosmetik (Alignment)
[kivitendo-erp.git] / js / kivi.SalesPurchase.js
index bcae114..643d90e 100644 (file)
@@ -1,6 +1,5 @@
 namespace('kivi.SalesPurchase', function(ns) {
   this.edit_longdescription = function(row) {
 namespace('kivi.SalesPurchase', function(ns) {
   this.edit_longdescription = function(row) {
-    var $edit    = $('#popup_edit_longdescription_input');
     var $element = $('#longdescription_' + row);
 
     if (!$element.length) {
     var $element = $('#longdescription_' + row);
 
     if (!$element.length) {
@@ -8,13 +7,37 @@ namespace('kivi.SalesPurchase', function(ns) {
       return;
     }
 
       return;
     }
 
-    $edit.data('element', $element);
-    $edit.val($element.val());
+    var params = { element: $element,
+                   runningnumber: row,
+                   partnumber: $('#partnumber_' + row).val() || '',
+                   description: $('#description_' + row).val() || '',
+                   default_longdescription: $('#longdescription_' + row).val() || ''
+                 };
+    this.edit_longdescription_with_params(params);
+  };
+
+  this.edit_longdescription_with_params = function(params) {
+    var $container = $('#popup_edit_longdescription_input_container');
+    var $edit      = $('<textarea id="popup_edit_longdescription_input" class="texteditor-in-dialog" wrap="soft" style="width: 750px; height: 220px;"></textarea>');
+
+    $container.children().remove();
+    $container.append($edit);
+
+    if (params.element) {
+      $container.data('element', params.element);
+    }
+    if (params.set_function) {
+      $container.data('setFunction', params.set_function);
+    }
+
+    $edit.val(params.default_longdescription);
+
+    kivi.init_text_editor($edit);
 
 
-    $('#popup_edit_longdescription_runningnumber').html(row);
-    $('#popup_edit_longdescription_partnumber').html($('#partnumber_' + row).val() || '');
+    $('#popup_edit_longdescription_runningnumber').html(params.runningnumber);
+    $('#popup_edit_longdescription_partnumber').html(params.partnumber);
 
 
-    var description = ($('#description_' + row).val() || '').replace(/[\n\r]+/, '');
+    var description = params.description.replace(/[\n\r]+/, '');
     if (description.length >= 50)
       description = description.substring(0, 50) + "…";
     $('#popup_edit_longdescription_description').html(description);
     if (description.length >= 50)
       description = description.substring(0, 50) + "…";
     $('#popup_edit_longdescription_description').html(description);
@@ -23,16 +46,20 @@ namespace('kivi.SalesPurchase', function(ns) {
       id:    'edit_longdescription_dialog',
       dialog: {
         title: kivi.t8('Enter longdescription'),
       id:    'edit_longdescription_dialog',
       dialog: {
         title: kivi.t8('Enter longdescription'),
-        open:  function() { kivi.set_focus('#popup_edit_longdescription_input'); }
+        open:  function() { kivi.focus_ckeditor_when_ready('#popup_edit_longdescription_input'); },
+        close: function() { $('#popup_edit_longdescription_input_container').children().remove(); }
       }
     });
   };
 
   this.set_longdescription = function() {
       }
     });
   };
 
   this.set_longdescription = function() {
-    var $edit    = $('#popup_edit_longdescription_input');
-    var $element = $edit.data('element');
-
-    $element.val($edit.val());
+    if ($('#popup_edit_longdescription_input_container').data('setFunction')) {
+      $('#popup_edit_longdescription_input_container').data('setFunction')($('#popup_edit_longdescription_input').val());
+    } else {
+      $('#popup_edit_longdescription_input_container')
+        .data('element')
+        .val( $('#popup_edit_longdescription_input').val() );
+    }
     $('#edit_longdescription_dialog').dialog('close');
   };
 
     $('#edit_longdescription_dialog').dialog('close');
   };
 
@@ -53,6 +80,14 @@ namespace('kivi.SalesPurchase', function(ns) {
     return confirm(kivi.t8('This sales order has an active configuration for periodic invoices. If you save then all subsequently created invoices will contain those changes as well, but not those that have already been created. Do you want to continue?'));
   };
 
     return confirm(kivi.t8('This sales order has an active configuration for periodic invoices. If you save then all subsequently created invoices will contain those changes as well, but not those that have already been created. Do you want to continue?'));
   };
 
+  this.check_transaction_description = function() {
+    if ($('#transaction_description').val() !== '')
+      return true;
+
+    alert(kivi.t8('A transaction description is required.'));
+    return false;
+  };
+
   this.on_submit_checks = function() {
     var $button = $(this);
     if (($button.data('check-transfer-qty') == 1) && !kivi.SalesPurchase.delivery_order_check_transfer_qty())
   this.on_submit_checks = function() {
     var $button = $(this);
     if (($button.data('check-transfer-qty') == 1) && !kivi.SalesPurchase.delivery_order_check_transfer_qty())
@@ -61,10 +96,25 @@ namespace('kivi.SalesPurchase', function(ns) {
     if (($button.data('warn-save-active-periodic-invoice') == 1) && !kivi.SalesPurchase.oe_warn_save_active_periodic_invoice())
       return false;
 
     if (($button.data('warn-save-active-periodic-invoice') == 1) && !kivi.SalesPurchase.oe_warn_save_active_periodic_invoice())
       return false;
 
+    if (($button.data('require-transaction-description') == 1) && !kivi.SalesPurchase.check_transaction_description())
+      return false;
+
     return true;
   };
 
   this.init_on_submit_checks = function() {
      $('input[type=submit]').click(kivi.SalesPurchase.on_submit_checks);
   };
     return true;
   };
 
   this.init_on_submit_checks = function() {
      $('input[type=submit]').click(kivi.SalesPurchase.on_submit_checks);
   };
+
+  this.set_duedate_on_reference_date_change = function(reference_field_id) {
+    setTimeout(function() {
+      var data = {
+        action:     'set_duedate',
+        invdate:    $('#' + reference_field_id).val(),
+        duedate:    $('#duedate').val(),
+        payment_id: $('#payment_id').val(),
+      };
+      $.post('is.pl', data, kivi.eval_json_result);
+    });
+  };
 });
 });