Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reclamation Controller: Support für Drucken via internem Kivi parser … #244

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

rebootl
Copy link
Member

@rebootl rebootl commented Dec 15, 2023

…hinzugefügt

Hier mal ein Vorschlag wie man das Problem mit dem drucken via internen parser relativ einfach lösen könnte.

Soweit ich sehe betrifft ja das problem die variablen in schleifen. Auf die restlichen variablen kann man wie gehabt zugreifen. Außer dass diese möglicherweise anders heißen.

Da ich ungern an dem Parser rumbasteln wollte habe ich das nun so gemacht, dass die benötigten Druck Variablen, in dem Format wie sie der Parser erwartet, vorgängig aus dem Rose objekt erzeugt und in das erwartete TEMPLATE_ARRAYS Feld geschrieben werden.

Die Variablen Namen habe ich dazu aus der tex Vorlage genommen (templates/print/marei/sales_reclamation.tex), bzw. diese entsprechen ja dem Rose DB objekt. Ist aber aus der vorlage leichter ersichtlich.

In libreoffice sähe das dann z.B. wie folgt aus:

<% foreachrow part.partnumber %><% part.partnumber %> | <% description %> | <% qty_as_number %> | etc.

Wir brauchen das ja bei uns weil wir ODT vorlagen verwenden. Das ließe sich aber auch für noch nicht angepasste tex vorlagen dann verwenden. Ich weiß ja nicht wie da die Umstellung geplant ist (?).

Feedback gerne hier.

@bblessmann
Copy link
Member

Hi,

ja, das ist prinzipiell ein Weg, der gut ist. Habe mir das nicht im einzelnen angesehen, aber vom Gefühl her würde ich das nicht in den Controller tun, sondern in das DB-Objeckt. Und dort evtl. in einen Helper, der dann auch von anderen Record-Objekten verwendet werden könnte (nach Anpassung/Konfiguration/Spezialisierung).

Langfristig wäre dann sowas erstrebenswert: $reclamation->generate_doc bzw. $record->generate_doc ;)
Wäre vom Controller unabhängig (Weg zu einer API)?
Das wäre dann wohl auch für das ModelRecord brauchbar, wenn Stück für Stück die anderen Controller/Records umgestellt werden (nicht auf ein anderes Parsen, sondern auf einen anderen Aufruf).

Was denkst Du? Also nicht alles jetzt, aber Dein Code schonmal in SL::DB::Reclamation?

Deine Frage war ja auch, wie es mit dem Parsen der LaTeX-Templates weitergehen soll. Da gab es mal eine Mini-Diskussion in der Mailing-Liste: https://sourceforge.net/p/lx-office/mailman/message/37319665/ und Folgende.

Viele Grüße
Bernd

@rebootl
Copy link
Member Author

rebootl commented Jan 8, 2024

Hallo Bernd

Vielen dank für die Antwort.

vom Gefühl her würde ich das nicht in den Controller tun, sondern in das DB-Objeckt. Und dort evtl. in einen Helper, der dann auch von anderen Record-Objekten verwendet werden könnte (nach Anpassung/Konfiguration/Spezialisierung).

Ja das macht Sinn. Ich war mir eben auch nicht ganz sicher ob das in dem controller am richtigen Ort ist.

Andreas meinte auch, dass da etwas noch nicht richtig funktioniert. Ich muss mir das also eh nochmal anschauen..

Grüsse

@rebootl rebootl force-pushed the 20231215-wip-legacy-printing-reclamation branch from 7e9ab9e to 0ce671d Compare March 7, 2024 14:08
…hinzugefügt

Dazu werden die benötigten Druck Variablen aus dem Rose DB objekt
ins template array geschrieben.

Helfer Funktionen unter SL/DB/Helper/LegacyPrinting.pm erstellt.
Siehe auch perldoc in dieser Datei.
@rebootl rebootl force-pushed the 20231215-wip-legacy-printing-reclamation branch from 0ce671d to 60457bb Compare March 18, 2024 12:46
- Datei: sales_reclamation.odt
- Makros entfernt da nicht mehr benötigt
@rebootl
Copy link
Member Author

rebootl commented Mar 18, 2024

So, ich habe mir das noch einmal angeschaut und ich denke, es sollte jetzt funktionieren. Andreas kann das vielleicht auch bei Gelegenheit noch einmal testen.

Ich habe jetzt eine ODT-Vorlage hinzugefügt als Beispiel. Wichtig ist, dass bei der ersten Variable eine Variable ohne Punkt verwendet wird, da der Parser das sonst nicht versteht.

Also zum Beispiel: <%foreachrow position%><%part.partnumber%> | <%description%> | <%qty_as_number%> | etc.

Und vermutlich ist es auch besser, keine Abstände vor den Prozentzeichen zu haben.

Zur Zeit betrifft das nur Reklamationen. Falls dies in Zukunft auch für andere verwendet werden sollte, müssten bei diesen Vorlagen dann vermutlich auch einige Variablennamen angepasst werden, weil ich ja die Namen aus dem Rose DB-Objekt verwende.

Ich würde da dann noch das Change-Log anpassen, aber das würde ich erst machen, nachdem die 3.9.0 released ist, das gibt sonst ein Durcheinander.

LG

@rebootl rebootl added the 3.9.1 label Mar 18, 2024
@rebootl rebootl removed the 3.9.1 label May 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants