BankTransaction: Treffer für Kreditorengutschriften erhöhen
authorJan Büren <jan@kivitendo.de>
Wed, 9 Dec 2020 10:42:06 +0000 (11:42 +0100)
committerJan Büren <jan@kivitendo.de>
Wed, 9 Dec 2020 10:42:06 +0000 (11:42 +0100)
negativ_ap_transaction sollte keine Strafpunkte mehr fürs
Vorzeichen erhalten. TODO: Verkaufs-Gutschriften prüfen

SL/DB/BankTransaction.pm
t/bank/bank_transactions.t

index e2ddede..0d6895b 100644 (file)
@@ -162,11 +162,12 @@ sub get_agreement_with_invoice {
   }
 
   #check sign
-  if ( $invoice->is_sales && $self->amount < 0 ) {
+  if ( $invoice->is_sales && $self->amount < 0 ) { # TODO debit note
     $agreement += $points{wrong_sign};
     $rule_matches .= 'wrong_sign(' . $points{'wrong_sign'} . ') ';
   }
-  if ( ! $invoice->is_sales && $self->amount > 0 ) {
+  if (( !$invoice->is_sales && $invoice->amount > 0 && $self->amount > 0)  ||
+      ( !$invoice->is_sales && $invoice->amount < 0 && $self->amount < 0)     ) { # credit note
     $agreement += $points{wrong_sign};
     $rule_matches .= 'wrong_sign(' . $points{'wrong_sign'} . ') ';
   }
index 4930726..ff3a001 100644 (file)
@@ -764,7 +764,7 @@ sub test_neg_ap_transaction {
                                                                );
 
   my ($agreement, $rule_matches) = $bt->get_agreement_with_invoice($invoice);
-  is($agreement, 15, "points for negative ap transaction ok");
+  is($agreement, 16, "points for negative ap transaction ok");
 
   $::form->{invoice_ids} = {
     $bt->id => [ $invoice->id ]