Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 0c93bf20

Von Moritz Bunkus vor mehr als 8 Jahren hinzugefügt

  • ID 0c93bf2085b5cca69cb831fd90a50ed0ec6b8601
  • Vorgänger 0631432e
  • Nachfolger 20392548

Bankauszug: Unterzahlung mehrerer Rechnungen verhindern

Wenn mehrere Rechnungen ausgewählt werden, so verteilt der Algorithmus
schlicht den Betrag der Überweisungen auf die Rechnungen in der
Reihenfolge, in der die Rechnungen ausgewählt wurden. Dabei wird so
lange der volle offene Betrag bezahlt wie möglich, der Rest kommt auf
die folgende Rechnung.

Allerdings ist für das Programm nicht ersichtlich, welche Anteile
welcher Rechnungen des Kunden/Lieferanten tatsächlich damit beglichen
wurden.

Also muss verhindert werden, dass das passiert; eine Warnung genügt
nicht.

Unterschiede anzeigen:

SL/Controller/BankTransaction.pm
481 481
    foreach my $invoice (@{ $data{invoices} }) {
482 482

  
483 483
      $n_invoices++ ;
484

  
484 485
      # Check if bank_transaction already has a link to the invoice, may only be linked once per invoice
485 486
      # This might be caused by the user reloading a page and resending the form
486 487
      if (_existing_record_link($bank_transaction, $invoice)) {
......
491 492
        };
492 493
      }
493 494

  
494
      if ($amount_of_transaction == 0) {
495
        push @warnings, {
495
      if (!$amount_of_transaction && $invoice->open_amount) {
496
        return {
496 497
          %data,
497
          result  => 'warning',
498
          message => $::locale->text('There are invoices which could not be paid by bank transaction #1 (Account number: #2, bank code: #3)!',
499
                                     $bank_transaction->purpose, $bank_transaction->remote_account_number, $bank_transaction->remote_bank_code),
498
          result  => 'error',
499
          message => $::locale->text("A payment can only be posted for multiple invoices if the amount to post is equal to or bigger than the sum of the open amounts of the affected invoices."),
500 500
        };
501
        last;
502 501
      }
503 502

  
504 503
      my $payment_type;

Auch abrufbar als: Unified diff