foreach my $record_link (@{ $record_links }) {
push @linked_invoices, SL::DB::Manager::Invoice->find_by(id => $record_link->to_id)->invnumber if $record_link->to_table eq 'ar';
push @linked_invoices, SL::DB::Manager::PurchaseInvoice->find_by(id => $record_link->to_id)->invnumber if $record_link->to_table eq 'ap';
+ push @linked_invoices, SL::DB::Manager::GLTransaction->find_by(id => $record_link->to_id)->reference if $record_link->to_table eq 'gl';
}
return [ @linked_invoices ];
$invoice->{datediff} = $datediff;
# compare amount
- if (abs(abs($invoice->amount) - abs($self->amount)) < 0.01) {
+ if (abs(abs($invoice->amount) - abs($self->amount)) < 0.01 &&
+ $::form->format_amount(\%::myconfig,abs($invoice->amount),2) eq
+ $::form->format_amount(\%::myconfig,abs($self->amount),2)
+ ) {
$agreement += $points{exact_amount};
$rule_matches .= 'exact_amount(' . $points{'exact_amount'} . ') ';
}
# compare open amount, preventing double points when open amount = invoice amount
- if ( $invoice->amount != $invoice->open_amount && abs(abs($invoice->open_amount) - abs($self->amount)) < 0.01) {
+ if ( $invoice->amount != $invoice->open_amount && abs(abs($invoice->open_amount) - abs($self->amount)) < 0.01 &&
+ $::form->format_amount(\%::myconfig,abs($invoice->amount_less_skonto),2) eq
+ $::form->format_amount(\%::myconfig,abs($self->amount),2)
+ ) {
$agreement += $points{exact_open_amount};
$rule_matches .= 'exact_open_amount(' . $points{'exact_open_amount'} . ') ';
}
- if ( $invoice->skonto_date && abs(abs($invoice->amount_less_skonto) - abs($self->amount)) < 0.01) {
+ if ( $invoice->skonto_date && abs(abs($invoice->amount_less_skonto) - abs($self->amount)) < 0.01 &&
+ $::form->format_amount(\%::myconfig,abs($invoice->amount_less_skonto),2) eq
+ $::form->format_amount(\%::myconfig,abs($self->amount),2)
+ ) {
$agreement += $points{skonto_exact_amount};
$rule_matches .= 'skonto_exact_amount(' . $points{'skonto_exact_amount'} . ') ';
$invoice->{skonto_type} = 'with_skonto_pt';
my $invoice = SL::DB::Manager::Invoice->find_by(invnumber => '198');
my ($agreement,rule_matches) = $bt->get_agreement_with_invoice($invoice);
+=item C<linked_invoices>
+
+Returns an array of record names (invoice number or gl reference)
+which are linked for this bank transaction.
+
+Returns an empty array ref if no links are found.
+Usage:
+ croak("No linked records at all") unless @{ $bt->linked_invoices() };
+
+
=back
=head1 AUTHOR