Jan Büren [Mon, 3 Sep 2018 13:34:15 +0000 (15:34 +0200)]
Kreditorenbuchungen: Warnung bei vorhandener Rechnungsnummer für diesen Kreditor
Vorbedingung:
AP.js erweitert, sodass der Prüfcode entsprechende Inputs von IR oder AP prüft.
Erweiterungen:
Einkaufsrechnung (IR) mit derselben Prüfung wie Kreditorenbeleg beim Speichern versehen
Prüffunktion auf schon vorhandene Belegnummer zu diesem Kreditor bei
Einkaufs- oder Kreditorenbeleg implementiert.
Generischen Controller für JS-Prüfung (SalesPurchase.pm) mit einer
Funktion hinzugefügt, sowie entsprechend Changelog und locales.
Bernd Bleßmann [Sat, 25 Aug 2018 14:12:58 +0000 (16:12 +0200)]
CustomerVendor-Picker: 'type' nicht als html-Attribut setzen
Die Parameter des Picker-Aufrufs werden an das Input-Tag weitergeben und so
wurde das type-Attribut mit dem Typ (customer/vendor) des Pickers
überschrieben.
Bernd Bleßmann [Fri, 3 Aug 2018 13:08:31 +0000 (15:08 +0200)]
Auftrags-Controller: nur neue Maske/Links hierhin, wenn experimentelle Features an
- in Menüs Verkauf/Einkauf: Links zu Angebot u. Auftrag)
- in Berichten Angebot/Auftrag und Lieferscheine: Links zu Angeboten und Auträgen
- im Presenter (und damit in der Liste der verknüpfte Belege)
- Todo-Liste
Bernd Bleßmann [Fri, 10 Aug 2018 11:01:57 +0000 (13:01 +0200)]
Auftrags-Controller: kein Unterstrich vor privaten Funktionen
In einem Controller wird den von aussen zugänglichen Funktionen "action_"
vorangestellt, deshalb ist zur Unterscheidung das Voranstellen eines
Unterstrichs unnötig und verschlechtert die Lesbarkeit.
Auftrags-Controller: Null-Werte in Eingabezeile von leer unterscheiden.
Die Idee war, bei einem leeren Wert in der Eingabezeile ein default zu
nehmen (Menge => 1, Preis => "bester" Preis, Rabatt => "bester" Rabatt).
Bisher wurde aber nicht zwischen leer und 0 bzw. 0,00 unterschieden, so dass
dann auch die default-Werte genommen wurden.
Das wird jetzt unterschieden.
Jan Büren [Wed, 18 Jul 2018 12:43:33 +0000 (14:43 +0200)]
Liefertermin Erinnerung für Auftrags-Controller
Falls in Mandanten-Konfig aktiviert, wird ein leerer Eintrag in
Liefertermin in Aufträgen beim Speichern oder
beim Workflow 'Speichern und Lieferschein' angemahnt.
Jan Büren [Mon, 16 Jul 2018 10:40:11 +0000 (12:40 +0200)]
bank_transactions.t Testfälle angepasst
Zwei Testfälle (Vorauswahl der Vorschlagsliste) passen aktuell nicht.
Die sind von Odyn 032b03ab96f8ba6d89, dies ist in kivitendo so nicht implementiert.
aqbanking-cli benutzt im Standardprofil transactionCode, und das wurde
auch hier beim umwandeln im Header generiert. Das interne Feld wurde
aber mittlerweile umbenannt zu transaction_code, also wurde
transaction_code nicht mitimportiert. Das hatte dann zur Folge, dass
SEPA Sammelüberweisungen nicht abgeglichen werden konnten.
Jan Büren [Thu, 12 Jul 2018 13:35:16 +0000 (15:35 +0200)]
BankTransaction weniger Code ist mehr Wert
Aufgrund des klarer formulierten PODs kann eine Routine und
eine weitere zu "schwache" Bedingung entfernt werden.
Fast alle kivi-Testfälle inkl. adaptierter odyn-Testfälle laufen sauber durch.
Jan Büren [Thu, 12 Jul 2018 13:20:10 +0000 (15:20 +0200)]
POD Ergänzungen
BankTransaction::save_single_bank_transaction kann nur
1 noch niemals vorher verbuchte Bankbewegung mit n Belegen verbuchen.
Sollte etwas klarer im POD und später in der Methode deutlich gemacht werden.
Nette Idee aus odyn (Start des Gedankens #f09c2b407faa7 Ende des Gedankens #765a3d421e7).
Zwei Sollbruchstellen in odyn, deshalb in kivi neu formuliert:
Sollbruchstellen:
a) Ein Aufruf von BankTransaction::action_list kann Zustände im Datenmodell verändern
b) Der Benutzer kann beliebige Zahlenwerte oder neue Konten in der Dialogbuchungsmaske eingeben
Konsequenz:
-> Zustände des Datenmodells in gl.pl post_transactions ändern, Werte per Rose hierzu aus der DB (und nicht aus $form)
Möglichst viel dem Benutzer auf die Flossen hauen, wenn die Buchungsmaske unlogisch benutzt wird
Martin Helmling [Tue, 26 Jun 2018 14:07:32 +0000 (16:07 +0200)]
Bankimport: Fehler beim Verbuchen von Teilzahlungen: Rollback bei Fehler
Falls ein Fehler auftritt wird kein Rollback von der bereits gemachten Zahlung und dem neuen Recordlink gemacht,
lediglich die Banktransaktion wird nicht verändert
Erweiterung durch ein Test test_bt_error
-> liefert erstmal kein rollback fehler, test dennoch von odyn übernommen (jb)
Bankimport: Rundungsproblem beim Vergleich Rechnungsbetrag - Kontobetrag
Durch explizites Runden konnte die perl Floatingpoint Arithmetik nicht überzeugt werden,
deshalb werden nun die Formatierten Strings der Beträge noch zusätzlich verglichen.
Hiermit wird der "exact_match" beim Vergleich von z.B. 3456,28 und 3456,29 nicht mehr gefunden
Bankimport: Prüfung des reinen Ziffernanteils der Rechnung
Falls Rechnungen in der Rechnungsnummer ein Prefix vor der Nummer haben
und dies nicht exakt im Verwendungszweck der Kontobewegung aufgeführt ist,
wurde dies nicht als Bewertungskriterium herangezogen.
Nun wird dies mit etwas wenig Punkte bewertet.
In diesem einfachen Verfahren wird bei einer Rechnungsnummer 'RE12345' auch ein 'Blabala 12 nix 34 ddd 5' erkannt,
was aber recht unwahrscheinlich ist.
Moritz Bunkus [Tue, 26 Jun 2018 11:57:04 +0000 (13:57 +0200)]
LaTeX-Escaping: gewisse Formen von »no line to end here« vermeiden
Passiert, wenn im HTML so ein Konstrukt existert:
…Text</p><p> <br>
Das wird zu einem Paragraphen, einem Leerzeichen und einem forcierten
Zeilenumbruch:
----schipp----
Text
\newline
----schipp----
Durch die Leerzeile fängt für LaTeX dann dort ein neuer Absatz an. Der
ist soweit leer. Das Leerzeichen am Anfang der Zeile ist kein
Inhalt. Also gibt es aus Sicht von LaTeX dann keinen Zeileninhalt,
sobald es das `\newline` trifft.
Moritz Bunkus [Thu, 21 Jun 2018 11:20:35 +0000 (13:20 +0200)]
Finanzübersicht: »einmalige« Periodizität bei wiederkehrenden Rechnung gefixt
Die Finanzübersicht nutzt die Funktion
`SL::DB::PeriodicInvoicesConfig::calculate_invoice_dates`, um jedes
Ausführungsdatum innerhalb eines Zeitraumes zu berechnen. Dort wurde
»einmalig« fälschlicherweise wie »jeden Monat wiederholen«
behandelt. Dadurch tauchten die solche wiederkehrenden Rechnungen in
der Finanzübersicht in jedem Monat auf, sofern die Konfiguration noch
aktiv ist.
Beim eigentlichen Erzeugen der wiederkehrenden Rechnungen hingegen war
das deshalb kein Problem, weil so eine Konfiguration direkt nach dem
ersten Erzeugen der Rechnung auf inaktiv gesetzt wird.