Dokumentation: Rechtschreibung/Grammatik Artikelklassifizierung u. miniDMS
[kivitendo-erp.git] / doc / dokumentation.xml
index 0ca34e5..8b05300 100644 (file)
@@ -2,7 +2,7 @@
 <!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.4.1: Installation, Konfiguration, Entwicklung</title>
+  <title>kivitendo 3.5.0: Installation, Konfiguration, Entwicklung</title>
 
   <chapter id="Aktuelle-Hinweise">
     <title>Aktuelle Hinweise</title>
             <para><literal>File::Copy::Recursive</literal></para>
           </listitem>
 
+          <listitem>
+            <para><literal>File::MimeInfo</literal></para>
+          </listitem>
+
           <listitem>
             <para><literal>GD</literal></para>
           </listitem>
             <para><literal>List::MoreUtils</literal></para>
           </listitem>
 
-          <listitem>-&gt;
+          <listitem>
             <para><literal>List::UtilsBy</literal></para>
           </listitem>
 
           <listitem>
             <para><literal>Rose::Object</literal></para>
           </listitem>
--&gt;
+
           <listitem>
             <para><literal>Rose::DB</literal></para>
           </listitem>
             <para><literal>Text::Iconv</literal></para>
           </listitem>
 
+           <listitem>
+            <para><literal>Text::Unidecode</literal></para>
+          </listitem>
+
           <listitem>
-            <para><literal>URI</literal></para>-&gt;
+            <para><literal>URI</literal></para>
           </listitem>
 
           <listitem>
             <para><literal>YAML</literal></para>
           </listitem>
         </itemizedlist>
+        <para>Seit Version größer v3.5.0 sind die folgenden Pakete hinzugekommen:
+        <literal>Text::Unidecode</literal></para>
 
         <para>Seit Version v3.4.0 sind die folgenden Pakete hinzugekommen:
         <literal>Algorithm::CheckDigits</literal><literal>PBKDF2::Tiny</literal></para>
           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 \
+          <programlisting>apt install  apache2 libarchive-zip-perl libclone-perl \
   libconfig-std-perl libdatetime-perl libdbd-pg-perl libdbi-perl \
   libemail-address-perl  libemail-mime-perl libfcgi-perl libjson-perl \
   liblist-moreutils-perl libnet-smtp-ssl-perl libnet-sslglue-perl \
   libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \
   libimage-info-perl libgd-gd2-perl libapache2-mod-fcgid \
   libfile-copy-recursive-perl postgresql libalgorithm-checkdigits-perl \
-  libcrypt-pbkdf2-perl git
+  libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl
 </programlisting>
 
           <para>Für das Paket HTML::Restrict gibt es kein Debian-Paket, dies
@@ -418,6 +428,27 @@ cpan HTML::Restrict</programlisting>
           <programlisting>cpan Rose::Db::Object</programlisting>
         </sect3>
       </sect2>
+      <sect2>
+        <title>Andere Pakete installieren</title>
+
+        <para>Seit Version v3.4.0 wird für den Bankimport optional das Paket
+        'aqbanking-tools' benötigt.</para>
+
+        <para>Debian und Ubuntu: <programlisting>apt install aqbanking-tools
+        </programlisting></para>
+
+        <para>OpenSuSE: <programlisting>zypper install aqbanking-tools</programlisting></para>
+
+        <para>Seit Version v3.4.1 wird generell zum Feststellen der
+        Seitenanzahl von PDF_Dokumenten 'pdfinfo' benötigt was im Paket
+        'poppler-utils' enthalten ist.</para>
+
+        <para>Debian und Ubuntu: <programlisting>apt install poppler-utils
+        </programlisting></para>
+
+        <para>OpenSuSE: <programlisting>zypper install poppler-tools</programlisting></para>
+      </sect2>
+
     </sect1>
 
     <sect1 id="Manuelle-Installation-des-Programmpaketes"
@@ -477,16 +508,45 @@ tar xvzf kivitendo-erp-3.4.1.tgz</programlisting>
         <para>Wir empfehlen eine Installation mittels des Versionsmanagager
         git. Hierfür muss ein git-Client installiert sein. Damit ist man sehr
         viel flexibler für zukünftige Upgrades. Installations-Anleitung (bitte
-        die Pfade anpassen) bspw. wie folgt: <programlisting>cd /usr/local/src/
+        die Pfade anpassen) bspw. wie folgt: <programlisting>cd /var/www/
 git clone https://github.com/kivitendo/kivitendo-erp.git
 cd kivitendo-erp/
 git checkout `git tag -l | egrep -ve "(beta|rc)" | tail -1`</programlisting>
+        Erläuterung: Der Befehl wechselt zur letzten Stable-Version (git tag -l listet
+       alle Tags auf, das egrep schmeisst alle Einträge mit beta oder rc raus und
+       das tail gibt davon den obersten Treffer zurück).
+
         Sehr sinnvoll ist es, direkt im Anschluss einen eigenen Branch zu
         erzeugen, um bspw. seine eigenen Druckvorlagen-Anpassungen damit zu
         verwalten. Hierfür reicht ein simples <programlisting>  git checkout -b meine_eigenen_änderungen</programlisting>
         nach dem letzten Kommando (weiterführende Informationen <ulink
-        url="http://git-scm.com/book/en/v2/Getting-Started-Git-Basics">getting
-        started with git</ulink>).</para>
+        url="http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html">
+        Git Magic</ulink>).</para>
+
+<para>
+        Ein beispielhafter Workflow für Druckvorlagen-Anpassungen von 3.4.1 nach 3.5:
+        <programlisting>
+$ git clone https://github.com/kivitendo/kivitendo-erp.git
+$ cd kivitendo-erp/
+$ git checkout release-3.4.1     # das ist der aktuelle release, den wir wollen
+$ git add templates/fullhouse    # das sind unsere druckvorlagen inkl. produktbilder
+$ git commit -m "juhu tolle ändernungen"
+[meine_aenderungen 1d89e41] juhu tolle ändernungen
+ 4 files changed, 380 insertions(+)
+ create mode 100644 templates/fullhouse/img/webdav/tesla.png
+ create mode 100644 templates/fullhouse/mahnung.tex
+ create mode 100644 templates/fullhouse/zahlungserinnerung_zwei.tex
+ create mode 100644 templates/fullhouse/zahlungserinnerung_zwei_invoice.tex
+
+# 5 Jahre später ...
+
+$ git fetch
+$ git rebase --onto release-3.5.0 release-3.4.1 meine_aenderungen
+Zunächst wird der Branch zurückgespult, um Ihre Änderungen
+darauf neu anzuwenden ...
+Wende an: juhu tolle ändernungen
+$ service apache2 restart
+</programlisting></para>
       </note>
     </sect1>
 
@@ -627,9 +687,9 @@ default_manager = german</programlisting>
                <para>Die Einstellung <varname>default_manager = swiss</varname> bewirkt:</para>
                <itemizedlist>
             <listitem>
-              <para>Beim Erstellen einer neuen Datenbank in der kivitendo Administration 
-              werden automatisch die Standard-Werte für die Schweiz voreingestellt: 
-              Währung CHF, 5er-Rundung, Schweizer KMU-Kontenplan, Sollversteuerung, 
+              <para>Beim Erstellen einer neuen Datenbank in der kivitendo Administration
+              werden automatisch die Standard-Werte für die Schweiz voreingestellt:
+              Währung CHF, 5er-Rundung, Schweizer KMU-Kontenplan, Sollversteuerung,
               Aufwandsmethode, Bilanzierung (die Werte können aber manuell angepasst werden).</para>
                        </listitem>
                        <listitem>
@@ -638,14 +698,14 @@ default_manager = german</programlisting>
                        </listitem>
                        <listitem>
                                <para>das verwendete Zahlenformat wird auf <varname>1'000.00</varname> eingestellt
-                                (unter Programm → Benutzereinstellungen veränderbar)</para>                 
+                                (unter Programm → Benutzereinstellungen veränderbar)</para>
                        </listitem>
                        <listitem>
-                               <para>DATEV-Automatik und UStVA werden nicht angezeigt, Erfolgsrechnung 
+                               <para>DATEV-Automatik und UStVA werden nicht angezeigt, Erfolgsrechnung
                                ersetzt GUV ( unter Mandantenkonfiguration → Features veränderbar)</para>
                        </listitem>
                </itemizedlist>
-               
+
         <para>Nutzt man wiederkehrende Rechnungen, kann man unter
         <varname>[periodic_invoices]</varname> den Login eines Benutzers
         angeben, der nach Erstellung der Rechnungen eine entsprechende E-Mail
@@ -818,8 +878,7 @@ Alias /kivitendo-erp/ /var/www/kivitendo-erp/
 &lt;/Directory&gt;
 
 &lt;Directory /var/www/kivitendo-erp/users&gt;
- Order Deny,Allow
- Deny from All
+ Require all granted
 &lt;/Directory&gt;</programlisting>
 
         <para>Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher
@@ -954,7 +1013,7 @@ Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
 &lt;/Directory&gt;
 
 &lt;DirectoryMatch /path/to/kivitendo-erp/users&gt;
-Require all granted
+Require all denied
 &lt;/DirectoryMatch&gt;</programlisting>
 
           <warning>
@@ -969,6 +1028,17 @@ Require all granted
             <programlisting>
   Order Allow,Deny
   Allow from All </programlisting>
+
+            <para>und statt</para>
+
+            <programlisting>Require all denied</programlisting>
+
+            <para>muss stehen:</para>
+
+            <programlisting>
+  Order Deny,Allow
+  Deny from All </programlisting>
+
           </warning>
 
           <para>Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für
@@ -1028,7 +1098,9 @@ Alias       /url/for/kivitendo-erp-fcgid/          /path/to/kivitendo-erp/</prog
         Konfigurationsmöglichkeiten sprengen allerdings den Rahmen dieser
         Anleitung, hier ein Hinweis auf einen entsprechenden <ulink
         url="http://redmine.kivitendo-premium.de/boards/1/topics/142">Foreneintrag
-        (Stand Sept. 2015)</ulink></para>
+        (Stand Sept. 2015)</ulink> und einen aktuellen (Stand Mai 2017)
+        <ulink url="https://mozilla.github.io/server-side-tls/ssl-config-generator/">
+        SSL-Konfigurations-Generator</ulink>.</para>
       </sect2>
     </sect1>
 
@@ -1049,6 +1121,13 @@ Alias       /url/for/kivitendo-erp-fcgid/          /path/to/kivitendo-erp/</prog
       Servers integriert werden muss, damit er automatisch gestartet wird.
       Dies kann kivitendo nicht für Sie erledigen.</para>
 
+      <para>Da der Taskserver als Perlscript läuft, wird Arbeitsspeicher,
+      der einmal benötigt wurde, nicht mehr an das Betriebssystem zurückgegeben,
+      solange der Taskserver läuft. Dies kann dazu führen, dass ein länger
+      laufender Taskserver mit der Zeit immer mehr Arbeitsspeicher für sich
+      beansprucht. Es ist deshalb sinnvoll, dass der Taskserver in regelmässigen
+      Abständen neu gestartet wird.</para>
+
       <sect2 id="Konfiguration-des-Task-Servers">
         <title>Verfügbare und notwendige Konfigurationsoptionen</title>
 
@@ -1112,7 +1191,7 @@ Alias       /url/for/kivitendo-erp-fcgid/          /path/to/kivitendo-erp/</prog
         anstelle eines symbolischen Links verwendet werden können.</para>
 
         <sect3>
-          <title>SystemV-basierende Systeme (z.B. Debian, ältere OpenSUSE,
+          <title>SystemV-basierende Systeme (z.B. ältere Debian, ältere OpenSUSE,
           ältere Fedora)</title>
 
           <para>Kopieren Sie die Datei
@@ -1127,7 +1206,6 @@ Alias       /url/for/kivitendo-erp-fcgid/          /path/to/kivitendo-erp/</prog
               <para>Debian-basierende Systeme:</para>
 
               <programlisting>update-rc.d kivitendo-task-server defaults
-# Nur bei Debian Squeeze und neuer:
 insserv kivitendo-task-server</programlisting>
             </listitem>
 
@@ -1161,7 +1239,7 @@ insserv kivitendo-task-server</programlisting>
 
         <sect3>
           <title>systemd-basierende Systeme (z.B. neure openSUSE, neuere
-          Fedora, neuere Ubuntu und Debians)</title>
+          Fedora, neuere Ubuntu und neuere Debians)</title>
 
           <para>Kopieren Sie die Datei <filename>scripts/boot/systemd/kivitendo-task-server.service</filename> nach
           <filename>/etc/systemd/system/</filename>. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeilen
@@ -1779,7 +1857,7 @@ systemctl enable kivitendo-task-server.service</programlisting>
       debianoiden Betriebssystemen installiert man die Pakete mit:</para>
 
       <para><programlisting>apt-get install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \
-  exlive-latex-extra texlive-lang-german texlive-generic-extra</programlisting></para>
+  texlive-latex-extra texlive-lang-german texlive-generic-extra</programlisting></para>
 
       <para>Für Fedora benötigen Sie die folgenden Pakete:</para>
 
@@ -2156,8 +2234,33 @@ systemctl enable kivitendo-task-server.service</programlisting>
         und nicht nur Teile davon, da dies sonst oft zu einer odt-Datei führt,
         die vom Parser nicht korrekt gelesen werden kann.</para>
 
+        <para>Mahnungen können unter folgenden Einschränkungen mit den odt-Vorlagen
+        im Vorlagensatz rev-odt erzeugt werden:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>als Druckoption steht nur 'PDF(OpenDocument/OASIS)' zur
+            Verfügung, das heisst, die Mahnungen werden als PDF-Datei ausgegeben.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>für jede Rechnung muss eine eigene Mahnung erzeugt werden
+            (auch wenn bei einzelnen KundInnen mehrere überfällige Rechnungen
+            vorhanden sind).</para>
+          </listitem>
+        </itemizedlist>
+
+        <para>Mehrere Mahnungen für eine Kundin / einen Kunden werden zu einer
+        PDF-Datei zusammengefasst</para>
+
+        <para>Die Vorlagen zahlungserinnerung.odt sowie mahnung.odt sind für das
+        Erstellen einer Zahlungserinnerung bzw. Mahnung selbst vorgesehen, die
+        Vorlage mahnung_invoice.odt für das Erstellen einer Rechnung über die
+        verrechneten Mahngebühren und Verzugszinsen.</para>
+
         <para>Zur Zeit gibt es in kivitendo noch keine Möglichkeit,
-        odt-Vorlagen bei Mahnungen, Briefen und Pflichtenheften einzusetzen. 
+        odt-Vorlagen bei Briefen und Pflichtenheften einzusetzen.
         Entsprechende Vorlagen sind deshalb nicht vorhanden.</para>
 
         <para>Fehlermeldungen, Anregungen und Wünsche bitte senden an:
@@ -2284,18 +2387,18 @@ systemctl enable kivitendo-task-server.service</programlisting>
       enthalten.</para>
 
       <para>Zusätzlich gibt es zwei verschiedene Arten, wie kivitendo mit
-      LibreOffice bzw. OpenOffice kommuniziert. Die erste Variante, die benutzt 
-      wird, wenn die Variable <literal>$openofficeorg_daemon</literal> gesetzt 
-      ist, startet ein LibreOffice oder OpenOffice, das auch nach der Umwandlung 
-      des Dokumentes gestartet bleibt. Bei weiteren Umwandlungen wird dann diese 
-      laufende Instanz benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung 
-      deutlich reduziert wird, weil nicht für jedes Dokument ein LibreOffice bzw. 
-      OpenOffice gestartet werden muss. Der Nachteil ist, dass diese Methode 
-      Python und die Python-UNO-Bindings benötigt, die Bestandteil von LibreOffice 
+      LibreOffice bzw. OpenOffice kommuniziert. Die erste Variante, die benutzt
+      wird, wenn die Variable <literal>$openofficeorg_daemon</literal> gesetzt
+      ist, startet ein LibreOffice oder OpenOffice, das auch nach der Umwandlung
+      des Dokumentes gestartet bleibt. Bei weiteren Umwandlungen wird dann diese
+      laufende Instanz benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung
+      deutlich reduziert wird, weil nicht für jedes Dokument ein LibreOffice bzw.
+      OpenOffice gestartet werden muss. Der Nachteil ist, dass diese Methode
+      Python und die Python-UNO-Bindings benötigt, die Bestandteil von LibreOffice
       bzw. OpenOffice sind.</para>
 
       <note>
-        <para>Für die Verbindung zu LibreOffice bzw. OpenOffice wird 
+        <para>Für die Verbindung zu LibreOffice bzw. OpenOffice wird
         normalerweise der Python-Interpreter
         <filename>/usr/bin/python</filename> benutzt.
         Sollte dies nicht der richtige sein, so kann man mit zwei
@@ -2307,7 +2410,7 @@ systemctl enable kivitendo-task-server.service</programlisting>
 
         <para>Zusätzlich ist es möglich, Pfade anzugeben, in denen Python
         neben seinen normalen Suchpfaden ebenfalls nach Modulen gesucht wird,
-        z.B. falls sich diese in einem gesonderten LibreOffice- bzw. 
+        z.B. falls sich diese in einem gesonderten LibreOffice- bzw.
         OpenOffice-Verzeichnis befinden. Diese zweite Variable heißt
         <literal>python_uno_path</literal> und befindet sich im Abschnitt
         <literal>environment</literal>. Sie ist standardmäßig leer. Werden
@@ -2318,8 +2421,8 @@ systemctl enable kivitendo-task-server.service</programlisting>
       </note>
 
       <para>Ist <literal>$openofficeorg_daemon</literal> nicht gesetzt, so
-      wird für jedes Dokument LibreOffice bzw. OpenOffice neu gestartet 
-      und die Konvertierung mit Hilfe eines Makros durchgeführt. Dieses 
+      wird für jedes Dokument LibreOffice bzw. OpenOffice neu gestartet
+      und die Konvertierung mit Hilfe eines Makros durchgeführt. Dieses
       Makro muss in der Dokumentenvorlage enthalten sein und
       “Standard.Conversion.ConvertSelfToPDF()” heißen. Die Beispielvorlage
       ‘<literal>templates/print/rev-odt/invoice.odt</literal>’
@@ -2328,16 +2431,16 @@ systemctl enable kivitendo-task-server.service</programlisting>
 
       <para>Als letztes muss herausgefunden werden, welchen Namen
       OpenOffice bzw. LibreOffice dem Verzeichnis mit den Benutzereinstellungen
-      gibt. Unter Debian ist dies momentan 
-      <literal>~/.config/libreoffice</literal>. kivitendo verwendet das 
+      gibt. Unter Debian ist dies momentan
+      <literal>~/.config/libreoffice</literal>. kivitendo verwendet das
       Verzeichnis <literal>users/.openoffice.org2</literal>.
       Eventuell muss dieses Verzeichnis umbenannt werden.</para>
 
       <para>Dieses Verzeichnis, wie auch das komplette
       <literal>users</literal>-Verzeichnis, muss vom Webserver beschreibbar
       sein. Dieses wurde bereits erledigt (siehe <xref
-      linkend="Manuelle-Installation-des-Programmpaketes"/>), kann aber 
-      erneut überprüft werden, wenn die Konvertierung nach PDF 
+      linkend="Manuelle-Installation-des-Programmpaketes"/>), kann aber
+      erneut überprüft werden, wenn die Konvertierung nach PDF
       fehlschlägt.</para>
 
       <sect2>
@@ -2501,7 +2604,7 @@ systemctl enable kivitendo-task-server.service</programlisting>
                     <para>DDDBETRAG: &lt;%total%&gt; Einzahlungsbetrag oder 0,
                     falls Einzahlungsschein ohne Betrag</para>
                   </listitem>
-                  
+
                   <listitem>
                                        <para>DDDEND: muss am Ende der Zeile vorhanden sein</para>
                                  </listitem>
@@ -2579,6 +2682,53 @@ systemctl enable kivitendo-task-server.service</programlisting>
       </sect2>
     </sect1>
 
+    <sect1 id="nomenclature">
+      <title>Nomenklatur</title>
+
+      <sect2 id="booking.dates">
+        <title>Datum bei Buchungen</title>
+
+        <para>Seit der Version 3.5 werden für Buchungen in kivitendo einheitlich
+        folgende Bezeichnungen verwendet:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para><option>Erfassungsdatum</option> (en: <option>Entry Date</option>,
+            code: <option>Gldate</option>)</para>
+
+            <para>bezeichnet das Datum, an dem die Buchung in kivitendo erfasst wurde.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para><option>Buchungsdatum</option> (en: <option>Booking Date</option>,
+            code: <option>Transdate</option>)</para>
+
+            <para>bezeichnet das buchhaltungstechnisch für eine Buchung relevante
+            Datum</para>
+
+            <para>Das <option>Rechnungsdatum</option> bei Verkaufs- und
+            Einkaufsrechnungen entspricht dem Buchungsdatum. Das heisst, in
+            Berichten wie dem Buchungsjournal, in denen eine Spalte
+            <option>Buchungsdatum</option> angezeigt werden kann, erscheint hier
+            im Fall von Rechnungen das Rechnungsdatum.</para>
+          </listitem>
+
+          <listitem>
+            <para>Bezieht sich ein verbuchter Beleg auf einen Zeitpunkt, der nicht mit
+            dem Buchungsdatum übereinstimmt, so kann dieses Datum momentan in kivitendo
+            nur unter Bemerkungen erfasst werden.</para>
+
+            <para>Möglicherweise wird für solche Fälle in einer späteren Version von
+            kivitendo ein dritter Datumswert für Buchungen erstellt. (Beispiel:
+            Einkaufsbeleg stammt aus einem früheren Jahr, das bereits
+            buchhaltungstechnisch abgeschlossen wurde, und muss deshalb später
+            verbucht werden.)</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+    </sect1>
+
     <sect1 id="config.eur">
       <title>Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
       EUR</title>
@@ -2662,7 +2812,7 @@ systemctl enable kivitendo-task-server.service</programlisting>
         <para>Beim Anlegen eines neuen Mandanten bzw. einer neuen Datenbank in
         der Admininstration können diese Optionen nun unabhängig voneinander
         eingestellt werden.</para>
-        
+
         <para>Für die Schweiz sind folgende Einstellungen üblich:
                <itemizedlist>
             <listitem>
@@ -2675,9 +2825,9 @@ systemctl enable kivitendo-task-server.service</programlisting>
                                <para>Bilanzierung</para>
                        </listitem>
                </itemizedlist>
-               Diese Einstellungen werden automatisch beim Erstellen einer neuen 
-               Datenbank vorausgewählt, wenn in <filename>config/kivitendo.conf</filename> unter 
-               <varname>[system]</varname> <literal>default_manager = swiss</literal> eingestellt ist. 
+               Diese Einstellungen werden automatisch beim Erstellen einer neuen
+               Datenbank vorausgewählt, wenn in <filename>config/kivitendo.conf</filename> unter
+               <varname>[system]</varname> <literal>default_manager = swiss</literal> eingestellt ist.
         </para>
 
         <para>Beim Upgrade bestehender Mandanten wird eur ausgelesen und die
@@ -2890,60 +3040,60 @@ systemctl enable kivitendo-task-server.service</programlisting>
       den Optionen mit EB-Buchungen wird vorausgesetzt, daß diese immer am 1.
       Tag des Wirtschaftsjahres gebucht werden. Zur Sicherheit wird das
       Startdatum im Bilanzbericht jetzt zusätzlich zum Stichtag mit angezeigt.
-      Das hilft auch bei der Kontrolle für den Abgleich mit der GuV bzw. 
+      Das hilft auch bei der Kontrolle für den Abgleich mit der GuV bzw.
       Erfolgsrechnung.</para>
     </sect1>
-    
+
     <sect1 id="config.erfolgsrechnung">
          <title>Erfolgsrechnung</title>
-         
+
          <para>Seit der Version 3.4.1 existiert in kivitendo der Bericht <emphasis role="bold">
          Erfolgsrechnung</emphasis>.</para>
-          
-         <para>Die Erfolgsrechnung kann in der Mandantenkonfiguration unter Features 
+
+         <para>Die Erfolgsrechnung kann in der Mandantenkonfiguration unter Features
          an- oder abgeschaltet werden. Mit der Einstellung <varname>default_manager = swiss
-         </varname> in der <filename>config/kivitendo.conf</filename> wird beim neu Erstellen 
+         </varname> in der <filename>config/kivitendo.conf</filename> wird beim neu Erstellen
          einer Datenbank automatisch die Anzeige der Erfolgsrechnung im Menü <guimenu>Berichte
          </guimenu> ausgewählt und ersetzt dort die GUV.</para>
-         
-         <para>Im Gegensatz zur GUV werden bei der Erfolgsrechnung sämtliche Aufwands- und 
+
+         <para>Im Gegensatz zur GUV werden bei der Erfolgsrechnung sämtliche Aufwands- und
          Erlöskonten einzeln aufgelistet (analog zur Bilanz), sortiert nach ERTRAG und AUFWAND.</para>
-         
-         <para>Bei den Konteneinstellungen muss bei jedem Konto, das in der Erfolgsrechnung 
-         erscheinen soll, unter <varname>Sonstige Einstellungen/Erfolgsrechnung</varname> 
-         entweder <literal>01.Ertrag</literal> oder <literal>06.Aufwand</literal>  ausgewählt 
+
+         <para>Bei den Konteneinstellungen muss bei jedem Konto, das in der Erfolgsrechnung
+         erscheinen soll, unter <varname>Sonstige Einstellungen/Erfolgsrechnung</varname>
+         entweder <literal>01.Ertrag</literal> oder <literal>06.Aufwand</literal>  ausgewählt
          werden.</para>
-         
-         <para>Wird bei einem Erlöskonto <literal>06.Aufwand</literal> ausgewählt, 
+
+         <para>Wird bei einem Erlöskonto <literal>06.Aufwand</literal> ausgewählt,
          so wird dieses Konto als Aufwandsminderung unter AUFWAND aufgelistet.</para>
-         
-         <para>Wird bei einem Aufwandskonto <literal>01.Ertrag</literal> ausgewählt, 
+
+         <para>Wird bei einem Aufwandskonto <literal>01.Ertrag</literal> ausgewählt,
          so wird dieses Konto als Ertragsminderung unter ERTRAG aufgelistet.</para>
-         
-         <para>Soll bei einer bereits bestehenden Buchhaltung in Zukunft zusätzlich 
-         die Erfolgsrechnung als Bericht verwendet werden, so müssen die Einstellungen 
-         zu allen Erlös- und Aufwandskonten unter <varname>Sonstige 
+
+         <para>Soll bei einer bereits bestehenden Buchhaltung in Zukunft zusätzlich
+         die Erfolgsrechnung als Bericht verwendet werden, so müssen die Einstellungen
+         zu allen Erlös- und Aufwandskonten unter <varname>Sonstige
          Einstellungen/Erfolgsrechnung</varname> überprüft und allenfalls neu gesetzt werden.</para>
     </sect1>
-    
+
     <sect1 id="config.rounding">
          <title>Rundung in Verkaufsbelegen</title>
-         
+
          <para>In der Schweiz hat die kleinste aktuell benutzte Münze den Wert von 5 Rappen (0.05 CHF).</para>
-         
-         <para>Auch wenn im elektronischen Zahlungsverkehr Beträge mit einer Genauigkeit 
-         von 0.01 CHF verwendet werden können, ist es trotzdem nach wie vor üblich, 
+
+         <para>Auch wenn im elektronischen Zahlungsverkehr Beträge mit einer Genauigkeit
+         von 0.01 CHF verwendet werden können, ist es trotzdem nach wie vor üblich,
          Rechnungen mit auf 0.05 CHF gerundeten Beträgen auszustellen.</para>
-         
-         <para>In kivitendo kann seit der Version 3.4.1 die Einstellung für eine solche 
+
+         <para>In kivitendo kann seit der Version 3.4.1 die Einstellung für eine solche
          Rundung pro Mandant / Datenbank festgelegt werden.</para>
-         
-         <para>Die Einstellung wird beim Erstellen der Datenbank bei <literal>Genauigkeit</literal> 
-         festgelegt. Sie kann anschliessend über das Webinterface von kivitendo nicht mehr 
+
+         <para>Die Einstellung wird beim Erstellen der Datenbank bei <literal>Genauigkeit</literal>
+         festgelegt. Sie kann anschliessend über das Webinterface von kivitendo nicht mehr
          verändert werden.</para>
-         
-         <para>Abhängig vom Wert für <varname>default_manager</varname> in 
-         <filename>config/kivitendo.conf</filename> werden dabei folgende 
+
+         <para>Abhängig vom Wert für <varname>default_manager</varname> in
+         <filename>config/kivitendo.conf</filename> werden dabei folgende
          Werte voreingestellt:</para>
          <itemizedlist>
         <listitem>
@@ -2953,30 +3103,30 @@ systemctl enable kivitendo-task-server.service</programlisting>
           <para>0.01 (default_manager = german)</para>
         </listitem>
       </itemizedlist>
-      <para>Der Wert wird in der Datenbank in der Tabelle <varname>defaults 
+      <para>Der Wert wird in der Datenbank in der Tabelle <varname>defaults
       </varname>in der Spalte <varname>precision</varname> gespeichert.</para>
-      
-      <para>In allen Verkaufsangeboten, Verkaufsaufträgen, Verkaufsrechnungen 
-      und Verkaufsgutschriften wird der Endbetrag inkl. MWST gerundet, 
+
+      <para>In allen Verkaufsangeboten, Verkaufsaufträgen, Verkaufsrechnungen
+      und Verkaufsgutschriften wird der Endbetrag inkl. MWST gerundet,
       wenn dieser nicht der eingestellten Genauigkeit entspricht.</para>
-      
-      <para>Beim Buchen einer Verkaufsrechnung wird der Rundungsbetrag 
-      automatisch auf die in der Mandantenkonfiguration festgelegten 
+
+      <para>Beim Buchen einer Verkaufsrechnung wird der Rundungsbetrag
+      automatisch auf die in der Mandantenkonfiguration festgelegten
       Standardkonten für Rundungserträge bzw. Rundungsaufwendungen gebucht.</para>
-      
+
       <para>(Die berechnete MWST wird durch den Rundungsbetrag nicht mehr verändert.)</para>
-      
-      <para>Die in den Druckvorlagen zur Verfügung stehenden Variablen 
-      <varname>quototal</varname>, <varname>ordtotal</varname> bzw. 
+
+      <para>Die in den Druckvorlagen zur Verfügung stehenden Variablen
+      <varname>quototal</varname>, <varname>ordtotal</varname> bzw.
       <varname>invtotal</varname> enthalten den gerundeten Betrag.</para>
-      
-      <para><emphasis role="bold">Achtung:</emphasis> Werden Verkaufsbelege 
-      in anderen Währungen als der Standardwährung erstellt, so muss in 
-      kivitendo 3.4.1 die Genauigkeit 0.01 verwendet werden.</para>
-      <para>Das heisst, Firmen in der Schweiz, die teilweise Verkaufsrechnungen 
-      in Euro oder anderen Währungen erstellen wollen, müssen beim Erstellen 
-      der Datenbank als Genauigkeit 0.01 wählen und können zur Zeit die 
-      5er Rundung noch nicht nutzen.</para>      
+
+      <para><emphasis role="bold">Achtung:</emphasis> Werden Verkaufsbelege
+      in anderen Währungen als der Standardwährung erstellt, so muss in
+      kivitendo ab Version 3.4.1 die Genauigkeit 0.01 verwendet werden.</para>
+      <para>Das heisst, Firmen in der Schweiz, die teilweise Verkaufsrechnungen
+      in Euro oder anderen Währungen erstellen wollen, müssen beim Erstellen
+      der Datenbank als Genauigkeit 0.01 wählen und können zur Zeit die
+      5er Rundung noch nicht nutzen.</para>
     </sect1>
 
     <sect1 id="config.client">
@@ -3491,8 +3641,8 @@ systemctl enable kivitendo-task-server.service</programlisting>
         (siehe <xref
         linkend="dokumentenvorlagen-und-variablen.tag-style"/>).</para>
 
-        <para>kivitendo unterstützt LaTeX-, HTML- und OpenDocument-Vorlagen. 
-        Sofern es nicht ausdrücklich eingeschränkt wird, gilt das im 
+        <para>kivitendo unterstützt LaTeX-, HTML- und OpenDocument-Vorlagen.
+        Sofern es nicht ausdrücklich eingeschränkt wird, gilt das im
         Folgenden gesagte für alle Vorlagenarten.</para>
 
         <para>Insgesamt sind technisch gesehen eine ganze Menge mehr Variablen
@@ -4787,11 +4937,11 @@ systemctl enable kivitendo-task-server.service</programlisting>
               <term><varname>rounding</varname></term>
 
               <listitem>
-                <para>Betrag, um den <varname>invtotal</varname> gerundet wurde 
+                <para>Betrag, um den <varname>invtotal</varname> gerundet wurde
                 (kann positiv oder negativ sein)</para>
               </listitem>
             </varlistentry>
-            
+
             <varlistentry>
               <term><varname>shippingpoint</varname></term>
 
@@ -5263,13 +5413,18 @@ systemctl enable kivitendo-task-server.service</programlisting>
         <sect3 id="dokumentenvorlagen-und-variablen.dunning-allgemein">
           <title>Allgemeine Variablen in Mahnungen</title>
 
-          <para>Die Variablen des Verkäufers stehen wie gewohnt als
-          <varname>employee_...</varname> zur Verfügung. Die Adressdaten des
-          Kunden stehen als Variablen <varname>name</varname>,
+          <para>Die Variablen des Bearbeiters, bzw. Verkäufers stehen wie gewohnt als
+          <varname>employee_...</varname> bzw. <varname>salesman_...</varname> zur Verfügung.
+          Werden mehrere Rechnungen in einer Mahnung zusammengefasst, so werden
+          die Metadaten (Bearbeiter, Abteilung, etc) der ersten angemahnten Rechnung
+          im Ausdruck genommen.</para>
+          <para>Die Adressdaten des Kunden stehen als Variablen <varname>name</varname>,
           <varname>street</varname>, <varname>zipcode</varname>,
           <varname>city</varname>, <varname>country</varname>,
           <varname>department_1</varname>, <varname>department_2</varname>,
-          und <varname>email</varname> zur Verfügung.</para>
+          und <varname>email</varname> zur Verfügung. Der Ansprechpartner <varname>cp_...</varname>
+          steht auch zu Verfügung, wird allerdings auch nur von der ersten angemahnten Rechnung (s.o.)
+          genommen.</para>
 
           <para>Weitere Variablen beinhalten:</para>
 
@@ -6131,16 +6286,14 @@ Beschreibung: &lt;%description%&gt;
 
       <title>Mandantenkonfiguration Lager</title>
 
-       Die Lagerverwaltung in kivitendo funktioniert standardmässig wie folgt: 
-       Wird ein Lager mit einem Lagerplatz angelegt, so gibt es die Möglichkeit 
-       hier über den Menüpunkt Lager entsprechende Warenbewegungen durchzuführen. 
-       Ferner kann jede Position eines Lieferscheins ein-, bzw. ausgelagert werden 
-       (Einkauf-, bzw. Verkauf). Es können beliebig viele Lager mit beliebig vielen 
-       Lagerplätzen abgebildet werden. Die Lagerbewegungen über einen Lieferschein 
-       erfolgt durch Anklicken jeder Einzelposition und das Auswählen dieser Position 
-       zu einem Lager mit Lagerplatz. Dieses Verfahren lässt sich schrittweise 
-       vereinfachen, je nachdem wie die Einstellungen in der Mandatenkonfiguration 
-       gesetzt werden.
+      <para>
+       Die Lagerverwaltung in kivitendo funktioniert standardmässig wie folgt: Wird ein Lager mit einem Lagerplatz angelegt, so gibt es die
+       Möglichkeit hier über den Menüpunkt Lager entsprechende Warenbewegungen durchzuführen.  Ferner kann jede Position eines Lieferscheins
+       ein-, bzw. ausgelagert werden (Einkauf-, bzw. Verkauf). Es können beliebig viele Lager mit beliebig vielen Lagerplätzen abgebildet
+       werden. Die Lagerbewegungen über einen Lieferschein erfolgt durch Anklicken jeder Einzelposition und das Auswählen dieser Position zu
+       einem Lager mit Lagerplatz. Dieses Verfahren lässt sich schrittweise vereinfachen, je nachdem wie die Einstellungen in der
+       Mandatenkonfiguration gesetzt werden.
+      </para>
 
       <itemizedlist>
         <listitem>
@@ -6160,7 +6313,9 @@ Beschreibung: &lt;%description%&gt;
         </listitem>
       </itemizedlist>
 
+      <para>
        Zusätzliche Funktionshinweise:
+      </para>
 
       <itemizedlist>
         <listitem>
@@ -6180,34 +6335,378 @@ Beschreibung: &lt;%description%&gt;
 
 
     </sect1>
-    
+
     <sect1 id="features.swiss-charts-of-accounts">
          <title>Schweizer Kontenpläne</title>
-         
-         <para>Seit der Version 3.4.1 stehen in kivitendo 2 Kontenpläne für 
-         den Einsatz in der Schweiz zur Verfügung, einer für Firmen und 
-         Organisationen, die nicht mehrwertsteuerpflichtig sind, und einer 
-         für Firmen, die mehrwertsteuerpflichtig sind.</para>
-         
-         <para>Die Kontenpläne orientieren sich am in der Schweiz üblicherweise 
-         verwendeten KMU-Kontenrahmen und sind mit der Revision des Schweizerischen 
-         Obligationenrechts (OR) vom 1.1.2013 kompatibel, insbesondere 
+
+         <para>Seit der Version 3.5 stehen in kivitendo 3 Kontenpläne für
+         den Einsatz in der Schweiz zur Verfügung, einer für Firmen und
+         Organisationen, die nicht mehrwertsteuerpflichtig sind, einer
+         für Firmen, die mehrwertsteuerpflichtig sind und einer speziell
+          für Vereine.</para>
+
+         <para>Die Kontenpläne orientieren sich am in der Schweiz üblicherweise
+         verwendeten KMU-Kontenrahmen und sind mit der Revision des Schweizerischen
+         Obligationenrechts (OR) vom 1.1.2013 kompatibel, insbesondere
          <literal>Art.957a Abs.2</literal>.</para>
-         
-         <para>Die Möglichkeit, Saldosteuersätze zu verwenden ist in der aktuellen 
+
+          <para>Beim Vereinskontenplan sind standardmässig nur die Konten 1100
+          (Debitoren CHF) und 1101 (Debitoren EUR) als Buchungskonten im Verkauf
+          sowie die Konten 2000 (Kreditoren CHF) und 2001 (Kreditoren EUR) als
+          Buchungskonten im Einkauf vorgesehen. Weitere Konten können bei Bedarf
+          in den Konto-Detaileinstellungen als Einkaufs- oder Verkaufskonten
+          konfiguriert werden.</para>
+
+         <para>Die Möglichkeit, Saldosteuersätze zu verwenden ist in der aktuellen
          Version von kivitendo noch nicht integriert.</para>
-         
-         <para>Trotzdem können auch Firmen, die per Saldosteuersatz mit der 
-         Eidgenössischen Steuerverwaltung abrechnen, kivitendo bereits nutzen. 
-         Dazu wird der Kontenplan mit MWST ausgewählt. Anschliessend müssen 
-         alle Aufwandskonten editiert werden und dort der Steuersatz auf 0% 
+
+         <para>Trotzdem können auch Firmen, die per Saldosteuersatz mit der
+         Eidgenössischen Steuerverwaltung abrechnen, kivitendo bereits nutzen.
+         Dazu wird der Kontenplan mit MWST ausgewählt. Anschliessend müssen
+         alle Aufwandskonten editiert werden und dort der Steuersatz auf 0%
          gesetzt werden.</para>
-         
+
          <para>So werden bei Kreditorenbuchungen keine Vorsteuern verbucht.</para>
-         
-         <para>Wünsche für Anpassungen an den Schweizer Kontenplänen sowie 
-         Vorschläge für weitere (z.B. branchenspezifische) Kontenpläne 
-         bitte an <literal>empfang@revamp-it.ch</literal> senden.</para>    
+
+          <para>Bezugssteuern für aus dem Ausland bezogene Dienstleistungen müssen
+          manuell verbucht werden.</para>
+
+         <para>Wünsche für Anpassungen an den Schweizer Kontenplänen sowie
+         Vorschläge für weitere (z.B. branchenspezifische) Kontenpläne
+         bitte an <literal>empfang@revamp-it.ch</literal> senden.</para>
+    </sect1>
+
+    <sect1 id="features.part_classification">
+      <title>Artikelklassifizierung</title>
+
+      <sect2>
+        <title>Übersicht</title>
+
+        <para>Die Klassifizierung von Artikeln dient einer weiteren Gliederung,
+        um zum Beispiel den Einkauf vom Verkauf zu trennen, gekennzeichnet
+        durch eine Beschreibung (z.B. "Einkauf") und ein Kürzel (z.B. "E").
+        Für jede Klassifizierung besteht eine Beschreibung und eine Abkürzung
+        die normalerweise aus einem Zeichen besteht, kann aber auf mehrere
+        Zeichen erweitert werden, falls zur Unterscheidung notwendig. Sinnvoll
+        sind jedoch nur maximal 2 Zeichen.</para>
+      </sect2>
+
+      <sect2>
+        <title>Basisklassifizierung</title>
+
+        <para>Als Basisklassifizierungen gibt es</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Einkauf</para>
+          </listitem>
+
+          <listitem>
+            <para>Verkauf</para>
+          </listitem>
+
+          <listitem>
+            <para>Handelsware</para>
+          </listitem>
+
+          <listitem>
+            <para>Produktion</para>
+          </listitem>
+
+          <listitem>
+            <para>- keine - (diese wird bei einer Aktualisierung für alle
+            existierenden Artikel verwendet und ist gültig für Verkauf und
+            Einkauf)</para>
+          </listitem>
+        </itemizedlist>
+
+        <para>Es können weitere Klassifizierungen angelegt werden. So kann es
+        z.B. für separat auszuweisende Artikel folgende Klassen geben:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>Lieferung (Logistik, Transport) mit Kürzel L</para>
+          </listitem>
+
+          <listitem>
+            <para>Material (Verpackungsmaterial) mit Kürzel M</para>
+          </listitem>
+        </itemizedlist>
+      </sect2>
+
+      <sect2>
+        <title>Attribute</title>
+
+        <para>Bisher haben die Klassifizierungen folgende Attribute, die auch
+        alle gleichzeitg gültig sein können</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>gültig für Verkauf - dieser Artikel kann im Verkauf genutzt
+            werden</para>
+          </listitem>
+
+          <listitem>
+            <para>gültig für Einkauf - dieser Artikel kann im Einkauf genutzt
+            werden</para>
+          </listitem>
+
+          <listitem>
+            <para>separat ausweisen - hierzu gibt es zur Dokumentengenerierung
+            (LaTeX) eine zusätzliche Variable</para>
+          </listitem>
+        </itemizedlist>
+
+        <para>Für das Attribut "separat ausweisen" stehen in den LaTeX-Vorlagen
+        die Variable <emphasis role="bold">&lt;%non_separate_subtotal%&gt;
+        </emphasis>zur Verfügung, die alle nicht separat auszuweisenden
+        Artikelkosten saldiert, sowie pro separat auszuweisenden
+        Klassifizierungen die Variable<emphasis role="bold">&lt;
+        %separate_X_subtotal%&gt;</emphasis>, wobei X das Kürzel der
+        Klassifizierung ist.</para>
+
+        <para>Im obigen Beispiel wäre das für Lieferkosten <emphasis
+        role="bold">&lt;%separate_L_subtotal%&gt;</emphasis> und für
+        Verpackungsmaterial <emphasis role="bold">
+        &lt;%separate_M_subtotal%&gt;</emphasis>.</para>
+      </sect2>
+
+      <sect2>
+        <title>Zwei-Zeichen Abkürzung</title>
+
+        <para>Der Typ des Artikels und die Klassifizierung werden durch zwei
+        Buchstaben dargestellt. Der erste Buchstabe ist eine Lokalisierung des
+        Artikel-Typs ('P','A','S'), deutsch 'W', 'E', und 'D' für Ware
+        Erzeugnis oder Dienstleistung und ggf. weiterer Typen.</para>
+
+        <para>Der zweite Buchstabe (und ggf. auch ein dritter, falls nötig)
+        entspricht der lokalisierten Abkürzung der Klassifizierung.</para>
+
+        <para>Diese Abkürzung wird überall beim Auflisten von Artikeln zur
+        Erleichterung mit dargestellt.</para>
+      </sect2>
+    </sect1>
+
+    <sect1 id="features.file_managment">
+      <title>Dateiverwaltung (Mini-DMS)</title>
+
+      <sect2>
+        <title>Übersicht</title>
+        <para>Parallel zum alten WebDAV gibt es ein Datei-Management-System, das Dateien
+        verschiedenen Typs verwaltet. Dies können</para>
+        <orderedlist>
+          <listitem>
+            <para>aus ERP-Daten per LaTeX Template erzeugte PDF-Dokumente,</para>
+          </listitem>
+          <listitem>
+            <para>zu bestimmten ERP-Daten gehörende Anhangdateien unterschiedlichen Formats,</para>
+          </listitem>
+          <listitem>
+            <para>per Scanner eingelesene PDF-Dateien,</para>
+          </listitem>
+          <listitem>
+            <para>per E-Mail empfangene Dateianhänge unterschiedlichen Formats,</para>
+          </listitem>
+          <listitem>
+            <para>sowie speziel für Artikel hochgeladene Bilder sein.</para>
+          </listitem>
+        </orderedlist>
+        <screenshot>
+          <screeninfo>Übersicht</screeninfo>
+          <mediaobject>
+            <imageobject>
+              <imagedata contentwidth="600" fileref="images/DMS-Overview.png"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+      </sect2>
+
+      <sect2>
+        <title>Struktur</title>
+
+      <para>Über eine vom Speichermedium unabhängige Zwischenschicht werden die Dateien und ihre Versionen in der Datenbank verwaltet. Darunter können verschiedene Implementierungen (Backends) gleichzeitig existieren:
+      </para>
+        <itemizedlist>
+          <listitem>
+            <para>Dateisystem</para>
+          </listitem>
+          <listitem>
+            <para>WebDAV</para>
+          </listitem>
+          <listitem>
+            <para>Schnittstelle zu externen Dokumenten-Management-Systemen</para>
+          </listitem>
+          <listitem>
+            <para>andere Datenbank</para>
+          </listitem>
+          <listitem>
+            <para>etc ...</para>
+          </listitem>
+        </itemizedlist>
+        <para>Es gibt unterschiedliche Typen von Dateien. Jedem Typ läßt sich in der
+              Mandantenkonfiguration ein bestimmtes Backend zuordnen.
+        </para>
+        <itemizedlist>
+          <listitem>
+            <para>"document": Das sind entweder generierte, eingescannte oder hochgeladene PDF-Dateien,
+                  die zu bestimmten ERP-Daten (ERP-Objekte, wie z.B. Rechnung, Lieferschein) gehören.</para>
+          </listitem>
+          <listitem>
+            <para>"attachment": zusätzlich hochgeladene Dokumente, die an bestimmte ERP-Objekte angehängt werden,
+            z.B. technische Zeichnungen, Aufmaße. Diese können auch für Artikel,
+            Lieferanten und Kunden hinterlegt sein.</para>
+          </listitem>
+          <listitem>
+            <para>"image": Bilder für Artikel. Diese können auch verkleinert in einer Vorschau (Thumbnail)
+            angezeigt werden.</para>
+          </listitem>
+        </itemizedlist>
+        <para>Zusätzlich werden in der Datenbank zu den Dateien neben der Zuordnung zu ERP-Objekten, Dateityp
+        Dateinamen und Backend, in dem die Datei gespeichert ist, auch die Quelle der Datei notiert:
+        </para>
+        <itemizedlist>
+          <listitem>
+            <para> "created": vom System erzeugte Dokumente"</para>
+          </listitem>
+          <listitem>
+            <para> "uploaded": hochgeladene Dokumente</para>
+          </listitem>
+          <listitem>
+            <para> "email": vom Mail-System empfangene Dateien</para>
+          </listitem>
+          <listitem>
+            <para> "scanner[1]": von einem oder mehreren Scannern erzeugte Dateien. Existieren mehrere Scanner,
+            so sind diese durch unterschiedliche Quellennamen zu definieren.</para>
+          </listitem>
+        </itemizedlist>
+        <para>Je nach Dateityp sind nur bestimmte Quellen zulässig. So gibt es für "attachment" und "image" nur
+        die Quelle "uploaded". Für "document" gibt es auf jeden Fall die Quelle "created".
+        Die Quellen "scanner" und "email" müssen derzeit in der Datenbank konfiguriert werden
+        (siehe <xref linkend="file_management.dbconfig"/>).</para>
+      </sect2>
+
+      <sect2>
+        <title>Anwendung</title>
+        <para>Die Daten werden bei den ERP-Objekten als extra Reiter dargestellt.
+        Eine Verkaufsrechnung z.B. hat die
+        Reiter "Dokumente" und "Dateianhänge".</para>
+        <screenshot>
+          <screeninfo>Reiter "Dateianhänge"</screeninfo>
+          <mediaobject>
+            <imageobject>
+              <imagedata scale="50" fileref="images/DMS-Anhaenge.png"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+        <para>Bei den Dateianhängen wird immer nur die aktuelle Version einer Datei angezeigt.
+        Wird eine Datei mit gleichem Namen hochgeladen, so wird eine neue Version der Datei erstellt.
+        Vorher wird der Anwender durch einen Dialog gefragt, ob er eine neue Version anlegen will oder
+        ob er die Datei umbenennen will, falls es eine neue Datei sein soll.</para>
+        <screenshot>
+          <screeninfo>Reiter "Dateianhänge"</screeninfo>
+          <mediaobject>
+            <imageobject>
+              <imagedata width="100" contentwidth="40" fileref="images/DMS-Anhaenge-hochladen.png"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+        <para>Es können mehrere Dateien gleichzeitig hochgeladen werden,
+        solange in Summe die maximale Größe nicht überschritten wird
+        (siehe <xref linkend="file_management.clientconfig"/>).</para>
+        <screenshot>
+          <screeninfo>Reiter "Dokumente"</screeninfo>
+          <mediaobject>
+            <imageobject>
+              <imagedata  width="500" fileref="images/DMS-Dokumente.png"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+        <para>Sind keine weiteren Quellen für Dokumente konfiguriert, so gibt es nur "erzeugte Dokumente".
+        Es werden alle Versionen der generierten Datei angezeigt. Für Verkaufsrechnungen kommen keine
+        anderen Quellen zur Geltung. Werden entsprechend der
+        <xref linkend="file_management.dbconfig"/> zusätzliche Quellen konfiguriert, so sind diese z.B. bei
+        Einkaufsrechnungen sichtbar:</para>
+        <screenshot>
+          <screeninfo>Reiter "Dokumente"</screeninfo>
+          <mediaobject>
+            <imageobject>
+              <imagedata  contentwidth="600" fileref="images/DMS-Dokumente-Scanner.png"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+        <para>Statt des Löschens wird hier die Datei zurück zur Quelle verschoben. Somit kann die Datei anschließend
+        an ein anderes ERP-Objekt angehängt werden.</para>
+        <para>Derzeit sind "Titel" und "Beschreibung" noch nicht genutzt. Sie sind bisher nur bei Bildern relevant.</para>
+      </sect2>
+
+      <sect2>
+        <title>Konfigurierung</title>
+        <sect3 id="file_management.clientconfig" xreflabel="Mandantenkonfigurierung">
+          <title>Mandantenkonfiguration</title>
+          <sect4>
+            <title>Reiter "Features"</title>
+            <para>Unter dem Reiter <emphasis role="bold">Features</emphasis> im Abschnitt Dateimanagement ist
+            neben dem "alten" WebDAV das Dateimangement generell zu- und abschaltbar, sowie die Zuordnung der
+          Dateitypen zu Backends. Die Löschbarkeit von Dateien, sowie die maximale Uploadgröße sind Backend-unabhängig</para>
+        <screenshot>
+          <screeninfo>Mandantenkonfig Reiter "Features"</screeninfo>
+          <mediaobject>
+            <imageobject>
+              <imagedata  width="500" fileref="images/DMS-ClientConfig.png"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+        <para>Die einzelnen Backends sind einzeln einschaltbar. Spezifische Backend-Konfigurierungen sind hier
+        noch ergänzbar.</para>
+        </sect4>
+          <sect4>
+            <title>Reiter "Allgemeine Dokumentenanhänge"</title>
+            <para>Unter dem Reiter <emphasis role="bold">Allgemeine Dokumentenanhänge</emphasis>
+            kann für alle ERP-Dokumente ( Angebote, Aufträge, Lieferscheine, Rechnungen im Verkauf und Einkauf )
+            allgemeingültige Anhänge hochgeladen werden.</para>
+        <screenshot>
+          <screeninfo>Mandantenkonfig Reiter "Allgemeine Dokumentenanhänge"</screeninfo>
+          <mediaobject>
+            <imageobject>
+              <imagedata  width="500" fileref="images/DMS-Allgemeine-Dokumentenanhaenge.png"/>
+            </imageobject>
+          </mediaobject>
+        </screenshot>
+        <para>Diese Anhänge werden beim Generieren von PDF-Dateien an die ERP-Dokumente angehängt,
+        z.B. AGBs oder aktuelle Angebote. Es werden in dem Fall die Daten kopiert, sodass an den ERP-Dokumenten immer
+        die Anhänge zum Generierungszeitpunkt eingebettet sind.
+        </para>
+        </sect4>
+        </sect3>
+        <sect3 id="file_management.dbconfig" xreflabel="Datenbank-Konfigurierung">
+          <title>Datenbank-Konfigurierung</title>
+          <para>Die zusätzlichen Quellen für "email" oder ein oder mehrere Scanner sind derzeit vom Administrator
+          direkt in der Datenbanktabelle "user_preferences" einzurichten. Die "value" ist im JSON-Format
+          mit den jeweiligen Werten des Verzeichnisses und der Beschreibung der Quelle.</para>
+          <programlisting>
+ id |  login    |  namespace   | version |   key    |          value
+----+-----------+--------------+---------+----------+---------------------------
+  1 | #default# | file_sources | 0.00000 | scanner1 |
+                             {"dir":"/var/tmp/scanner1","desc":"Scanner Einkauf"}
+  2 | #default# | file_sources | 0.00000 | scanner2 |
+                             {"dir":"/var/tmp/scanner2","desc":"Scanner Verkauf"}
+  3 | #default# | file_sources | 0.00000 | emails   |
+                             {"dir":"/var/tmp/emails","desc":"Empfangene Mails" }
+          </programlisting>
+          <para>Es ist daran gedacht, statt dem Default-Eintrag später für bestimmte Benutzer ('login') bestimmte Quellen zuzulassen.
+          Dies wird nach Bedarf implementiert.</para>
+        </sect3>
+        <sect3 id="file_management.kiviconfig" xreflabel="kivitendo-Konfigurationsdatei">
+          <title>kivitendo-Konfigurationsdatei</title>
+          <para>Dort ist im Abschnitt [paths] der relative oder absolute Pfad zum Dokumentenwurzelverzeichnis einzutragen.
+          Dieser muss für den Webserver schreib- und lesbar sein, jedoch nicht ausführbar.</para>
+          <programlisting>
+[paths]
+document_path = /var/local/kivi_documents
+          </programlisting>
+          <para>Unter diesem Wurzelverzeichnis wird pro Mandant automatisch ein Unterverzeichnis mit der ID des Mandanten angelegt.</para>
+        </sect3>
+     </sect2>
     </sect1>
   </chapter>
 
@@ -6491,8 +6990,7 @@ Beschreibung: &lt;%description%&gt;
             </listitem>
 
             <listitem>
-              <para>Enthält unter anderem Listenbegrenzung vclimit,
-              Datumsformat dateformat und Nummernformat numberformat</para>
+              <para>Enthält unter anderem Datumsformat dateformat und Nummernformat numberformat</para>
             </listitem>
 
             <listitem>
@@ -7479,6 +7977,16 @@ $self-&gt;{more_texts} = {
             <literal>perl-URI-Find</literal>; openSUSE:
             <literal>perl-URI-Find</literal>)</para>
           </listitem>
+
+          <listitem>
+            <para><literal>Sys::CPU</literal> (Debian-Panetname: <literal>libsys-cpu-perl</literal>; Fedora und openSUSE: nicht
+            vorhanden)</para>
+          </listitem>
+
+          <listitem>
+            <para><literal>Thread::Pool::Simple</literal> (Debian-Panetname: <literal>libthread-pool-simple-perl</literal>; Fedora und
+            openSUSE: nicht vorhanden)</para>
+          </listitem>
         </itemizedlist>
 
         <para>Weitere Voraussetzung ist, dass die Testsuite ihre eigene
@@ -7658,7 +8166,7 @@ Support::TestSetup::login();</programlisting>
           sein. Dieser wird für die Datenbankverbindung benötigt.</para>
 
           <para>Wir keine vollständig initialisierte Umgebung benötigt, so
-          kann die letzte Zeile <code>Support::TestSetup::login();</code>
+          kann die letzte Zeile <programlisting>Support::TestSetup::login();</programlisting>
           weggelassen werden, was die Ausführungszeit des Scripts leicht
           verringert.</para>
         </sect3>