+ <para>Wenn der Benutzer innhalb von Formularen in kivitendo Text
+ anders formatiert haben möchte, so ist dies begrenzt möglich.
+ kivitendo unterstützt die Textformatierung mit HTML-ähnlichen Tags.
+ Der Benutzer kann z.B. bei der Artikelbeschreibung auf einer Rechnung
+ Teile des Texts zwischen Start- und Endtags setzen. Dieser Teil wird
+ dann automatisch in Anweisungen für das ausgewählte Vorlagenformat
+ (HTML oder PDF über LaTeX) umgesetzt.</para>
+
+ <para>Die unterstützen Formatierungen sind:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><b>Text</b></term>
+
+ <listitem>
+ <para>Text wird in Fettdruck gesetzt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><i>Text</i></term>
+
+ <listitem>
+ <para>Text wird kursiv gesetzt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><u>Text</u></term>
+
+ <listitem>
+ <para>Text wird unterstrichen.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><s>Text</s></term>
+
+ <listitem>
+ <para>Text wird durchgestrichen. Diese Formatierung ist nicht
+ bei der Ausgabe als PDF über LaTeX verfügbar.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><bullet></term>
+
+ <listitem>
+ <para>Erzeugt einen ausgefüllten Kreis für Aufzählungen (siehe
+ unten).</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Der Befehl <command><bullet></command> funktioniert
+ momentan auch nur in Latex-Vorlagen.</para>
+ </sect2>
+
+ <sect2 id="dokumentenvorlagen-und-variablen.anrede"
+ xreflabel="Hinweise zur Anrede">
+ <title>Hinweise zur Anrede</title>
+
+ <para>Das Flag "natürliche Person"
+ (<varname>natural_person</varname>) aus den Kunden- oder
+ Lieferantenstammdaten kann in den Druckvorlagen zusammen mit
+ dem Feld "Anrede" (<varname>greeting</varname>) z.B. dafür
+ verwendet werden, die Anrede zwischen einer allgemeinen und
+ einer persönlichen Anrede zu unterscheiden.
+ <programlisting><%if natural_person%><%greeting%> <%name%><%else%>Sehr geehrte Damen und Herren<%end if%></programlisting>
+ </para>
+ </sect2>
+
+ </sect1>
+
+ <sect1 id="excel-templates">
+ <title>Excel-Vorlagen</title>
+
+ <sect2 id="excel-templates.summary">
+ <title>Zusammenfassung</title>
+
+ <para>Dieses Dokument beschreibt den Mechanismus, mit dem
+ Exceltemplates abgearbeitet werden, und die Einschränkungen, die damit
+ einhergehen.</para>
+ </sect2>
+
+ <sect2 id="excel-templates.usage">
+ <title>Bedienung</title>
+
+ <para>Der Excel Mechanismus muss in der Konfigurationsdatei aktiviert
+ werden. Die Konfigurationsoption heißt <varname>excel_templates =
+ 1</varname> im Abschnitt <varname>[print_templates]</varname>.</para>
+
+ <para>Eine Excelvorlage kann dann unter dem Namen einer beliebigen
+ anderen Vorlage mit der Endung <filename>.xls</filename> gespeichert
+ werden. In den normalen Verkaufsmasken taucht nun
+ <constant>Excel</constant> als auswählbares Format auf und kann von da
+ an wie LaTeX- oder OpenOffice-Vorlagen benutzt werden.</para>
+
+ <para>Der Sonderfall der Angebote aus der Kundenmaske ist ebenfalls
+ eine Angebotsvorlage und wird unter dem internen Namen der Angebote
+ <filename>sales_quotation.xls</filename> gespeichert.</para>
+ </sect2>
+
+ <sect2 id="excel-templates.syntax">
+ <title>Variablensyntax</title>
+
+ <para>Einfache Syntax:
+ <command><<varname>></command></para>
+
+ <para>Dabei sind <constant><<</constant> und
+ <constant>>></constant> die Delimiter. Da Excel auf festen
+ Breiten besteht, kann der Tag künstlich verlängert werden, indem
+ weitere <constant><</constant> oder <constant>></constant>
+ eingefügt werden. Der Tag muss nicht symmetrisch sein.
+ Beispiel:</para>
+
+ <programlisting><<<<<varname>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>></programlisting>
+
+ <para>Um die Limitierung der festen Breite zu reduzieren, können
+ weitere Variablen in einem Block interpoliert werden. Whitespace wird
+ dazwishen dann erhalten. Beispiel:</para>
+
+ <programlisting><<<<<varname1 varname2 varname3>>>>>>>>>>>>>>>>>>>>>>>>>></programlisting>
+
+ <para>Die Variablen werden interpoliert, und linksbündig mit
+ Leerzeichen auf die gewünschte Länge aufgefüllt. Ist der String zu
+ lang, werden überzählige Zeichen abgeschnitten.</para>
+
+ <para>Es ist ausserdem möglich, Daten rechtsbündig darzustellen, wenn
+ der Block mit einem Leerzeichen anfängt. Beispiel:</para>
+
+ <programlisting><<<<<< varname>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>></programlisting>
+
+ <para>Dies würde rechtsbündig triggern. Wenn bei rechtsbündiger
+ Ausrichtung Text abgeschnitten werden muss, wird er vom linken Ende
+ entfernt.</para>
+ </sect2>
+
+ <sect2 id="excel-templates.limitations">
+ <title>Einschränkungen</title>
+
+ <para>Das Excelformat bis 2002 ist ein binäres Format, und kann nicht
+ mit vertretbarem Aufwand editiert werden. Der Templatemechanismus
+ beschränkt sich daher darauf, Textstellen exakt durch einen anderen
+ Text zu ersetzen.</para>
+
+ <para>Aus dem gleichen Grund sind die Kontrolllstrukturen
+ <command><%if%></command> und
+ <command><%foreach%></command> nicht vorhanden. Der Delimiter
+ <constant><% %></constant> kommt in den Headerinformationen
+ evtl. vor. Deshalb wurde auf den sichereren Delimiter
+ <constant><<</constant> und <constant>>></constant>
+ gewechselt.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="features.warehouse">
+ <title>Mandantenkonfiguration Lager</title>
+
+ <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>
+ <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>
+
+ <para>Zusätzliche Funktionshinweise:</para>
+
+ <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>
+
+ <sect1 id="features.swiss-charts-of-accounts">
+ <title>Schweizer Kontenpläne</title>
+
+ <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>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% gesetzt
+ werden.</para>
+
+ <para>So werden bei Kreditorenbuchungen keine Vorsteuern
+ verbucht.</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"><%non_separate_subtotal%> </emphasis>zur Verfügung,
+ die alle nicht separat auszuweisenden Artikelkosten saldiert, sowie
+ pro separat auszuweisenden Klassifizierungen die Variable<emphasis
+ role="bold">< %separate_X_subtotal%></emphasis>, wobei X das
+ Kürzel der Klassifizierung ist.</para>
+
+ <para>Im obigen Beispiel wäre das für Lieferkosten <emphasis
+ role="bold"><%separate_L_subtotal%></emphasis> und für
+ Verpackungsmaterial <emphasis role="bold">
+ <%separate_M_subtotal%></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 fileref="images/DMS-Anhaenge.png" scale="50"/>
+ </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 contentwidth="40"
+ fileref="images/DMS-Anhaenge-hochladen.png"
+ width="100"/>
+ </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 fileref="images/DMS-Dokumente.png" width="500"/>
+ </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 fileref="images/DMS-ClientConfig.png" width="500"/>
+ </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 fileref="images/DMS-Allgemeine-Dokumentenanhaenge.png"
+ width="500"/>
+ </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>
+
+ <sect1>
+ <title>Webshop-Api</title>
+
+ <para>Das Shopmodul bietet die Möglichkeit Onlineshopartikel und
+ Onlineshopbestellungen zu verwalten und zu bearbeiten.</para>
+
+ <para>Es ist Multishopfähig, d.h. Artikel können mehreren oder
+ unterschiedlichen Shops zugeordnet werden. Bestellungen können aus
+ mehreren Shops geholt werden.</para>
+
+ <para>Zur Zeit bietet das Modul nur einen Connector zur REST-Api von
+ Shopware. Weitere Connectoren können dazu programmiert und eingerichtet
+ werden.</para>
+
+ <sect2>
+ <title>Rechte für die Webshopapi</title>
+
+ <para>In der Administration können folgende Rechte vergeben
+ werden</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Webshopartikel anlegen und bearbeiten</para>
+ </listitem>
+
+ <listitem>
+ <para>Shopbestellungen holen und bearbeiten</para>
+ </listitem>
+
+ <listitem>
+ <para>Shop anlegen und bearbeiten</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Konfiguration</title>
+
+ <para>Unter System->Webshops können Shops angelegt und konfiguriert
+ werden</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata contentdepth="500" contentwidth="700"
+ fileref="images/Shop_Listing.png"/>
+ </imageobject>
+ </mediaobject>
+ </sect2>
+
+ <sect2>
+ <title>Webshopartikel</title>
+
+ <sect3>
+ <title>Shopvariablenreiter in Artikelstammdaten</title>
+
+ <para>Mit dem Recht "Shopartikel anlegen und bearbeiten" und des
+ Markers <emphasis role="bold">"Shopartikel" in den Basisdaten
+ </emphasis>zeigt sich der Reiter "Shopvariablen" in den
+ Artikelstammdaten. Hier können jetzt die Artikel mit
+ unterschiedlichen Beschreibung und/oder Preisen für die
+ konfigutierten Shops angelegt und bearbeitet werden. An dieser
+ Stelle können auch beliebig viele Bilder dem Shopartikel zugeordnet
+ werden. Artikelbilder gelten für alle Shops.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata contentdepth="500" contentwidth="600"
+ fileref="images/Shop_Artikel.png"/>
+ </imageobject>
+ </mediaobject>
+
+ <para>Die Artikelgruppen werden direkt vom Shopsystem geholt somit
+ ist es möglich einen Artikel auch mehreren Gruppen
+ zuzuordenen</para>
+ </sect3>
+
+ <sect3>
+ <title>Shopartikelliste</title>
+
+ <para>Unter dem Menu Webshop->Webshop Artikel hat man nochmal
+ eine Gesamtübersicht. Von hier aus ist es möglich Artikel im Stapel
+ unter verschiedenen Kriterien <alles><nur Preis><nur
+ Bestand><Preis und Bestand> an die jeweiligen Shops
+ hochzuladen.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Shop_Artikel_Listing.png"/>
+ </imageobject>
+ </mediaobject>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Bestellimport</title>
+
+ <para>Unter dem Menupunkt Webshop->Webshop Import öffnet sich die
+ Bestellimportsliste. Hier ist sind Möglichkeiten gegeben Neue
+ Bestellungen vom Shop abzuholen, geholte Bestellungen im Stapel oder
+ einzeln als Auftrag zu transferieren. Die Liste kann nach
+ verschiedenen Kriterien gefiltert werden.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Shop_Bestell.png"/>
+ </imageobject>
+ </mediaobject>
+
+ <para>Bei Einträgen in der Liste.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>keine Kundennummer: Es gibt ähnliche Kundendatensätze und
+ der Datensatz konnte nicht eindeutig zugewiesen werden.</para>
+ </listitem>
+
+ <listitem>
+ <para>Kundennummer und Rechnungen rot hinterlegt: Der Kunde hat
+ offene Posten und kann deswegen nicht im Stapel übernommen
+ werden.</para>
+ </listitem>
+
+ <listitem>
+ <para>Rechnungsadresse grün hinterlegt: Der Kunde konnte eindeutig
+ einem Datensatz zugeordnet werden. Die Shopbestellung kann im
+ Stapel mit dem Button "Anwenden" und wenn markiert als Auftrag
+ übernommen werden.</para>
+ </listitem>
+
+ <listitem>
+ <para>Kundennummer vorhanden, aber die Checkbox "Auftrag
+ erstellen" fehlt. Der Kunde hat vermutlich eine
+ Shopauftragssperre.</para>
+ </listitem>
+
+ <listitem>
+ <para>Lieferadresse grau hinterlegt: Optische Anzeige, dass es
+ sich um eine unterschiedliche Lieferadresse handelt.
+ Lieferadressen werden aber grundsätzlich beim Transferieren zu
+ Aufträgen mit übernommen.</para>
+ </listitem>
+
+ <listitem>
+ <para>In der Spalte Positionen/Betrag/Versandkosten zeigt sich ein
+ tooltip zu den Positionen.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Maske Auftrag erstellen</para>
+
+ <para>Viele Shopsysteme haben drei verschieden Adresstypen Kunden-,
+ Rechnungs-, und Lieferadresse, die sich auch alle unterscheiden
+ können. Diese werden im oberen Bereich angezeigt. Es ist möglich jede
+ dieser Adresse einzeln in kivitendo als Kunde zu übernehmen. Es werden
+ die Werte Formulareingabe übernommen. Es wird bei einer Änderung
+ allerdings nur diese in die kivitendo Kundenstammdaten übernommen, die
+ Shopbestellung bleibt bestehen.</para>
+
+ <para>Mit der mittleren Adresse(Rechnungsadresse) im oberen Bereich,
+ kann ich den ausgewählten kivitendodatensatz des mittleren Bereich
+ überschreiben. Das ist sinnvoll, wenn ich erkenne, das der Kunde z.B.
+ umgezogen ist.</para>
+
+ <para>Im mittleren Bereich das Adresslisting zeigt:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Rot hinterlegt: Kunde hat eine Shopauftragssperre, diese
+ muss zuerst deaktiviert werden bevor ich diesem Kunden eine
+ Shopbestellung zuordnen kann.</para>
+ </listitem>
+
+ <listitem>
+ <para>Kundenname fett und rot: Hier hat der Kunde eine Bemerkung
+ in den Stammdaten. Ein Tooltip zeigt diese Bemerkung. Das kann dan
+ auch der Grund für die Auftragssperre sein.</para>
+ </listitem>
+
+ <listitem>
+ <para>Die Buttons "Auftrag erstellen" und "Kunde mit
+ Rechnungsadresse überschreiben" zeigen sich erst, wenn ein Kunde
+ aus dem Listing ausgewählt ist.</para>
+ </listitem>
+
+ <listitem>
+ <para>Es ist aber möglich die Shopbestellung zu löschen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ist eine Bestellung schon übernommen, zeigen sich an dieser
+ Stelle, die dazugehörigen Belegverknüpfungen.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Mapping der Daten</title>
+
+ <para>Das Mapping der kivitendo Daten mit den Shopdaten geschieht in
+ der Datei SL/ShopConnector/<SHOPCONNECTORNAME>.pm
+ z.B.:SL/ShopConnector/Shopware.pm</para>
+
+ <para>In dieser Datei gibt es einen Bereich wo die Bestellpostionen,
+ die Bestellkopfdaten und die Artikeldaten gemapt werden. In dieser
+ Datei kann ein individelles Mapping dann gemacht werden. Zu Shopware
+ gibt es hier eine sehr gute Dokumentation: <ulink
+ url="https://developers.shopware.com/developers-guide/rest-api/">https://developers.shopware.com/developers-guide/rest-api/</ulink></para>
+ </sect2>
+ </sect1>
+ <sect1 id="features.zugferd">
+ <title>ZUGFeRD Rechnungen</title>
+ <sect2 id="features.zugferd.preamble">
+ <title>Vorbedingung</title>
+ <para>
+ Für die Erstellung von ZUGFeRD PDFs wird TexLive2018 oder höher benötigt.
+ </para>
+ <note>
+ <para>
+ Wer kein TexLive2018 oder höher installieren kann, kann eine lokale Umgebung nur für kivitendo wie folgt erzeugen:
+ </para>
+ <programlisting>
+ 1. Download des offiziellen Installers von https://www.tug.org/texlive/quickinstall.html
+
+ 2. Installer ausführen, Standard-Ort für Installation belassen, evtl. ein paar Pakete abwählen, installieren lassen