Massenerstellen von Rechnungen aus LS: Aktion nur einmal ausführen
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 20 Nov 2020 15:34:16 +0000 (16:34 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 20 Nov 2020 16:22:46 +0000 (17:22 +0100)
Dafür den Action-Parameter only_once verwenden.
Damit das aber klappt, muss die Prüfung, ob etwas angehakt ist, auch als check
an die Action gehängt werden. Denn sonst wird der Knopf abgeschaltet, auch wenn
nur die Prüfung fehlschlägt, weil man nix angehakt hat.

SL/Controller/MassInvoiceCreatePrint.pm
js/kivi.MassInvoiceCreatePrint.js

index aab6373..b0c2e5c 100644 (file)
@@ -377,9 +377,11 @@ sub setup_list_sales_delivery_orders_action_bar {
         ],
         action => [
           t8("Create and print invoices for all selected delivery orders"),
-          call     => [ 'kivi.MassInvoiceCreatePrint.submitMassCreationForm' ],
-          disabled => !$params{num_rows} ? $::locale->text('The report doesn\'t contain entries.') : undef,
-          only_if  => $params{show_creation_buttons},
+          call      => [ 'kivi.MassInvoiceCreatePrint.submitMassCreationForm' ],
+          disabled  => !$params{num_rows} ? $::locale->text('The report doesn\'t contain entries.') : undef,
+          only_if   => $params{show_creation_buttons},
+          checks    => [ 'kivi.MassInvoiceCreatePrint.checkDeliveryOrderSelection' ],
+          only_once => 1,
         ],
 
         action => [
index 20ecde0..9fb1e3a 100644 (file)
@@ -21,9 +21,6 @@ namespace('kivi.MassInvoiceCreatePrint', function(ns) {
   };
 
   this.submitMassCreationForm = function() {
-    if (!kivi.MassInvoiceCreatePrint.checkDeliveryOrderSelection())
-      return false;
-
     $('body').addClass('loading');
     kivi.submit_form_with_action('form', 'MassInvoiceCreatePrint/create_invoices');
     return false;