Revision a695cc30
Von Martin Helmling martin.helmling@octosoft.eu vor mehr als 6 Jahren hinzugefügt
SL/DB/BankTransaction.pm | ||
---|---|---|
111 | 111 |
$invoice->{datediff} = $datediff; |
112 | 112 |
|
113 | 113 |
# compare amount |
114 |
if (abs(abs($invoice->amount) - abs($self->amount)) < 0.01) { |
|
114 |
if (abs(abs($invoice->amount) - abs($self->amount)) < 0.01 && |
|
115 |
$::form->format_amount(\%::myconfig,abs($invoice->amount),2) eq |
|
116 |
$::form->format_amount(\%::myconfig,abs($self->amount),2) |
|
117 |
) { |
|
115 | 118 |
$agreement += $points{exact_amount}; |
116 | 119 |
$rule_matches .= 'exact_amount(' . $points{'exact_amount'} . ') '; |
117 | 120 |
} |
118 | 121 |
|
119 | 122 |
# compare open amount, preventing double points when open amount = invoice amount |
120 |
if ( $invoice->amount != $invoice->open_amount && abs(abs($invoice->open_amount) - abs($self->amount)) < 0.01) { |
|
123 |
if ( $invoice->amount != $invoice->open_amount && abs(abs($invoice->open_amount) - abs($self->amount)) < 0.01 && |
|
124 |
$::form->format_amount(\%::myconfig,abs($invoice->amount_less_skonto),2) eq |
|
125 |
$::form->format_amount(\%::myconfig,abs($self->amount),2) |
|
126 |
) { |
|
121 | 127 |
$agreement += $points{exact_open_amount}; |
122 | 128 |
$rule_matches .= 'exact_open_amount(' . $points{'exact_open_amount'} . ') '; |
123 | 129 |
} |
124 | 130 |
|
125 |
if ( $invoice->skonto_date && abs(abs($invoice->amount_less_skonto) - abs($self->amount)) < 0.01) { |
|
131 |
if ( $invoice->skonto_date && abs(abs($invoice->amount_less_skonto) - abs($self->amount)) < 0.01 && |
|
132 |
$::form->format_amount(\%::myconfig,abs($invoice->amount_less_skonto),2) eq |
|
133 |
$::form->format_amount(\%::myconfig,abs($self->amount),2) |
|
134 |
) { |
|
126 | 135 |
$agreement += $points{skonto_exact_amount}; |
127 | 136 |
$rule_matches .= 'skonto_exact_amount(' . $points{'skonto_exact_amount'} . ') '; |
128 | 137 |
$invoice->{skonto_type} = 'with_skonto_pt'; |
Auch abrufbar als: Unified diff
Bankimport: Rundungsproblem beim Vergleich Rechnungsbetrag - Kontobetrag
Durch explizites Runden konnte die perl Floatingpoint Arithmetik nicht überzeugt werden,
deshalb werden nun die Formatierten Strings der Beträge noch zusätzlich verglichen.
Hiermit wird der "exact_match" beim Vergleich von z.B. 3456,28 und 3456,29 nicht mehr gefunden
behebt teilweise Issue #201