$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 => [
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' } ],
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).
'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',