Nur die eigene Rechnungsnummer mit höheren Punkten versehen ...
authorroot <root@vc-kivi.vitracom.org>
Tue, 14 Jun 2016 12:15:06 +0000 (14:15 +0200)
committerJan Büren <jan@kivitendo-premium.de>
Fri, 17 Jun 2016 17:00:02 +0000 (19:00 +0200)
... bei Lieferantenrechnungen weniger Punkte vergeben, aber mit
derselben Unschärfe wie bei Verkaufsrechnungen arbeiten.

Conflicts:
SL/DB/BankTransaction.pm

SL/DB/BankTransaction.pm

index d5d7c55..0512456 100644 (file)
@@ -64,6 +64,7 @@ sub get_agreement_with_invoice {
     exact_amount                => 4,
     exact_open_amount           => 4,
     invnumber_in_purpose        => 2,
+    own_invnumber_in_purpose    => 5,
     # overpayment                 => -1, # either other invoice is more likely, or several invoices paid at once
     payment_before_invoice      => -2,
     payment_within_30_days      => 1,
@@ -114,10 +115,15 @@ sub get_agreement_with_invoice {
   #search invoice number in purpose
   my $invnumber = $invoice->invnumber;
   # invnumbernhas to have at least 3 characters
-  if ( length($invnumber) > 2 && $self->purpose =~ /\b$invnumber\b/i ) {
+  my $squashed_purpose = $self->purpose;
+  $squashed_purpose =~ s/ //g;
+  if (length($invnumber) > 4 && $squashed_purpose =~ /$invnumber/ && $invoice->is_sales){
+    $agreement += $points{own_invnumber_in_purpose};
+    $rule_matches .= 'own_invnumber_in_purpose(' . $points{'own_invnumber_in_purpose'} . ') ';
+  } elsif (length($invnumber) > 3 && $squashed_purpose =~ /$invnumber/ ) {
     $agreement += $points{invnumber_in_purpose};
     $rule_matches .= 'invnumber_in_purpose(' . $points{'invnumber_in_purpose'} . ') ';
-  };
+  }
 
   #check sign
   if ( $invoice->is_sales && $self->amount < 0 ) {