G. Richardson [Tue, 15 Mar 2016 14:07:44 +0000 (15:07 +0100)]
Konten neu anlegen repariert
get_account wurde nicht nur für das Laden bestehender Konten verwendet,
sondern auch für das Füllen von anderen form-Variablen, z.B. für
Steuerschlüssel.
Bei der Gelegenheit auch etwas Rose geübt und refactored.
Bernd Bleßmann [Wed, 10 Feb 2016 12:02:13 +0000 (13:02 +0100)]
Auftrags-Controller: event bindings nicht mehrfach hinzufügen.
Dazu event handler für die Positions-Zeilen mit run_once_for registrieren und
in eine eigene Funktion init_row_handlers() ausgelagert. Damit kann
init_row_handlers() gefahrlos immer nach dem Hinzufügen neuer Positionen
aufgerufen werden, ohne einen Handler mehrmals zu registrieren.
- ungültige Artikel nicht anzeigen.
- Artikel nicht mehrfach hinzufügen, wenn ausversehen mehrfach Enter gedrückt
oder der Weiter-Knopf mehrfach angeklickt wird.
Bernd Bleßmann [Sat, 16 Jan 2016 22:04:27 +0000 (23:04 +0100)]
Auftrags-Controller: Druck-Möglichkeit mit Options
Todos/Anmerkungen
- im Moment werden nur PDF/Bildschirm und PDF/Drucker unterstützt
- Sprache kann die Vorlage steuern, aber nicht das Hinzufügen von übersetzten
Artikeln
- es kann sicher noch mehr ausgelagert werden, entweder in den
PrintOptions-Helper oder in einen PrintOptions-Controller, der
dann auch noch mehr machen könnte
- E-Mail ist nicht berücksichtigt bzw. wird im Controller getrennt behandelt
Bernd Bleßmann [Wed, 2 Dec 2015 10:28:36 +0000 (11:28 +0100)]
Auftrags-Controller: vorhandene orderitems vor Neu-Schreiben nicht löschen …
Hintergrund: Wird einem Rose-Object eine Relationship als Array übergeben (z.B.
$order->orderitems(@items), so löscht Rose dei DB-Einträge und schreibt sie neu.
In dem Fall werden allerdings auch DB-Trigger ausgelöst, was hier zum
unerwünschten Löschen der record_links auf item-Ebene führte.
Hier wurden die items via assign_attributes als ganzes dem Order-Objekt
hinzugefügt.
Jetzt werden die items einzeln hinzugefügt, wenn sie neu sind und die
vorhandenen, die aus der Makse entfernt wurde, werden extra gelöscht.
Bernd Bleßmann [Tue, 12 Jan 2016 10:49:17 +0000 (11:49 +0100)]
kivi.SalesPurchase.edit_longdescription: Aufruf auch mit einzelnen Parametern …
ermöglichen, statt mit row. Dafür gibt es eine zweite Funktion "..._with_params.
Diese wird jetzt von kivi.SalesPurchase.edit_longdescription(row) aufgerufen,
damit in den vorhandenen Templates nicht angepasst werden muss.
G. Richardson [Sat, 2 Jan 2016 11:59:21 +0000 (12:59 +0100)]
FlattenToForm - auch customer_id oder vendor_id übergeben
Dies wird vom neuen OrderController beim Umwandeln in einen Lieferschein
gebraucht, wo nach einem flatten_to_form auf $order delivery_order
aufgerufen wird, wo anhand customer_id oder vendor_id der Kunden geladen
wird.
G. Richardson [Sun, 6 Mar 2016 19:29:40 +0000 (20:29 +0100)]
Payment Helper setzt $self->transactions zurück
Als es noch eine Methode transactions in SL::DB::Helper::Payment gab
wurden die acc_trans-Einträge bei Zugriff per $self->transactions jedes
Mal aus der Datenbank ausgelesen:
(SL::DB::Manager::AccTransaction->get_all(query => [ trans_id => $self->id ]);
Seit Commit 01b298ec3 wird stattdessen der aktuelle relationship Array
verwendet, wenn die transactions noch nicht ausgelesen wurden werden sie
wie oben geladen, wenn sie aber schon existieren dann werden die
Transaktionen im Speicher benutzt.
Bei den Tests gab es aber das Problem, daß in pay_invoice die
acc_trans-Einträge der Zahlungen als AccTrans-Objekte unabhängig vom
Rechnungsobjekt gespeichert wurden, und der transaction Array daher
nicht aktualisiert wurde. Am Ende von pay_invoice wird nun per
forget_related der transaction-Array zurückgesetzt, damit bei der
nächsten Verwendung die aktuell gespeicherten Transaktionen nachgeladen
werden.
G. Richardson [Tue, 1 Mar 2016 16:21:27 +0000 (17:21 +0100)]
Neue Chart Methode new_chart_valid
die prüft, ob es für das Konto ein Folgekonto gibt, und ob das aktuelle
Tagesdatum >= dem Folgedatum ist, d.h. ob eigentlich das Folgekonto
benutzt werden soll. Diese Abfrage war bisher allerdings kaputt und wird
wahrscheinlich auch nirgends sinnvoll genutzt.
G. Richardson [Tue, 1 Mar 2016 14:23:46 +0000 (15:23 +0100)]
SL::DB::Chart - Refactoring der Transaktionsmethoden
... der Methoden number_of_transactions und has_transaction.
Machen fast das Gleiche, aber has_transaction liefert nur 0 oder 1
zurück, und ist schneller.
G. Richardson [Mon, 29 Feb 2016 10:56:49 +0000 (11:56 +0100)]
Debitorenbuchungen als CSV importieren
Ähnlich wie der Auftragsimport wird hier gemultiplexed, d.h. es gibt separate
Zeilen für die Debitorenbuchung (ar) und die Buchungszeilen (acc_trans).
Es handelt sich allerdings nicht exakt um acc_trans-Zeilen, die direkt
als acc_trans Objekte importiert werden, sondern es können die gleichen
Informationen wie bei der Debitorenbuchung übergeben werden, also Konto,
Betrag, Steuerschlüssel und Projekt, und daraus werden dann die
acc_trans-Zeilen generiert, inklusive Steuerautomatik.
Das Forderungskonto muß in der Rechnungszeile übergeben werden, der Betrag wird
dann anhand der Buchungszeilen bestimmt.
Beispiel für Import-Format (siehe auch mehr Beispiele in t/controllers/csvimport/artransactions.t)
G. Richardson [Mon, 29 Feb 2016 10:55:27 +0000 (11:55 +0100)]
Payment Helper - Methode transactions wieder entfernt
Es gibt schon eine Relationship transactions in SL::DB::Invoice und
SL::DB::PurchaseInvoice. Diese wird ansonsten überschrieben, und dann
kann man auch keine AccTransaction Objekte mehr zu Rechnungsobjekten
hinzufügen.
Bernd Bleßmann [Fri, 26 Feb 2016 10:59:03 +0000 (11:59 +0100)]
ReportGenerator-Helper: (wiederholten) Export bei "Zurück" verhindern.
Dazu export-actions nach Aufruf aus form löschen. Da die form-Variablen als
hidden in die Options-Maske übergeben werden, war auch immer die
export-action dabei. Drückte man "Zurück", dann waren beiden actions (für export
und für back) in form und es passierte manchmal, dass der Export (download)
erneut ausgeführt wurde.
Zum Nachstellen: Bei einem Controller mit Export-Möglichkeit den Export aufrufen
und "Zurück" drücken (evtl. wiederholen). Irgenwann wird statt zurückzugehen
doch exportiert.