Jan Büren [Thu, 9 Nov 2017 08:54:46 +0000 (09:54 +0100)]
DATEV: Saubere Objektmethoden für CSV.pm implementiert
PODs ergänzt.
Hintergrund: Sehr klare Ideen von Sven implementiert, sprengt den
Rahmen der Commit-Message, Details siehe Doku in redmine
http://redmine.kivitendo-premium.de/documents/18
Jan Büren [Wed, 8 Nov 2017 09:01:52 +0000 (10:01 +0100)]
DATEV undef values warnings optimiert
Die Mandateninformationsdaten müssen nicht zwingend für
den DATEV-Export gefüllt sein. Für die Testfälle sind
diese auch nicht gefüllt. Entsprechend optimiert.
Jan Büren [Thu, 2 Nov 2017 09:44:16 +0000 (10:44 +0100)]
DATEV: csv_buchungsexport nach DATEV::CSV.pm ausgelagert
Testfälle angepasst. POD angepasst.
Details:
DATEV.pm
- Klassenvariable locked hinzugefügt.
- Aufruf der CSV-Klasse anstatt der internen Methode
CSV.pm
- Konstruktor wie in DATEV.pm ergänzt und um minimale
Pflichtfeldprüfung ergänzt.
- datetofour durch SL::Helper::DateTime ersetzt
- Helper _format_amount auch aufrufen
- Routinen umbenannt (pseudoprivat mit Unterstrich)
- Prüfung auf locked als perlish boolean
- _csv_buchungsexport um zweiten return array_ref mit warnungen ergänzt
t/datev/*
- Testfälle enstprechend dem neuen API-Call umgeschrieben
- Einen Testfall zur Überprüfung von keiner Warnung ergänzt
Bernd Bleßmann [Fri, 27 Oct 2017 14:01:32 +0000 (16:01 +0200)]
Bericht Lagerbuchungen: Richtige ids verwenden zur Anzeige des Dokuments
Beim Lagern über Lieferscheine steht die delivery_orders.id in inventory.oe_id
und beim Lagern über Rechnungen steht die invoice.id in inventory.invoice_id.
Lagern aus anderen Dokumenten als Lieferschein oder Rechnung gibt es nicht.
Jan Büren [Fri, 27 Oct 2017 13:52:05 +0000 (15:52 +0200)]
Erzeugnis nach Fertigen editieren -> Recht in template ausgelagert
Vorher buggy und konzeptionell schlecht, da keine Unterscheidung
von orphaned zu 'darf doch nach fertigen editierbar sein' möglich war.
Ferner auch keine Differenzierung zum Sortiment möglich.
Mit diesem Commit ist verwaist wieder verwaist und das zusätzliche
Aushebeln des Schreibschutz beim Erzeugnis sauber nur über das Recht definiert.
Der Umbau von Mosu im commit c60cb1f08f fixed das mehrfache Aufrufen eines Tabs,
der replace_dialog wird aber sowohl vom "documents" Tab als auch vom "attachment" Tab verwendet,
und ist somit zweimal vorhanden. Das Umbenennen funktioniert somit nur einmal,
dann muss ein reload gemacht werden.
Jetzt haben die Dialoge unterschiedliche Id Namen per suffix _attachment oder _document
Moritz Bunkus [Tue, 17 Oct 2017 11:22:06 +0000 (13:22 +0200)]
Rose-Models erzeugen: Auth-Objekt erst resetten, wenn Auth-Schema angelegt
Wenn `--test-client` benutzt wird und die Datenbank bereits existiert,
so wird sie zuerst gedropt und anschließend neu angelegt. Wenn direkt
nach dem Droppen `$::auth->reset` aufgerufen wird, so versucht
`$::auth` aber, die Tabellen- und Spalteninformationen für die
Datenbank auszulesen, was mit einem gerade geschlossenen DB-Handle
versucht wird.
Moritz Bunkus [Tue, 10 Oct 2017 09:46:54 +0000 (11:46 +0200)]
Tests: Eigene Verbindungsdaten für DB-Upgrades mit Super-User-Rechten
Wenn der Benutzer, der in der Konfiguration mit `user` & `password`
angegeben ist, keine Super-User-Rechte hat, so kann ein weiterer
Account dafür mit `superuser_user` & `superuser_password` angegeben
werden. Nur diejenigen Datenbankuprade-Scripte, die über den Tag
`@superuser_privileges` signalisieren, dass sie Super-User-Rechte
benötigen, werden auch wirklich mit Super-User-Rechten ausgeführt.
Moritz Bunkus [Tue, 10 Oct 2017 09:19:48 +0000 (11:19 +0200)]
Datenbankupgrades: Unterstützung für einzelne Updates mit Superuser-Rechten
Setzt man den neuen Tag `@superuser_privileges` auf 1, so schaut
kivitendo vor dem Einspielen aller Upgrades nach, ob der konfigurierte
Datenbankuser Superuser-Rechte hat. Falls nicht, wird die Benutzer*in
nach entsprechenden Logindaten gefragt.
Nur die Upgradescripte, die tatsächlich Superuser-Rechte benötigen,
werden mit diesem User ausgeführt, alle anderen mit den normalen
Rechten, um Besitzer-Wildwuchs bei neu angelegten Objekten zu
vermeiden.
Jan Büren [Sun, 8 Oct 2017 16:34:16 +0000 (18:34 +0200)]
Wiederkehrende Rechnungen: Einmalige Rechnungen auch nur einmalig ausführen
Die kleinste Periode die calculate_dates verwendet ist monatlich.
Falls eine einmalige Rechnungen ein Startdatum älter als einen
Monat besitzt, werden mehrere Rechnungen erzeugt.
Sinnvoller ist es, dass die foreach @dates Schleife bei der
Prüfung auf Einmaligkeit auch direkt beendet wird (last).
Ferner Debug und typo
Jan Büren [Mon, 2 Oct 2017 12:16:00 +0000 (14:16 +0200)]
Bessere Rückmeldung für Personenkonten-Export DATEV
Damit dem Anwender bewußt wird, dass es diese Funktion gibt
ist es sinnvoller die anzuzeigen und auszugrauen mit dem
Hinweis, dass die Kunden- und Lieferantennummernkreise nicht
der DATEV Personenkonto Spezifikation (Sachkontenlänge + 1)
entsprechen.