Jan Büren [Fri, 22 Mar 2019 07:50:13 +0000 (08:50 +0100)]
Bankverbuchungen: freies Skonto auch abziehen. Code-Vereinfachung (not_assigned)
Vergessen, den freien Skonto-Betrag von invoice_amount
abzuziehen. Not-Aus-Schalter in feeb3fc8352. Jetzt auch
im Controller saubere Fehlermeldung ausgeben.
Bernd Bleßmann [Wed, 20 Mar 2019 09:43:27 +0000 (10:43 +0100)]
Order-Controller: beim Neuberechnen auf Reihenfolge achten, …
… sonst kam es vor, dass die Zeilensummen durcheinander kamen, da
die Reihenfolge der items von PTC und Order nicht zwingend gleich ist.
Wenn beide sortieren (PTC tat dies schon), dann stimmt's.
Jan Büren [Tue, 12 Mar 2019 10:20:29 +0000 (11:20 +0100)]
Kontoauszug verbuchen: Neuen Skonto-Typ
Eingabe eines freien Skonto-Betrags in der Maske aktiv.
Ferner Anzeigen des Skonto-Betrags bei with_skonto_pt, damit
der Anwender besser visuell unterstützt wird.
Jan Büren [Mon, 11 Mar 2019 13:33:08 +0000 (14:33 +0100)]
Payment::pay_invoice um Zahlungsbedingung freies Skonto erweitert
POD angepasst. Falls der Zahlungstyp free_skonto und der Parameter
skonto_amount übergeben wird, so wird dieser anstelle von einem
berechneten Skonto-Betrag verbucht. Das Vorzeichen wird entsprechend
nur "durchgereicht" und der Parameter überlager simplerweise den
Wert total_skonto_amount beim Verbuchen der Skonto-AccTrans-Einträge
Jan Büren [Tue, 5 Mar 2019 13:41:05 +0000 (14:41 +0100)]
Kontoauszug verbuchen rückgängig machen. Closedto und GL
Falls eine Buchung in einer geschlossenen Periode ist,
erst gar nicht die Möglichkeit zum Anwählen geben.
Ferner GLTransaction auch erlauben, allerdings diese dann
komplett (gl Nebenbuch) rauslöschen
Jan Büren [Tue, 5 Mar 2019 12:36:19 +0000 (13:36 +0100)]
BankTransaction(closed_period) Prüft Valutadatum gegen closedto
Gibt 1 (wahr) zurück falls das Valutadatum der Bankbewegung
innerhalb einer geschloßenen Periode ist. Andernfalls 0.
POD, Test und 2 Stellen im Controller geändert.
Offen: Payment-Helper, der sollte allerdings nichts über den Zustand
der Bankbewegung wissen müssen ...
Jan Büren [Sun, 3 Mar 2019 15:47:33 +0000 (16:47 +0100)]
SelfTest Transaction zum commit von gerade: weniger false positives
Bei Buchungen, bei denen nicht ein RecordLink existiert (GL),
gelöscht, ist es nicht mehr möglich sauber auf verwaiste Einträge zu
testen. Entsprechend min(itime) from bank_transaction_acc_trans als
Schwellenwert für Startpunkt der Prüfung von bank_transactions.transdate
genommen
Jan Büren [Sun, 3 Mar 2019 15:16:36 +0000 (16:16 +0100)]
BankTransaction: want a whole lotta test
neuer Test full_workflow in bank_transactions
1.
Verbucht drei Verkaufsrechnungen nacheinander, davon
eine mit Zahlungsbedingung Skonto nach ZB. Zusätzlich
zu den Nebenbücher werden acc_trans Einträge kontrolliert,
sowie der gesetzte RecordLink.
2.
Da die Bankbewegung komplett aufgeht, wird diese abgeglichen
und die Zustände danach kontrolliert.
3.
Leider war die Verbuchung komplett Murks, weswegen die
Ursprungszustand vor 1. wiederhergestellt (neues Funktion
Kontoauszug-Verbuchung rückgängig machen)
Bonus-Level:
Damit andere Anwendungen / Schnittstellen, DB-Admins nicht
auf die Idee kommen an der Hilfstabelle bank_transaction_acc_trans
zu schrauben, entsprechend einen weiteren SelfTest geschrieben
Jan Büren [Sat, 2 Mar 2019 09:23:16 +0000 (10:23 +0100)]
BankTransaction Die richtigen (erwarteten) Parameter von amount an pay_invoice
Stellt den vorherigen Zustand im Controller wieder her, der über
Fallunterschiede vom Invoice-Typ Vorzeichen verschoben hat.
Tests laufen damit erstmal durch. Ferner kann und muss es mehr
als 2 acc_trans_ids als Rückgabe von pay_invoice geben
Jan Büren [Sat, 2 Mar 2019 07:40:50 +0000 (08:40 +0100)]
Manuelle Zahlungen verbieten, falls mit Kontoauszug verknüpft.
Falls die Änderbarkeit von Zahlungen nicht auf niemals steht,
entsprechend Überbuchen / manuelles Ändern verbieten.
Der Fehlertext weißt zusätzlich auf die Funktion im Bankbewegungs-Bericht hin
Jan Büren [Fri, 1 Mar 2019 13:55:06 +0000 (14:55 +0100)]
Dialogbuchungen aus Bankbewegungen teilweise Verbuchungen erlauben
Da vorher nur komplette Bankbewegungen verbucht werden konnten,
war es nicht sinnvoll Teilbeträge im Dialog zu buchen.
Das Verfahren ist jetzt geändert und übergeben wird der aktuelle
Rest-Betrag der Bankbewegung
Jan Büren [Fri, 22 Feb 2019 09:35:32 +0000 (10:35 +0100)]
Neue Helper-Tabelle SL/DB/BankTransactionAccTrans.pm
Hintergrund: Verbuchte Bankbewegungen sind nur über
einen löschbaren RecordLink aktuell zuordenbar.
Das macht ein verlässliche Aussage über die Verbuchungen
der Bankbewegung schwierig. Besser wäre es eine
Tabelle reconciliation_links direkt bei der Verbuchung zu füllen
und die gesetzten Constraints so zu lassen (ER-Fehler mit
aussagekräftigerer Fehlerwarnung an den Nutzer) ....
Da die Bankverbuchungen seit 66d468b09 (2016) in einer
Transaktion laufen, wird über record_link und itime eine
Rekonstruktion der Zusammenhänge für die alten Einträge versucht herzustellen.
Wichtig: Dieser Commit ist Vorbedingung für das Neuverbuchen
von importierten Bankbewegungen. Zusätzlich beißt sich das mit
der Anforderung das Zahlungen manuell vom Anwender geändert werden
können (s.a. hierzu c923fff436).
Jan Büren [Wed, 20 Feb 2019 10:29:30 +0000 (11:29 +0100)]
SL::DB::BankTransactions(linked_invoices): Returns an array of record objects
Anstatt nur die Namen der Belege werden jetzt die Beleg-Objekte
zurückgegeben. Einziger Aufruf der Methode beim ReportGenerator in
Controller::BankTransactions. Die Stelle entsprechend angepasst
Man kann nun Mitarbeiter*innen zu Projekten zuordnen, indem man sie in
den Projektstammdaten hinzufügt.
Ist eine Mitarbeiter*in zu einem Projekt zugeordnet, so darf sie alle
Rechnungen ansehen, die über die Projektnummer der Rechnung (nicht der
Positionen) dem Projekt zugeordnet sind, auch dann, wenn sie nicht das
allgemeine Recht zum Erstellen und Ansehen von Rechnungen hat.
Verändern oder Ausdrucken der Rechnungen ist nicht gestattet.
Die Verwaltung dieser Projektberechtigungen ist über ein neues
Gruppenrecht eingeschränkt.
Betrifft Verkaufsrechnungen, Verkaufsgutschriften und Debitorenbuchungen.
Ansonsten werden die cvars nicht übernommen.
Außerdem ist es konsistenter, da bei allen anderen
Workflow-Aktionen auch immer gespeichert wird (Rechnung oder LS).
Jan Büren [Wed, 13 Feb 2019 09:41:45 +0000 (10:41 +0100)]
generische E-Mail-Adresse für Lieferscheine
Ähnlich wie bei Verkaufsrechnungen gibt es generische
Empfänger für Lieferscheine beim E-Mail-Versand.
Die jetzige Konfiguration (nicht änderbar) entspricht
dem Wert Stammdaten und Ansprechpartner in CC.
Ist eine Stammdaten-Mail und ein Ansprechpartner definiert,
bzw. ausgewählt wird der Ansprechpartner in CC gesetzt und
die vorbelegte Anrede ist 'generisch'
Jan Büren [Mon, 4 Feb 2019 13:04:29 +0000 (14:04 +0100)]
Rechnungsversand E-Mail-Body
Falls die generische E-Mail-Adresse verwendet wird, sollte auch
die generische Anrede hinterlegt sein, selbst wenn ein Ansprechpartner
noch in CC gesetzt wird.