use List::UtilsBy qw(sort_by);
use English qw(-no_match_vars);
+use SL::DB::BankTransactionAccTrans;
use SL::DB::Default;
use SL::DB::Customer;
use SL::DB::Department;
my $payments_balanced = ($::form->{oldtotalpaid} == 0);
my $has_storno = ($::form->{storno} && !$::form->{storno_id});
my $may_edit_create = $::auth->assert('invoice_edit', 1);
+ my $is_linked_bank_transaction;
+ if ($::form->{id}
+ && SL::DB::Default->get->payments_changeable != 0
+ && SL::DB::Manager::BankTransactionAccTrans->find_by(ar_id => $::form->{id})) {
+
+ $is_linked_bank_transaction = 1;
+ }
for my $bar ($::request->layout->get('actionbar')) {
$bar->add(
: $form->{locked} ? t8('The billing period has already been locked.')
: undef,
id => 'update_button',
- checks => [ 'kivi.validate_form' ],
accesskey => 'enter',
],
: $form->{storno} ? t8('A canceled invoice cannot be posted.')
: ($form->{id} && $change_never) ? t8('Changing invoices has been disabled in the configuration.')
: ($form->{id} && $change_on_same_day_only) ? t8('Invoices 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,
],
action => [
t8('Post Payment'),
submit => [ '#form', { action => "post_payment" } ],
checks => [ 'kivi.validate_form' ],
- disabled => !$may_edit_create ? t8('You must not change this invoice.')
- : !$form->{id} ? t8('This invoice has not been posted yet.')
- : undef,
+ disabled => !$may_edit_create ? t8('You must not change this invoice.')
+ : !$form->{id} ? t8('This invoice has not been posted yet.')
+ : $is_linked_bank_transaction ? t8('This transaction is linked with a bank transaction. Please undo and redo the bank transaction booking if needed.')
+ : undef,
],
action => [ t8('Mark as paid'),
submit => [ '#form', { action => "mark_as_paid" } ],
$form->{invtotal} = $form->{invsubtotal};
- # note rows
- $form->{rows} = max 2,
- $form->numtextrows($form->{notes}, 26, 8),
- $form->numtextrows($form->{intnotes}, 35, 8);
-
-
# tax, total and subtotal calculations
my ($tax, $subtotal);
$form->{taxaccounts_array} = [ split(/ /, $form->{taxaccounts}) ];