CVar-Helper: Beim Parsen darauf achten, ob unparsed_value ein Objekt enthält.
Um Objekte mit der value-Methode einer CVar vom Typ Customer, Vendor oder Part
zuweisen zu können, muss beim Parsen die Id des Objekts ermittelt werden.
Dieses wird z.B. im Helper (SL::DB::Helper::CustomVariables.pm) verwendet, um
bei neuen cvars eines sub-modules den Wert der Basis-CVar zu setzen, denn die
value-Methode der CVar (hier der Basis-CVar) liefert ein Objekt zurück.
Ohne diesen Patch gab es einen Fehler in der Art:
"No such SL::DB::Part where id = 111286144 at SL/DB/Helper/CustomVariables.pm
line 198"
Jan Büren [Tue, 8 Sep 2015 12:05:44 +0000 (14:05 +0200)]
Doku: POD für Invoice.pm erweitert
- Invoice anstatt Delivery Order bei new_from
- Beispiel-Code für Benutzung von new_from mit parameter attributes
- TODO angelegt, Controller sollten einige Datenfelder mit Hilfe
von Backend-Funktionen prüfen können - in diesem Fall transdate
Jan Büren [Fri, 4 Sep 2015 11:14:10 +0000 (13:14 +0200)]
Massenkonvertierung von Lieferscheinen nach Rechnung ink. Druck
Die Konvertierung als auch das Generieren des PDFs erfolgt als
Background-Job. Entsprechend muss der task_server für den.
Mandanten eingestellt sein.
Details und bekannte offene Punkte im POD der beiden Perl-Module.
Folgecommit: changelog und all
Jan Büren [Fri, 4 Sep 2015 09:31:22 +0000 (11:31 +0200)]
DeliveryOrder um convert_invoice erweitert
Diesselbe Idee wie bei SalesOrder->convert_invoice. Der ursprüngliche
Lieferschein wird geschlossen und das neue Objekt mittels record_links
verknüpft.
Entsprechend Testfall mitgeliefert.
Moritz Bunkus [Wed, 26 Aug 2015 13:57:01 +0000 (15:57 +0200)]
SL::DB::CVar::value: mit übergebenen DateTime-Objekten klarkommen
Ruft mal value als getter auf, so wird ein DateTime-Objekt
zurückgegeben. Als setter aufgerufen, erwartete die Funktion bisher
aber, dass ein String übergeben wird. Somit war es nicht möglich, eine
Datums-CVar mit intuitiv zu clonen:
Moritz Bunkus [Mon, 24 Aug 2015 15:45:35 +0000 (17:45 +0200)]
Pflichtenheftartikel mit Pflichtenheft automatisch löschen
Wenn ein Pflichtenheft gelöscht wird, so müssen seine Bestandteile ( =
Einträge in anderen 1:n-Tabellen) mit gelöscht werden. Hier betraf es
die »Zusätzlichen Artikel«, Tabelle requirement_spec_parts. Die anderen
abhängigen Tabellen nutzen bereits FOREIGN KEY … ON DELETE CASCADE, also
das auch für requirement_spec_parts nutzen.
Ansonsten klappt das Löschen schlicht nicht. Entsprechende
Fehlermeldungen:
2015-08-24 17:27:48.632 9734 [26783] : DBD::Pg::st execute failed:
ERROR: update or delete on table "requirement_specs" violates foreign
key constraint "requirement_spec_parts_requirement_spec_id_fkey" on
table "requirement_spec_parts"
DETAIL: Key (id)=(4) is still referenced from table
"requirement_spec_parts". at
/usr/share/perl5/vendor_perl/Rose/DB/Object.pm line 1576.
Sven Schöling [Mon, 17 Aug 2015 15:10:36 +0000 (17:10 +0200)]
Layout: Javascript Includes gefixt
1. jquery-ui muss im Top vorhanden sein für glquicksearch.js
2. Javacript und CssMenu brauchen das frame_header css nicht einbinden
3. js includes normalisiert ohne "js/" Präfix
Sven Schöling [Mon, 17 Aug 2015 14:05:06 +0000 (16:05 +0200)]
Nach Request alle Datenbankhandle rollbacken
An diversen Stellen wird in Legacycode eine Transaktion manuell
erstellt. Wenn in dieser Transaktion eine Exception geworfen wird,
beendet das den Requst ohne die Handle aufzuräumen in der Annahme, dass
die disconnected werden.
Deshalb nach jedem Request einmal alle Handle rollbacken, ohne sie zu
disconnecten.
G. Richardson [Mon, 17 Aug 2015 09:33:13 +0000 (11:33 +0200)]
Kontoauszug verbuchen - prüfen, ob Bankbuchung und Rechnung schon verlinkt
Eine Bankbuchung darf zwar mehrere Rechnungen begleichen, aber jede
Rechnung nur einmal. Daher wird vor dem verbuchen geprüft, ob es für die
Bankbuchung schon eine Verknüpfung zu der Rechnung gibt.
G. Richardson [Thu, 30 Jul 2015 11:52:36 +0000 (13:52 +0200)]
Überarbeitung Speichern von Buchungsgruppen
analog zum Verhalten von Steuerzonen: beim Speichern bessere Prüfung und
gegebenenfalls Fehlermeldungen und Rollback, wenn Speichern fehlschlägt.
Verhindert, daß "unfertige" Buchungsgruppen gespeichert werden, wo die
TaxzoneCharts fehlen.
G. Richardson [Thu, 30 Jul 2015 10:21:26 +0000 (12:21 +0200)]
Steuerzonen und Buchungsgruppen bearbeiten: displayable_name für Konten
Die description-Variable in TaxzoneChart enthält nun den
displayable_name für die Konten.
Für die Anzeige der Kontennamen beim Bearbeiten von Steuerzonen und
Buchungsgruppen, wo die Konten nicht bearbeitet werden können sondern
nur angezeigt werden sollen. Kein "--" mehr.
G. Richardson [Thu, 30 Jul 2015 04:36:03 +0000 (06:36 +0200)]
Steuerzonen überarbeitet - Prüfung und Löschen
Nicht benutzte Steuerzonen können jetzt gelöscht werden, sowie deren
Kontenzuordnungen geändert werden (wie bei Buchungsgruppen). Siehe
Feature #70.
Schlägt die Speicherung neuer Steuerzonen fehl, weil z.B. die
Buchungsgruppenkonten fehlen, gibt es nun einen Rollback und eine
ordentliche Fehlermeldung, siehe Fehler #68.
Die 3.1er Erweiterung des Lieferplans ist mittlerweile in einem eigenen Bericht (Lieferwertbericht)
und muss nicht extra in den defaults konfiguriert werden.
Ferner Mandantenkonfiguration etwas besser beschrieben:
Die letzte noch erhaltene Option wirkt sich auch nur auf den Lieferwertbericht und nicht den Lieferplan aus.