From: G. Richardson
aptitude install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \ texlive-latex-extra texlive-lang-german texlive-generic-extra
-
TODO: RPM-Pakete.
kivitendo bringt drei alternative Vorlagensätze mit:
Standard
f-tex
RB
Es lässt sich ein initialer Vorlagensatz erstellen. Die LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:
./scripts/installation_check.pl -lv
Der Angemeldete Benutzer muss in einer Gruppe sein, die über das +
TODO: RPM-Pakete.
kivitendo bringt drei alternative Vorlagensätze mit:
RB
f-tex
rev-odt
Der ehemalige Druckvorlagensatz "Standard" wurde mit der Version 3.3 entfernt, da er nicht mehr gepflegt wurde.
Es lässt sich ein initialer Vorlagensatz erstellen. Die LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:
./scripts/installation_check.pl -lv
Der Angemeldete Benutzer muss in einer Gruppe sein, die über das Recht "Konfiguration -> Mandantenverwaltung" verfügt. Siehe auch Abschnitt 2.9.4, âGruppen anlegenâ.
Im Userbereich lässt sich unter: "
-> -> " die Option "Neue Druckvorlagen aus Vorlagensatz erstellen" auswählen.
Vorlagen auswählen
: Wählen Sie hier den Vorlagensatz aus, der kopiert werden soll
- (Standard
, f-tex
oder RB
.)
+ (RB
, f-tex
oder odt-rev
.)
Neuer Name
: Der Verzeichnisname für den neuen Vorlagensatz. Dieser kann im Rahmen der üblichen
Bedingungen für Verzeichnisnamen frei gewählt werden.
Nach dem Speichern wird das Vorlagenverzeichnis angelegt und ist für den aktuellen Mandanten ausgewählt.
Der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Mandanten verwendet werden.
Eventuell müssen Anpassungen (Logo, Erscheinungsbild, etc) noch vorgenommen werden. Den Ordner findet man im Dateisystem unter
./templates/[Neuer Name]
-
Der Standard-Vorlagensatz von kivitendo. Wie unter https://www.kivitendo.de zu - sehen.
Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur Verfügung stellt.
Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also +
Hierbei handelt es sich um einen vollständigen LaTeX Dokumentensatz mit alternativem Design. Die odt oder html-Varianten sind nicht gepflegt.
Die konzeptionelle Idee der Vorlagen wird hier + auf Folie 5 bis 10 vorgestellt. Informationen zur Anpassung an die eigenen Firmendaten finden sich in der Datei Readme.tex im Vorlagenverzeichnis.
Eine kurze Ãbersicht der Features:
Mehrsprachenfähig, mit Deutscher und Englischer Ãbersetzung
Zentrale Konfigurationsdateien, die für alle Belege benutzt werden, z.B. für Kopf- und FuÃzeilen, und Infos wie Bankdaten
mehrere vordefinierte Varianten für Logos/Hintergrundbilder
Berücksichtigung für Steuerzonen "EU mit USt-ID Nummer" oder "AuÃerhalb EU"
Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur Verfügung stellt.
Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also Angebot, Rechnung, Proformarechnung, Lieferschein, aber eben nicht für Paketaufkleber etc.
Leichte Anpassung an das Firmen-Layout durch Verwendung eines Hintergrund-PDFs. Dieses kann leicht mit dem eigenen Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp, Adobe*)
Hintergrund-PDF umschaltbar auf "nur erste Seite" (Standard) oder "alle Seiten" (Option
"bgPdfFirstPageOnly
" in Datei letter.lco
)
Hintergrund-PDF für Ausdruck auf bereits bedrucktem Briefpapier abschaltbar. Es wird dann nur bei per E-Mail
@@ -78,8 +78,34 @@
shipto*
-Variable leer ist, wird die entsprechende Adressvariable eingesetzt. Wenn also die Lieferadresse in
StraÃe, Hausnummer und Ort abweicht, müssen auch nur diese Felder in der Lieferadresse ausgefüllt werden. Für den Firmenname wird
der Wert der Hauptadresse angezeigt.
-
Hierbei handelt es sich um einen vollständigen \LaTeX Dokumentensatz mit alternativem Design. Die odt oder html-Varianten sind nicht gepflegt.
Die konzeptionelle Idee der Vorlagen wird hier - auf Folie 5 bis 10 vorgestellt. Informationen zur Anpassung an die eigenen Firmendaten finden sich in der Datei Readme.tex im Vorlagenverzeichnis.
Eine kurze Ãbersicht der Features:
Mehrsprachenfähig, mit Deutscher und Englischer Ãbersetzung
Zentrale Konfigurationsdateien, die für alle Belege benutzt werden, z.B. für Kopf- und FuÃzeilen, und Infos wie Bankdaten
mehrere vordefinierte Varianten für Logos/Hintergrundbilder
Berücksichtigung für Steuerzonen "EU mit USt-ID Nummer" oder "AuÃerhalb EU"
Hierbei handelt es sich um einen Dokumentensatz der mit odt-Vorlagen erstellt wurde. Es gibt in dem Verzeichnis eine Readme-Datei, die eventuell aktueller als die Dokumentation hier ist. +Die odt-Vorlagen in diesem Verzeichnis "rev-odt" wurden von revamp-it, Zürich erstellt +und werden laufend aktualisiert. Ein paar der Formulierungen in den Druckvorlagen entsprechen dem Schweizer Sprachgebrauch, z.B. "Offerte" oder "allfällig". +
+Hinweis zum Einsatz des Feldes "Land" bei den Stammdaten für KundInnen und LieferantInnen, +sowie bei Lieferadressen: +Die in diesem Vorlagensatz vorhandenen Vorlagen erwarten für "Land" das entsprechende +Kürzel, das in Adressen vor die Postleitzahl gesetzt wird. +Das Feld kann auch komplett leer bleiben. +Wer dies anders handhaben möchte, muss die Vorlagen entsprechend anpassen. +
+odt-Vorlagen können mit LibreOffice oder OpenOffice editiert +und den eigenen Bedürfnissen angepasst werden. +Wichtig beim Editieren von if-Blöcken ist, dass immer der gesamte Block +überschrieben werden muss und nicht nur Teile davon, da dies sonst oft +zu einer odt-Datei führt, die vom Parser nicht korrekt gelesen werden kann. +
+Zur Zeit gibt es in kivitendo noch keine Möglichkeit, odt-Vorlagen bei Mahnungen +einzusetzen. Entsprechende Vorlagen sind deshalb nicht vorhanden. +
+Inwieweit es möglich ist, für die in Version 3.2.0 neu eingeführten Pflichtenhefte +odt-Vorlagen zu erstellen, sind wir am abklären. +Wenn dies möglich ist, werden wir in Zukunft auch eine odt-Vorlage für Pflichtenhefte +in diesem Vorlagensatz zur Verfügung stellen. +
+Fehlermeldungen, Anregungen und Wünsche bitte senden an: +empfang@revamp-it.ch +
In den allermeisten Installationen sollte das Drucken jetzt schon
funktionieren. Sollte ein Fehler auftreten, wirft TeX sehr lange
Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeile,
die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum
diff --git a/doc/html/ch03s03.html b/doc/html/ch03s03.html
index 1dea2a90b..f38b7eb2d 100644
--- a/doc/html/ch03s03.html
+++ b/doc/html/ch03s03.html
@@ -574,7 +574,7 @@
invdate
Rechnungsdatum
invnumber
- Rechnungsnummer
Die Variablen in anderen Vorlagen sind ähnlich wie in der
Rechnung. Allerdings heiÃen die Variablen, die mit
inv
beginnen, jetzt anders. Bei den Angeboten
fangen sie mit quo
für "quotation" an:
diff --git a/doc/html/ch04.html b/doc/html/ch04.html
index 20b33d94c..430f22418 100644
--- a/doc/html/ch04.html
+++ b/doc/html/ch04.html
@@ -1,6 +1,6 @@
Globale Variablen liegen in einem speziellen namespace namens +
Globale Variablen liegen in einem speziellen namespace namens "main", der von überall erreichbar ist. Darüber hinaus sind bareword globs global und die meisten speziellen Variablen sind... speziell.
Daraus ergeben sich folgende Formen:
$PACKAGE::form
.local $form
Alle Ãnderungen an $form
werden am Ende
- des scopes zurückgesetzt
Das erste Problem ist FCGIâ¢.
SQL-Ledger⢠hat fast alles im globalen namespace abgelegt, und erwartet, dass es da auch wiederzufinden ist. Unter FCGI⢠müssen diese Sachen aber wieder @@ -39,7 +39,7 @@ dies hat, seit der Einführung, u.a. schon so manche langwierige Bug-Suche verkürzt. Da globale Variablen aber implizit mit Package angegeben werden, werden die nicht geprüft, und somit kann sich - schnell ein Tippfehler einschleichen.
Um dieses Problem im Griff zu halten gibt es einige wenige + schnell ein Tippfehler einschleichen.
Um dieses Problem im Griff zu halten gibt es einige wenige globale Variablen, die kanonisch sind, d.h. sie haben bestimmte vorgegebenen Eigenschaften, und alles andere sollte anderweitig umhergereicht werden.
Diese Variablen sind im Moment die folgenden neun:
@@ -62,7 +62,7 @@
$::request
Damit diese nicht erneut als Müllhalde missbraucht werden, im Folgenden eine kurze Erläuterung der bestimmten vorgegebenen - Eigenschaften (Konventionen):
Ist ein Objekt der Klasse + Eigenschaften (Konventionen):
Ist ein Objekt der Klasse
"Form
"
Wird nach jedem Request gelöscht
Muss auch in Tests und Konsolenscripts vorhanden sein.
Enthält am Anfang eines Requests die Requestparameter vom User
Kann zwar intern über Requestgrenzen ein Datenbankhandle @@ -110,7 +110,7 @@ push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; # ... -}
Das einzige Hash unter den globalen Variablen
Wird spätestens benötigt wenn auf die Datenbank +}
Das einzige Hash unter den globalen Variablen
Wird spätestens benötigt wenn auf die Datenbank zugegriffen wird
Wird bei jedem Request neu erstellt.
Enthält die Userdaten des aktuellen Logins
Sollte nicht ohne Filterung irgendwo gedumpt werden oder extern serialisiert werden, weil da auch der Datenbankzugriff für diesen user drinsteht.
Enthält unter anderem Listenbegrenzung vclimit, @@ -122,10 +122,10 @@ überwiegend die Daten, die sich unter
-> befinden, bzw. die Informationen über den Benutzer die über die - Administrator-Schnittstelle eingegeben wurden.Objekt der Klasse "Locale"
Wird pro Request erstellt
Muss auch für Tests und Scripte immer verfügbar + Administrator-Schnittstelle eingegeben wurden.
Objekt der Klasse "Locale"
Wird pro Request erstellt
Muss auch für Tests und Scripte immer verfügbar sein.
Cached intern über Requestgrenzen hinweg benutzte Locales
Lokalisierung für den aktuellen User. Alle Ãbersetzungen, - Zahlen- und Datumsformatierungen laufen über dieses Objekt.
Objekt der Klasse "LXDebug"
Wird global gecached
Muss immer verfügbar sein, in nahezu allen + Zahlen- und Datumsformatierungen laufen über dieses Objekt.
Objekt der Klasse "LXDebug"
Wird global gecached
Muss immer verfügbar sein, in nahezu allen Funktionen
$::lxdebug
stellt Debuggingfunktionen
bereit, wie "enter_sub
" und
@@ -135,14 +135,14 @@
"message
" und "dump
" mit
denen man flott Informationen ins Log (tmp/kivitendo-debug.log)
packen kann.
Beispielsweise so:
$main::lxdebug->message(0, 'Meine Konfig:' . Dumper (%::myconfig)); -$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});
Objekt der Klasse "SL::Auth"
Wird global gecached
Hat eine permanente DB Verbindung zur Authdatenbank
Wird nach jedem Request resettet.
+$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});
Objekt der Klasse "SL::Auth"
Wird global gecached
Hat eine permanente DB Verbindung zur Authdatenbank
Wird nach jedem Request resettet.
$::auth
stellt Funktionen bereit um die
Rechte des aktuellen Users abzufragen. Obwohl diese Informationen
vom aktuellen User abhängen wird das Objekt aus
Geschwindigkeitsgründen nur einmal angelegt und dann nach jedem
Request kurz resettet.
Dieses Objekt kapselt auch den gerade aktiven Mandanten. Dessen Einstellungen können über
$::auth->client
abgefragt werden; Rückgabewert ist ein Hash mit den Werten aus der Tabelle
- auth.clients
.
Objekt der Klasse
+ auth.clients
.
Objekt der Klasse
"SL::LxOfficeConf
"
Global gecached
Repräsentation der
config/kivitendo.conf[.default]
-Dateien
Globale Konfiguration. Configdateien werden zum Start gelesen und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass @@ -152,16 +152,16 @@ $main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{ file_name = /tmp/kivitendo-debug.log
ist der Key file
im Programm als
$::lx_office_conf->{debug}{file}
erreichbar.
Warnung | |
---|---|
Zugriff auf die Konfiguration erfolgt im Moment über - Hashkeys, sind also nicht gegen Tippfehler abgesichert. |
Objekt der Klasse + Hashkeys, sind also nicht gegen Tippfehler abgesichert.
Objekt der Klasse
"SL::InstanceConfiguration
"
wird pro Request neu erstellt
Funktioniert wie $::lx_office_conf
,
speichert aber Daten die von der Instanz abhängig sind. Eine Instanz
ist hier eine Mandantendatenbank. Beispielsweise überprüft
$::instance_conf->get_inventory_system eq 'perpetual'
- ob die berüchtigte Bestandsmethode zur Anwendung kommt.
Objekt der Klasse + ob die berüchtigte Bestandsmethode zur Anwendung kommt.
Objekt der Klasse
"SL::Dispatcher
"
wird pro Serverprozess erstellt.
enthält Informationen über die technische Verbindung zum Server
Der dritte Punkt ist auch der einzige Grund warum das Objekt global gespeichert wird. Wird vermutlich irgendwann in einem anderen - Objekt untergebracht.
Hashref (evtl später Objekt)
Wird pro Request neu initialisiert.
Keine Unterstruktur garantiert.
+ Objekt untergebracht.
Hashref (evtl später Objekt)
Wird pro Request neu initialisiert.
Keine Unterstruktur garantiert.
$::request
ist ein generischer Platz um
Daten "für den aktuellen Request" abzulegen. Sollte nicht für action
at a distance benutzt werden, sondern um lokales memoizing zu
@@ -174,20 +174,20 @@ file_name = /tmp/kivitendo-debug.log
ist der Key f
$::request
Muss ich von anderen Teilen des Programms lesend drauf
zugreifen? Dann $::request
, aber Zugriff über
- Wrappermethode
Die folgenden Variablen waren einmal im Programm, und wurden - entfernt.
Die folgenden Variablen waren einmal im Programm, und wurden + entfernt.
war nötig, weil cookie Methoden nicht als Klassenfunktionen funktionieren
Aufruf als Klasse erzeugt Dummyobjekt was im Klassennamespace gehalten wird und über Requestgrenzen leaked
liegt jetzt unter
$::request->{cgi}
-
war nötig, weil einige Funktionen in Schleifen zum Teil ein paar hundert mal pro Request eine Liste der Einheiten brauchen, und de als Parameter durch einen Riesenstack von Funktionen geschleift werden müssten.
Liegt jetzt unter
$::request->{cache}{all_units}
Wird nur in
AM->retrieve_all_units()
gesetzt oder
- gelesen.
Inhaltsverzeichnis
Inhaltsverzeichnis