Rechnungsmaske: "Browser-Zurück verhindern" konfigurierbar in Mandantenkonfig
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Wed, 4 May 2022 09:10:06 +0000 (11:10 +0200)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Wed, 4 May 2022 09:24:50 +0000 (11:24 +0200)
SL/DB/MetaSetup/Default.pm
doc/changelog
locale/de/all
locale/en/all
sql/Pg-upgrade2/defaults_invoice_prevent_browser_back.sql [new file with mode: 0644]
templates/webpages/client_config/_features.html
templates/webpages/is/form_header.html

index ba8cf32..295c6e7 100644 (file)
@@ -110,6 +110,7 @@ __PACKAGE__->meta->columns(
   inventory_system                          => { type => 'text' },
   invnumber                                 => { type => 'text' },
   invoice_mail_settings                     => { type => 'enum', check_in => [ 'cp', 'invoice_mail', 'invoice_mail_cc_cp' ], db_type => 'invoice_mail_settings', default => 'cp' },
+  invoice_prevent_browser_back              => { type => 'boolean', default => 'false', not_null => 1 },
   ir_add_doc                                => { type => 'boolean', default => 'false', not_null => 1 },
   ir_changeable                             => { type => 'integer', default => 2, not_null => 1 },
   ir_show_mark_as_paid                      => { type => 'boolean', default => 'true' },
index 6128d16..3004b4c 100644 (file)
@@ -36,6 +36,12 @@ Kleinere neue Features und Detailverbesserungen:
    Version einer Datei. Weitere Versionen lassen sich durch Ausklappen
    anzeigen. Dies gilt nun auch für die Dokument-Typen Anhänge und Bilder, bei
    denen zuvor nur die neueste Version angezeigt wurde.
+-  Um ein ungewolltes doppeltes Buchen einer Verkaufsrechnung zu verhindern,
+   dass durch den Browser-Zurück-Knopf (und dann nochmaliges Buchen) ausgelöst
+   werden kann, kann in der Mandantenkonfiguration das Aushebeln des Browser-
+   Zurück-Knopfes bei Verkaufsrechnunghen aktiviert werden.
+   Da dadurch allerdings auch Situationen ausgehebelt werden, in denen das
+   Drücken des Zurück-Knopfes sinnvoll ist, ist dies konfigurierbar.
 
 2022-03-02 - Release 3.6.0
 
index 791e6e5..038091b 100755 (executable)
@@ -1754,6 +1754,7 @@ $self->{texts} = {
   'If enabled purchase and sales records cannot be saved if no transaction description has been entered.' => 'Wenn angeschaltet, so können Einkaufs- und Verkaufsbelege nicht gespeichert werden, solange keine Vorgangsbezeichnung eingegeben wurde.',
   'If enabled sales invoices created using OpenDocument/OASIS format will include data for Swiss QR-Bill creation.' => 'Falls aktiviert, enthalten Rechnungen im OpenDocument/OASIS Format, Daten zur Schweizer QR-Rechnung.',
   'If enabled the record links view starts always from the sales order including all sublevels' => 'Falls aktiv, werden die verknüpften Belege immer vom Verkaufsauftrag inkl. aller darunterliegenden Belege angezeigt',
+  'If enabled try to overrule the brower\'s back button to prevent double booking of sales invoices.' => 'Falls aktiviert, wird versucht, den Zurück-Knopf des Browsers auszuhebel, um doppeltes Buchen von Verkaufsrechnungen zu verhindern.',
   'If enabled, when saving parts the partsgroup must be not be empty.' => 'Falls aktiviert muß beim Speichern von Artikeln eine Warengruppe ausgewählt sein.',
   'If item not found, allow creation of new item' => 'Falls Artikel nicht gefunden, erlaube Erfassen eines Neuen',
   'If left empty the default sender from the kivitendo configuration will be used (key \'email_from\' in section \'periodic_invoices\'; current value: #1).' => 'Falls leer, so wird der Standardabsender aus der kivitendo-Konfiguration genutzt (Schlüssel »email_from« in Abschnitt »periodic_invoices«; aktueller Wert: #1).',
@@ -2631,6 +2632,7 @@ $self->{texts} = {
   'Preset email text for sales invoices with direct debit' => 'Vorbelegter E-Mail-Text für Rechnungen mit Bankeinzug',
   'Preset email text for sales orders' => 'Vorbelegter E-Mail-Text für Aufträge',
   'Preset email text for sales quotations' => 'Vorbelegter E-Mail-Text für Angebote',
+  'Prevent browser\'s back button in sales invoices' => 'Browser-Zurück-Knopf bei Verkaufsrechnungen verhindern',
   'Preview'                     => 'Vorschau',
   'Preview Mode'                => 'Vorschaumodus',
   'Previous month'              => 'vorheriger Monat',
index f087870..5be0917 100644 (file)
@@ -1754,6 +1754,7 @@ $self->{texts} = {
   'If enabled purchase and sales records cannot be saved if no transaction description has been entered.' => '',
   'If enabled sales invoices created using OpenDocument/OASIS format will include data for Swiss QR-Bill creation.' => '',
   'If enabled the record links view starts always from the sales order including all sublevels' => '',
+  'If enabled try to overrule the brower\'s back button to prevent double booking of sales invoices.' => '',
   'If enabled, when saving parts the partsgroup must be not be empty.' => '',
   'If item not found, allow creation of new item' => '',
   'If left empty the default sender from the kivitendo configuration will be used (key \'email_from\' in section \'periodic_invoices\'; current value: #1).' => '',
@@ -2631,6 +2632,7 @@ $self->{texts} = {
   'Preset email text for sales invoices with direct debit' => '',
   'Preset email text for sales orders' => '',
   'Preset email text for sales quotations' => '',
+  'Prevent browser\'s back button in sales invoices' => '',
   'Preview'                     => '',
   'Preview Mode'                => '',
   'Previous month'              => '',
diff --git a/sql/Pg-upgrade2/defaults_invoice_prevent_browser_back.sql b/sql/Pg-upgrade2/defaults_invoice_prevent_browser_back.sql
new file mode 100644 (file)
index 0000000..c12e82b
--- /dev/null
@@ -0,0 +1,5 @@
+-- @tag: defaults_invoice_prevent_browser_back
+-- @description: Verhinderung Browser-Zurück-Knopf einstellbar in Mandantenkonfiguration
+-- @depends: release_3_6_0
+
+ALTER TABLE defaults ADD COLUMN invoice_prevent_browser_back boolean NOT NULL DEFAULT FALSE;
index 476ed16..cd6aee2 100644 (file)
    </td>
    <td>[% LxERP.t8("If enabled sales invoices created using OpenDocument/OASIS format will include data for Swiss QR-Bill creation.") %]</td>
   </tr>
+  <tr>
+   <td align="right">[% LxERP.t8("Prevent browser's back button in sales invoices") %]</td>
+   <td>[% L.yes_no_tag("defaults.invoice_prevent_browser_back", SELF.defaults.invoice_prevent_browser_back) %]</td>
+   <td>[% LxERP.t8("If enabled try to overrule the brower's back button to prevent double booking of sales invoices.") %]</td>
+  </tr>
 
   <tr><td class="listheading" colspan="4">[% LxERP.t8("E-mail") %]</td></tr>
 
index 4c3e738..c870191 100644 (file)
   <script type="text/javascript">
    <!--
      $('document').ready(function(){
+[% IF INSTANCE_CONF.get_invoice_prevent_browser_back %]
        function disableBack() { window.history.forward() };
        window.onload = disableBack();
        window.onpageshow = function(evt) { if (evt.persisted) disableBack() };
+[% END %]
 
 [% IF resubmit && is_format_html %]
        window.open('about:blank','Beleg');