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.
Jan Büren [Wed, 23 Jan 2019 10:35:49 +0000 (11:35 +0100)]
Ansprechpartner um boolean Hauptansprechpartner erweitert
Entsprechend mit einigen Attributen für den Export von Kundenstammdaten
hinzugefügt.
Hintergrund: Ansprechpartner-Export gibt nur die Liste aller Ansprechpartner.
Das Feld Kontakt (in der Tabelle Kunde) war wahrscheinlich der Vorgänger
für die Ansprechpartner-Logik. Das ist etwas wenig, wenn man noch
E-Mail, Telefon usw. personenbezogen unterbringen will. Deshalb die
Ergänzung für diesen Bericht.
Jan Büren [Fri, 18 Jan 2019 10:31:35 +0000 (11:31 +0100)]
Ergänzung zu a3b8cfa7b7546 (Mahnungen konfigurierbar machen)
- bessere Fehlerbehandlung -> send_mail läuft schon in einer Transaktion
Von daher mit die hart aussteigen
- Die Signatur des E-Mail-Versenders sollte dann auch zur E-Mail-Adresse
passen, entsprechend backup vars erstellt vor dem Aufruf von Form::create_signature
Jan Büren [Wed, 19 Dec 2018 09:43:02 +0000 (10:43 +0100)]
Zahlungserinnerung an Rechnungsadresse schicken - Weiche für Absender
Mail-Absender aus defaults.dunning_creator ableiten.
Falls die Rechnungsadresse E-Mail gesetzt ist, diese als Empfänger nehmen ansonsten die
globale E-Mail des Kunden (abwärtskompatibel).
Erweiterung um Fehlerbehandlung mit Hinweis an der Oberfläche, falls keine Sender oder
Empfänger-Adresse gefunden wird
Jan Büren [Mon, 14 Jan 2019 13:37:36 +0000 (14:37 +0100)]
fixt: #345 Mahnungsersteller im Ausdruck konfigurierbar machen
Im Menüpunkt Mahnungen konfigurieren, kann man nun wählen, ob
der aktuelle Mitarbeiter für die Mahnung/Zahlungserinnerung gesetzt ist
oder der ursprüngliche Mitarbeiter/Ersteller der Rechnung
Jan Büren [Fri, 14 Sep 2018 09:48:16 +0000 (11:48 +0200)]
Rechnungsversand per E-Mail
Falls bei dem Kunden eine E-Mail-Adresse für den
Rechnungsversand hinterlegt ist, so hat diese Priorität
vor der allgemeinem Rechnungsadresse.
Als visuelle Hilfe, wird aus dem Titel 'Empfänger' der
Titel 'Rechnung an:'.
Logik normale Rechnung:
1.) Die Adresse des Ansprechpartners hat Priorität vor allen anderen Adressen (bleibt)
2.) Falls kein Ansprechpartner -> Prüfen auf Rechnungsadresse (neu)
3.) Falls immer noch keine E-Mail -> Prüfen auf generische Mail des Kunden (bleibt)
Logik wiederkehrende Rechnung:
Falls eine Rechnungsadresse gesetzt ist, wird diese schreibgeschützt angezeigt.
Weitere Adressen können wie bisher auch über die Auswahl des Ansprechpartners oder
per freier Eingabe zusätzlich definiert werden
Jan Büren [Fri, 14 Sep 2018 08:43:02 +0000 (10:43 +0200)]
Stammdaten -> Kunden um Textfelder Rechnungsmail und Herkunft personenbezogener Daten erweitert
i)
Die Rechnungsmail ist die generische E-Mail des Kunden, welche die
Rechnung in der Regel bearbeitet (buchhaltung@, einkauf@).
ii)
Aufgrund der DSGVO ist es im Zweifel sinnvoll den Erstkontakt
des Kunden zu dokumentieren (Messe xyz, Telefon-Aktion beta, ...)
Die beiden Felder sind als Suchfeld anhakbar.
Sven Schöling [Fri, 26 Oct 2018 10:52:36 +0000 (12:52 +0200)]
PTC: Fehlerhafte ungerundete Berechnung von grossamount
Bei Rechnungen mit sehr vielen sehr kleinen Positionen wurde die
Rundungsfehlerakkumulation _nur_ in den finalen netamounts
berücksichtigt, nicht aber in den daraus berechneten grossamounts was zu
Cent-Abweichungen geführt hat.
Bernd Bleßmann [Wed, 12 Dec 2018 15:53:28 +0000 (16:53 +0100)]
PTC: nicht einfach die Rundungsgenauigkeiten erhöhen …
… das verschiebt das Problem auf jeden Fall nur.
Siehe auch Ticket #82.
Diser commit macht den Teil
"Ferner Rundungsgenauigkeiten für wiederkehrende Rechnungen erhöht." aus
commit 075f64d61e999506517a304022525d83c29e6e3e rückgängig.