Doku-Update: Hinweis auf github
[kivitendo-erp.git] / doc / dokumentation.xml
index 3635f62..8349870 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.0.0: Installation, Konfiguration, Entwicklung</title>
+  <title>kivitendo 3.1.0: Installation, Konfiguration, Entwicklung</title>
 
   <chapter id="Aktuelle-Hinweise">
     <title>Aktuelle Hinweise</title>
         <para>im kivitendo-Forum: <ulink
         url="https://forum.kivitendo.org/">https://forum.kivitendo.org/</ulink></para>
       </listitem>
+      <listitem>
+        <para>in der doc/UPGRADE Datei im doc-Verzeichnis der Installation</para>
+      </listitem>
+      <listitem>
+        <para>Im Schulungs- und Dienstleistungsangebot der entsprechenden kivitendo-Partner: <ulink
+        url="http://www.kivitendo.de/partner.html">http://www.kivitendo.de/partner.html</ulink></para>
+      </listitem>
     </itemizedlist>
   </chapter>
 
@@ -53,7 +60,7 @@
       </orderedlist>
 
       <para>
-        Alle weiteren Unterkapitel in diesem Kapitel sind ebenfalls wichtig und dienen sollten vor einer ernsthaften Inbetriebnahme gelesen
+        Alle weiteren Unterkapitel in diesem Kapitel sind ebenfalls wichtig und sollten vor einer ernsthaften Inbetriebnahme gelesen
         werden.
       </para>
     </sect1>
@@ -71,7 +78,7 @@
         ohne große Probleme auf den derzeit aktuellen verbreiteten
         Distributionen läuft.</para>
 
-        <para>Mitte 2012 sind das folgende Systeme, von denen bekannt ist,
+        <para>Anfang 2014 sind das folgende Systeme, von denen bekannt ist,
         dass kivitendo auf ihnen läuft:</para>
 
         <itemizedlist>
@@ -80,7 +87,7 @@
             <para>Debian</para>
             <itemizedlist>
                <listitem>
-                 <para>6.0 "Squeeze" (hier muss allerdings das Modul FCGI in der Version >= 0.72 compiled werden)</para>
+                 <para>6.0 "Squeeze" (hier muss allerdings das Modul FCGI in der Version >= 0.72 compiled werden, und <literal>Rose::DB::Object</literal> ist zu alt)</para>
                </listitem>
                <listitem>
                  <para>7.0 "Wheezy"</para>
           </listitem>
 
           <listitem>
-            <para>Ubuntu 10.04 LTS "Lucid Lynx", 12.04 LTS "Precise Pangolin" und 12.10 "Oneiric Ocelot"`</para>
+            <para>Ubuntu 12.04 LTS "Precise Pangolin", 12.10 "Quantal Quetzal", 13.04 "Precise Pangolin" und 14.04 "Trusty Tahr" LTS Alpha</para>
           </listitem>
 
           <listitem>
-            <para>openSUSE 12.1 und 12.2</para>
+            <para>openSUSE 12.2, 12.3 und 13.1</para>
           </listitem>
 
           <listitem>
           </listitem>
 
           <listitem>
-            <para>Fedora 16 und 17</para>
+            <para>Fedora 16 bis 19</para>
           </listitem>
         </itemizedlist>
       </sect2>
         <title>Benötigte Perl-Pakete installieren</title>
 
         <para>Zum Betrieb von kivitendo werden zwingend ein Webserver (meist
-        Apache) und ein Datenbankserver (PostgreSQL, mindestens v8.2)
+        Apache) und ein Datenbankserver (PostgreSQL, mindestens v8.4)
         benötigt.</para>
 
         <para>Zusätzlich benötigt kivitendo einige Perl-Pakete, die nicht Bestandteil einer Standard-Perl-Installation sind. Um zu
 
           <listitem><para><literal>Rose::DB</literal></para></listitem>
 
-          <listitem><para><literal>Rose::DB::Object</literal></para></listitem>
+          <listitem><para><literal>Rose::DB::Object</literal> Version 0.788 oder neuer</para></listitem>
 
           <listitem><para><literal>Template</literal></para></listitem>
 
           <listitem><para><literal>YAML</literal></para></listitem>
         </itemizedlist>
 
+        <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>,
         <literal>Net::SSLGlue</literal>.</para>
 
@@ -261,12 +270,13 @@ cpan Rose::Db::Object</programlisting>
     <sect1 id="Manuelle-Installation-des-Programmpaketes"
            xreflabel="Manuelle Installation des Programmpaketes">
       <title>Manuelle Installation des Programmpaketes</title>
-
-      <para>Die kivitendo ERP Installationsdatei (<filename>kivitendo-erp-3.0.0.tgz</filename>) wird im Dokumentenverzeichnis des Webservers
+      <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
       (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.0.0.tgz</programlisting>
+tar xvzf kivitendo-erp-3.1.0.tgz</programlisting>
 
       <para>Wechseln Sie in das entpackte Verzeichnis:</para>
 
@@ -349,15 +359,14 @@ tar xvzf kivitendo-erp-3.0.0.tgz</programlisting>
 
           <listitem><para><literal>system</literal></para></listitem>
 
-          <listitem><para><literal>features</literal> (siehe Kapitel "<xref linkend="features"/>")</para></listitem>
-
           <listitem><para><literal>paths</literal></para></listitem>
 
+          <listitem><para><literal>mail_delivery</literal> (siehe Abschnitt "<xref linkend="config.sending-email.smtp"/>)</para></listitem>
+
           <listitem><para><literal>applications</literal></para></listitem>
 
           <listitem><para><literal>environment</literal></para></listitem>
 
-          <listitem><para><literal>mail_delivery</literal> (siehe Abschnitt "<xref linkend="config.sending-email.smtp"/>)</para></listitem>
 
           <listitem><para><literal>print_templates</literal></para></listitem>
 
@@ -365,8 +374,14 @@ tar xvzf kivitendo-erp-3.0.0.tgz</programlisting>
 
           <listitem><para><literal>periodic_invoices</literal></para></listitem>
 
+          <listitem><para><literal>self_tests</literal></para></listitem>
+
           <listitem><para><literal>console</literal></para></listitem>
 
+          <listitem><para><literal>testing</literal></para></listitem>
+
+          <listitem><para><literal>testing/database</literal></para></listitem>
+
           <listitem><para><literal>debug</literal></para></listitem>
         </itemizedlist>
 
@@ -439,10 +454,10 @@ exit </programlisting>
 
         <para>Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
         Unicode-Encoding anzulegen und diesen zu verwenden. Unter Debian und
-        Ubuntu kann dies z.B. für PostgreSQL 8.2 mit dem folgenden Befehl
+        Ubuntu kann dies z.B. für PostgreSQL 9.3 mit dem folgenden Befehl
         getan werden:</para>
 
-        <programlisting>pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2 clustername</programlisting>
+        <programlisting>pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 9.3 clustername</programlisting>
 
         <para>Die Datenbankversionsnummer muss an die tatsächlich verwendete
         Versionsnummer angepasst werden.</para>
@@ -470,7 +485,7 @@ exit </programlisting>
         <para>In der Datei <filename>pg_hba.conf</filename>, die im gleichen
         Verzeichnis wie die <filename>postgresql.conf</filename> zu finden
         sein sollte, müssen die Berichtigungen für den Zugriff geändert
-       werden. Hier gibt es mehrere Möglichkeiten. sinnvoll ist es nur die
+       werden. Hier gibt es mehrere Möglichkeiten. Sinnvoll ist es nur die
        nögiten Verbindungen immer zuzulassen, für eine lokal laufenden
        Datenbank zum Beispiel:</para>
 
@@ -608,7 +623,7 @@ Alias /kivitendo-erp/ /var/www/kivitendo-erp/
             </listitem>
 
             <listitem>
-              <para>Apache 2.2.11 (Ubuntu) und mod_fastcgi.</para>
+              <para>Apache 2.2.11 / 2.2.22 (Ubuntu) und mod_fastcgi.</para>
             </listitem>
           </itemizedlist>
 
@@ -1168,8 +1183,8 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
         Authentifizierungsdatenbank gespeichert. Dies ist diejenige Datenbank, deren Verbindungsparameter in der Konfigurationsdatei
         <filename>config/kivitendo.conf</filename> gespeichert werden.</para>
 
-        <para>Das zweite Set besteht aus den eigentlichen Verkehrsdaten eines Mandanten: Stammdaten (Kunden, Lieferanten, Waren), Belege
-        (Angebote, Liferscheine, Rechnungen), Einstellungen. Diese werden in einer Mandantendatenbank gespeichert. Die
+        <para>Das zweite Set besteht aus den eigentlichen Verkehrsdaten eines Mandanten, wie beispielsweise die Stammdaten (Kunden, Lieferanten, Waren) und Belege
+        (Angebote, Lieferscheine, Rechnungen). Diese werden in einer Mandantendatenbank gespeichert. Die
         Verbindungsinformationen einer solchen Mandantendatenbank werden im Administrationsbereich konfiguriert, indem man einen Mandanten
         anlegt und dort die Parameter einträgt. Dabei hat jeder Mandant eine eigene Datenbank.</para>
 
@@ -1177,16 +1192,7 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
         Mandantendatenbanken in ein und derselben Datenbank zu speichern. Arbeitet man hingegen mit mehr als einem Mandanten, wird
         empfohlen, für die Authentifizierungsdatenbank eine eigene Datenbank zu verwenden, die nicht gleichzeitig für einen Mandanten
         verwendet wird.</para>
-
-        <para>kivitendo verwendet eine Datenbank zum Speichern all seiner
-        Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um
-        mit kivitendo arbeiten zu können, muss eine Person einen
-        Benutzeraccount haben. Jedem Benutzeraccount wiederum wird genau eine
-        Datenbank zugewiesen, mit der dieser Benutzer arbeiten kann. Es ist
-        möglich und normal, dass mehreren Benutzern die selbe Datenbank
-        zugewiesen wird, sodass sie alle mit den selben Daten arbeiten
-        können.</para>
-      </sect2>
+     </sect2>
 
       <sect2 id="Mandanten-Benutzer-Gruppen">
         <title>Mandanten, Benutzer und Gruppen</title>
@@ -1286,6 +1292,28 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
         C gültig").</para>
       </sect2>
     </sect1>
+    <sect1 id="Drucker--Systemverwaltung">
+      <title>Drucker- und Systemverwaltung</title>
+      <para>Im Administrationsmenü gibt es ferner noch die beiden Menüpunkte Druckeradministration und System.</para>
+      <sect2 id="Druckeradministration">
+        <title>Druckeradministration</title>
+      <para>Unter dem Menüpunkt Druckeradministration lassen sich beliebig viele "Druckbefehle" im System verwalten. Diese Befehle werden mandantenweise
+      zugeordnet. Unter Druckerbeschreibung wird der Namen des Druckbefehls festgelegt, der dann in der Druckerauswahl des Belegs angezeigt wird.</para>
+      <para>Unter Druckbefehl definiert man den eigentlichen Druckbefehl, der direkt auf dem Webserver ausgeführt wird, bspw. 'lpr -P meinDrucker' oder ein
+      kompletter Pfad zu einem Skript (/usr/local/src/kivitendo/scripts/pdf_druck_in_verzeichnis.sh).
+      Wird ferner noch ein optionales Vorlagenkürzel verwendet, wird dieses Kürzel bei der Auswahl der Druckvorlagendatei mit einem Unterstrich ergänzt, ist
+      bspw. das Kürzel 'epson_drucker' definiert, so wird beim Ausdruck eines Angebots folgende Vorlage geparst: sales_quotation_epson_drucker.tex.</para>
+     </sect2>
+      <sect2 id="System">
+        <title>System sperren / entsperren</title>
+
+        <para>Unter dem Menüpunkt System gibt es den Eintrag 'Installation sperren/entsperren'. Setz man diese Sperre so ist der Zugang zu der gesamten kivitendo Installation gesperrt.</para>
+        <para>Falls die Sperre gesetzt ist, erscheint anstelle der Anmeldemaske die Information: 'kivitendo ist momentan zwecks Wartungsarbeiten nicht zugänglich.'.
+        </para>
+        <para>Wichtig zu erwähnen ist hierbei noch, dass sich kivitendo automatisch 'sperrt', falls es bei einem Versionsupdate zu einem Datenbankfehler kam. Somit kann hier nicht aus Versehen
+        mit einem inkonsistenten Datenbestand weitergearbeitet werden.</para>
+     </sect2>
+    </sect1>
 
     <sect1 id="config.sending-email" xreflabel="E-Mail-Versand aus kivitendo heraus">
       <title>E-Mail-Versand aus kivitendo heraus</title>
@@ -1393,24 +1421,30 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
 
       <sect2 id="Vorlagenverzeichnis-anlegen" xreflabel="Vorlagenverzeichnis anlegen">
         <title>Vorlagenverzeichnis anlegen</title>
-        <para>Im Administrationsbereich lässt sich bei einem Benutzer/Mandanten einer dieser Vorlagensätze als Basis für die zu
-        druckenden Dokumente auswählen. Rufen Sie dazu die <guimenu>Benutzerverwaltung</guimenu> auf.</para>
+        <para>Es lässt sich ein initialer Vorlagensatz erstellen. Die LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:</para>
 
-        <para>Wählen Sie dort einen Benutzer aus oder legen Sie einen neuen an. In der Benutzerbearbeiten-Maske müssen Sie zwei Dinge
-        angeben:</para>
+        <programlisting>./scripts/installation_check.pl -lv</programlisting>
+
+       <para>Der Angemmeldete Benutzer muss in einer Gruppe sein, die über das
+              Recht "Konfiguration -> Mandantenverwaltung" verfügt. Siehe auch <xref linkend="Gruppen-anlegen"/>.
+        </para>
+        <para>Im Userbereich lässt sich unter:
+        "<guimenu>System</guimenu> -&gt;
+        <guisubmenu>Mandantenverwaltung</guisubmenu> -&gt; <guimenuitem>Verschiedenes</guimenuitem>" die Option
+        "Neue Druckvorlagen aus Vorlagensatz erstellen" auswählen.</para>
 
         <orderedlist>
-          <listitem><para><option>Name</option>: Der Verzeichnisname für den neuen Vorlagensatz. Dieser kann im Rahmen der üblichen
-          Bedingungen für Verzeichnisnamen frei gewählt werden.</para></listitem>
           <listitem><para><option>Vorlagen auswählen</option>: Wählen Sie hier den Vorlagensatz aus, der kopiert werden soll
           (<filename>Standard</filename>, <filename>f-tex</filename> oder <filename>RB</filename>.)</para></listitem>
+          <listitem><para><option>Neuer Name</option>: Der Verzeichnisname für den neuen Vorlagensatz. Dieser kann im Rahmen der üblichen
+          Bedingungen für Verzeichnisnamen frei gewählt werden.</para></listitem>
         </orderedlist>
 
-        <para>Der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Benutzern verwendet werden.</para>
-
-        <para>Die Abhängigkeiten kann man prüfen mit:</para>
+        <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
+           <filename>./templates/[Neuer Name]</filename></para>
 
-        <programlisting>/scripts/installation_check.pl -l</programlisting>
 
       </sect2>
       <sect2 id="Vorlagen-Standard">
@@ -1581,6 +1615,9 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
         <title>RB</title>
 
         <para>Vollständiger Dokumentensatz mit alternativem Design</para>
+        <para>Die konzeptionelle Idee wird <ulink
+          url="http://www.kivitendo-support.de/vortraege/Lx-Office%20Anwendertreffen%20LaTeX-Druckvorlagen-Teil3-finale.pdf">hier</ulink>
+          auf Folie 5 bis 10 vorgestellt, Detaileinstellungen dann im Readme.tex im Vorlagenverzeichnis.</para>
 
       </sect2>
 
@@ -1619,7 +1656,7 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
         <para>Wenn sich das Problem nicht auf Grund der ausgabe im Webbrowser verifizieren lässt:</para>
         <itemizedlist>
           <listitem>
-             <para> editiere [kivitendo-home]/config/kivitendo.conf und ändere "keep_tmp_files" auf 1</para>
+             <para> editiere [kivitendo-home]/config/kivitendo.conf und ändere "keep_temp_files" auf 1</para>
              <para><programlisting>keep_temp_files = 1;</programlisting></para>
           </listitem>
           <listitem>
@@ -1973,7 +2010,47 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
         </screenshot>
       </sect2>
     </sect1>
-
+    <sect1 id="bilanz">
+     <title>Verhalten des Bilanzberichts</title>
+      <para>
+    Bis Version 3.0 wurde "closedto" ("Bücher schließen zum") als Grundlage für das
+    Startdatum benutzt. Schließt man die Bücher allerdings monatsweise führt dies
+    zu falschen Werten.</para>
+    <para>In der Mandantenkonfiguration kann man dieses Verhalten genau einstellen indem man:</para>
+  <itemizedlist>
+   <listitem>
+    <para>weiterhin closed_to benutzt (Default, es ändert sich nichts zu vorher)</para>
+  </listitem>
+   <listitem>
+    <para>immer den Jahresanfang nimmt (1.1. relativ zum Stichtag)</para>
+  </listitem>
+   <listitem>
+    <para>immer die letzte Eröffnungsbuchung als Startdatum nimmt</para>
+       <para>- mit Jahresanfang als Alternative wenn es keine EB-Buchungen gibt</para>
+      <para>- oder mit "alle Buchungen" als Alternative"</para>
+   </listitem>
+   <listitem>
+     <para>mit Jahresanfang als Alternative wenn es keine EB-Buchungen gibt </para>
+  </listitem>
+   <listitem>
+    <para>immer alle Buchungen seit Beginn der Datenbank nimmt</para>
+  </listitem>
+  </itemizedlist>
+   Folgende Hinweise zu den Optionen:
+    Das "Bücher schließen Datum" ist sinnvoll, wenn man nur komplette Jahre
+    schließt. Bei Wirtschaftsjahr = Kalendarjahr entspricht dies aber auch
+    Jahresanfang.
+    "Alle Buchungen" kann z.B. sinnvoll sein wenn man ohne Jahresabschluß
+    durchbucht.
+    Eröffnungsbuchung mit "alle Buchungen" als Fallback ist z.B. sinnvoll, wenn man
+    am sich Anfang des zweiten Buchungsjahres befindet, und noch keinen
+    Jahreswechsel und auch noch keine EB-Buchungen hat.
+    Bei 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.
+    </sect1>
     <sect1 id="config.client">
       <title>Einstellungen pro Mandant</title>
 
@@ -2249,8 +2326,7 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
         manuell über den Workflow.</para>
       </sect2>
     </sect1>
-
-    <sect1 id="dokumentenvorlagen-und-variablen">
+        <sect1 id="dokumentenvorlagen-und-variablen">
       <title>Dokumentenvorlagen und verfügbare Variablen</title>
 
       <sect2 id="dokumentenvorlagen-und-variablen.einführung">
@@ -3217,7 +3293,7 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
         </sect3>
 
         <sect3 id="dokumentenvorlagen-und-variablen.allgemein-verkaeufer">
-          <title>Informationen über den Bearbeiter</title>
+          <title>Informationen über den Verkäufer</title>
 
           <variablelist>
             <varlistentry>
@@ -3347,6 +3423,25 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
             </varlistentry>
           </variablelist>
         </sect3>
+
+        <sect3 id="dokumentenvorlagen-und-variablen.allgemein-lieferbedingungen">
+          <title>Variablen für Lieferbedingungen</title>
+
+          <variablelist>
+            <varlistentry>
+              <term><varname>delivery_term</varname></term>
+              <listitem><para>Datenbank-Objekt der Lieferbedingung</para></listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><varname>delivery_term.description</varname></term>
+              <listitem><para>Beschreibung der Lieferbedingung</para></listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><varname>delivery_term.long_description</varname></term>
+              <listitem><para>Langtext bzw. übersetzter Langtext der Lieferbedingung</para></listitem>
+            </varlistentry>
+          </variablelist>
+        </sect3>
       </sect2>
 
       <sect2 id="dokumentenvorlagen-und-variablen.invoice">
@@ -4776,6 +4871,41 @@ Beschreibung: &lt;%description%&gt;
         gewechselt.</para>
       </sect2>
     </sect1>
+    <sect1 id="features.warehouse">
+    <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.
+       <itemizedlist>
+          <listitem>
+            <para><option>Auslagern über Standardlagerplatz</option> Hier wird ein zusätzlicher Knopf (Auslagern über Standard-Lagerplatz)
+            in dem Lieferschein-Beleg hinzugefügt, der dann alle Lagerbewegungen über den Standardlagerplatz (konfigurierbar pro Ware) durchführt.
+            </para>
+          </listitem>
+          <listitem>
+            <para><option>Auslagern ohne Bestandsprüfung</option>Das obige Auslagern schlägt fehl, wenn die entsprechende Menge für
+            die Lagerbewegung nicht vorhanden ist, möchte man dies auch ignorieren und ggf. dann nachpflegen, so kann man eine Negativ-Warenmenge mit dieser Option
+            erlauben. Hierfür muss ein entsprechender Lagerplatz (Fehlbestand, o.ä.) konfiguriert sein.</para>
+          </listitem>
+       </itemizedlist>
+        Zusätzliche Funktionshinweise:
+         <itemizedlist>
+          <listitem><para><option>Standard-Lagerplatz</option>Ist dieser konfiguriert, wird dies auch als Standard-Voreinstellung bei der Neuerfassung von
+          Stammdaten-> Waren / Dienstleistung / Erzeugnis verwendet.
+          </para>
+          </listitem>
+          <listitem><para><option>Standard-Lagerplatz verwenden, falls keiner in Stammdaten definiert</option>Wird beim 'Auslagern über Standardlagerplatz'
+          keine Standardlagerplatz zu der Ware gefunden, so wird mit dieser Option einfach der Standardlagerplatz verwendet.
+          </para>
+          </listitem>
+       </itemizedlist>
+    </sect1>
   </chapter>
 
   <chapter>
@@ -5197,7 +5327,7 @@ $main::lxdebug-&gt;message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form-&gt;{
           verfügbar:</para>
 
           <programlisting>[debug]
-file = /tmp/kivitendo-debug.log</programlisting>
+file_name = /tmp/kivitendo-debug.log</programlisting>
 
           <para>ist der Key <varname>file</varname> im Programm als
           <varname>$::lx_office_conf-&gt;{debug}{file}</varname>
@@ -5458,29 +5588,17 @@ file = /tmp/kivitendo-debug.log</programlisting>
              xreflabel="Einführung in die Datenbank-Upgradedateien">
         <title>Einführung</title>
 
-        <para>Der alte Mechanismus für SQL-Upgradescripte, der auf einer
-        Versionsnummer beruht und dann in sql/Pg-upgrade nach einem Script für
-        diese Versionsnummer sucht, schränkt sehr ein, z.B. was die parallele
-        Entwicklung im stable- und unstable-Baum betrifft.</para>
-
-        <para>Dieser Mechanismus wurde für kivitendo 2.4.1 deutlich erweitert.
-        Es werden weiterhin alle Scripte aus sql/Pg-upgrade ausgeführt.
-        Zusätzlich gibt es aber ein zweites Verzeichnis, sql/Pg-upgrade2. In
-        diesem Verzeichnis muss pro Datenbankupgrade eine Datei existieren,
-        die neben den eigentlich auszuführenden SQL- oder Perl-Befehlen einige
-        Kontrollinformationen enthält.</para>
-
-        <para>Neu sind die Kontrollinformationen, die Abhängigkeiten und
-        Prioritäten definieren können werden, sodass Datenbankscripte zwar in
-        einer sicheren Reihenfolge ausgeführt werden (z.B. darf ein "ALTER
-        TABLE" erst ausgeführt werden, wenn die Tabelle mit "CREATE TABLE"
-        angelegt wurde), diese Reihenfolge aber so flexibel ist, dass man
-        keine Versionsnummern mehr braucht.</para>
-
-        <para>kivitendo merkt sich dabei, welches der Upgradescripte in
-        sql/Pg-upgrade2 bereits durchgeführt wurde und führt diese nicht
-        erneut aus. Dazu dient die Tabelle "schema_info", die bei der
-        Anmeldung automatisch angelegt wird.</para>
+        <para>Datenbankupgrades werden über einzelne Upgrade-Scripte gesteuert, die sich im Verzeichnis <filename>sql/Pg-upgrade2</filename>
+        befinden. In diesem Verzeichnis muss pro Datenbankupgrade eine Datei existieren, die neben den eigentlich auszuführenden SQL- oder
+        Perl-Befehlen einige Kontrollinformationen enthält.</para>
+
+        <para>Kontrollinformationen definieren Abhängigkeiten und Prioritäten, sodass Datenbankscripte zwar in einer sicheren Reihenfolge
+        ausgeführt werden (z.B. darf ein <literal>ALTER TABLE</literal> erst ausgeführt werden, wenn die Tabelle mit <literal>CREATE
+        TABLE</literal> angelegt wurde), diese Reihenfolge aber so flexibel ist, dass man keine Versionsnummern braucht.</para>
+
+        <para>kivitendo merkt sich dabei, welches der Upgradescripte in <filename>sql/Pg-upgrade2</filename> bereits durchgeführt wurde und
+        führt diese nicht erneut aus. Dazu dient die Tabelle "<literal>schema_info</literal>", die bei der Anmeldung automatisch angelegt
+        wird.</para>
       </sect2>
 
       <sect2 id="db-upgrade-files.format"
@@ -5622,7 +5740,7 @@ file = /tmp/kivitendo-debug.log</programlisting>
 
        <programlisting># @tag: beispiel-upgrade-file42
 # @description: Ein schönes Beispielscript
-# @depends: release_3_0_0
+# @depends: release_3_1_0
 package SL::DBUpgrade2::beispiel_upgrade_file42;
 
 use strict;
@@ -5929,11 +6047,11 @@ filenames</programlisting>
         <itemizedlist>
           <listitem><para>Alle Tests liegen im Unterverzeichnis <filename>t/</filename>.</para></listitem>
 
-          <listitem><para>Ein Script (bzw. ein Test) in <filename>f/</filename> enthält einen oder mehrere Testfälle.</para></listitem>
+          <listitem><para>Ein Script (bzw. ein Test) in <filename>t/</filename> enthält einen oder mehrere Testfälle.</para></listitem>
 
           <listitem><para>Alle Dateinamen von Tests enden auf <literal>.t</literal>. Es sind selbstständig ausführbare Perl-Scripte.</para></listitem>
 
-          <listitem><para>Die Test-Suite besteht aus der Gesamtheit aller Tests, sprich aller Scripte in <filename>f/</filename>, deren
+          <listitem><para>Die Test-Suite besteht aus der Gesamtheit aller Tests, sprich aller Scripte in <filename>t/</filename>, deren
           Dateiname auf <literal>.t</literal> endet.</para></listitem>
         </itemizedlist>
       </sect2>
@@ -5953,7 +6071,16 @@ filenames</programlisting>
           <listitem><para><literal>Test::Harness</literal> 3.0.0 oder höher. Dieses Modul ist ab Perl 5.10.1 Bestandteil der
           Perl-Distribution und kann für frühere Versionen aus dem <ulink url="http://www.cpan.org">CPAN</ulink> bezogen
           werden.</para></listitem>
+          <listitem><para><literal>LWP::Simple</literal> aus dem Paket <literal>libwww-perl</literal> (Debian-Panetname:
+          <literal>libwww-perl</literal>; Fedora Core: <literal>perl-libwww-perl</literal>; openSUSE:
+          <literal>perl-libwww-perl</literal>)</para></listitem>
+          <listitem><para><literal>URI::Find</literal> (Debian-Panetname: <literal>liburi-find-perl</literal>; Fedora Core:
+          <literal>perl-URI-Find</literal>; openSUSE: <literal>perl-URI-Find</literal>)</para></listitem>
         </itemizedlist>
+
+        <para>Weitere Voraussetzung ist, dass die Testsuite ihre eigene Datenbank anlegen kann, um Produktivdaten nicht zu gefährden. Dazu
+        müssen in der Konfigurationsdatei im Abschnit <literal>testing/database</literal> Datenbankverbindungsparameter angegeben
+        werden. Der hier angegebene Benutzer muss weiterhin das Recht haben, Datenbanken anzulegen und zu löschen.</para>
       </sect2>
 
       <sect2 id="devel.testsuite.execution">
@@ -5962,14 +6089,14 @@ filenames</programlisting>
         </title>
 
         <para>Es gibt mehrere Möglichkeiten zum Ausführen der Tests: entweder, man lässt alle Tests auf einmal ausführen, oder man führt
-        gezielt einzelne Scripte aus. Für beide Fälle gibt es das Helferscript <filename>t/test.sh</filename>.</para>
+        gezielt einzelne Scripte aus. Für beide Fälle gibt es das Helferscript <filename>t/test.pl</filename>.</para>
 
-        <para>Will man die komplette Test-Suite ausführen, so muss man einfach nur <filename>t/test.sh</filename> ohne weitere Parameter aus
+        <para>Will man die komplette Test-Suite ausführen, so muss man einfach nur <filename>t/test.pl</filename> ohne weitere Parameter aus
         dem kivitendo-Basisverzeichnis heraus ausführen.</para>
 
-        <para>Um einzelne Test-Scripte auszuführen, übergibt man deren Namen an <filename>t/test.sh</filename>. Beispielsweise:</para>
+        <para>Um einzelne Test-Scripte auszuführen, übergibt man deren Namen an <filename>t/test.pl</filename>. Beispielsweise:</para>
 
-        <programlisting>t/test.sh t/form/format_amount.t t/background_job/known_jobs.t</programlisting>
+        <programlisting>t/test.pl t/form/format_amount.t t/background_job/known_jobs.t</programlisting>
       </sect2>
 
 
@@ -6006,7 +6133,7 @@ filenames</programlisting>
             Ideen für neue Test-Scripte, die keine konkreten Funktionen testen
           </title>
 
-          <para> Ideen, die abgesehen von Funktions noch nicht umgesetzt wurden:</para>
+          <para> Ideen, die abgesehen von Funktionen noch nicht umgesetzt wurden:</para>
 
           <itemizedlist>
             <listitem><para>Überprüfung auf fehlende symbolische Links</para></listitem>
@@ -6031,7 +6158,7 @@ filenames</programlisting>
             <listitem><para>Namen sind englisch, komplett klein geschrieben und einzelne Wörter mit Unterstrichten getrennt (beispielsweise
             <filename>bad_function_params.t</filename>).</para></listitem>
 
-            <listitem><para>Unterverzeichnisse sollten grob nach dem Themenbereich benannt sind, mit dem sich die Scripte darin befassen
+            <listitem><para>Unterverzeichnisse sollten grob nach dem Themenbereich benannt sein, mit dem sich die Scripte darin befassen
             (beispielsweise <filename>background_jobs</filename> für Tests rund um Hintergrund-Jobs).</para></listitem>
 
             <listitem><para>Test-Scripte sollten einen überschaubaren Bereich von Funktionalität testen, der logisch zusammenhängend ist