<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book id="kivitendo-documentation" lang="de">
- <title>kivitendo 3.1.0: Installation, Konfiguration, Entwicklung</title>
+ <title>kivitendo 3.2.0: Installation, Konfiguration, Entwicklung</title>
<chapter id="Aktuelle-Hinweise">
<title>Aktuelle Hinweise</title>
<itemizedlist>
<listitem>
<para>im kivitendo-Forum: <ulink
- url="https://forum.kivitendo.org/">https://forum.kivitendo.org/</ulink></para>
+ url="https://forum.kivitendo.org:32443">https://forum.kivitendo.org:32443</ulink></para>
</listitem>
<listitem>
<para>in der doc/UPGRADE Datei im doc-Verzeichnis der Installation</para>
<listitem><para><literal>YAML</literal></para></listitem>
</itemizedlist>
+ <para>Seit Version v3.2.0 sind die folgenden Pakete hinzugekommen: <literal>GD</literal>, <literal>HTML::Restrict</literal>, <literal>Image::Info</literal></para>
<para>Seit v3.0.0 sind die folgenden Pakete hinzugekommen: <literal>File::Copy::Recursive</literal>.</para>
<para>Seit v2.7.0 sind die folgenden Pakete hinzugekommen: <literal>Email::MIME</literal>, <literal>Net::SMTP::SSL</literal>,
<sect3>
<title>Debian und Ubuntu</title>
- <para>Alle benötigten Perl-Pakete stehen für Debian und Ubuntu als Debian-Pakete zur Verfügung. Sie können mit folgendem Befehl
- installiert werden:</para>
+ <para>Für Debian und Ubuntu stehen die meisten der benötigten Perl-Pakete als Debian-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:</para>
<programlisting>apt-get install apache2 libarchive-zip-perl libclone-perl \
libconfig-std-perl libdatetime-perl libdbd-pg-perl libdbi-perl \
librose-db-perl librose-object-perl libsort-naturally-perl \
libstring-shellquote-perl libtemplate-perl libtext-csv-xs-perl \
libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \
+ libimage-info-perl libgd-gd2-perl \
libfile-copy-recursive-perl postgresql</programlisting>
+
+ <para>Für das Paket HTML::Restrict gibt es kein Debian-Paket, dies muß per CPAN installiert werden. Der entsprechende Befehl wird beim Aufruf von installation_check.pl angezeigt.</para>
</sect3>
<sect3>
<title>Fedora Core</title>
- <para>Für Fedora Core stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installeirt werden:</para>
+ <para>Für Fedora Core stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:</para>
<programlisting>yum install httpd perl-Archive-Zip perl-Clone perl-DBD-Pg \
perl-DBI perl-DateTime perl-Email-Address perl-Email-MIME perl-FCGI \
<title>Manuelle Installation des Programmpaketes</title>
<para>Der aktuelle Stable-Release, bzw. beta Release wird bei github gehostet und kann
<ulink url="https://github.com/kivitendo/kivitendo-erp/releases">hier</ulink> heruntergeladen werden.</para>
- <para>Die kivitendo ERP Installationsdatei (<filename>kivitendo-erp-3.1.0.tgz</filename>) wird im Dokumentenverzeichnis des Webservers
+ <para>Die kivitendo ERP Installationsdatei (<filename>kivitendo-erp-3.2.0.tgz</filename>) wird im Dokumentenverzeichnis des Webservers
(z.B. <filename>/var/www/html/</filename>, <filename>/srv/www/htdocs</filename> oder <filename>/var/www/</filename>) entpackt:</para>
<programlisting>cd /var/www
-tar xvzf kivitendo-erp-3.1.0.tgz</programlisting>
+tar xvzf kivitendo-erp-3.2.0.tgz</programlisting>
<para>Wechseln Sie in das entpackte Verzeichnis:</para>
Webserverkonfiguration benutzen, um auf das tatsächliche
Installationsverzeichnis zu verweisen.</para>
- <para>Bei einer Neuinstallation der Version 3.1.0 muß das WebDAV Verzeichnis derzeit manuell angelegt werden:</para>
+ <para>Bei einer Neuinstallation von Version 3.1.0 oder Version 3.2.0 muß das WebDAV Verzeichnis derzeit manuell angelegt werden:</para>
<programlisting>mkdir webdav</programlisting>
<title>Drucken mit kivitendo</title>
<para>Das Drucksystem von kivitendo benutzt von Haus aus LaTeX-Vorlagen. Um drucken zu können, braucht der Server ein geeignetes
- LaTeX System. Am einfachsten ist dazu eine <literal>texlive</literal> Installation. Unter Debianoiden Betriebssystemen installiert man
+ LaTeX System. Am einfachsten ist dazu eine <literal>texlive</literal> Installation. Unter debianoiden Betriebssystemen installiert man
die Pakete mit:</para>
<para><programlisting>aptitude install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \
<para>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 muessen Anpassungen (Logo, Erscheinungsbild, etc) noch vorgenommen werden. Den Ordner findet man im Dateisistem unter
+ Eventuell müssen Anpassungen (Logo, Erscheinungsbild, etc) noch vorgenommen werden. Den Ordner findet man im Dateisystem unter
<filename>./templates/[Neuer Name]</filename></para>
<title>Feature-Übersicht</title>
<itemizedlist>
<listitem><para>Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also
- Angebot, Rechnung, Performarechnung, Lieferschein, aber eben nicht für Paketaufkleber etc..</para></listitem>
+ Angebot, Rechnung, Proformarechnung, Lieferschein, aber eben nicht für Paketaufkleber etc..</para></listitem>
<listitem><para>Leichte Anpassung an das Firmen-Layout durch verwendung eines Hintergrund-PDF. Dieses kann leicht mit dem
eigenen Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp, Adobe*)</para></listitem>
<listitem><para>Editiere den Bereich "<option>settings</option>" in der datei <filename>letter.lco</filename>.</para></listitem>
</itemizedlist>
- <para>oder etwas Detaillierter:</para>
+ <para>oder etwas detaillierter:</para>
<para>
Es wird eine Datei <filename>sample.lco</filename> erstellt und diese nach <filename>letter.lco</filename> verlinkt. Eigentlich
- ist dies die Datei die für die Firmenspezifischen Anpassungen gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig
- ist, wird in dieser Datei auf ein Hintergrundpdf verwiesen. Ich empfehle über dieses PDF die persönlichen Layoutanpassungen
- vorzunehmen und <filename>sample.lco</filename> unverändert zu lassen. Die die Anpassung über eine
- <filename>*.lco</filename>-Datei die letztlich auf <filename>letter.lco</filename> verlinkt ist ist aber auch möglich.
+ ist dies die Datei die für die firmenspezifischen Anpassungen gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig
+ ist, wird in dieser Datei auf ein Hintergrund-PDF verwiesen. Ich empfehle über dieses PDF die persönlichen Layoutanpassungen
+ vorzunehmen und <filename>sample.lco</filename> unverändert zu lassen. Die Anpassung über eine
+ <filename>*.lco</filename>-Datei, die letztlich auf <filename>letter.lco</filename> verlinkt ist ist aber auch möglich.
</para>
<para>
Es wird eine Datei <filename>sample_head.pdf</filename> mit ausgeliefert, diese wird nach <filename>letter_head.pdf</filename>
- verlinkt. Damit gibt es schon mal eine Funktionsfähige Vorlage. Schau Dir nach Abschluss der Installation die Datei
- <filename>sample_haed.pdf</filename> an und erstelle ein entsprechendes PDF passend zum Briefkopf Deiner Firma, diese dann im
+ verlinkt. Damit gibt es schon mal eine funktionsfähige Vorlage. Schau Dir nach Abschluss der Installation die Datei
+ <filename>sample_head.pdf</filename> an und erstelle ein entsprechendes PDF passend zum Briefkopf Deiner Firma, diese dann im
Template Verzeichniss ablegen und statt <filename>sample_head.pdf</filename> nach <filename>letter_head.pdf</filename>
verlinken.
</para>
<para>
- letzlich muss <filename>letter_head.pdf</filename> auf das passende Hintergrund-PDF verweisen, welches gewünschten Briefkopf
- enthält. Bei Updates oder nach erneutem
+ Letzlich muss <filename>letter_head.pdf</filename> auf das passende Hintergrund-PDF verweisen, welches gewünschten Briefkopf
+ enthält.
</para>
<para>
Es wird eine Datei <filename>mydata.tex.example</filename> ausgeliefert, die nach <filename>mytdata.tex</filename> verlinkt
ist. Bei verwendetem Hintergrund-PDF wird nur der Eintrag für das Land verwendet. Die Datei muss also nicht angefasst
- werden. Die Anderen Werte sind für das Modul 'lp' (Label Print in erp - zur Zeit nicht im öffentlichen Zweig).
+ werden. Die anderen Werte sind für das Modul 'lp' (Label Print in erp - zur Zeit nicht im öffentlichen Zweig).
</para>
<para>
Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. sollten über die Hintergrund-PDF-Datei oder die
<title>f-tex Funktionsübersicht</title>
<para>
Das Konzept von kivitendo sieht vor, für jedes Dokument (Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine LaTeX-Vorlage
- vorzuhalten, dies ist sehr Wartungsunfreundlich. Auch das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur
+ vorzuhalten, dies ist sehr wartungsunfreundlich. Auch das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur
bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen aus dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle
briefartigen Dokumente mit Artikel-Tabellen eine einheitliche LaTeX-Vorlage verwendet, welche über Codeweichen die
- Besonderheiten der jeweiligen Dokumente Berücksichtigt.
+ Besonderheiten der jeweiligen Dokumente berücksichtigt:
</para>
<itemizedlist>
<listitem><para>Tabellen mit oder ohne Preis</para></listitem>
<listitem><para>Sprache der Tabellenüberschriften etc.</para></listitem>
<listitem><para>Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus Angebotsnummer)</para></listitem>
- <listitem><para>Darstellung von Brutto oder Netto-Preisen in der Auflistung (Endverbraucher versus Gewerblicher
+ <listitem><para>Darstellung von Brutto oder Netto-Preisen in der Auflistung (Endverbraucher versus gewerblicher
Kunde)</para></listitem>
</itemizedlist>
LaTeX hat ohnehin eine sehr steile Lehrnkurve. Die Datei <filename>letter.tex</filename> ist sehr komplex und verstärkt damit
diesen Effekt noch einmal erheblich. Wer LaTeX-Erfahrung hat, oder geübt ist Scriptsparachen nachzuvollziehen kann natürlich
auch innerhalb der Tabellendarstellung gut persönliche Anpassungen vornehmen. Aber man kann sich hier bei Veränderungen sehr
- schnell häftig in den Fuss schiessen.
+ schnell heftig in den Fuss schiessen.
</para>
- <para>Wer nicht so tief in die Materie einsteigen will oder leicht zu frustrieren ist, sollte sein Hintergrund PDF auf Basis der
- mitglieferten Datei <filename>sample_head.pdf</filename> erstellen, und sich an der Form der dargestellten Tabellen wie sie
+ <para>Wer nicht so tief in die Materie einsteigen will oder leicht zu frustrieren ist, sollte sein Hintergrund-PDF auf Basis der
+ mitglieferten Datei <filename>sample_head.pdf</filename> erstellen, und sich an der Form der dargestellten Tabellen, wie sie
ausgeliefert werden, erfreuen.
</para>
- <para>Kleiner Tipp: Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche Schritte gehen.</para>
+ <para>Kleiner Tipp: Nicht zu viel auf einmal wollen, lieber kleine, kontinuierliche Schritte gehen.</para>
</sect3>
Zuordung einer Default-Preisgruppe handhaben)</para>
</listitem>
<listitem>
- <para>man darf beim Anlegen des Vorgangs nicht vergessen Dieses Häkchen zu setzen. (das ist in der Praxis wenn man sowohl
- Endverbraucher- wie Gewerbekunden beliefert der eigentliche Knackpunkt)</para>
+ <para>man darf beim Anlegen des Vorgangs nicht vergessen, dieses Häkchen zu setzen. (Das ist in der Praxis, wenn man sowohl
+ Endverbraucher als auch Gewerbekunden beliefert, der eigentliche Knackpunkt)</para>
</listitem>
</itemizedlist>
an (einmal mit der Namensendung "_E"). Gewinn:</para>
<itemizedlist>
- <listitem><para>Die Entscheidung, ob Netopreise ausgewiesen werden, ist nicht mehr fix mit einer Preisliste Verbunden.</para></listitem>
+ <listitem><para>Die Entscheidung, ob Netopreise ausgewiesen werden, ist nicht mehr fix mit einer Preisliste verbunden.</para></listitem>
<listitem><para>Die Default-Zahlart kann im Kundendatensatz hinterlegt werden, und man muss nicht mehr daran denken, "alle Preise
Netto" auszuwählen.</para></listitem>
- <listitem><para>Die Entscheidung, ob Netto- oder Bruttopreise ausgewiesen werden, kann direkt beim Drucken reviediert werden,
+ <listitem><para>Die Entscheidung, ob Netto- oder Bruttopreise ausgewiesen werden, kann direkt beim Drucken revidiert werden,
ohne dass sich der Auftragswert ändert.</para></listitem>
</itemizedlist>
</sect3>
<sect2 id="allgemeine-hinweise-zu-latex">
<title>Allgemeine Hinweise zu LaTeX Vorlagen</title>
- <para>In den allermeisten Installationen sollte drucken jetzt schon
- funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange
- Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite
+ <para>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
Beispiel:</para>
Abrechnungszeitraum explizit auszuweisen. Eine Variable hat dabei die Syntax <literal><%variablenname%></literal>.
</para>
+ <para>
+ Sofern es sich um eine Datumsvariable handelt, kann das Ausgabeformat weiter bestimmt werden, indem an den Variablennamen
+ Formatoptionen angehängt werden. Die Syntax sieht dabei wie folgt aus: <literal><%variablenname
+ FORMAT=Formatinformation%></literal>. Die zur verfügung stehenden Formatinformationen werden unten genauer beschrieben.
+ </para>
+
<para>
Diese Variablen werden in den folgenden Elementen des Auftrags ersetzt:
</para>
</listitem>
</varlistentry>
</variablelist>
+
+ <para>
+ Die invidiuellen Formatinformationen bestehen aus Paaren von Prozentzeichen und einem Buchstaben, welche beide zusammen durch den
+ dazugehörigen Wert ersetzt werden. So wird z.B. <literal>%Y</literal> durch das viertstellige Jahr ersetzt. Alle möglichen
+ Platzhalter sind:
+ </para>
+
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>%a</varname></term>
+
+ <listitem>
+ <para>Der abgekürzte Wochentagsname.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%A</varname></term>
+
+ <listitem>
+ <para>Der ausgeschriebene Wochentagsname.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%b</varname></term>
+
+ <listitem>
+ <para>Der abgekürzte Monatsname.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%B</varname></term>
+
+ <listitem>
+ <para>Der ausgeschriebene Monatsname.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%C</varname></term>
+
+ <listitem>
+ <para>Das Jahrhundert (Jahr/100) als eine zweistellige Zahl.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%d</varname></term>
+
+ <listitem>
+ <para>Der Monatstag als Zahl zwischen 01 und 31.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%D</varname></term>
+
+ <listitem>
+ <para>Entspricht %m/%d/%y (amerikanisches Datumsformat).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%e</varname></term>
+
+ <listitem>
+ <para>Wie %d (Monatstag als Zahl zwischen 1 und 31), allerdings werden führende Nullen durch Leerzeichen ersetzt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%F</varname></term>
+
+ <listitem>
+ <para>Entspricht %Y-%m-%d (das ISO-8601-Datumsformat).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%j</varname></term>
+
+ <listitem>
+ <para>Der Tag im Jahr als Zahl zwischen 001 und 366 inklusive.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%m</varname></term>
+
+ <listitem>
+ <para>Der Monat als Zahl zwischen 01 und 12 inklusive.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%u</varname></term>
+
+ <listitem>
+ <para>Der Wochentag als Zahl zwischen 1 und 7 inklusive, wobei die 1 dem Montag entspricht.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%U</varname></term>
+
+ <listitem>
+ <para>Die Wochennummer als Zahl zwischen 00 und 53 inklusive, wobei der erste Sonntag im Jahr das Startdatum von Woche 01 ist.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%V</varname></term>
+
+ <listitem>
+ <para>Die ISO-8601:1988-Wochennummer als Zahl zwischen 01 und 53 inklusive, wobei Woche 01 die erste Woche, von der mindestens vier Tage im Jahr liegen; Montag ist erster Tag der Woche.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%w</varname></term>
+
+ <listitem>
+ <para>Der Wochentag als Zahl zwischen 0 und 6 inklusive, wobei die 0 dem Sonntag entspricht.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%W</varname></term>
+
+ <listitem>
+ <para>Die Wochennummer als Zahl zwischen 00 und 53 inklusive, wobei der erste Montag im Jahr das Startdatum von Woche 01 ist.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%y</varname></term>
+
+ <listitem>
+ <para>Das Jahr als zweistellige Zahl zwischen 00 und 99 inklusive.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%Y</varname></term>
+
+ <listitem>
+ <para>Das Jahr als vierstellige Zahl.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>%%</varname></term>
+
+ <listitem>
+ <para>Das Prozentzeichen selber.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>
+ Anwendungsbeispiel für die Ausgabe, von welchem Monat und Jahr bis zu welchem Monat und Jahr die aktuelle Abrechnungsperiode
+ dauert: <literal>Abrechnungszeitrum: <%period_start_date FORMAT=%m/%Y%> bis <%period_end_date FORMAT=%m/%Y%></literal>
+ </para>
</sect2>
<sect2 id="features.periodic-invoices.reports">
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>greeting</varname></term>
+
+ <listitem>
+ <para>Anrede</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>homepage</varname></term>
<listitem><para>Beschreibung der Lieferbedingung</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>delivery_term.long_description</varname></term>
+ <term><varname>delivery_term.description_long</varname></term>
<listitem><para>Langtext bzw. übersetzter Langtext der Lieferbedingung</para></listitem>
</varlistentry>
</variablelist>
<term><varname>netprice</varname></term>
<listitem>
- <para>Nettopreis</para>
+ <para>Alternative zu <varname>sellprice</varname>, aber <varname>netprice</varname> entspricht dem effektiven Einzelpreis und beinhaltet Zeilenrabatt und Preisfaktor. <varname>netprice</varname> wird rückgerechnet aus Zeilensumme / Menge. Diese Variable ist nützlich, wenn man den gewährten Rabatt in der Druckvorlage nicht anzeigen möchte, aber Menge * Einzelpreis trotzdem die angezeigte Zeilensumme ergeben soll. <varname>netprice</varname> hat nichts mit Netto/Brutto im Sinne von Steuern zu tun.</para>
</listitem>
</varlistentry>