Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 75254263

Von G. Richardson vor fast 13 Jahren hinzugefügt

  • ID 7525426386204abfcc6e49b481de7389ade44dc4
  • Vorgänger 1b026c0b
  • Nachfolger 9e9a940e

Sammelrechnung / Kundenkonto / Fälligkeitsabrechnung / Statement

Bug 1611

Finanzbuchhaltung -> Berichte -> Offene Forderungen

Jan hatte das ja schon angepasst, daß man die offenen Rechnungen nach einer
Altersstrukturliste filtern kann. Die Ergebnisse stimmten auch, aber wenn man
dann das Ergebnis drucken wollte fehlten die Zahlen.

Die Sammelrechnung soll wohl als Kundenkonto fungieren, damit man dem Kunden
eine Übersicht aller noch offenen Rechnungen schicken kann, mit Übersicht der
Überfälligkeit. Die Druckvorlage ist statement.tex, bzw. statement.html. Bisher
wurden aber nie die Beträge der Rechnungen angezeigt, das funktioniert jetzt
wieder.

  • bei der Datenbankabfrage wird für jede Rechnung die Anzahl der Tage über dem
    Fälligkeitsdatum (Today - duedate) für jede offene Rechnung berechnet
  • der noch offene Betrag wird je nach Anzahl der überfälligen Tage der Rechnung
    zur Kategorie c0, c30, c60 oder c90 hinzugefügt

Die angegebenen Zahlen sind die noch offenen Teile der Rechnung, es steht aber
auch die Gesamtsumme der Rechnung unter der Variablen <%amount%> in der
Druckvorlage zur Verfügung (siehe doc/dokumentenvorlagen-und-variablen.html)

Rechnungen, deren Fälligkeit noch nicht erreicht ist, tauchen ebenfalls in der
c0-Gruppe auf.

Nicht mit Währungsumrechnung getestet.

Im Lx-Office Buch steht zu Sammelrechnung, daß beim Drucken nur Rechnungen für
den ersten Kunden angezeigt werden, aber alle Sammelrechnungen an den
konfigurierten Drucker geschickt werden, ich bin mir nicht sicher, ob das
stimmt. Es gibt ja den Knopf "Alle Auswählen", aber bei E-Mail kann auch nur an
den ersten versendet werden.

Unterschiede anzeigen:

bin/mozilla/rp.pl
2032 2032
        $form->{ $form->{ct} } = $form->{name};
2033 2033
        $form->{"$form->{ct}_id"} = $ref->{ctid};
2034 2034

  
2035
        map { $form->{$_} = () } qw(invnumber invdate duedate);
2035
        map { $form->{$_} = () } qw(invnumber invdate duedate amount open);
2036 2036
        $form->{total} = 0;
2037 2037
        foreach my $item (qw(c0 c30 c60 c90)) {
2038 2038
          $form->{$item} = ();
......
2101 2101
  push @{ $form->{invnumber} }, $ref->{invnumber};
2102 2102
  push @{ $form->{invdate} },   $ref->{transdate};
2103 2103
  push @{ $form->{duedate} },   $ref->{duedate};
2104
  push @{ $form->{amount} },    $form->format_amount(\%myconfig, $ref->{amount} / $ref->{exchangerate}, 2);
2105
  push @{ $form->{open} },      $form->format_amount(\%myconfig, $ref->{open} / $ref->{exchangerate}, 2);
2104 2106

  
2105 2107
  foreach my $item (qw(c0 c30 c60 c90)) {
2106 2108
    if ($ref->{exchangerate} * 1) {
2107
      $ref->{$item} =
2108
        $form->round_amount($ref->{$item} / $ref->{exchangerate}, 2);
2109
      # add only the open amount of the invoice to the aging, not the total amount
2110
      $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} < 30 and $item eq 'c0';
2111
      $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} >= 30 and $ref->{overduedays} < 60 and $item eq 'c30';
2112
      $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} >= 60 and $ref->{overduedays} < 90 and $item eq 'c60';
2113
      $ref->{"${item}"} = $form->round_amount($ref->{open} / $ref->{exchangerate}, 2) if $ref->{overduedays} >= 90 and $item eq 'c90';
2109 2114
    }
2110 2115
    $form->{"${item}total"} += $ref->{$item};
2111 2116
    $form->{total}          += $ref->{$item};

Auch abrufbar als: Unified diff