- }
- next unless $bt->{remote_name}; # bank has no name, usually fees, use create invoice to assign
-
- foreach ( @{$all_open_sepa_export_items}) {
- last if scalar (@all_sepa_invoices) == 0;
- foreach my $open_invoice (@all_sepa_invoices){
- if ( $_->ap_id == $open_invoice->id || $_->ar_id == $open_invoice->id ) {
- #$main::lxdebug->message(LXDebug->DEBUG2(),"exitem2=".$_->id." for invoice ".$open_invoice->id);
- my $factor = ( $_->ar_id == $open_invoice->id?1:-1);
- $_->amount($_->amount*1);
- #$main::lxdebug->message(LXDebug->DEBUG2(),"remote account '".$bt->{remote_account_number}."' bt_amount=".$bt->amount." factor=".$factor);
- #$main::lxdebug->message(LXDebug->DEBUG2(),"compare with '".$_->vc_iban."' amount=".$_->amount);
- if ( $bt->{remote_account_number} eq $_->vc_iban && abs(abs($_->amount) - abs($bt->amount)) < 0.01 ) {
- my $iban;
- $iban = $open_invoice->customer->iban if $open_invoice->is_sales;
- $iban = $open_invoice->vendor->iban if ! $open_invoice->is_sales;
- if($bt->{remote_account_number} eq $iban && abs(abs($open_invoice->amount) - abs($bt->amount)) < 0.01 ) {
- ($open_invoice->{agreement}, $open_invoice->{rule_matches}) = $bt->get_agreement_with_invoice($open_invoice);
- $open_invoice->{agreement} += 5;
- $open_invoice->{rule_matches} .= 'sepa_export_item(5) ';
- $main::lxdebug->message(LXDebug->DEBUG2(),"sepa invoice_id=".$open_invoice->id." agreement=".$open_invoice->{agreement}." rules matches=".$open_invoice->{rule_matches});
- $open_invoice->{realamount} = $::form->format_amount(\%::myconfig,$open_invoice->amount*$factor,2);
- }
- }
- }
- }