Neuer Minimaltestfall für Rabattrundung im PTC
Beim PTC wird vor der Multiplizierung mit der Menge der gerundete Rabatt vomVerkaufspreis abgezogen, statt erst die Zeilensumme zu berechnen unddann den Rabatt zu ziehen.
6 Artikel zu 0.6€ mit 3% Rabatt0.6 * 6 * ( 1 - 0.03 ) != ( 0.6 - round(0.6*0.03) ) * 6...
ParseFilter: neuer Filter "trim"
Ausserdem autotrim bei substr, head und tail Filtern
trim-Funktion zum Entfernen führender und anhängender Whitespaces
Typos und spellcheck.t
Test zu SL::Request::unflatten, der prüft, ob nicht Hash-Keys erzeugt werden.
Nicht, dass in einem Array aus Hashes key in einem Hash auftauchen, die nur ineinem anderen drin sind.
Payment Helper setzt $self->transactions zurück
Als es noch eine Methode transactions in SL::DB::Helper::Payment gabwurden die acc_trans-Einträge bei Zugriff per $self->transactions jedesMal aus der Datenbank ausgelesen:(SL::DB::Manager::AccTransaction->get_all(query => [ trans_id => $self->id ]);...
Debitorenbuchungen als CSV importieren
Ähnlich wie der Auftragsimport wird hier gemultiplexed, d.h. es gibt separateZeilen für die Debitorenbuchung (ar) und die Buchungszeilen (acc_trans).
Es handelt sich allerdings nicht exakt um acc_trans-Zeilen, die direkt...
Neue Methoden um Debitorenbuchungen zu erstellen
Vorbereitung für Debitorenbuchungsimport, neue Methoden für SL::DB::InvoiceObjekte:
add_ar_amount_row - Erlösbuchungen hinzufügen, mit Steuerschlüsselcreate_ar_row - acc-trans für Forderung hinzufügenvalidate_acc_trans - Prüfen ob alle acc_trans-Einträge aufgehen...
tests: Spellcheck auf allen Dateien machen
tests: html Vorlagen auch in Testdateien aufnehmen
Test zur Prüfung der Syntax aller Template::Toolkit-Templates
round_amount: Anzahl Stellen nicht zu hoch werden lassen
format_amount - negative 0 vermeiden
Ist eine Zahl z.B. -0.002, und wird auf 2 Stellen gerundet, so wird erstdas Minuszeichen gemerkt, dann gerundet (0.00), und schießlich wird dasMinus wieder hinzugefügt, dadurch bekommt man -0.00. Mit diesem Patchwird das Minus-Zeichen entfernt wenn die gerundete Zahl genau 0 ergibt.
Testfall convert_invoice.t um html-formatierte texte erweitert
Beim Konvertieren von Lieferschein nach Invoice auch explizit dieFormate von CKEditor prüfen. Ferner leichte weitere Anonymisierung derWarendaten.
Tests erweitert
Neuer BackgroundJob und den Standard Employee nicht in meinemTestfall löschen, da dieser bei späteren Tests noch verwendet wird.
convert_invoice auch LinkedRecords und Items testen
DeliveryOrder um convert_invoice erweitert
Diesselbe Idee wie bei SalesOrder->convert_invoice. Der ursprünglicheLieferschein wird geschlossen und das neue Objekt mittels record_linksverknüpft.Entsprechend Testfall mitgeliefert.
Typos - kein "wether" mehr!
AttrDuration: Test muss Sprachinvariant sein
AttrDuration-Test: Anzahl Testcases gefixt
ParseFilter: Komplexe Methoden ermöglichen, die auch den Key ändern
AttrDuration: Implementation für Spalten, die Dauer in Minuten speichern
Zahlungsbedingungen: Flag »Fälligkeitsdatum automatisch berechnen«
Tests: Indirekte Objektnotation für Instanzierung verbieten.
t/002goodperl: TODO für strict DBUpgrades entfernt.
Die müssen seit langem in packages liegen und strict sein.
Tests: 2 Tests in db_helper/payment.t auf TODO gesetzt
Tests: Hilfreiche aber false positive warning unterdrücken
Tests: Den einen fehlschlagenden 002goodperl Test auf TODO gesetzt.
Test all the things!
Form::parse_amount: Parsen als Oktalzahlen verhindern
Merge branch 'bankerweiterung_und_skonto'
Conflicts: doc/changelog locale/de/all
Sammelcommit Bankerweiterung und Skonto
Überarbeitung der Bankerweiterung vom Stand Niclas, und Einführung vonBezahlung mit Skonto (alter payment Branch). Mehr Details siehechangelog.
Aufräumen der DB am Ende der individuellen Tests
die Tests sollten am Ende ihre eigenen angelegten Daten löschen, damitandere Tests beim Löschen ihrer Daten keine Abhängigkeitsproblemebekommen:
create_periodic_invoices.tprice_tax_calculator.trecord_links.t...
Typo gefixed
ParseFilter: typo + test
login nicht aus $::form nehmen. Teil 2
Dabei ergibt sich ein kleines Problem. User spezifische bin/mozilla/Controller werden geladen bevor das User handling abgeschlossen ist.Nach dieser Änderung sind die also de facto kaputt.
Tests: fehlender Backgroundjob
ParseFilter: Laundern schon vor dem eigentlichen parsen.
Erlaubt es indirekte Filter im Template roundtrip safe zu machen.
Tests: price_tax_calculator.t muss vor Kunden löschen richtig aufräumen
Finanzcontrolling: Testcase für Aufträge mit wiederkehrenden Rechnungen
Finanzübersicht: Testcase für Spalten Auftragsvorlauf/-eingang
Wiederkehrende Rechnungen: Testcase für Periodizitäten
Ich schreibe immer postition statt position.
PriceTaxCalculator: für Items berechnete flüchtige Werte zurückgeben Teil 3
Die items können nicht als Hash-Referenz gespeichert werden, weil daskaputt geht, wenn die Items noch nicht gespeichert wurden und damit nochkeine ID besitzen. Daher Umstellung auf Array-Speicherung....
SL::CTI::sanitize_number: nur Ziffern zurückliefern
Rundung bei Debitorenbuchung, Kreditorenbuchung und Dialogbuchung
Zwei neue Hilfsfunktionen für Form eingeführt die von ap/ar/gl genutztwerden:
Form::round_amount: Perls Wissen über Stringifizierung nutzen
Perl weiß am besten, wann eine nicht ganz exakte Fließkommazahleigentlich eine für Menschen sinnvoll lesbare Fließkommazahl ist (alsodass mit 143.19999999999998863132 eigentlich 143.2 gemeint ist, wenn ich...
round_amount: Perls Repräsentationsalgorithmus fürs exakte Runden nutzen
Als Erläuterung paste ich schlicht den relevanten Teil des Kommentars,der nun auch in der Funktion steht:
Trying to round with more precision first only shifts the problem to rarer...
ParseFilter: with_objects merging bei Klassen mit Filtered Plugin
ParseFilter kennt 3 Quellen für with_objects Klauseln:
1. explizit übergebene2. aus dem Filter inferierte3. aus custom filtern gesetzte
Wenn nun ein Model das Custom Filter Plugin hat, muss bei jedem Filter...
Steuerzone - neue Customer/Vendor-Objekte brauchen Steuerzone
Durch den not-NULL Constraint bei Kunden und Lieferanten mußbeim Anlegen eines neuen Objekts nun zwingend die Steuerzone mitübergeben werden, ähnlich wie bei der Währung.Dies wurde bei einigen automatischen Tests nachgeholt.
test.pl: --fast switch, skippt 001compile und 003safesys
Nachtrag Steuerzone - Tests angepasst
Steuerzone in price_tax_calculator.t angepasst
round_amount: Fix für falsches Runden bestimmter Werte
Gewisse Werte wie z.B. 33,675 wurden bei 2 Stellen falsch gerundet,nämlich auf 33,67 anstelle von 33,68. Bei anderen Werten hingegenfunktionierte es (beispielsweise 149,175 @ 2 → 149,18).
Grund war, dass durch das Addieren von 0.5 wieder Fließkommaberechnung...
HTML::Util: Tests, und Bugfixes für ein paar Randbedingungen
Tests: neue Background Job Klasse auch erwarten
DateTime: (add|subtract)_businessdays Funktionen
Rundungsfehler bei periodischen Rechnungen mit Einzelpreisen ...
... mit einer Nachkommastelle und Rabatt behoben.
siehe auch commit a22b8118e0bd68acac8a2d7b02a2d4f9fd0eaff1
Zudem einen Test dazu angelegt. Allerdings weicht die Art, wie derPriceTaxCalculator und die Beleg-Masken rechnen, von einander ab....
Generische Unterstützung für CTI: Click-to-dial
CSV-Helfer-Test: In-Memory-Streams mit richtigem Encoding initlisieren
Rose-Attr-Helfer: _as_timestamp
…mit verschiedenen Präzisionsstufen und Tests!
Locale::parse_date_to_object: Unterstützung für volle Timestamps & explizite Formate
…und dafür Tests.
Locale::format_date_object: explizites Setzen der Formate; Millisekunden als neues Format
…und dazu Tests.
SL::DB::Helper::LinkedRecords: rekursive Suche in linked_records
LinkedRecords: bidi Verhalten den docs angepasst und direction Parameter optional gemacht
t/structure/globals: Lexikalische Variablen sind schwer exportierbar.
t/test.pl: Neuere Tests kommen sich bei multicore in die Quere. Vorerst ausschalten
t/test.pl: File::Find macht nur dann lstat wenn follow oder follow_fast als option gesetzt ist
LinkedRecords: Test und Doku Update
Merge branch 'pflichtenhefte'
Conflicts: js/locale/de.js
ParseFilter: splitting von :multi über Text::ParseWords
:multi filter für ParseFilter
Test: acts_as_list.t: Anpassung an Währungsumstellung
Diverse Fixes, damit der Testcase mit den aktuellen requirement_specs durchläuft.
- braucht jetzt keine leere Datenbank mehr, erstellt Ficture und löscht sie hinterher wieder.- Update auf item_type- Unmöglicher Check im Header korrigiert- Zahl der Testcases jetzt korrekt hart kodiert
CSV-Import mit Multiplex-Daten: Die Spalte datatype muss nicht an der ersten Position sein.
Custom GetModels Filter: Präfixing von Fallback Filtern in Relationen mit Custom Filtern fehlte.
RDBO-Consistency-Test auf PACKAGE->meta_initialize
Csv-Helper lässt header als einfaches Arrayref bei Nicht-Multiplex-Daten zu.
Test reparieren. datatype ist immer unbekannt.
case_insensitive-Flag für Multiplex-Daten anpassen.
Anpassungen nach merge/rebase
Testanzahl angepasst, Schreibfehler, emacs happy
weitere multiplex-Tests
Bei Boolean-Tests von is ... auf ok ... gewechselt.
nicht immer ein "my" für ein neues Csv-Objekt (copy-paste-Fehler).
SL::Helper::Csv kann mit Multiplex-Daten (mehreren Profilen) umgehen.
SL::Helper::Csv bekommt Klasse im Profil mitgeteilt.
warning
warnings unter 5.12.4
Tests: In Datenbanksetup-Test $::instance_conf initialisieren
Erste Tests zum PriceTaxCalculator
$::instance_conf benötigt kein explizites init mehr
Data::Dumper-Format-Variablen in Tests setzen
with_objects in ParseFilter korrekt weiterreichen
Tests: Test-Case für gültige Methodennamen auf $::instance_conf
Tests: $::auth für Unit-Test-Datenbank anlegen
Test für Konsistenz SL/DB/*.pm <=> SL/DB/MetaSetup/*.pm sowie die Helfer ALL und Mappings
Tests: eigene Datenbank für Unit-Tests hochziehen
Tests: Unterstützung für Konfigurationsparameter "debug.backtrace_on_die"
t/wh/transfer.t: Für leere DB fit gemacht
Artikel, Lager und Lagerplatz werden vorher bereinigt, angelegt undhinterher bereinigt.
Tests: Tests skippen, wenn Template-Cache-Verzeichnis nicht schreibbar ist
globale Variablen in ein Helfermodul ausgelagert
TestSetup auf clients angepasst