From 12357ea514e98250dd460c45f660cc922b5eb760 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bernd=20Ble=C3=9Fmann?= Date: Fri, 9 Jul 2021 16:35:56 +0200 Subject: [PATCH] Dialogbuchung: verschiedene Buchungs-Aktionen je nach Mandantenkonfig MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit - DMS aus nur "Buchen" bucht und führt zu einer leeren Buchungsmaske - DMS an und "Dokumente für Dialogbuchung hinzufügen" eingestellt: "Buchen" (Haupt-Aktion) bucht und führt im selben Beleg zum DMS-Tab. Es gibt eine zweite Aktion "Buchen und neue Buchung". Diese bucht und führt zu einer leeren Buchungsmaske - DMS an und "Dokumente für Dialogbuchung hinzufügen" ausgestellt: "Buchen" (Haupt-Aktion) bucht und führt zu einer leeren Buchungsmaske. Es gibt eine zweite Aktion "Buchen und Dokument hochladen". Diese bucht und führt im selben Beleg zum DMS-Tab --- bin/mozilla/gl.pl | 39 ++++++++++++++++++++++++++++----------- locale/de/all | 2 ++ locale/en/all | 2 ++ 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/bin/mozilla/gl.pl b/bin/mozilla/gl.pl index bf3e43611..a664f6f72 100644 --- a/bin/mozilla/gl.pl +++ b/bin/mozilla/gl.pl @@ -975,6 +975,32 @@ sub setup_gl_action_bar { $is_linked_bank_transaction = 1; } + my $create_post_action = sub { + # $_[0]: description + # $_[1]: after_action + action => [ + $_[0], + submit => [ '#form', { action => 'post', after_action => $_[1] } ], + disabled => $form->{locked} ? t8('The billing period has already been locked.') + : $form->{storno} ? t8('A canceled general ledger transaction cannot be posted.') + : ($form->{id} && $change_never) ? t8('Changing general ledger transaction has been disabled in the configuration.') + : ($form->{id} && $change_on_same_day_only) ? t8('General ledger transactions can only be changed on the day they are posted.') + : $is_linked_bank_transaction ? t8('This transaction is linked with a bank transaction. Please undo and redo the bank transaction booking if needed.') + : undef, + ], + }; + + my %post_entry; + if ($::instance_conf->get_gl_add_doc && $::instance_conf->get_doc_storage) { + %post_entry = (combobox => [ $create_post_action->(t8('Post'), 'doc-tab'), + $create_post_action->(t8('Post and new booking')) ]); + } elsif ($::instance_conf->get_doc_storage) { + %post_entry = (combobox => [ $create_post_action->(t8('Post')), + $create_post_action->(t8('Post and upload document'), 'doc-tab') ]); + } else { + %post_entry = $create_post_action->(t8('Post')); + } + for my $bar ($::request->layout->get('actionbar')) { $bar->add( action => [ @@ -983,16 +1009,7 @@ sub setup_gl_action_bar { id => 'update_button', accesskey => 'enter', ], - action => [ - t8('Post'), - submit => [ '#form', { action => 'post' } ], - disabled => $form->{locked} ? t8('The billing period has already been locked.') - : $form->{storno} ? t8('A canceled general ledger transaction cannot be posted.') - : ($form->{id} && $change_never) ? t8('Changing general ledger transaction has been disabled in the configuration.') - : ($form->{id} && $change_on_same_day_only) ? t8('General ledger transactions can only be changed on the day they are posted.') - : $is_linked_bank_transaction ? t8('This transaction is linked with a bank transaction. Please undo and redo the bank transaction booking if needed.') - : undef, - ], + %post_entry, combobox => [ action => [ t8('Storno'), submit => [ '#form', { action => 'storno' } ], @@ -1427,7 +1444,7 @@ sub post { if ($form->{callback} =~ /BankTransaction/ && $form->{bt_id}) { $form->redirect($msg); - } elsif ($::instance_conf->get_gl_add_doc && $::instance_conf->get_doc_storage) { + } elsif ('doc-tab' eq $form->{after_action}) { # Redirect with callback containing a fragment does not work (by now) # because the callback info is stored in the session an parsing the # callback parameters does not support fragments (see SL::Form::redirect). diff --git a/locale/de/all b/locale/de/all index 5fc211430..ac77747f5 100755 --- a/locale/de/all +++ b/locale/de/all @@ -2489,6 +2489,8 @@ $self->{texts} = { 'Positions' => 'Positionen', 'Post' => 'Buchen', 'Post Payment' => 'Zahlung buchen', + 'Post and new booking' => 'Buchen und neue Buchung', + 'Post and upload document' => 'Buchen und Dokument hochladen', 'Post payments' => 'Zahlungen buchen', 'Post payments for selected invoices' => 'Zahlungen für ausgewählten Rechnungen buchen', 'Postal Invoice' => 'Rechnung per Post', diff --git a/locale/en/all b/locale/en/all index ceea86cc3..1255e5a17 100644 --- a/locale/en/all +++ b/locale/en/all @@ -2489,6 +2489,8 @@ $self->{texts} = { 'Positions' => '', 'Post' => '', 'Post Payment' => '', + 'Post and new booking' => '', + 'Post and upload document' => '', 'Post payments' => '', 'Post payments for selected invoices' => '', 'Postal Invoice' => '', -- 2.20.1