From: Jan Büren Date: Wed, 9 Dec 2020 11:17:13 +0000 (+0100) Subject: Kontoauszug verbuchen: Verkaufsgutschriften nicht negativ bewerten X-Git-Tag: kivitendo-mebil_0.1-0~9^2~564 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=add79c20d936ac783f2c378dd5aa39e7b24148c2;p=kivitendo-erp.git Kontoauszug verbuchen: Verkaufsgutschriften nicht negativ bewerten Punkte für wrong_sign höher gesetzt und beide Gutschriftentypen jetzt sauber abgegrenzt (credit_note und negative_ap_transaction) --- diff --git a/SL/DB/BankTransaction.pm b/SL/DB/BankTransaction.pm index 0d6895b23..c02ebb93e 100644 --- a/SL/DB/BankTransaction.pm +++ b/SL/DB/BankTransaction.pm @@ -79,7 +79,7 @@ sub get_agreement_with_invoice { payment_within_30_days => 1, remote_account_number => 3, skonto_exact_amount => 5, - wrong_sign => -1, + wrong_sign => -4, sepa_export_item => 5, batch_sepa_transaction => 20, ); @@ -162,12 +162,13 @@ sub get_agreement_with_invoice { } #check sign - if ( $invoice->is_sales && $self->amount < 0 ) { # TODO debit note + if (( $invoice->is_sales && $invoice->amount > 0 && $self->amount < 0 ) || + ( $invoice->is_sales && $invoice->amount < 0 && $self->amount > 0 ) ) { # sales credit note $agreement += $points{wrong_sign}; $rule_matches .= 'wrong_sign(' . $points{'wrong_sign'} . ') '; } if (( !$invoice->is_sales && $invoice->amount > 0 && $self->amount > 0) || - ( !$invoice->is_sales && $invoice->amount < 0 && $self->amount < 0) ) { # credit note + ( !$invoice->is_sales && $invoice->amount < 0 && $self->amount < 0) ) { # purchase credit note $agreement += $points{wrong_sign}; $rule_matches .= 'wrong_sign(' . $points{'wrong_sign'} . ') '; } diff --git a/t/bank/bank_transactions.t b/t/bank/bank_transactions.t index ff3a001ed..6ea6b687c 100644 --- a/t/bank/bank_transactions.t +++ b/t/bank/bank_transactions.t @@ -711,8 +711,8 @@ sub test_credit_note { transdate => $dt_10, ); my ($agreement, $rule_matches) = $bt->get_agreement_with_invoice($credit_note); - is($agreement, 13, "points for credit note ok"); - is($rule_matches, 'remote_account_number(3) exact_amount(4) wrong_sign(-1) depositor_matches(2) remote_name(2) payment_within_30_days(1) datebonus14(2) ', "rules_matches for credit note ok"); + is($agreement, 14, "points for credit note ok"); + is($rule_matches, 'remote_account_number(3) exact_amount(4) depositor_matches(2) remote_name(2) payment_within_30_days(1) datebonus14(2) ', "rules_matches for credit note ok"); $::form->{invoice_ids} = { $bt->id => [ $credit_note->id ]