my $worker = sub {
my $bt_id = $data{bank_transaction_id};
my $sign = $bank_transaction->amount < 0 ? -1 : 1;
- my $amount_of_transaction = $sign * $bank_transaction->amount;
- my $assigned_amount = $sign * $bank_transaction->invoice_amount;
- my $not_assigned_amount = $amount_of_transaction - $assigned_amount;
+ my $not_assigned_amount = $bank_transaction->not_assigned_amount;
my $payment_received = $bank_transaction->amount > 0;
my $payment_sent = $bank_transaction->amount < 0;
- croak("No amount left to assign") if ($not_assigned_amount <= 0);
foreach my $invoice_id (@{ $params{invoice_ids} }) {
my $invoice = SL::DB::Manager::Invoice->find_by(id => $invoice_id) || SL::DB::Manager::PurchaseInvoice->find_by(id => $invoice_id);
$n_invoices++ ;
- if (!$amount_of_transaction && $invoice->open_amount) {
+ if (!$not_assigned_amount && $invoice->open_amount) {
return {
%data,
result => 'error',
controller => 'gl.pl',
action => 'load_record_template',
id => $template->id,
- 'form_defaults.amount_1' => abs($self->transaction->amount), # always positive
+ 'form_defaults.amount_1' => abs($self->transaction->not_assigned_amount), # always positive
'form_defaults.transdate' => $self->transaction->transdate_as_date,
'form_defaults.callback' => $self->callback,
'form_defaults.bt_id' => $self->transaction->id,