Revision 4fa4290e
Von Cem Aydin vor mehr als 2 Jahren hinzugefügt
doc/dokumentation.xml | ||
---|---|---|
2472 | 2472 |
<para>kivitendo unterstützt die Verwendung von Vorlagen im |
2473 | 2473 |
OpenDocument-Format, wie es LibreOffice oder OpenOffice (ab Version 2) |
2474 | 2474 |
erzeugen. kivitendo kann dabei sowohl neue OpenDocument-Dokumente als |
2475 |
auch aus diesen direkt PDF-Dateien erzeugen. Um die Unterstützung von |
|
2476 |
OpenDocument-Vorlagen zu aktivieren muss in der Datei |
|
2477 |
<filename>config/kivitendo.conf</filename> die Variable |
|
2478 |
<literal>opendocument</literal> im Abschnitt |
|
2479 |
<literal>print_templates</literal> auf ‘<literal>1</literal>’ stehen. |
|
2480 |
Dieses ist die Standardeinstellung.</para> |
|
2481 |
|
|
2482 |
<para>Während die Erzeugung von reinen OpenDocument-Dateien keinerlei |
|
2483 |
weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF |
|
2484 |
LibreOffice oder OpenOffice benötigt. Soll dieses Feature genutzt |
|
2485 |
werden, so muss neben LibreOffice oder OpenOffice auch der “X virtual |
|
2486 |
frame buffer” (xvfb) installiert werden. Bei Debian ist er im Paket |
|
2487 |
“xvfb” enthalten. Andere Distributionen enthalten ihn in anderen |
|
2488 |
Paketen.</para> |
|
2489 |
|
|
2490 |
<para>Nach der Installation müssen in der Datei |
|
2491 |
<filename>config/kivitendo.conf</filename> im Abschnitt |
|
2492 |
<literal>applications</literal> zwei weitere Variablen angepasst |
|
2493 |
werden:</para> |
|
2494 |
|
|
2495 |
<para><literal>openofficeorg_writer</literal> muss den vollständigen |
|
2496 |
Pfad zu LibreOffice oder OpenOffice enthalten. Dabei dürfen keine |
|
2497 |
Anführungszeichen eingesetzt werden.</para> |
|
2498 |
|
|
2499 |
<para>Beispiel für Debian oder Ubuntu:</para> |
|
2500 |
|
|
2501 |
<programlisting>openofficeorg_writer = /usr/bin/libreoffice</programlisting> |
|
2502 |
|
|
2503 |
<para><literal>xvfb</literal> muss den Pfad zum “X virtual frame buffer” |
|
2504 |
enthalten.</para> |
|
2505 |
|
|
2506 |
<para>Zusätzlich gibt es zwei verschiedene Arten, wie kivitendo mit |
|
2507 |
LibreOffice bzw. OpenOffice kommuniziert. Die erste Variante, die |
|
2508 |
benutzt wird, wenn die Variable <literal>$openofficeorg_daemon</literal> |
|
2509 |
gesetzt ist, startet ein LibreOffice oder OpenOffice, das auch nach der |
|
2510 |
Umwandlung des Dokumentes gestartet bleibt. Bei weiteren Umwandlungen |
|
2511 |
wird dann diese laufende Instanz benutzt. Der Vorteil ist, dass die Zeit |
|
2512 |
zur Umwandlung deutlich reduziert wird, weil nicht für jedes Dokument |
|
2513 |
ein LibreOffice bzw. OpenOffice gestartet werden muss. Der Nachteil ist, |
|
2514 |
dass diese Methode Python und die Python-UNO-Bindings benötigt, die |
|
2515 |
Bestandteil von LibreOffice bzw. OpenOffice sind.</para> |
|
2475 |
auch aus diesen direkt PDF-Dateien erzeugen. Nachfolgend ist die |
|
2476 |
Verwendung mit LibreOffice beschrieben. Für die Verwendung mit |
|
2477 |
OpenOffice müssen die Einstellungen allenfalls angepasst werden.</para> |
|
2516 | 2478 |
|
2517 |
<note> |
|
2518 |
<para>Für die Verbindung zu LibreOffice bzw. OpenOffice wird |
|
2519 |
normalerweise der Python-Interpreter |
|
2520 |
<filename>/usr/bin/python</filename> benutzt. Sollte dies nicht der |
|
2521 |
richtige sein, so kann man mit zwei Konfigurationsvariablen |
|
2522 |
entscheiden, welcher Python-Interpreter genutzt wird. Mit der Option |
|
2523 |
<literal>python_uno</literal> aus dem Abschnitt |
|
2524 |
<literal>applications</literal> wird der Interpreter selber |
|
2525 |
festgelegt; sie steht standardmäßig auf dem eben erwähnten Wert |
|
2526 |
<literal>/usr/bin/python</literal>.</para> |
|
2527 |
|
|
2528 |
<para>Zusätzlich ist es möglich, Pfade anzugeben, in denen Python |
|
2529 |
neben seinen normalen Suchpfaden ebenfalls nach Modulen gesucht wird, |
|
2530 |
z.B. falls sich diese in einem gesonderten LibreOffice- bzw. |
|
2531 |
OpenOffice-Verzeichnis befinden. Diese zweite Variable heißt |
|
2532 |
<literal>python_uno_path</literal> und befindet sich im Abschnitt |
|
2533 |
<literal>environment</literal>. Sie ist standardmäßig leer. Werden |
|
2534 |
hier mehrere Pfade angegeben, so müssen diese durch Doppelpunkte |
|
2535 |
voneinander getrennt werden. Der Inhalt wird an den Python-Interpreter |
|
2536 |
über die Umgebungsvariable <literal>PYTHONPATH</literal> |
|
2537 |
übergeben.</para> |
|
2538 |
</note> |
|
2479 |
<sect2> |
|
2480 |
<title>Grundeinstellung</title> |
|
2539 | 2481 |
|
2540 |
<para>Ist <literal>$openofficeorg_daemon</literal> nicht gesetzt, so |
|
2541 |
wird für jedes Dokument LibreOffice bzw. OpenOffice neu gestartet und |
|
2542 |
die Konvertierung mit Hilfe eines Makros durchgeführt. Dieses Makro muss |
|
2543 |
in der Dokumentenvorlage enthalten sein und |
|
2544 |
“Standard.Conversion.ConvertSelfToPDF()” heißen. Die Beispielvorlage |
|
2545 |
‘<literal>templates/print/rev-odt/invoice.odt</literal>’ enthält ein |
|
2546 |
solches Makro, das in jeder anderen Dokumentenvorlage ebenfalls |
|
2547 |
enthalten sein muss.</para> |
|
2548 |
|
|
2549 |
<para>Als letztes muss herausgefunden werden, welchen Namen OpenOffice |
|
2550 |
bzw. LibreOffice dem Verzeichnis mit den Benutzereinstellungen gibt. |
|
2551 |
Unter Debian ist dies momentan <literal>~/.config/libreoffice</literal>. |
|
2552 |
kivitendo verwendet das Verzeichnis |
|
2553 |
<literal>users/.openoffice.org2</literal>. Eventuell muss dieses |
|
2554 |
Verzeichnis umbenannt werden.</para> |
|
2555 |
|
|
2556 |
<para>Dieses Verzeichnis, wie auch das komplette |
|
2557 |
<literal>users</literal>-Verzeichnis, muss vom Webserver beschreibbar |
|
2558 |
sein. Dieses wurde bereits erledigt (siehe <xref |
|
2559 |
linkend="Manuelle-Installation-des-Programmpaketes"/>), kann aber erneut |
|
2560 |
überprüft werden, wenn die Konvertierung nach PDF fehlschlägt.</para> |
|
2482 |
<para>Um die Unterstützung von OpenDocument-Vorlagen zu aktivieren, |
|
2483 |
muss in der Datei <filename>config/kivitendo.conf</filename> die |
|
2484 |
Variable <literal>opendocument</literal>, im Abschnitt |
|
2485 |
<literal>print_templates</literal>, auf <literal>1</literal> stehen. |
|
2486 |
Dies ist die Standardeinstellung.</para> |
|
2487 |
</sect2> |
|
2561 | 2488 |
|
2562 | 2489 |
<sect2> |
2563 |
<title>OpenDocument (odt) Druckvorlagen mit Makros</title> |
|
2490 |
<title>Direkte Erzeugung von PDF-Dateien</title> |
|
2491 |
|
|
2492 |
<para>Während die Erzeugung von reinen OpenDocument-Dateien keinerlei |
|
2493 |
weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF |
|
2494 |
LibreOffice oder OpenOffice benötigt.</para> |
|
2564 | 2495 |
|
2565 |
<para>OpenDocument Vorlagen können Makros enthalten, welche komplexere |
|
2566 |
Aufgaben erfüllen.</para> |
|
2496 |
<para>Unter Debian kann dieses installiert werden mit:</para> |
|
2567 | 2497 |
|
2568 |
<para>Der Vorlagensatz "rev-odt" enthält solche Vorlagen mit <emphasis |
|
2569 |
role="bold">Schweizer Bank-Einzahlungsscheinen (BESR)</emphasis>. |
|
2570 |
Diese Makros haben die Aufgabe, die in den Einzahlungsscheinen |
|
2571 |
benötigte Referenznummer und Kodierzeile zu erzeugen. Hier eine kurze |
|
2572 |
Beschreibung, wie die Makros aufgebaut sind, und was bei ihrer Nutzung |
|
2573 |
zu beachten ist (<emphasis role="bold">in fett sind nötige einmalige |
|
2574 |
Anpassungen aufgeführt</emphasis>):</para> |
|
2498 |
<programlisting>apt install libreoffice</programlisting> |
|
2499 |
|
|
2500 |
<para>Der Pfad zu LibreOffice kann in der Datei |
|
2501 |
<filename>config/kivitendo.conf</filename>, im Abschnitt |
|
2502 |
<literal>applications</literal>, angepasst werden. Unter Debian sollte |
|
2503 |
dies nicht notwendig sein.</para> |
|
2575 | 2504 |
|
2576 | 2505 |
<sect3> |
2577 |
<title>Bezeichnung der Vorlagen</title>
|
|
2506 |
<title>Variante 1)</title>
|
|
2578 | 2507 |
|
2579 |
<para>Rechnung: invoice_besr.odt, Auftrag: |
|
2580 |
sales_order_besr.odt</para> |
|
2508 |
<para>In der Standardeinstellung wird LibreOffice für jedes Dokument |
|
2509 |
neu gestartet. Es ist keine weitere Konfiguration |
|
2510 |
erforderlich.</para> |
|
2581 | 2511 |
</sect3> |
2582 | 2512 |
|
2513 |
<sect3> |
|
2514 |
<title>Variante 2)</title> |
|
2515 |
|
|
2516 |
<para>Die zweite Variante startet ein LibreOffice, das auch nach der |
|
2517 |
Umwandlung des Dokumentes gestartet bleibt. Bei weiteren |
|
2518 |
Umwandlungen wird dann diese laufende Instanz benutzt. Der Vorteil |
|
2519 |
ist, dass die Zeit zur Umwandlung möglicherweise reduziert wird, |
|
2520 |
weil nicht für jedes Dokument eine neue Instanz gestartet werden |
|
2521 |
muss.</para> |
|
2522 |
|
|
2523 |
<para>Dazu muss in der Konfigurationsdatei |
|
2524 |
<filename>config/kivitendo.conf</filename>, im Abschnitt |
|
2525 |
<literal>print_templates</literal>, <literal>openofficeorg_daemon = |
|
2526 |
1</literal> gesetzt werden.</para> |
|
2527 |
|
|
2528 |
<para>Diese Methode verwendet Python und die Python uno bindings. |
|
2529 |
Unter Debian werden diese mit LibreOffice mitgeliefert.</para> |
|
2530 |
|
|
2531 |
<para>Die Optionen <literal>python_uno</literal> und |
|
2532 |
<literal>python_uno_path</literal> in der Konfigurationsdatei |
|
2533 |
<filename>config/kivitendo.conf</filename> dienen zur Anpassung der |
|
2534 |
Python uno Pfade. Unter Debian sollte keine Anpassung notwendig |
|
2535 |
sein.</para> |
|
2536 |
</sect3> |
|
2537 |
</sect2> |
|
2538 |
|
|
2539 |
<sect2> |
|
2540 |
<title>Vorbereitungen</title> |
|
2541 |
|
|
2583 | 2542 |
<sect3 id="opendocument-druckvorlagen-mit-makros.vorbereitungen"> |
2584 |
<title>Vorbereitungen im Adminbereich</title>
|
|
2543 |
<title>Adminbereich</title> |
|
2585 | 2544 |
|
2586 | 2545 |
<para>Damit beim Erstellen von Rechnungen und Aufträgen neben der |
2587 | 2546 |
Standardvorlage ohne Einzahlungsschein weitere Vorlagen (z.B. mit |
... | ... | |
2657 | 2616 |
</itemizedlist> |
2658 | 2617 |
</sect3> |
2659 | 2618 |
|
2660 |
<sect3> |
|
2661 |
<title>Aufbau und nötige Anpassungen der Vorlagen</title> |
|
2662 |
|
|
2663 |
<para>In der Vorlage sind als Modul "BESR" 4 Makros gespeichert, die |
|
2664 |
aus dem von kivitendo erzeugten odt-Dokument die korrekte |
|
2665 |
Referenznummer inklusive Prüfziffer sowie die Kodierzeile in |
|
2666 |
OCRB-Schrift erzeugen und am richtigen Ort ins Dokument |
|
2667 |
schreiben.</para> |
|
2668 |
|
|
2669 |
<itemizedlist> |
|
2670 |
<listitem> |
|
2671 |
<para>Für den Einzahlungsschein ist die letzte Seite des |
|
2672 |
Dokuments reserviert</para> |
|
2673 |
</listitem> |
|
2674 |
|
|
2675 |
<listitem> |
|
2676 |
<para>Direkt über dem Einzahlungsschein enthält die Vorlage eine |
|
2677 |
Zeile mit folgenden Angaben (<emphasis |
|
2678 |
role="bold">Bank-Konto-Identifikationsnummer und |
|
2679 |
Postkonto-Nummer der Bank müssen gemäss Angaben der jeweiligen |
|
2680 |
Bank angepasst werden</emphasis>):<itemizedlist> |
|
2681 |
<listitem> |
|
2682 |
<para>DDDREF: 4 Werte zum Bilden der Referenznummer |
|
2683 |
(jeweils durch einen Leerschlag getrennt): <itemizedlist> |
|
2684 |
<listitem> |
|
2685 |
<para>erster Wert: <emphasis |
|
2686 |
role="bold">Bank-Konto-Identifikation</emphasis> |
|
2687 |
(nur Ziffern, maximal 6), <emphasis role="bold">muss |
|
2688 |
angepasst werden</emphasis>.</para> |
|
2689 |
</listitem> |
|
2690 |
|
|
2691 |
<listitem> |
|
2692 |
<para>zweiter Wert: <%customernumber%> |
|
2693 |
(Kundennummer: nur Ziffern, maximal 6)</para> |
|
2694 |
</listitem> |
|
2695 |
|
|
2696 |
<listitem> |
|
2697 |
<para>dritter Wert: <%ordnumber%> |
|
2698 |
(Auftragsnummer bei Auftragsvorlage |
|
2699 |
sales_oder_besr.odt, sonst 0) maximal 7 Ziffern, |
|
2700 |
führende Buchstaben werden vom Makro entfernt</para> |
|
2701 |
</listitem> |
|
2702 |
|
|
2703 |
<listitem> |
|
2704 |
<para>vierter Wert: <%invnumber%> |
|
2705 |
(Rechnungsnummer bei Rechnungsvorlage |
|
2706 |
invoice_besr.odt, sonst 0) maximal 7 Ziffern, |
|
2707 |
führende Buchstaben werden vom Makro entfernt</para> |
|
2708 |
</listitem> |
|
2709 |
</itemizedlist></para> |
|
2710 |
</listitem> |
|
2711 |
|
|
2712 |
<listitem> |
|
2713 |
<para>DDDKONTO: <emphasis role="bold">Postkonto-Nummer der |
|
2714 |
Bank, muss angepasst werden</emphasis>.</para> |
|
2715 |
</listitem> |
|
2716 |
|
|
2717 |
<listitem> |
|
2718 |
<para>DDDBETRAG: <%total%> Einzahlungsbetrag oder 0, |
|
2719 |
falls Einzahlungsschein ohne Betrag</para> |
|
2720 |
</listitem> |
|
2721 |
|
|
2722 |
<listitem> |
|
2723 |
<para>DDDEND: muss am Ende der Zeile vorhanden sein</para> |
|
2724 |
</listitem> |
|
2725 |
</itemizedlist></para> |
|
2726 |
</listitem> |
|
2727 |
|
|
2728 |
<listitem> |
|
2729 |
<para><emphasis role="bold">Im Einzahlungsschein selbst müssen |
|
2730 |
der Name und die Adresse der Bank, die Postkonto-Nummer der |
|
2731 |
Bank, sowie der eigene Firmenname und die Firmenadresse |
|
2732 |
angepasst werden.</emphasis> Dabei ist darauf zu achten, dass |
|
2733 |
sich die Positionen der Postkonto-Nummern der Bank, sowie der |
|
2734 |
Zeichenfolgen dddfr, DDDREF1, DDDREF2, 609, DDDKODIERZEILE nicht |
|
2735 |
verschieben.</para> |
|
2736 |
</listitem> |
|
2737 |
</itemizedlist> |
|
2738 |
|
|
2739 |
<screenshot> |
|
2740 |
<screeninfo>Rechnungsvorlage Schweizer Bank-Einzahlungsschein - zu |
|
2741 |
ändernde Einträge in rot</screeninfo> |
|
2742 |
|
|
2743 |
<mediaobject> |
|
2744 |
<imageobject> |
|
2745 |
<imagedata fileref="images/Einzahlungsschein_Makro.png"/> |
|
2746 |
</imageobject> |
|
2747 |
</mediaobject> |
|
2748 |
</screenshot> |
|
2749 |
</sect3> |
|
2750 |
|
|
2751 | 2619 |
<sect3> |
2752 | 2620 |
<title>Auswahl der Druckvorlage in kivitendo beim Erzeugen einer |
2753 | 2621 |
odt-Rechnung (analog bei Auftrag)</title> |
... | ... | |
2758 | 2626 |
den Benutzereinstellungen als persönlicher Standard gewählt |
2759 | 2627 |
wurde.</para> |
2760 | 2628 |
</sect3> |
2761 |
|
|
2762 |
<sect3> |
|
2763 |
<title>Makroeinstellungen in LibreOffice anpassen</title> |
|
2764 |
|
|
2765 |
<para>Falls beim Öffnen einer von kivitendo erzeugten odt-Rechnung |
|
2766 |
die Meldung kommt, dass Makros aus Sicherheitsgründen nicht |
|
2767 |
ausgeführt werden, so müssen folgende Einstellungen in LibreOffice |
|
2768 |
angepasst werden:</para> |
|
2769 |
|
|
2770 |
<itemizedlist> |
|
2771 |
<listitem> |
|
2772 |
<para>Extras → Optionen → Sicherheit → Makrosicherheit</para> |
|
2773 |
</listitem> |
|
2774 |
|
|
2775 |
<listitem> |
|
2776 |
<para>Sicherheitslevel auf "Mittel" einstellen (Diese |
|
2777 |
Einstellung muss auf jedem Computer durchgeführt werden, mit dem |
|
2778 |
von kivitendo erzeugte odt-Rechnungen oder Aufträge geöffnet |
|
2779 |
werden.)</para> |
|
2780 |
</listitem> |
|
2781 |
|
|
2782 |
<listitem> |
|
2783 |
<para>Beim Öffnen einer odt-Rechnung oder eines odt-Auftrags bei |
|
2784 |
der entsprechenden Nachfrage "Makros ausführen" |
|
2785 |
auswählen.</para> |
|
2786 |
|
|
2787 |
<para><emphasis role="bold">Wichtig</emphasis>: die Makros sind |
|
2788 |
so eingestellt, dass sie beim Öffnen der Vorlagen selbst nicht |
|
2789 |
ausgeführt werden. Das heisst für das Ansehen und Bearbeiten der |
|
2790 |
Vorlagen sind keine speziellen Einstellungen in LibreOffice |
|
2791 |
nötig.</para> |
|
2792 |
</listitem> |
|
2793 |
</itemizedlist> |
|
2794 |
</sect3> |
|
2795 | 2629 |
</sect2> |
2796 | 2630 |
|
2797 | 2631 |
<sect2> |
doc/html/ch02s12.html | ||
---|---|---|
89 | 89 |
Abhilfe.</p></li></ul></div><p>Wird gar kein Fehler angezeigt, sondern nur der Name des |
90 | 90 |
Templates, heißt das normalerweise, dass das LaTeX Binary nicht |
91 | 91 |
gefunden wurde. Prüfen Sie den Namen in der Konfiguration (Standard: |
92 |
<code class="literal">pdflatex</code>), und stellen Sie sicher, dass pdflatex
|
|
93 |
(oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
|
|
94 |
darf.</p><p>Wenn sich das Problem nicht auf Grund der Ausgabe im Webbrowser |
|
92 |
<code class="literal">latexmk --pdflatex</code>), und stellen Sie sicher, dass
|
|
93 |
latexmk (oder das von Ihnen verwendete System) vom Webserver ausgeführt
|
|
94 |
werden darf.</p><p>Wenn sich das Problem nicht auf Grund der Ausgabe im Webbrowser
|
|
95 | 95 |
verifizieren lässt:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>editiere [kivitendo-home]/config/kivitendo.conf und ändere |
96 | 96 |
"keep_temp_files" auf 1</p><p> |
97 | 97 |
</p><pre class="programlisting">keep_temp_files = 1;</pre><p> |
doc/html/ch02s13.html | ||
---|---|---|
3 | 3 |
<title>2.13. OpenDocument-Vorlagen</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s12.html" title="2.12. Drucken mit kivitendo"><link rel="next" href="ch02s14.html" title="2.14. Nomenklatur"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.13. OpenDocument-Vorlagen</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s12.html">Zurück</a> </td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right"> <a accesskey="n" href="ch02s14.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.13. OpenDocument-Vorlagen"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="OpenDocument-Vorlagen"></a>2.13. OpenDocument-Vorlagen</h2></div></div></div><p>kivitendo unterstützt die Verwendung von Vorlagen im |
4 | 4 |
OpenDocument-Format, wie es LibreOffice oder OpenOffice (ab Version 2) |
5 | 5 |
erzeugen. kivitendo kann dabei sowohl neue OpenDocument-Dokumente als |
6 |
auch aus diesen direkt PDF-Dateien erzeugen. Um die Unterstützung von |
|
7 |
OpenDocument-Vorlagen zu aktivieren muss in der Datei |
|
8 |
<code class="filename">config/kivitendo.conf</code> die Variable |
|
9 |
<code class="literal">opendocument</code> im Abschnitt |
|
10 |
<code class="literal">print_templates</code> auf ‘<code class="literal">1</code>’ stehen. |
|
11 |
Dieses ist die Standardeinstellung.</p><p>Während die Erzeugung von reinen OpenDocument-Dateien keinerlei |
|
12 |
weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF |
|
13 |
LibreOffice oder OpenOffice benötigt. Soll dieses Feature genutzt |
|
14 |
werden, so muss neben LibreOffice oder OpenOffice auch der “X virtual |
|
15 |
frame buffer” (xvfb) installiert werden. Bei Debian ist er im Paket |
|
16 |
“xvfb” enthalten. Andere Distributionen enthalten ihn in anderen |
|
17 |
Paketen.</p><p>Nach der Installation müssen in der Datei |
|
18 |
<code class="filename">config/kivitendo.conf</code> im Abschnitt |
|
19 |
<code class="literal">applications</code> zwei weitere Variablen angepasst |
|
20 |
werden:</p><p> |
|
21 |
<code class="literal">openofficeorg_writer</code> muss den vollständigen |
|
22 |
Pfad zu LibreOffice oder OpenOffice enthalten. Dabei dürfen keine |
|
23 |
Anführungszeichen eingesetzt werden.</p><p>Beispiel für Debian oder Ubuntu:</p><pre class="programlisting">openofficeorg_writer = /usr/bin/libreoffice</pre><p> |
|
24 |
<code class="literal">xvfb</code> muss den Pfad zum “X virtual frame buffer” |
|
25 |
enthalten.</p><p>Zusätzlich gibt es zwei verschiedene Arten, wie kivitendo mit |
|
26 |
LibreOffice bzw. OpenOffice kommuniziert. Die erste Variante, die |
|
27 |
benutzt wird, wenn die Variable <code class="literal">$openofficeorg_daemon</code> |
|
28 |
gesetzt ist, startet ein LibreOffice oder OpenOffice, das auch nach der |
|
29 |
Umwandlung des Dokumentes gestartet bleibt. Bei weiteren Umwandlungen |
|
30 |
wird dann diese laufende Instanz benutzt. Der Vorteil ist, dass die Zeit |
|
31 |
zur Umwandlung deutlich reduziert wird, weil nicht für jedes Dokument |
|
32 |
ein LibreOffice bzw. OpenOffice gestartet werden muss. Der Nachteil ist, |
|
33 |
dass diese Methode Python und die Python-UNO-Bindings benötigt, die |
|
34 |
Bestandteil von LibreOffice bzw. OpenOffice sind.</p><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>Für die Verbindung zu LibreOffice bzw. OpenOffice wird |
|
35 |
normalerweise der Python-Interpreter |
|
36 |
<code class="filename">/usr/bin/python</code> benutzt. Sollte dies nicht der |
|
37 |
richtige sein, so kann man mit zwei Konfigurationsvariablen |
|
38 |
entscheiden, welcher Python-Interpreter genutzt wird. Mit der Option |
|
39 |
<code class="literal">python_uno</code> aus dem Abschnitt |
|
40 |
<code class="literal">applications</code> wird der Interpreter selber |
|
41 |
festgelegt; sie steht standardmäßig auf dem eben erwähnten Wert |
|
42 |
<code class="literal">/usr/bin/python</code>.</p><p>Zusätzlich ist es möglich, Pfade anzugeben, in denen Python |
|
43 |
neben seinen normalen Suchpfaden ebenfalls nach Modulen gesucht wird, |
|
44 |
z.B. falls sich diese in einem gesonderten LibreOffice- bzw. |
|
45 |
OpenOffice-Verzeichnis befinden. Diese zweite Variable heißt |
|
46 |
<code class="literal">python_uno_path</code> und befindet sich im Abschnitt |
|
47 |
<code class="literal">environment</code>. Sie ist standardmäßig leer. Werden |
|
48 |
hier mehrere Pfade angegeben, so müssen diese durch Doppelpunkte |
|
49 |
voneinander getrennt werden. Der Inhalt wird an den Python-Interpreter |
|
50 |
über die Umgebungsvariable <code class="literal">PYTHONPATH</code> |
|
51 |
übergeben.</p></td></tr></table></div><p>Ist <code class="literal">$openofficeorg_daemon</code> nicht gesetzt, so |
|
52 |
wird für jedes Dokument LibreOffice bzw. OpenOffice neu gestartet und |
|
53 |
die Konvertierung mit Hilfe eines Makros durchgeführt. Dieses Makro muss |
|
54 |
in der Dokumentenvorlage enthalten sein und |
|
55 |
“Standard.Conversion.ConvertSelfToPDF()” heißen. Die Beispielvorlage |
|
56 |
‘<code class="literal">templates/print/rev-odt/invoice.odt</code>’ enthält ein |
|
57 |
solches Makro, das in jeder anderen Dokumentenvorlage ebenfalls |
|
58 |
enthalten sein muss.</p><p>Als letztes muss herausgefunden werden, welchen Namen OpenOffice |
|
59 |
bzw. LibreOffice dem Verzeichnis mit den Benutzereinstellungen gibt. |
|
60 |
Unter Debian ist dies momentan <code class="literal">~/.config/libreoffice</code>. |
|
61 |
kivitendo verwendet das Verzeichnis |
|
62 |
<code class="literal">users/.openoffice.org2</code>. Eventuell muss dieses |
|
63 |
Verzeichnis umbenannt werden.</p><p>Dieses Verzeichnis, wie auch das komplette |
|
64 |
<code class="literal">users</code>-Verzeichnis, muss vom Webserver beschreibbar |
|
65 |
sein. Dieses wurde bereits erledigt (siehe <a class="xref" href="ch02s03.html" title="2.3. Manuelle Installation des Programmpaketes">Manuelle Installation des Programmpaketes</a>), kann aber erneut |
|
66 |
überprüft werden, wenn die Konvertierung nach PDF fehlschlägt.</p><div class="sect2" title="2.13.1. OpenDocument (odt) Druckvorlagen mit Makros"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2491"></a>2.13.1. OpenDocument (odt) Druckvorlagen mit Makros</h3></div></div></div><p>OpenDocument Vorlagen können Makros enthalten, welche komplexere |
|
67 |
Aufgaben erfüllen.</p><p>Der Vorlagensatz "rev-odt" enthält solche Vorlagen mit <span class="bold"><strong>Schweizer Bank-Einzahlungsscheinen (BESR)</strong></span>. |
|
68 |
Diese Makros haben die Aufgabe, die in den Einzahlungsscheinen |
|
69 |
benötigte Referenznummer und Kodierzeile zu erzeugen. Hier eine kurze |
|
70 |
Beschreibung, wie die Makros aufgebaut sind, und was bei ihrer Nutzung |
|
71 |
zu beachten ist (<span class="bold"><strong>in fett sind nötige einmalige |
|
72 |
Anpassungen aufgeführt</strong></span>):</p><div class="sect3" title="2.13.1.1. Bezeichnung der Vorlagen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2504"></a>2.13.1.1. Bezeichnung der Vorlagen</h4></div></div></div><p>Rechnung: invoice_besr.odt, Auftrag: |
|
73 |
sales_order_besr.odt</p></div><div class="sect3" title="2.13.1.2. Vorbereitungen im Adminbereich"><div class="titlepage"><div><div><h4 class="title"><a name="opendocument-druckvorlagen-mit-makros.vorbereitungen"></a>2.13.1.2. Vorbereitungen im Adminbereich</h4></div></div></div><p>Damit beim Erstellen von Rechnungen und Aufträgen neben der |
|
6 |
auch aus diesen direkt PDF-Dateien erzeugen. Nachfolgend ist die |
|
7 |
Verwendung mit LibreOffice beschrieben. Für die Verwendung mit |
|
8 |
OpenOffice müssen die Einstellungen allenfalls angepasst werden.</p><div class="sect2" title="2.13.1. Grundeinstellung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2401"></a>2.13.1. Grundeinstellung</h3></div></div></div><p>Um die Unterstützung von OpenDocument-Vorlagen zu aktivieren, |
|
9 |
muss in der Datei <code class="filename">config/kivitendo.conf</code> die |
|
10 |
Variable <code class="literal">opendocument</code>, im Abschnitt |
|
11 |
<code class="literal">print_templates</code>, auf <code class="literal">1</code> stehen. |
|
12 |
Dies ist die Standardeinstellung.</p></div><div class="sect2" title="2.13.2. Direkte Erzeugung von PDF-Dateien"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2418"></a>2.13.2. Direkte Erzeugung von PDF-Dateien</h3></div></div></div><p>Während die Erzeugung von reinen OpenDocument-Dateien keinerlei |
|
13 |
weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF |
|
14 |
LibreOffice oder OpenOffice benötigt.</p><p>Unter Debian kann dieses installiert werden mit:</p><pre class="programlisting">apt install libreoffice</pre><p>Der Pfad zu LibreOffice kann in der Datei |
|
15 |
<code class="filename">config/kivitendo.conf</code>, im Abschnitt |
|
16 |
<code class="literal">applications</code>, angepasst werden. Unter Debian sollte |
|
17 |
dies nicht notwendig sein.</p><div class="sect3" title="2.13.2.1. Variante 1)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2435"></a>2.13.2.1. Variante 1)</h4></div></div></div><p>In der Standardeinstellung wird LibreOffice für jedes Dokument |
|
18 |
neu gestartet. Es ist keine weitere Konfiguration |
|
19 |
erforderlich.</p></div><div class="sect3" title="2.13.2.2. Variante 2)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2440"></a>2.13.2.2. Variante 2)</h4></div></div></div><p>Die zweite Variante startet ein LibreOffice, das auch nach der |
|
20 |
Umwandlung des Dokumentes gestartet bleibt. Bei weiteren |
|
21 |
Umwandlungen wird dann diese laufende Instanz benutzt. Der Vorteil |
|
22 |
ist, dass die Zeit zur Umwandlung möglicherweise reduziert wird, |
|
23 |
weil nicht für jedes Dokument eine neue Instanz gestartet werden |
|
24 |
muss.</p><p>Dazu muss in der Konfigurationsdatei |
|
25 |
<code class="filename">config/kivitendo.conf</code>, im Abschnitt |
|
26 |
<code class="literal">print_templates</code>, <code class="literal">openofficeorg_daemon = |
|
27 |
1</code> gesetzt werden.</p><p>Diese Methode verwendet Python und die Python uno bindings. |
|
28 |
Unter Debian werden diese mit LibreOffice mitgeliefert.</p><p>Die Optionen <code class="literal">python_uno</code> und |
|
29 |
<code class="literal">python_uno_path</code> in der Konfigurationsdatei |
|
30 |
<code class="filename">config/kivitendo.conf</code> dienen zur Anpassung der |
|
31 |
Python uno Pfade. Unter Debian sollte keine Anpassung notwendig |
|
32 |
sein.</p></div></div><div class="sect2" title="2.13.3. Vorbereitungen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2469"></a>2.13.3. Vorbereitungen</h3></div></div></div><div class="sect3" title="2.13.3.1. Adminbereich"><div class="titlepage"><div><div><h4 class="title"><a name="opendocument-druckvorlagen-mit-makros.vorbereitungen"></a>2.13.3.1. Adminbereich</h4></div></div></div><p>Damit beim Erstellen von Rechnungen und Aufträgen neben der |
|
74 | 33 |
Standardvorlage ohne Einzahlungsschein weitere Vorlagen (z.B. mit |
75 | 34 |
Einzahlungsschein) auswählbar sind, muss für jedes Vorlagen-Suffix |
76 | 35 |
ein Drucker eingerichtet werden:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Druckeradministration → Drucker hinzufügen</p></li><li class="listitem"><p>Mandant wählen</p></li><li class="listitem"><p>Druckerbeschreibung → aussagekräftiger Text: wird in der |
... | ... | |
79 | 38 |
Aufträgen oder Rechnungen als odt-Datei keine Bedeutung, darf |
80 | 39 |
aber nicht leer sein)</p></li><li class="listitem"><p>Vorlagenkürzel → besr bzw. selbst gewähltes Vorlagensuffix |
81 | 40 |
(muss genau der Zeichenfolge entsprechen, die zwischen |
82 |
"invoice_" bzw. "sales_order_" und ".odt" steht.)</p></li><li class="listitem"><p>speichern</p></li></ul></div></div><div class="sect3" title="2.13.1.3. Benutzereinstellungen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2533"></a>2.13.1.3. Benutzereinstellungen</h4></div></div></div><p>Wer den Ausdruck mit Einzahlungsschein als Standardeinstellung
|
|
41 |
"invoice_" bzw. "sales_order_" und ".odt" steht.)</p></li><li class="listitem"><p>speichern</p></li></ul></div></div><div class="sect3" title="2.13.3.2. Benutzereinstellungen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2496"></a>2.13.3.2. Benutzereinstellungen</h4></div></div></div><p>Wer den Ausdruck mit Einzahlungsschein als Standardeinstellung
|
|
83 | 42 |
im Rechnungs- bzw. Auftragsformular angezeigt haben möchte, kann |
84 | 43 |
dies persönlich für sich bei den Benutzereinstellungen |
85 | 44 |
konfigurieren:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Programm → Benutzereinstellungen → Druckoptionen</p></li><li class="listitem"><p>Standardvorlagenformat → OpenDocument/OASIS</p></li><li class="listitem"><p>Standardausgabekanal → Bildschirm</p></li><li class="listitem"><p>Standarddrucker → gewünschte Druckerbeschreibung auswählen |
86 |
(z.B. mit Einzahlungsschein Bank xy)</p></li><li class="listitem"><p>Anzahl Kopien → leer</p></li><li class="listitem"><p>speichern</p></li></ul></div></div><div class="sect3" title="2.13.1.4. Aufbau und nötige Anpassungen der Vorlagen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2557"></a>2.13.1.4. Aufbau und nötige Anpassungen der Vorlagen</h4></div></div></div><p>In der Vorlage sind als Modul "BESR" 4 Makros gespeichert, die |
|
87 |
aus dem von kivitendo erzeugten odt-Dokument die korrekte |
|
88 |
Referenznummer inklusive Prüfziffer sowie die Kodierzeile in |
|
89 |
OCRB-Schrift erzeugen und am richtigen Ort ins Dokument |
|
90 |
schreiben.</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Für den Einzahlungsschein ist die letzte Seite des |
|
91 |
Dokuments reserviert</p></li><li class="listitem"><p>Direkt über dem Einzahlungsschein enthält die Vorlage eine |
|
92 |
Zeile mit folgenden Angaben (<span class="bold"><strong>Bank-Konto-Identifikationsnummer und |
|
93 |
Postkonto-Nummer der Bank müssen gemäss Angaben der jeweiligen |
|
94 |
Bank angepasst werden</strong></span>):</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>DDDREF: 4 Werte zum Bilden der Referenznummer |
|
95 |
(jeweils durch einen Leerschlag getrennt): </p><div class="itemizedlist"><ul class="itemizedlist" type="square"><li class="listitem"><p>erster Wert: <span class="bold"><strong>Bank-Konto-Identifikation</strong></span> |
|
96 |
(nur Ziffern, maximal 6), <span class="bold"><strong>muss |
|
97 |
angepasst werden</strong></span>.</p></li><li class="listitem"><p>zweiter Wert: <%customernumber%> |
|
98 |
(Kundennummer: nur Ziffern, maximal 6)</p></li><li class="listitem"><p>dritter Wert: <%ordnumber%> |
|
99 |
(Auftragsnummer bei Auftragsvorlage |
|
100 |
sales_oder_besr.odt, sonst 0) maximal 7 Ziffern, |
|
101 |
führende Buchstaben werden vom Makro entfernt</p></li><li class="listitem"><p>vierter Wert: <%invnumber%> |
|
102 |
(Rechnungsnummer bei Rechnungsvorlage |
|
103 |
invoice_besr.odt, sonst 0) maximal 7 Ziffern, |
|
104 |
führende Buchstaben werden vom Makro entfernt</p></li></ul></div><p> |
|
105 |
</p></li><li class="listitem"><p>DDDKONTO: <span class="bold"><strong>Postkonto-Nummer der |
|
106 |
Bank, muss angepasst werden</strong></span>.</p></li><li class="listitem"><p>DDDBETRAG: <%total%> Einzahlungsbetrag oder 0, |
|
107 |
falls Einzahlungsschein ohne Betrag</p></li><li class="listitem"><p>DDDEND: muss am Ende der Zeile vorhanden sein</p></li></ul></div><p> |
|
108 |
</p></li><li class="listitem"><p> |
|
109 |
<span class="bold"><strong>Im Einzahlungsschein selbst müssen |
|
110 |
der Name und die Adresse der Bank, die Postkonto-Nummer der |
|
111 |
Bank, sowie der eigene Firmenname und die Firmenadresse |
|
112 |
angepasst werden.</strong></span> Dabei ist darauf zu achten, dass |
|
113 |
sich die Positionen der Postkonto-Nummern der Bank, sowie der |
|
114 |
Zeichenfolgen dddfr, DDDREF1, DDDREF2, 609, DDDKODIERZEILE nicht |
|
115 |
verschieben.</p></li></ul></div><div class="screenshot"><div class="mediaobject"><img src="images/Einzahlungsschein_Makro.png"></div></div></div><div class="sect3" title="2.13.1.5. Auswahl der Druckvorlage in kivitendo beim Erzeugen einer odt-Rechnung (analog bei Auftrag)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2621"></a>2.13.1.5. Auswahl der Druckvorlage in kivitendo beim Erzeugen einer |
|
45 |
(z.B. mit Einzahlungsschein Bank xy)</p></li><li class="listitem"><p>Anzahl Kopien → leer</p></li><li class="listitem"><p>speichern</p></li></ul></div></div><div class="sect3" title="2.13.3.3. Auswahl der Druckvorlage in kivitendo beim Erzeugen einer odt-Rechnung (analog bei Auftrag)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2520"></a>2.13.3.3. Auswahl der Druckvorlage in kivitendo beim Erzeugen einer |
|
116 | 46 |
odt-Rechnung (analog bei Auftrag)</h4></div></div></div><p>Im Fussbereich der Rechnungsmaske muss neben Rechnung, |
117 | 47 |
OpenDocument/OASIS und Bildschirm die im Adminbereich erstellte |
118 | 48 |
Druckerbeschreibung ausgewählt werden, falls diese nicht bereits bei |
119 | 49 |
den Benutzereinstellungen als persönlicher Standard gewählt |
120 |
wurde.</p></div><div class="sect3" title="2.13.1.6. Makroeinstellungen in LibreOffice anpassen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2626"></a>2.13.1.6. Makroeinstellungen in LibreOffice anpassen</h4></div></div></div><p>Falls beim Öffnen einer von kivitendo erzeugten odt-Rechnung |
|
121 |
die Meldung kommt, dass Makros aus Sicherheitsgründen nicht |
|
122 |
ausgeführt werden, so müssen folgende Einstellungen in LibreOffice |
|
123 |
angepasst werden:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Extras → Optionen → Sicherheit → Makrosicherheit</p></li><li class="listitem"><p>Sicherheitslevel auf "Mittel" einstellen (Diese |
|
124 |
Einstellung muss auf jedem Computer durchgeführt werden, mit dem |
|
125 |
von kivitendo erzeugte odt-Rechnungen oder Aufträge geöffnet |
|
126 |
werden.)</p></li><li class="listitem"><p>Beim Öffnen einer odt-Rechnung oder eines odt-Auftrags bei |
|
127 |
der entsprechenden Nachfrage "Makros ausführen" |
|
128 |
auswählen.</p><p> |
|
129 |
<span class="bold"><strong>Wichtig</strong></span>: die Makros sind |
|
130 |
so eingestellt, dass sie beim Öffnen der Vorlagen selbst nicht |
|
131 |
ausgeführt werden. Das heisst für das Ansehen und Bearbeiten der |
|
132 |
Vorlagen sind keine speziellen Einstellungen in LibreOffice |
|
133 |
nötig.</p></li></ul></div></div></div><div class="sect2" title="2.13.2. Schweizer QR-Rechnung mit OpenDocument Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2646"></a>2.13.2. Schweizer QR-Rechnung mit OpenDocument Vorlagen</h3></div></div></div><p>Mit der Version 3.6.0 unterstützt Kivitendo die Erstellung von |
|
50 |
wurde.</p></div></div><div class="sect2" title="2.13.4. Schweizer QR-Rechnung mit OpenDocument Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2525"></a>2.13.4. Schweizer QR-Rechnung mit OpenDocument Vorlagen</h3></div></div></div><p>Mit der Version 3.6.0 unterstützt Kivitendo die Erstellung von |
|
134 | 51 |
Schweizer QR-Rechnungen gemäss <a class="ulink" href="https://www.paymentstandards.ch/dam/downloads/ig-qr-bill-de.pdf" target="_top">Swiss |
135 | 52 |
Payment Standards, Version 2.2</a>. Implementiert sind hierbei die |
136 | 53 |
Varianten:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> |
... | ... | |
138 | 55 |
QR-Referenz</strong></span> |
139 | 56 |
</p></li><li class="listitem"><p> |
140 | 57 |
<span class="bold"><strong>IBAN ohne Referenz</strong></span> |
141 |
</p></li></ul></div><div class="sect3" title="2.13.2.1. Einstellungen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2667"></a>2.13.2.1. Einstellungen</h4></div></div></div><div class="sect4" title="2.13.2.1.1. Mandantenkonfiguration"><div class="titlepage"><div><div><h5 class="title"><a name="d0e2670"></a>2.13.2.1.1. Mandantenkonfiguration</h5></div></div></div><p>Unter <span class="emphasis"><em>System → Mandantenkonfiguration →
|
|
58 |
</p></li></ul></div><div class="sect3" title="2.13.4.1. Einstellungen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2546"></a>2.13.4.1. Einstellungen</h4></div></div></div><div class="sect4" title="2.13.4.1.1. Mandantenkonfiguration"><div class="titlepage"><div><div><h5 class="title"><a name="d0e2549"></a>2.13.4.1.1. Mandantenkonfiguration</h5></div></div></div><p>Unter <span class="emphasis"><em>System → Mandantenkonfiguration →
|
|
142 | 59 |
Features</em></span>. Im Abschnitt <span class="emphasis"><em>Einkauf und |
143 | 60 |
Verkauf</em></span>, beim Punkt <span class="emphasis"><em>Verkaufsrechnungen mit |
144 | 61 |
Schweizer QR-Rechnung erzeugen</em></span>, die gewünschte Variante |
145 |
wählen.</p></div><div class="sect4" title="2.13.2.1.2. Konfiguration der Bankkonten"><div class="titlepage"><div><div><h5 class="title"><a name="d0e2684"></a>2.13.2.1.2. Konfiguration der Bankkonten</h5></div></div></div><p>Unter <span class="emphasis"><em>System → Bankkonten</em></span> muss bei
|
|
62 |
wählen.</p></div><div class="sect4" title="2.13.4.1.2. Konfiguration der Bankkonten"><div class="titlepage"><div><div><h5 class="title"><a name="d0e2563"></a>2.13.4.1.2. Konfiguration der Bankkonten</h5></div></div></div><p>Unter <span class="emphasis"><em>System → Bankkonten</em></span> muss bei
|
|
146 | 63 |
mindestens einem Bankkonto die Option <span class="emphasis"><em>Nutzung mit |
147 | 64 |
Schweizer QR-Rechnung</em></span> auf <span class="bold"><strong>Ja</strong></span> gestellt werden.</p><p>Die IBAN muss ohne Leerzeichen angegeben werden.</p><div class="tip" title="Tipp" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tipp]" src="system/docbook-xsl/images/tip.png"></td><th align="left">Tipp</th></tr><tr><td align="left" valign="top"><p>Für die Variante <span class="bold"><strong>QR-IBAN mit |
148 | 65 |
QR-Referenz</strong></span> muss dieses Konto unter IBAN eine gültige |
... | ... | |
150 | 67 |
unterscheidet sich von der regulären IBAN.</p><p>Zusätzlich muss eine gültige <span class="bold"><strong>Bankkonto |
151 | 68 |
Identifikationsnummer</strong></span> angegeben werden |
152 | 69 |
(6-stellig).</p><p>Diese werden von der jeweiligen Bank vergeben.</p></td></tr></table></div><p>Sind mehrere Konten ausgewählt wird das erste |
153 |
verwendet.</p></div><div class="sect4" title="2.13.2.1.3. Rechnungen ohne Betrag"><div class="titlepage"><div><div><h5 class="title"><a name="d0e2718"></a>2.13.2.1.3. Rechnungen ohne Betrag</h5></div></div></div><p>Für Rechnungen ohne Betrag (z.B. Spenden) kann, in der
|
|
70 |
verwendet.</p></div><div class="sect4" title="2.13.4.1.3. Rechnungen ohne Betrag"><div class="titlepage"><div><div><h5 class="title"><a name="d0e2597"></a>2.13.4.1.3. Rechnungen ohne Betrag</h5></div></div></div><p>Für Rechnungen ohne Betrag (z.B. Spenden) kann, in der
|
|
154 | 71 |
jeweiligen Rechnung, die Checkbox <span class="emphasis"><em>QR-Rechnung ohne |
155 | 72 |
Betrag</em></span> aktiviert werden. Diese Checkbox erscheint nur, |
156 | 73 |
wenn QR-Rechnungen in der Mandantenkonfiguration aktiviert sind |
157 | 74 |
(variante ausgewählt).</p><p>Dies wirkt sich lediglich auf den erzeugten QR-Code aus. Die |
158 |
Vorlage muss separat angepasst und ausgewählt werden.</p></div></div><div class="sect3" title="2.13.2.2. Adressdaten"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2728"></a>2.13.2.2. Adressdaten</h4></div></div></div><p>Die Adressdaten zum Zahlungsempfänger werden aus der
|
|
75 |
Vorlage muss separat angepasst und ausgewählt werden.</p></div></div><div class="sect3" title="2.13.4.2. Adressdaten"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2607"></a>2.13.4.2. Adressdaten</h4></div></div></div><p>Die Adressdaten zum Zahlungsempfänger werden aus der
|
|
159 | 76 |
Mandantenkonfiguration entnommen. Unter <span class="emphasis"><em>System → |
160 | 77 |
Mandantenkonfiguration → Verschiedenes</em></span>, Abschnitt |
161 | 78 |
<span class="emphasis"><em>Firmenname und -adresse.</em></span> |
... | ... | |
165 | 82 |
z.B. "Schweiz" oder "CH".</p><p>Die Adressdaten können in der Vorlage mit den jeweiligen |
166 | 83 |
Variablen eingetragen werden. Siehe auch: <a class="xref" href="ch03s03.html" title="3.3. Dokumentenvorlagen und verfügbare Variablen">Abschnitt 3.3, „Dokumentenvorlagen und verfügbare Variablen“</a> |
167 | 84 |
</p><p>Der erzeugte QR-Code verwendet Adress-Typ "K" (Kombinierte |
168 |
Adressfelder, 2 Zeilen).</p></div><div class="sect3" title="2.13.2.3. Referenznummer"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2749"></a>2.13.2.3. Referenznummer</h4></div></div></div><p>Die Referenznummer wird in Kivitendo erzeugt und setzt sich
|
|
85 |
Adressfelder, 2 Zeilen).</p></div><div class="sect3" title="2.13.4.3. Referenznummer"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2628"></a>2.13.4.3. Referenznummer</h4></div></div></div><p>Die Referenznummer wird in Kivitendo erzeugt und setzt sich
|
|
169 | 86 |
wiefolgt zusammen:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Bankkonto Identifikationsnummer (6-stellig)</p></li><li class="listitem"><p>Kundennummer (6-stellig, mit führenden Nullen |
170 | 87 |
aufgefüllt)</p></li><li class="listitem"><p>Rechnungsnummer (14-stellig, mit führenden Nullen |
171 | 88 |
aufgefüllt)</p></li><li class="listitem"><p>Prüfziffer (1-stellig, berechnet mittels modulo 10, |
172 | 89 |
rekursiv)</p></li></ul></div><p>Es sind lediglich Ziffern erlaubt. Allfällige Buchstaben und |
173 | 90 |
Sonderzeichen werden entfernt und fehlende Stellen werden mit |
174 |
führenden Nullen aufgefüllt.</p></div><div class="sect3" title="2.13.2.4. Vorlage"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2769"></a>2.13.2.4. Vorlage</h4></div></div></div><p>Der Vorlagensatz "rev-odt" enthält die Vorlage
|
|
91 |
führenden Nullen aufgefüllt.</p></div><div class="sect3" title="2.13.4.4. Vorlage"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2648"></a>2.13.4.4. Vorlage</h4></div></div></div><p>Der Vorlagensatz "rev-odt" enthält die Vorlage
|
|
175 | 92 |
<code class="literal">invoice_qr.odt</code>, welche für die Erstellung von |
176 | 93 |
QR-Rechnungen vorgesehen ist. Damit diese verwendet werden kann muss |
177 | 94 |
wie obenstehend beschrieben ein Drucker hinzugefügt werden, allerdings |
178 |
mit dem Vorlagenkürzel <code class="literal">qr</code> (siehe <a class="xref" href="ch02s13.html#opendocument-druckvorlagen-mit-makros.vorbereitungen" title="2.13.1.2. Vorbereitungen im Adminbereich">Abschnitt 2.13.1.2, „Vorbereitungen im Adminbereich“</a>).
|
|
95 |
mit dem Vorlagenkürzel <code class="literal">qr</code> (siehe <a class="xref" href="ch02s13.html#opendocument-druckvorlagen-mit-makros.vorbereitungen" title="2.13.3.1. Adminbereich">Abschnitt 2.13.3.1, „Adminbereich“</a>).
|
|
179 | 96 |
Weitere Vorlagen für die QR-Rechnung müssen im Dateinamen, bzw. |
180 | 97 |
Vorlagenkürzel, ebenfalls die Zeichenfolge <code class="literal">qr</code> |
181 | 98 |
enthalten, also z.b. <code class="literal">invoice_qr2.odt</code> etc.</p><p>Die Vorlagen können beliebig angepasst werden. Zwingend müssen |
... | ... | |
186 | 103 |
<span class="emphasis"><em>Bild-Kontextmenü → </em></span> |
187 | 104 |
<span class="emphasis"><em>Einstellungen → |
188 | 105 |
Optionen → Name</em></span> einstellbar. Siehe dazu auch die |
189 |
Beispielvorlage.</p><div class="sect4" title="2.13.2.4.1. Zusätzliche Variablen für Vorlage"><div class="titlepage"><div><div><h5 class="title"><a name="d0e2799"></a>2.13.2.4.1. Zusätzliche Variablen für Vorlage</h5></div></div></div><p>Zusätzlich zu den in der Vorlage standardmässig verfügbaren
|
|
106 |
Beispielvorlage.</p><div class="sect4" title="2.13.4.4.1. Zusätzliche Variablen für Vorlage"><div class="titlepage"><div><div><h5 class="title"><a name="d0e2678"></a>2.13.4.4.1. Zusätzliche Variablen für Vorlage</h5></div></div></div><p>Zusätzlich zu den in der Vorlage standardmässig verfügbaren
|
|
190 | 107 |
Variablen (siehe <a class="xref" href="ch03s03.html" title="3.3. Dokumentenvorlagen und verfügbare Variablen">Abschnitt 3.3, „Dokumentenvorlagen und verfügbare Variablen“</a>), |
191 | 108 |
werden die folgenden Variablen erzeugt:</p><div class="variablelist"><dl><dt><span class="term">ref_number_formatted</span></dt><dd><p>Referenznummer formatiert mit Leerzeichen, z.B.: 21 00000 |
192 | 109 |
00003 13947 14300 09017</p></dd><dt><span class="term">iban_formatted</span></dt><dd><p>IBAN formatiert mit Leerzeichen</p></dd><dt><span class="term">amount_formatted</span></dt><dd><p>Betrag formatiert mit Tausendertrennzeichen Leerschlag, |
doc/html/ch03s03.html | ||
---|---|---|
421 | 421 |
</span></dt><dd><p>Vorgangsbezeichnung</p></dd><dt><span class="term"> |
422 | 422 |
<code class="varname">transdate</code> |
423 | 423 |
</span></dt><dd><p>Auftragsdatum wenn die Rechnung aus einem Auftrag |
424 |
erstellt wurde</p></dd></dl></div></div><div class="sect3" title="3.3.8.2. Variablen für die schweizer QR-Rechnung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5346"></a>3.3.8.2. Variablen für die schweizer QR-Rechnung</h4></div></div></div><p>Diese variablen können mit dem LaTeX Modul qrbill verwendet
|
|
424 |
erstellt wurde</p></dd></dl></div></div><div class="sect3" title="3.3.8.2. Variablen für die schweizer QR-Rechnung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5225"></a>3.3.8.2. Variablen für die schweizer QR-Rechnung</h4></div></div></div><p>Diese Variablen können mit dem LaTeX Modul qrbill verwendet
|
|
425 | 425 |
werden: <a class="ulink" href="https://ctan.org/pkg/qrbill?lang=de" target="_top">https://ctan.org/pkg/qrbill?lang=de</a> |
426 | 426 |
</p><p>Für die Erstellung von QR-Rechnungen mit OpenDocument Vorlagen |
427 | 427 |
siehe: <a class="xref" href="ch02s13.html" title="2.13. OpenDocument-Vorlagen">Abschnitt 2.13, „OpenDocument-Vorlagen“</a> |
... | ... | |
647 | 647 |
<code class="varname">invdate</code> |
648 | 648 |
</span></dt><dd><p>Rechnungsdatum</p></dd><dt><span class="term"> |
649 | 649 |
<code class="varname">invnumber</code> |
650 |
</span></dt><dd><p>Rechnungsnummer</p></dd></dl></div></div></div><div class="sect2" title="3.3.10. Variablen in anderen Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.andere-vorlagen"></a>3.3.10. Variablen in anderen Vorlagen</h3></div></div></div><div class="sect3" title="3.3.10.1. Einführung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6200"></a>3.3.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
|
|
650 |
</span></dt><dd><p>Rechnungsnummer</p></dd></dl></div></div></div><div class="sect2" title="3.3.10. Variablen in anderen Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.andere-vorlagen"></a>3.3.10. Variablen in anderen Vorlagen</h3></div></div></div><div class="sect3" title="3.3.10.1. Einführung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6079"></a>3.3.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
|
|
651 | 651 |
Rechnung. Allerdings heißen die Variablen, die mit |
652 | 652 |
<code class="varname">inv</code> beginnen, jetzt anders. Bei den Angeboten |
653 | 653 |
fangen sie mit <code class="varname">quo</code> für "quotation" an: |
doc/html/ch03s07.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>3.7. Artikelklassifizierung</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s06.html" title="3.6. Schweizer Kontenpläne"><link rel="next" href="ch03s08.html" title="3.8. Dateiverwaltung (Mini-DMS)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">3.7. Artikelklassifizierung</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s06.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s08.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.7. Artikelklassifizierung"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.part_classification"></a>3.7. Artikelklassifizierung</h2></div></div></div><div class="sect2" title="3.7.1. Übersicht"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6882"></a>3.7.1. Übersicht</h3></div></div></div><p>Die Klassifizierung von Artikeln dient einer weiteren
|
|
3 |
<title>3.7. Artikelklassifizierung</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s06.html" title="3.6. Schweizer Kontenpläne"><link rel="next" href="ch03s08.html" title="3.8. Dateiverwaltung (Mini-DMS)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">3.7. Artikelklassifizierung</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s06.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s08.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.7. Artikelklassifizierung"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.part_classification"></a>3.7. Artikelklassifizierung</h2></div></div></div><div class="sect2" title="3.7.1. Übersicht"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6761"></a>3.7.1. Übersicht</h3></div></div></div><p>Die Klassifizierung von Artikeln dient einer weiteren
|
|
4 | 4 |
Gliederung, um zum Beispiel den Einkauf vom Verkauf zu trennen, |
5 | 5 |
gekennzeichnet durch eine Beschreibung (z.B. "Einkauf") und ein Kürzel |
6 | 6 |
(z.B. "E"). Für jede Klassifizierung besteht eine Beschreibung und |
7 | 7 |
eine Abkürzung die normalerweise aus einem Zeichen besteht, kann aber |
8 | 8 |
auf mehrere Zeichen erweitert werden, falls zur Unterscheidung |
9 |
notwendig. Sinnvoll sind jedoch nur maximal 2 Zeichen.</p></div><div class="sect2" title="3.7.2. Basisklassifizierung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6887"></a>3.7.2. Basisklassifizierung</h3></div></div></div><p>Als Basisklassifizierungen gibt es</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Einkauf</p></li><li class="listitem"><p>Verkauf</p></li><li class="listitem"><p>Handelsware</p></li><li class="listitem"><p>Produktion</p></li><li class="listitem"><p>- keine - (diese wird bei einer Aktualisierung für alle
|
|
9 |
notwendig. Sinnvoll sind jedoch nur maximal 2 Zeichen.</p></div><div class="sect2" title="3.7.2. Basisklassifizierung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6766"></a>3.7.2. Basisklassifizierung</h3></div></div></div><p>Als Basisklassifizierungen gibt es</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Einkauf</p></li><li class="listitem"><p>Verkauf</p></li><li class="listitem"><p>Handelsware</p></li><li class="listitem"><p>Produktion</p></li><li class="listitem"><p>- keine - (diese wird bei einer Aktualisierung für alle
|
|
10 | 10 |
existierenden Artikel verwendet und ist gültig für Verkauf und |
11 | 11 |
Einkauf)</p></li></ul></div><p>Es können weitere Klassifizierungen angelegt werden. So kann es |
12 |
z.B. für separat auszuweisende Artikel folgende Klassen geben:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Lieferung (Logistik, Transport) mit Kürzel L</p></li><li class="listitem"><p>Material (Verpackungsmaterial) mit Kürzel M</p></li></ul></div></div><div class="sect2" title="3.7.3. Attribute"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6917"></a>3.7.3. Attribute</h3></div></div></div><p>Bisher haben die Klassifizierungen folgende Attribute, die auch
|
|
12 |
z.B. für separat auszuweisende Artikel folgende Klassen geben:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Lieferung (Logistik, Transport) mit Kürzel L</p></li><li class="listitem"><p>Material (Verpackungsmaterial) mit Kürzel M</p></li></ul></div></div><div class="sect2" title="3.7.3. Attribute"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6796"></a>3.7.3. Attribute</h3></div></div></div><p>Bisher haben die Klassifizierungen folgende Attribute, die auch
|
|
13 | 13 |
alle gleichzeitg gültig sein können</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>gültig für Verkauf - dieser Artikel kann im Verkauf genutzt |
14 | 14 |
werden</p></li><li class="listitem"><p>gültig für Einkauf - dieser Artikel kann im Einkauf genutzt |
15 | 15 |
werden</p></li><li class="listitem"><p>separat ausweisen - hierzu gibt es zur Dokumentengenerierung |
... | ... | |
19 | 19 |
pro separat auszuweisenden Klassifizierungen die Variable<span class="bold"><strong>< %separate_X_subtotal%></strong></span>, wobei X das |
20 | 20 |
Kürzel der Klassifizierung ist.</p><p>Im obigen Beispiel wäre das für Lieferkosten <span class="bold"><strong><%separate_L_subtotal%></strong></span> und für |
21 | 21 |
Verpackungsmaterial <span class="bold"><strong> |
22 |
<%separate_M_subtotal%></strong></span>.</p></div><div class="sect2" title="3.7.4. Zwei-Zeichen Abkürzung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6948"></a>3.7.4. Zwei-Zeichen Abkürzung</h3></div></div></div><p>Der Typ des Artikels und die Klassifizierung werden durch zwei
|
|
22 |
<%separate_M_subtotal%></strong></span>.</p></div><div class="sect2" title="3.7.4. Zwei-Zeichen Abkürzung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6827"></a>3.7.4. Zwei-Zeichen Abkürzung</h3></div></div></div><p>Der Typ des Artikels und die Klassifizierung werden durch zwei
|
|
23 | 23 |
Buchstaben dargestellt. Der erste Buchstabe ist eine Lokalisierung des |
24 | 24 |
Artikel-Typs ('P','A','S'), deutsch 'W', 'E', und 'D' für Ware |
25 | 25 |
Erzeugnis oder Dienstleistung und ggf. weiterer Typen.</p><p>Der zweite Buchstabe (und ggf. auch ein dritter, falls nötig) |
doc/html/ch03s08.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>3.8. Dateiverwaltung (Mini-DMS)</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s07.html" title="3.7. Artikelklassifizierung"><link rel="next" href="ch03s09.html" title="3.9. Webshop-Api"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">3.8. Dateiverwaltung (Mini-DMS)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s07.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s09.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.8. Dateiverwaltung (Mini-DMS)"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.file_managment"></a>3.8. Dateiverwaltung (Mini-DMS)</h2></div></div></div><div class="sect2" title="3.8.1. Übersicht"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6960"></a>3.8.1. Übersicht</h3></div></div></div><p>Parallel zum alten WebDAV gibt es ein Datei-Management-System,
|
|
3 |
<title>3.8. Dateiverwaltung (Mini-DMS)</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s07.html" title="3.7. Artikelklassifizierung"><link rel="next" href="ch03s09.html" title="3.9. Webshop-Api"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">3.8. Dateiverwaltung (Mini-DMS)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s07.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s09.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.8. Dateiverwaltung (Mini-DMS)"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.file_managment"></a>3.8. Dateiverwaltung (Mini-DMS)</h2></div></div></div><div class="sect2" title="3.8.1. Übersicht"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6839"></a>3.8.1. Übersicht</h3></div></div></div><p>Parallel zum alten WebDAV gibt es ein Datei-Management-System,
|
|
4 | 4 |
das Dateien verschiedenen Typs verwaltet. Dies können</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>aus ERP-Daten per LaTeX Template erzeugte |
5 | 5 |
PDF-Dokumente,</p></li><li class="listitem"><p>zu bestimmten ERP-Daten gehörende Anhangdateien |
6 | 6 |
unterschiedlichen Formats,</p></li><li class="listitem"><p>per Scanner eingelesene PDF-Dateien,</p></li><li class="listitem"><p>per E-Mail empfangene Dateianhänge unterschiedlichen |
7 |
Formats,</p></li><li class="listitem"><p>sowie speziel für Artikel hochgeladene Bilder sein.</p></li></ol></div><div class="screenshot"><div class="mediaobject"><img src="images/DMS-Overview.png"></div></div></div><div class="sect2" title="3.8.2. Struktur"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6987"></a>3.8.2. Struktur</h3></div></div></div><p>Über eine vom Speichermedium unabhängige Zwischenschicht werden
|
|
7 |
Formats,</p></li><li class="listitem"><p>sowie speziel für Artikel hochgeladene Bilder sein.</p></li></ol></div><div class="screenshot"><div class="mediaobject"><img src="images/DMS-Overview.png"></div></div></div><div class="sect2" title="3.8.2. Struktur"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6866"></a>3.8.2. Struktur</h3></div></div></div><p>Über eine vom Speichermedium unabhängige Zwischenschicht werden
|
|
8 | 8 |
die Dateien und ihre Versionen in der Datenbank verwaltet. Darunter |
9 | 9 |
können verschiedene Implementierungen (Backends) gleichzeitig |
10 | 10 |
existieren:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Dateisystem</p></li><li class="listitem"><p>WebDAV</p></li><li class="listitem"><p>Schnittstelle zu externen |
... | ... | |
23 | 23 |
für "attachment" und "image" nur die Quelle "uploaded". Für "document" |
24 | 24 |
gibt es auf jeden Fall die Quelle "created". Die Quellen "scanner" und |
25 | 25 |
"email" müssen derzeit in der Datenbank konfiguriert werden (siehe |
26 |
<a class="xref" href="ch03s08.html#file_management.dbconfig" title="3.8.4.2. Datenbank-Konfigurierung">Datenbank-Konfigurierung</a>).</p></div><div class="sect2" title="3.8.3. Anwendung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7039"></a>3.8.3. Anwendung</h3></div></div></div><p>Die Daten werden bei den ERP-Objekten als extra Reiter
|
|
26 |
<a class="xref" href="ch03s08.html#file_management.dbconfig" title="3.8.4.2. Datenbank-Konfigurierung">Datenbank-Konfigurierung</a>).</p></div><div class="sect2" title="3.8.3. Anwendung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6918"></a>3.8.3. Anwendung</h3></div></div></div><p>Die Daten werden bei den ERP-Objekten als extra Reiter
|
|
27 | 27 |
dargestellt. Eine Verkaufsrechnung z.B. hat die Reiter "Dokumente" und |
28 | 28 |
"Dateianhänge".</p><div class="screenshot"><div class="mediaobject"><img src="images/DMS-Anhaenge.png"></div></div><p>Bei den Dateianhängen wird immer nur die aktuelle Version einer |
29 | 29 |
Datei angezeigt. Wird eine Datei mit gleichem Namen hochgeladen, so |
... | ... | |
39 | 39 |
so sind diese z.B. bei Einkaufsrechnungen sichtbar:</p><div class="screenshot"><div class="mediaobject"><img src="images/DMS-Dokumente-Scanner.png"></div></div><p>Statt des Löschens wird hier die Datei zurück zur Quelle |
40 | 40 |
verschoben. Somit kann die Datei anschließend an ein anderes |
41 | 41 |
ERP-Objekt angehängt werden.</p><p>Derzeit sind "Titel" und "Beschreibung" noch nicht genutzt. Sie |
42 |
sind bisher nur bei Bildern relevant.</p></div><div class="sect2" title="3.8.4. Konfigurierung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7082"></a>3.8.4. Konfigurierung</h3></div></div></div><div class="sect3" title="3.8.4.1. Mandantenkonfiguration"><div class="titlepage"><div><div><h4 class="title"><a name="file_management.clientconfig"></a>3.8.4.1. Mandantenkonfiguration</h4></div></div></div><div class="sect4" title="3.8.4.1.1. Reiter "Features""><div class="titlepage"><div><div><h5 class="title"><a name="d0e7088"></a>3.8.4.1.1. Reiter "Features"</h5></div></div></div><p>Unter dem Reiter <span class="bold"><strong>Features</strong></span>
|
|
42 |
sind bisher nur bei Bildern relevant.</p></div><div class="sect2" title="3.8.4. Konfigurierung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6961"></a>3.8.4. Konfigurierung</h3></div></div></div><div class="sect3" title="3.8.4.1. Mandantenkonfiguration"><div class="titlepage"><div><div><h4 class="title"><a name="file_management.clientconfig"></a>3.8.4.1. Mandantenkonfiguration</h4></div></div></div><div class="sect4" title="3.8.4.1.1. Reiter "Features""><div class="titlepage"><div><div><h5 class="title"><a name="d0e6967"></a>3.8.4.1.1. Reiter "Features"</h5></div></div></div><p>Unter dem Reiter <span class="bold"><strong>Features</strong></span>
|
|
43 | 43 |
im Abschnitt Dateimanagement ist neben dem "alten" WebDAV das |
44 | 44 |
Dateimangement generell zu- und abschaltbar, sowie die Zuordnung |
45 | 45 |
der Dateitypen zu Backends. Die Löschbarkeit von Dateien, sowie |
46 | 46 |
die maximale Uploadgröße sind Backend-unabhängig</p><div class="screenshot"><div class="mediaobject"><img src="images/DMS-ClientConfig.png"></div></div><p>Die einzelnen Backends sind einzeln einschaltbar. |
47 | 47 |
Spezifische Backend-Konfigurierungen sind hier noch |
48 |
ergänzbar.</p></div><div class="sect4" title="3.8.4.1.2. Reiter "Allgemeine Dokumentenanhänge""><div class="titlepage"><div><div><h5 class="title"><a name="d0e7104"></a>3.8.4.1.2. Reiter "Allgemeine Dokumentenanhänge"</h5></div></div></div><p>Unter dem Reiter <span class="bold"><strong>Allgemeine
|
|
48 |
ergänzbar.</p></div><div class="sect4" title="3.8.4.1.2. Reiter "Allgemeine Dokumentenanhänge""><div class="titlepage"><div><div><h5 class="title"><a name="d0e6983"></a>3.8.4.1.2. Reiter "Allgemeine Dokumentenanhänge"</h5></div></div></div><p>Unter dem Reiter <span class="bold"><strong>Allgemeine
|
|
49 | 49 |
Dokumentenanhänge</strong></span> kann für alle ERP-Dokumente ( |
50 | 50 |
Angebote, Aufträge, Lieferscheine, Rechnungen im Verkauf und |
51 | 51 |
Einkauf ) allgemeingültige Anhänge hochgeladen werden.</p><div class="screenshot"><div class="mediaobject"><img src="images/DMS-Allgemeine-Dokumentenanhaenge.png"></div></div><p>Diese Anhänge werden beim Generieren von PDF-Dateien an die |
doc/html/ch03s09.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>3.9. Webshop-Api</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s08.html" title="3.8. Dateiverwaltung (Mini-DMS)"><link rel="next" href="ch03s10.html" title="3.10. ZUGFeRD Rechnungen"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">3.9. Webshop-Api</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s08.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s10.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.9. Webshop-Api"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e7138"></a>3.9. Webshop-Api</h2></div></div></div><p>Das Shopmodul bietet die Möglichkeit Onlineshopartikel und
|
|
3 |
<title>3.9. Webshop-Api</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s08.html" title="3.8. Dateiverwaltung (Mini-DMS)"><link rel="next" href="ch03s10.html" title="3.10. ZUGFeRD Rechnungen"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">3.9. Webshop-Api</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s08.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s10.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.9. Webshop-Api"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e7017"></a>3.9. Webshop-Api</h2></div></div></div><p>Das Shopmodul bietet die Möglichkeit Onlineshopartikel und
|
|
4 | 4 |
Onlineshopbestellungen zu verwalten und zu bearbeiten.</p><p>Es ist Multishopfähig, d.h. Artikel können mehreren oder |
5 | 5 |
unterschiedlichen Shops zugeordnet werden. Bestellungen können aus |
6 | 6 |
mehreren Shops geholt werden.</p><p>Zur Zeit bietet das Modul nur einen Connector zur REST-Api von |
7 | 7 |
Shopware. Weitere Connectoren können dazu programmiert und eingerichtet |
8 |
werden.</p><div class="sect2" title="3.9.1. Rechte für die Webshopapi"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7147"></a>3.9.1. Rechte für die Webshopapi</h3></div></div></div><p>In der Administration können folgende Rechte vergeben
|
|
9 |
werden</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Webshopartikel anlegen und bearbeiten</p></li><li class="listitem"><p>Shopbestellungen holen und bearbeiten</p></li><li class="listitem"><p>Shop anlegen und bearbeiten</p></li></ul></div></div><div class="sect2" title="3.9.2. Konfiguration"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7162"></a>3.9.2. Konfiguration</h3></div></div></div><p>Unter System->Webshops können Shops angelegt und konfiguriert
|
|
10 |
werden</p><div class="mediaobject"><img src="images/Shop_Listing.png"></div></div><div class="sect2" title="3.9.3. Webshopartikel"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7170"></a>3.9.3. Webshopartikel</h3></div></div></div><div class="sect3" title="3.9.3.1. Shopvariablenreiter in Artikelstammdaten"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7173"></a>3.9.3.1. Shopvariablenreiter in Artikelstammdaten</h4></div></div></div><p>Mit dem Recht "Shopartikel anlegen und bearbeiten" und des
|
|
8 |
werden.</p><div class="sect2" title="3.9.1. Rechte für die Webshopapi"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7026"></a>3.9.1. Rechte für die Webshopapi</h3></div></div></div><p>In der Administration können folgende Rechte vergeben
|
|
9 |
werden</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Webshopartikel anlegen und bearbeiten</p></li><li class="listitem"><p>Shopbestellungen holen und bearbeiten</p></li><li class="listitem"><p>Shop anlegen und bearbeiten</p></li></ul></div></div><div class="sect2" title="3.9.2. Konfiguration"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7041"></a>3.9.2. Konfiguration</h3></div></div></div><p>Unter System->Webshops können Shops angelegt und konfiguriert
|
|
10 |
werden</p><div class="mediaobject"><img src="images/Shop_Listing.png"></div></div><div class="sect2" title="3.9.3. Webshopartikel"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7049"></a>3.9.3. Webshopartikel</h3></div></div></div><div class="sect3" title="3.9.3.1. Shopvariablenreiter in Artikelstammdaten"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7052"></a>3.9.3.1. Shopvariablenreiter in Artikelstammdaten</h4></div></div></div><p>Mit dem Recht "Shopartikel anlegen und bearbeiten" und des
|
|
11 | 11 |
Markers <span class="bold"><strong>"Shopartikel" in den Basisdaten |
12 | 12 |
</strong></span>zeigt sich der Reiter "Shopvariablen" in den |
13 | 13 |
Artikelstammdaten. Hier können jetzt die Artikel mit |
... | ... | |
16 | 16 |
Stelle können auch beliebig viele Bilder dem Shopartikel zugeordnet |
17 | 17 |
werden. Artikelbilder gelten für alle Shops.</p><div class="mediaobject"><img src="images/Shop_Artikel.png"></div><p>Die Artikelgruppen werden direkt vom Shopsystem geholt somit |
18 | 18 |
ist es möglich einen Artikel auch mehreren Gruppen |
19 |
zuzuordenen</p></div><div class="sect3" title="3.9.3.2. Shopartikelliste"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7186"></a>3.9.3.2. Shopartikelliste</h4></div></div></div><p>Unter dem Menu Webshop->Webshop Artikel hat man nochmal
|
|
19 |
zuzuordenen</p></div><div class="sect3" title="3.9.3.2. Shopartikelliste"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7065"></a>3.9.3.2. Shopartikelliste</h4></div></div></div><p>Unter dem Menu Webshop->Webshop Artikel hat man nochmal
|
|
20 | 20 |
eine Gesamtübersicht. Von hier aus ist es möglich Artikel im Stapel |
21 | 21 |
unter verschiedenen Kriterien <alles><nur Preis><nur |
22 | 22 |
Bestand><Preis und Bestand> an die jeweiligen Shops |
23 |
hochzuladen.</p><div class="mediaobject"><img src="images/Shop_Artikel_Listing.png"></div></div></div><div class="sect2" title="3.9.4. Bestellimport"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7194"></a>3.9.4. Bestellimport</h3></div></div></div><p>Unter dem Menupunkt Webshop->Webshop Import öffnet sich die
|
|
23 |
hochzuladen.</p><div class="mediaobject"><img src="images/Shop_Artikel_Listing.png"></div></div></div><div class="sect2" title="3.9.4. Bestellimport"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7073"></a>3.9.4. Bestellimport</h3></div></div></div><p>Unter dem Menupunkt Webshop->Webshop Import öffnet sich die
|
|
24 | 24 |
Bestellimportsliste. Hier ist sind Möglichkeiten gegeben Neue |
25 | 25 |
Bestellungen vom Shop abzuholen, geholte Bestellungen im Stapel oder |
26 | 26 |
einzeln als Auftrag zu transferieren. Die Liste kann nach |
... | ... | |
52 | 52 |
auch der Grund für die Auftragssperre sein.</p></li><li class="listitem"><p>Die Buttons "Auftrag erstellen" und "Kunde mit |
53 | 53 |
Rechnungsadresse überschreiben" zeigen sich erst, wenn ein Kunde |
54 | 54 |
aus dem Listing ausgewählt ist.</p></li><li class="listitem"><p>Es ist aber möglich die Shopbestellung zu löschen.</p></li><li class="listitem"><p>Ist eine Bestellung schon übernommen, zeigen sich an dieser |
55 |
Stelle, die dazugehörigen Belegverknüpfungen.</p></li></ul></div></div><div class="sect2" title="3.9.5. Mapping der Daten"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7247"></a>3.9.5. Mapping der Daten</h3></div></div></div><p>Das Mapping der kivitendo Daten mit den Shopdaten geschieht in
|
|
55 |
Stelle, die dazugehörigen Belegverknüpfungen.</p></li></ul></div></div><div class="sect2" title="3.9.5. Mapping der Daten"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7126"></a>3.9.5. Mapping der Daten</h3></div></div></div><p>Das Mapping der kivitendo Daten mit den Shopdaten geschieht in
|
|
56 | 56 |
der Datei SL/ShopConnector/<SHOPCONNECTORNAME>.pm |
57 | 57 |
z.B.:SL/ShopConnector/Shopware.pm</p><p>In dieser Datei gibt es einen Bereich wo die Bestellpostionen, |
58 | 58 |
die Bestellkopfdaten und die Artikeldaten gemapt werden. In dieser |
doc/html/ch03s10.html | ||
---|---|---|
17 | 17 |
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:$PATH |
18 | 18 |
hash -r |
19 | 19 |
|
20 |
exec pdflatex "$@" |
|
20 |
exec latexmk --pdflatex "$@"
|
|
21 | 21 |
------------------------------------------------------------ |
22 | 22 |
|
23 | 23 |
4. In config/kivitendo.conf den Parameter »latex« auf den Pfad zu »run_pdflatex.sh« setzen |
... | ... | |
35 | 35 |
</p></div><div class="sect2" title="3.10.3. Erstellen von ZUGFeRD Rechnungen in Kivitendo"><div class="titlepage"><div><div><h3 class="title"><a name="features.zugferd.create_zugferd_bills"></a>3.10.3. Erstellen von ZUGFeRD Rechnungen in Kivitendo</h3></div></div></div><p>Für die Erstellung von ZUGFeRD Rechnungen bedarf es in |
36 | 36 |
kivitendo zwei Dinge:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Die Erstellung muss in der Mandantenkonfiguration |
37 | 37 |
aktiviert sein</p></li><li class="listitem"><p>Beim mindestens einem Bankkonto muss die Option |
38 |
„Nutzung von ZUGFeRD“ aktiviert sein</p></li></ol></div><div class="sect3" title="3.10.3.1. Mandantenkonfiguration"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7294"></a>3.10.3.1. Mandantenkonfiguration</h4></div></div></div><p>Die Einstellung für die Erstellung von ZUGFeRD Rechnungen
|
|
38 |
„Nutzung von ZUGFeRD“ aktiviert sein</p></li></ol></div><div class="sect3" title="3.10.3.1. Mandantenkonfiguration"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7173"></a>3.10.3.1. Mandantenkonfiguration</h4></div></div></div><p>Die Einstellung für die Erstellung von ZUGFeRD Rechnungen
|
|
39 | 39 |
erfolgt unter „System“ → „Mandatenkonfiguration“ → „Features“. |
40 | 40 |
Im Abschnitt „Einkauf und Verkauf“ finden Sie die Einstellung |
41 | 41 |
„Verkaufsrechnungen mit ZUGFeRD-Daten erzeugen“. |
42 | 42 |
Hier besteht die Auswahl zwischen:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>ZUGFeRD-Rechnungen erzeugen</p></li><li class="listitem"><p>ZUGFeRD-Rechnungen im Testmodus erzeugen</p></li><li class="listitem"><p>Keine ZUGFeRD Rechnungen erzeugen</p></li></ul></div><p>Rechnungen die als PDF erzeugt werden, werden je nach |
43 |
Einstellung nun im ZUGFeRD Format ausgegeben.</p></div><div class="sect3" title="3.10.3.2. Konfiguration der Bankkonten"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7311"></a>3.10.3.2. Konfiguration der Bankkonten</h4></div></div></div><p>Unter „System → Bankkonten“ muss bei mindestens einem
|
|
43 |
Einstellung nun im ZUGFeRD Format ausgegeben.</p></div><div class="sect3" title="3.10.3.2. Konfiguration der Bankkonten"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7190"></a>3.10.3.2. Konfiguration der Bankkonten</h4></div></div></div><p>Unter „System → Bankkonten“ muss bei mindestens einem
|
|
44 | 44 |
Bankkonto die Option „Nutzung mit ZUGFeRD“ auf „Ja“ gestellt |
45 | 45 |
werden.</p></div></div><div class="sect2" title="3.10.4. Einlesen von ZUGFeRD Rechnungen in Kivitendo"><div class="titlepage"><div><div><h3 class="title"><a name="features.zugferd.read_zugferd_bills"></a>3.10.4. Einlesen von ZUGFeRD Rechnungen in Kivitendo</h3></div></div></div><p>Es lassen sich auch Rechnungen von Kreditoren, die im |
46 | 46 |
ZUGFeRD Format erstellt wurden, nach Kivitendo importieren. |
doc/html/ch04.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>Kapitel 4. Entwicklerdokumentation</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s10.html" title="3.10. ZUGFeRD Rechnungen"><link rel="next" href="ch04s02.html" title="4.2. Entwicklung unter FastCGI"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Kapitel 4. Entwicklerdokumentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s10.html">Zurück</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 4. Entwicklerdokumentation"><div class="titlepage"><div><div><h2 class="title"><a name="d0e7330"></a>Kapitel 4. Entwicklerdokumentation</h2></div></div></div><div class="sect1" title="4.1. Globale Variablen"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="devel.globals"></a>4.1. Globale Variablen</h2></div></div></div><div class="sect2" title="4.1.1. Wie sehen globale Variablen in Perl aus?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7336"></a>4.1.1. Wie sehen globale Variablen in Perl aus?</h3></div></div></div><p>Globale Variablen liegen in einem speziellen namespace namens
|
|
3 |
<title>Kapitel 4. Entwicklerdokumentation</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s10.html" title="3.10. ZUGFeRD Rechnungen"><link rel="next" href="ch04s02.html" title="4.2. Entwicklung unter FastCGI"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Kapitel 4. Entwicklerdokumentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s10.html">Zurück</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 4. Entwicklerdokumentation"><div class="titlepage"><div><div><h2 class="title"><a name="d0e7209"></a>Kapitel 4. Entwicklerdokumentation</h2></div></div></div><div class="sect1" title="4.1. Globale Variablen"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="devel.globals"></a>4.1. Globale Variablen</h2></div></div></div><div class="sect2" title="4.1.1. Wie sehen globale Variablen in Perl aus?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7215"></a>4.1.1. Wie sehen globale Variablen in Perl aus?</h3></div></div></div><p>Globale Variablen liegen in einem speziellen namespace namens
|
|
4 | 4 |
"main", der von überall erreichbar ist. Darüber hinaus sind bareword |
5 | 5 |
globs global und die meisten speziellen Variablen sind... |
6 | 6 |
speziell.</p><p>Daraus ergeben sich folgende Formen:</p><div class="variablelist"><dl><dt><span class="term"> |
... | ... | |
25 | 25 |
<code class="varname">$PACKAGE::form</code>.</p></dd><dt><span class="term"> |
26 | 26 |
<code class="literal">local $form</code> |
27 | 27 |
</span></dt><dd><p>Alle Änderungen an <code class="varname">$form</code> werden am Ende |
28 |
des scopes zurückgesetzt</p></dd></dl></div></div><div class="sect2" title="4.1.2. Warum sind globale Variablen ein Problem?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7437"></a>4.1.2. Warum sind globale Variablen ein Problem?</h3></div></div></div><p>Das erste Problem ist <span class="productname">FCGI</span>™.</p><p>
|
|
28 |
des scopes zurückgesetzt</p></dd></dl></div></div><div class="sect2" title="4.1.2. Warum sind globale Variablen ein Problem?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7316"></a>4.1.2. Warum sind globale Variablen ein Problem?</h3></div></div></div><p>Das erste Problem ist <span class="productname">FCGI</span>™.</p><p>
|
|
29 | 29 |
<span class="productname">SQL-Ledger</span>™ hat fast alles im globalen |
30 | 30 |
namespace abgelegt, und erwartet, dass es da auch wiederzufinden ist. |
31 | 31 |
Unter <span class="productname">FCGI</span>™ müssen diese Sachen aber wieder |
... | ... | |
39 | 39 |
dies hat, seit der Einführung, u.a. schon so manche langwierige |
40 | 40 |
Bug-Suche verkürzt. Da globale Variablen aber implizit mit Package |
41 | 41 |
angegeben werden, werden die nicht geprüft, und somit kann sich |
42 |
schnell ein Tippfehler einschleichen.</p></div><div class="sect2" title="4.1.3. Kanonische globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7470"></a>4.1.3. Kanonische globale Variablen</h3></div></div></div><p>Um dieses Problem im Griff zu halten gibt es einige wenige
|
|
42 |
schnell ein Tippfehler einschleichen.</p></div><div class="sect2" title="4.1.3. Kanonische globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7349"></a>4.1.3. Kanonische globale Variablen</h3></div></div></div><p>Um dieses Problem im Griff zu halten gibt es einige wenige
|
|
43 | 43 |
globale Variablen, die kanonisch sind, d.h. sie haben bestimmte |
44 | 44 |
vorgegebenen Eigenschaften, und alles andere sollte anderweitig |
45 | 45 |
umhergereicht werden.</p><p>Diese Variablen sind im Moment die folgenden neun:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> |
... | ... | |
62 | 62 |
<code class="varname">$::request</code> |
63 | 63 |
</p></li></ul></div><p>Damit diese nicht erneut als Müllhalde missbraucht werden, im |
64 | 64 |
Folgenden eine kurze Erläuterung der bestimmten vorgegebenen |
65 |
Eigenschaften (Konventionen):</p><div class="sect3" title="4.1.3.1. $::form"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7534"></a>4.1.3.1. $::form</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Ist ein Objekt der Klasse
|
|
65 |
Eigenschaften (Konventionen):</p><div class="sect3" title="4.1.3.1. $::form"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7413"></a>4.1.3.1. $::form</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Ist ein Objekt der Klasse
|
|
66 | 66 |
"<code class="classname">Form</code>"</p></li><li class="listitem"><p>Wird nach jedem Request gelöscht</p></li><li class="listitem"><p>Muss auch in Tests und Konsolenscripts vorhanden |
67 | 67 |
sein.</p></li><li class="listitem"><p>Enthält am Anfang eines Requests die Requestparameter vom |
68 | 68 |
User</p></li><li class="listitem"><p>Kann zwar intern über Requestgrenzen ein Datenbankhandle |
... | ... | |
110 | 110 |
push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; |
111 | 111 |
push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; |
112 | 112 |
# ... |
113 |
}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7618"></a>4.1.3.2. %::myconfig</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Das einzige Hash unter den globalen Variablen</p></li><li class="listitem"><p>Wird spätestens benötigt wenn auf die Datenbank
|
|
113 |
}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7497"></a>4.1.3.2. %::myconfig</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Das einzige Hash unter den globalen Variablen</p></li><li class="listitem"><p>Wird spätestens benötigt wenn auf die Datenbank
|
|
114 | 114 |
zugegriffen wird</p></li><li class="listitem"><p>Wird bei jedem Request neu erstellt.</p></li><li class="listitem"><p>Enthält die Userdaten des aktuellen Logins</p></li><li class="listitem"><p>Sollte nicht ohne Filterung irgendwo gedumpt werden oder |
115 | 115 |
extern serialisiert werden, weil da auch der Datenbankzugriff |
116 | 116 |
für diesen user drinsteht.</p></li><li class="listitem"><p>Enthält unter anderem Datumsformat dateformat und |
... | ... | |
122 | 122 |
überwiegend die Daten, die sich unter <span class="guimenu">Programm</span> |
123 | 123 |
-> <span class="guimenuitem">Einstellungen</span> befinden, bzw. die |
124 | 124 |
Informationen über den Benutzer die über die |
125 |
Administrator-Schnittstelle eingegeben wurden.</p></div><div class="sect3" title="4.1.3.3. $::locale"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7657"></a>4.1.3.3. $::locale</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "Locale"</p></li><li class="listitem"><p>Wird pro Request erstellt</p></li><li class="listitem"><p>Muss auch für Tests und Scripte immer verfügbar
|
|
125 |
Administrator-Schnittstelle eingegeben wurden.</p></div><div class="sect3" title="4.1.3.3. $::locale"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7536"></a>4.1.3.3. $::locale</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "Locale"</p></li><li class="listitem"><p>Wird pro Request erstellt</p></li><li class="listitem"><p>Muss auch für Tests und Scripte immer verfügbar
|
|
126 | 126 |
sein.</p></li><li class="listitem"><p>Cached intern über Requestgrenzen hinweg benutzte |
127 | 127 |
Locales</p></li></ul></div><p>Lokalisierung für den aktuellen User. Alle Übersetzungen, |
128 |
Zahlen- und Datumsformatierungen laufen über dieses Objekt.</p></div><div class="sect3" title="4.1.3.4. $::lxdebug"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7675"></a>4.1.3.4. $::lxdebug</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "LXDebug"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Muss immer verfügbar sein, in nahezu allen
|
|
128 |
Zahlen- und Datumsformatierungen laufen über dieses Objekt.</p></div><div class="sect3" title="4.1.3.4. $::lxdebug"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7554"></a>4.1.3.4. $::lxdebug</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "LXDebug"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Muss immer verfügbar sein, in nahezu allen
|
|
129 | 129 |
Funktionen</p></li></ul></div><p> |
130 | 130 |
<code class="varname">$::lxdebug</code> stellt Debuggingfunktionen |
131 | 131 |
bereit, wie "<code class="function">enter_sub</code>" und |
... | ... | |
135 | 135 |
"<code class="function">message</code>" und "<code class="function">dump</code>" mit |
136 | 136 |
denen man flott Informationen ins Log (tmp/kivitendo-debug.log) |
137 | 137 |
packen kann.</p><p>Beispielsweise so:</p><pre class="programlisting">$main::lxdebug->message(0, 'Meine Konfig:' . Dumper (%::myconfig)); |
138 |
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7712"></a>4.1.3.5. $::auth</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "SL::Auth"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Hat eine permanente DB Verbindung zur Authdatenbank</p></li><li class="listitem"><p>Wird nach jedem Request resettet.</p></li></ul></div><p>
|
|
138 |
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7591"></a>4.1.3.5. $::auth</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "SL::Auth"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Hat eine permanente DB Verbindung zur Authdatenbank</p></li><li class="listitem"><p>Wird nach jedem Request resettet.</p></li></ul></div><p>
|
|
139 | 139 |
<code class="varname">$::auth</code> stellt Funktionen bereit um die |
140 | 140 |
Rechte des aktuellen Users abzufragen. Obwohl diese Informationen |
141 | 141 |
vom aktuellen User abhängen wird das Objekt aus |
... | ... | |
144 | 144 |
Dessen Einstellungen können über |
145 | 145 |
<code class="literal">$::auth->client</code> abgefragt werden; Rückgabewert |
146 | 146 |
ist ein Hash mit den Werten aus der Tabelle |
147 |
<code class="literal">auth.clients</code>.</p></div><div class="sect3" title="4.1.3.6. $::lx_office_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7741"></a>4.1.3.6. $::lx_office_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
147 |
<code class="literal">auth.clients</code>.</p></div><div class="sect3" title="4.1.3.6. $::lx_office_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7620"></a>4.1.3.6. $::lx_office_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
148 | 148 |
"<code class="classname">SL::LxOfficeConf</code>"</p></li><li class="listitem"><p>Global gecached</p></li><li class="listitem"><p>Repräsentation der |
149 | 149 |
<code class="filename">config/kivitendo.conf[.default]</code>-Dateien</p></li></ul></div><p>Globale Konfiguration. Configdateien werden zum Start gelesen |
150 | 150 |
und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass |
... | ... | |
154 | 154 |
file_name = /tmp/kivitendo-debug.log</pre><p>ist der Key <code class="varname">file</code> im Programm als |
155 | 155 |
<code class="varname">$::lx_office_conf->{debug}{file}</code> |
156 | 156 |
erreichbar.</p><div class="warning" title="Warnung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warnung]" src="system/docbook-xsl/images/warning.png"></td><th align="left">Warnung</th></tr><tr><td align="left" valign="top"><p>Zugriff auf die Konfiguration erfolgt im Moment über |
157 |
Hashkeys, sind also nicht gegen Tippfehler abgesichert.</p></td></tr></table></div></div><div class="sect3" title="4.1.3.7. $::instance_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7777"></a>4.1.3.7. $::instance_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
157 |
Hashkeys, sind also nicht gegen Tippfehler abgesichert.</p></td></tr></table></div></div><div class="sect3" title="4.1.3.7. $::instance_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7656"></a>4.1.3.7. $::instance_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
158 | 158 |
"<code class="classname">SL::InstanceConfiguration</code>"</p></li><li class="listitem"><p>wird pro Request neu erstellt</p></li></ul></div><p>Funktioniert wie <code class="varname">$::lx_office_conf</code>, |
159 | 159 |
speichert aber Daten die von der Instanz abhängig sind. Eine Instanz |
160 | 160 |
ist hier eine Mandantendatenbank. Beispielsweise überprüft |
161 | 161 |
</p><pre class="programlisting">$::instance_conf->get_inventory_system eq 'perpetual'</pre><p> |
162 |
ob die berüchtigte Bestandsmethode zur Anwendung kommt.</p></div><div class="sect3" title="4.1.3.8. $::dispatcher"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7798"></a>4.1.3.8. $::dispatcher</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
162 |
ob die berüchtigte Bestandsmethode zur Anwendung kommt.</p></div><div class="sect3" title="4.1.3.8. $::dispatcher"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7677"></a>4.1.3.8. $::dispatcher</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
163 | 163 |
"<code class="varname">SL::Dispatcher</code>"</p></li><li class="listitem"><p>wird pro Serverprozess erstellt.</p></li><li class="listitem"><p>enthält Informationen über die technische Verbindung zum |
164 | 164 |
Server</p></li></ul></div><p>Der dritte Punkt ist auch der einzige Grund warum das Objekt |
165 | 165 |
global gespeichert wird. Wird vermutlich irgendwann in einem anderen |
166 |
Objekt untergebracht.</p></div><div class="sect3" title="4.1.3.9. $::request"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7816"></a>4.1.3.9. $::request</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Hashref (evtl später Objekt)</p></li><li class="listitem"><p>Wird pro Request neu initialisiert.</p></li><li class="listitem"><p>Keine Unterstruktur garantiert.</p></li></ul></div><p>
|
|
166 |
Objekt untergebracht.</p></div><div class="sect3" title="4.1.3.9. $::request"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7695"></a>4.1.3.9. $::request</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Hashref (evtl später Objekt)</p></li><li class="listitem"><p>Wird pro Request neu initialisiert.</p></li><li class="listitem"><p>Keine Unterstruktur garantiert.</p></li></ul></div><p>
|
|
167 | 167 |
<code class="varname">$::request</code> ist ein generischer Platz um |
168 | 168 |
Daten "für den aktuellen Request" abzulegen. Sollte nicht für action |
169 | 169 |
at a distance benutzt werden, sondern um lokales memoizing zu |
... | ... | |
176 | 176 |
<code class="varname">$::request</code> |
177 | 177 |
</p></li><li class="listitem"><p>Muss ich von anderen Teilen des Programms lesend drauf |
178 | 178 |
zugreifen? Dann <code class="varname">$::request</code>, aber Zugriff über |
179 |
Wrappermethode</p></li></ul></div></div></div><div class="sect2" title="4.1.4. Ehemalige globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7858"></a>4.1.4. Ehemalige globale Variablen</h3></div></div></div><p>Die folgenden Variablen waren einmal im Programm, und wurden
|
|
180 |
entfernt.</p><div class="sect3" title="4.1.4.1. $::cgi"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7863"></a>4.1.4.1. $::cgi</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil cookie Methoden nicht als
|
|
179 |
Wrappermethode</p></li></ul></div></div></div><div class="sect2" title="4.1.4. Ehemalige globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7737"></a>4.1.4. Ehemalige globale Variablen</h3></div></div></div><p>Die folgenden Variablen waren einmal im Programm, und wurden
|
|
180 |
entfernt.</p><div class="sect3" title="4.1.4.1. $::cgi"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7742"></a>4.1.4.1. $::cgi</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil cookie Methoden nicht als
|
|
181 | 181 |
Klassenfunktionen funktionieren</p></li><li class="listitem"><p>Aufruf als Klasse erzeugt Dummyobjekt was im |
182 | 182 |
Klassennamespace gehalten wird und über Requestgrenzen |
183 | 183 |
leaked</p></li><li class="listitem"><p>liegt jetzt unter |
184 | 184 |
<code class="varname">$::request->{cgi}</code> |
185 |
</p></li></ul></div></div><div class="sect3" title="4.1.4.2. $::all_units"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7879"></a>4.1.4.2. $::all_units</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil einige Funktionen in Schleifen zum Teil
|
|
185 |
</p></li></ul></div></div><div class="sect3" title="4.1.4.2. $::all_units"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7758"></a>4.1.4.2. $::all_units</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil einige Funktionen in Schleifen zum Teil
|
|
186 | 186 |
ein paar hundert mal pro Request eine Liste der Einheiten |
187 | 187 |
brauchen, und de als Parameter durch einen Riesenstack von |
188 | 188 |
Funktionen geschleift werden müssten.</p></li><li class="listitem"><p>Liegt jetzt unter |
189 | 189 |
<code class="varname">$::request->{cache}{all_units}</code> |
190 | 190 |
</p></li><li class="listitem"><p>Wird nur in |
191 | 191 |
<code class="function">AM->retrieve_all_units()</code> gesetzt oder |
192 |
gelesen.</p></li></ul></div></div><div class="sect3" title="4.1.4.3. %::called_subs"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7898"></a>4.1.4.3. %::called_subs</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>wurde benutzt um callsub deep recursions
|
|
192 |
gelesen.</p></li></ul></div></div><div class="sect3" title="4.1.4.3. %::called_subs"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7777"></a>4.1.4.3. %::called_subs</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>wurde benutzt um callsub deep recursions
|
|
193 | 193 |
abzufangen.</p></li><li class="listitem"><p>Wurde entfernt, weil callsub nur einen Bruchteil der |
194 | 194 |
möglichen Rekursioenen darstellt, und da nie welche |
195 | 195 |
auftreten.</p></li><li class="listitem"><p>komplette recursion protection wurde entfernt.</p></li></ul></div></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s10.html">Zurück</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">3.10. ZUGFeRD Rechnungen </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 4.2. Entwicklung unter FastCGI</td></tr></table></div></body></html> |
doc/html/index.html | ||
---|---|---|
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 | 3 |
<title>kivitendo 3.7.0: Installation, Konfiguration, Entwicklung</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><link rel="next" href="ch01.html" title="Kapitel 1. Aktuelle Hinweise"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">kivitendo 3.7.0: Installation, Konfiguration, |
4 | 4 |
Entwicklung</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Weiter</a></td></tr></table><hr></div><div lang="de" class="book" title="kivitendo 3.7.0: Installation, Konfiguration, Entwicklung"><div class="titlepage"><div><div><h1 class="title"><a name="kivitendo-documentation"></a>kivitendo 3.7.0: Installation, Konfiguration, |
5 |
Entwicklung</h1></div></div><hr></div><div class="toc"><p><b>Inhaltsverzeichnis</b></p><dl><dt><span class="chapter"><a href="ch01.html">1. Aktuelle Hinweise</a></span></dt><dt><span class="chapter"><a href="ch02.html">2. Installation und Grundkonfiguration</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#Installation-%C3%9Cbersicht">2.1. Übersicht</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">2.2. Benötigte Software und Pakete</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s02.html#Betriebssystem">2.2.1. Betriebssystem</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#Pakete">2.2.2. Benötigte Perl-Pakete installieren</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#d0e720">2.2.3. Andere Pakete installieren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s03.html">2.3. Manuelle Installation des Programmpaketes</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">2.4. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#config.config-file.introduction">2.4.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.sections-parameters">2.4.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.prior-versions">2.4.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.5.1. Zeichensätze/die Verwendung von Unicode/UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#%C3%84nderungen-an-Konfigurationsdateien">2.5.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.5.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Erweiterung-f%C3%BCr-trigram">2.5.4. Erweiterung für Trigram Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Datenbankbenutzer-anlegen">2.5.5. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#d0e1194">2.6.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Apache-Konfiguration.FCGI">2.6.2. Konfiguration für FastCGI/FCGI</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1348">2.6.3. Authentifizierung mittels HTTP Basic Authentication</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1364">2.6.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1378">2.6.5. Weitergehende Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1389">2.6.6. Aktivierung von Apache2 modsecurity</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#Konfiguration-des-Task-Servers">2.7.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Konfiguration-der-Mandanten-fuer-den-Task-Servers">2.7.2. Konfiguration der Mandanten für den Task-Server</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Einbinden-in-den-Boot-Prozess">2.7.3. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle">2.7.4. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Tasks-konfigurieren">2.7.5. Exemplarische Konfiguration eines Hintergrund-Jobs, der die Jahreszahl in allen Nummernkreisen zum Jahreswechsel erhöht</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Grundlagen-zur-Benutzerauthentifizierung">2.8.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Administratorpasswort">2.8.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Authentifizierungsdatenbank">2.8.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Passwort%C3%BCberpr%C3%BCfung">2.8.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Name-des-Session-Cookies">2.8.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Anlegen-der-Authentifizierungsdatenbank">2.8.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. Mandanten-, Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#Zusammenh%C3%A4nge">2.9.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Mandanten-Benutzer-Gruppen">2.9.2. Mandanten, Benutzer und Gruppen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Datenbanken-anlegen">2.9.3. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Gruppen-anlegen">2.9.4. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Benutzer-anlegen">2.9.5. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Mandanten-anlegen">2.9.6. Mandanten anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. Drucker- und Systemverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s10.html#Druckeradministration">2.10.1. Druckeradministration</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#System">2.10.2. System sperren / entsperren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s11.html">2.11. E-Mail-Versand aus kivitendo heraus</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s11.html#config.sending-email.sendmail">2.11.1. Versand über lokalen E-Mail-Server</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#config.sending-email.smtp">2.11.2. Versand über einen SMTP-Server</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s12.html">2.12. Drucken mit kivitendo</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s12.html#Vorlagenverzeichnis-anlegen">2.12.1. Vorlagenverzeichnis anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#Vorlagen-RB">2.12.2. Der Druckvorlagensatz RB</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#Vorlagen-rev-odt">2.12.3. Der Druckvorlagensatz rev-odt</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#allgemeine-hinweise-zu-latex">2.12.4. Allgemeine Hinweise zu LaTeX Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s13.html">2.13. OpenDocument-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s13.html#d0e2491">2.13.1. OpenDocument (odt) Druckvorlagen mit Makros</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#d0e2646">2.13.2. Schweizer QR-Rechnung mit OpenDocument Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s14.html">2.14. Nomenklatur</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s14.html#booking.dates">2.14.1. Datum bei Buchungen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s15.html">2.15. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
|
|
5 |
Entwicklung</h1></div></div><hr></div><div class="toc"><p><b>Inhaltsverzeichnis</b></p><dl><dt><span class="chapter"><a href="ch01.html">1. Aktuelle Hinweise</a></span></dt><dt><span class="chapter"><a href="ch02.html">2. Installation und Grundkonfiguration</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#Installation-%C3%9Cbersicht">2.1. Übersicht</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">2.2. Benötigte Software und Pakete</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s02.html#Betriebssystem">2.2.1. Betriebssystem</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#Pakete">2.2.2. Benötigte Perl-Pakete installieren</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#d0e720">2.2.3. Andere Pakete installieren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s03.html">2.3. Manuelle Installation des Programmpaketes</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">2.4. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#config.config-file.introduction">2.4.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.sections-parameters">2.4.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.prior-versions">2.4.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.5.1. Zeichensätze/die Verwendung von Unicode/UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#%C3%84nderungen-an-Konfigurationsdateien">2.5.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.5.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Erweiterung-f%C3%BCr-trigram">2.5.4. Erweiterung für Trigram Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Datenbankbenutzer-anlegen">2.5.5. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#d0e1194">2.6.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Apache-Konfiguration.FCGI">2.6.2. Konfiguration für FastCGI/FCGI</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1348">2.6.3. Authentifizierung mittels HTTP Basic Authentication</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1364">2.6.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1378">2.6.5. Weitergehende Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1389">2.6.6. Aktivierung von Apache2 modsecurity</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#Konfiguration-des-Task-Servers">2.7.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Konfiguration-der-Mandanten-fuer-den-Task-Servers">2.7.2. Konfiguration der Mandanten für den Task-Server</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Einbinden-in-den-Boot-Prozess">2.7.3. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle">2.7.4. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Tasks-konfigurieren">2.7.5. Exemplarische Konfiguration eines Hintergrund-Jobs, der die Jahreszahl in allen Nummernkreisen zum Jahreswechsel erhöht</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Grundlagen-zur-Benutzerauthentifizierung">2.8.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Administratorpasswort">2.8.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Authentifizierungsdatenbank">2.8.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Passwort%C3%BCberpr%C3%BCfung">2.8.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Name-des-Session-Cookies">2.8.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Anlegen-der-Authentifizierungsdatenbank">2.8.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. Mandanten-, Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#Zusammenh%C3%A4nge">2.9.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Mandanten-Benutzer-Gruppen">2.9.2. Mandanten, Benutzer und Gruppen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Datenbanken-anlegen">2.9.3. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Gruppen-anlegen">2.9.4. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Benutzer-anlegen">2.9.5. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Mandanten-anlegen">2.9.6. Mandanten anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. Drucker- und Systemverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s10.html#Druckeradministration">2.10.1. Druckeradministration</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#System">2.10.2. System sperren / entsperren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s11.html">2.11. E-Mail-Versand aus kivitendo heraus</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s11.html#config.sending-email.sendmail">2.11.1. Versand über lokalen E-Mail-Server</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#config.sending-email.smtp">2.11.2. Versand über einen SMTP-Server</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s12.html">2.12. Drucken mit kivitendo</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s12.html#Vorlagenverzeichnis-anlegen">2.12.1. Vorlagenverzeichnis anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#Vorlagen-RB">2.12.2. Der Druckvorlagensatz RB</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#Vorlagen-rev-odt">2.12.3. Der Druckvorlagensatz rev-odt</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#allgemeine-hinweise-zu-latex">2.12.4. Allgemeine Hinweise zu LaTeX Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s13.html">2.13. OpenDocument-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s13.html#d0e2401">2.13.1. Grundeinstellung</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#d0e2418">2.13.2. Direkte Erzeugung von PDF-Dateien</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#d0e2469">2.13.3. Vorbereitungen</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#d0e2525">2.13.4. Schweizer QR-Rechnung mit OpenDocument Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s14.html">2.14. Nomenklatur</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s14.html#booking.dates">2.14.1. Datum bei Buchungen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s15.html">2.15. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
|
|
6 | 6 |
EUR</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s15.html#config.eur.introduction">2.15.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#config.eur.parameters">2.15.2. Konfigurationsparameter</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#config.eur.setting-parameters">2.15.3. Festlegen der Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#config.eur.inventory-system-perpetual">2.15.4. Bemerkungen zur Bestandsmethode</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#config.eur.knonw-issues">2.15.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s16.html">2.16. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s16.html#config.skr04-update-3804.introduction">2.16.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s16.html#config.skr04-update-3804.create-chart">2.16.2. Konto 3804 manuell anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s17.html">2.17. Verhalten des Bilanzberichts</a></span></dt><dt><span class="sect1"><a href="ch02s18.html">2.18. Erfolgsrechnung</a></span></dt><dt><span class="sect1"><a href="ch02s19.html">2.19. Rundung in Verkaufsbelegen</a></span></dt><dt><span class="sect1"><a href="ch02s20.html">2.20. Einstellungen pro Mandant</a></span></dt><dt><span class="sect1"><a href="ch02s21.html">2.21. kivitendo ERP verwenden</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Features und Funktionen</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch03.html#features.periodic-invoices">3.1. Wiederkehrende Rechnungen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.introduction">3.1.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.configuration">3.1.2. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.variables">3.1.3. Spezielle Variablen</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.reports">3.1.4. Auflisten</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.task-server">3.1.5. Erzeugung der eigentlichen Rechnungen</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.create-for-current-month">3.1.6. Erste Rechnung für aktuellen Monat erstellen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s02.html">3.2. Bankerweiterung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s02.html#features.bank.introduction">3.2.1. Einführung</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s03.html">3.3. Dokumentenvorlagen und verfügbare Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.einf%C3%BChrung">3.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.variablen-ausgeben">3.3.2. Variablen ausgeben</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.verwendung-in-druckbefehlen">3.3.3. Verwendung in Druckbefehlen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.tag-style">3.3.4. Anfang und Ende der Tags verändern</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.zuordnung-dateinamen">3.3.5. Zuordnung von den Dateinamen zu den Funktionen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.dateinamen-erweitert">3.3.6. Sprache, Drucker und E-Mail</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.allgemeine-variablen">3.3.7. Allgemeine Variablen, die in allen Vorlagen vorhanden |
7 | 7 |
sind</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.invoice">3.3.8. Variablen in Rechnungen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.dunning">3.3.9. Variablen in Mahnungen und Rechnungen über Mahngebühren</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.andere-vorlagen">3.3.10. Variablen in anderen Vorlagen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.bloecke">3.3.11. Blöcke, bedingte Anweisungen und Schleifen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.markup">3.3.12. Markup-Code zur Textformatierung innerhalb von |
8 |
Formularen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.anrede">3.3.13. Hinweise zur Anrede</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s04.html">3.4. Excel-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s04.html#excel-templates.summary">3.4.1. Zusammenfassung</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.usage">3.4.2. Bedienung</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.syntax">3.4.3. Variablensyntax</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.limitations">3.4.4. Einschränkungen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s05.html">3.5. Mandantenkonfiguration Lager</a></span></dt><dt><span class="sect1"><a href="ch03s06.html">3.6. Schweizer Kontenpläne</a></span></dt><dt><span class="sect1"><a href="ch03s07.html">3.7. Artikelklassifizierung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s07.html#d0e6882">3.7.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6887">3.7.2. Basisklassifizierung</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6917">3.7.3. Attribute</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6948">3.7.4. Zwei-Zeichen Abkürzung</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s08.html">3.8. Dateiverwaltung (Mini-DMS)</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s08.html#d0e6960">3.8.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e6987">3.8.2. Struktur</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e7039">3.8.3. Anwendung</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e7082">3.8.4. Konfigurierung</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s09.html">3.9. Webshop-Api</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s09.html#d0e7147">3.9.1. Rechte für die Webshopapi</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7162">3.9.2. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7170">3.9.3. Webshopartikel</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7194">3.9.4. Bestellimport</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7247">3.9.5. Mapping der Daten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s10.html">3.10. ZUGFeRD Rechnungen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.preamble">3.10.1. Vorbedingung</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.summary">3.10.2. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.create_zugferd_bills">3.10.3. Erstellen von ZUGFeRD Rechnungen in Kivitendo</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.read_zugferd_bills">3.10.4. Einlesen von ZUGFeRD Rechnungen in Kivitendo</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Entwicklerdokumentation</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#devel.globals">4.1. Globale Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04.html#d0e7336">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7437">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7470">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7858">4.1.4. Ehemalige globale Variablen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s02.html">4.2. Entwicklung unter FastCGI</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.general">4.2.1. Allgemeines</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.exiting">4.2.2. Programmende und Ausnahmen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.globals">4.2.3. Globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.performance">4.2.4. Performance und Statistiken</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s03.html">4.3. Programmatische API-Aufrufe</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.introduction">4.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.client_selection">4.3.2. Wahl des Mandanten</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.http_basic_authentication">4.3.3. HTTP-»Basic«-Authentifizierung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.authentication_via_parameters">4.3.4. Authentifizierung mit Parametern</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.examples">4.3.5. Beispiele</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s04.html">4.4. SQL-Upgradedateien</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.introduction">4.4.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.format">4.4.2. Format der Kontrollinformationen</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.format-perl-files">4.4.3. Format von in Perl geschriebenen
|
|
8 |
Formularen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.anrede">3.3.13. Hinweise zur Anrede</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s04.html">3.4. Excel-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s04.html#excel-templates.summary">3.4.1. Zusammenfassung</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.usage">3.4.2. Bedienung</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.syntax">3.4.3. Variablensyntax</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.limitations">3.4.4. Einschränkungen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s05.html">3.5. Mandantenkonfiguration Lager</a></span></dt><dt><span class="sect1"><a href="ch03s06.html">3.6. Schweizer Kontenpläne</a></span></dt><dt><span class="sect1"><a href="ch03s07.html">3.7. Artikelklassifizierung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s07.html#d0e6761">3.7.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6766">3.7.2. Basisklassifizierung</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6796">3.7.3. Attribute</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6827">3.7.4. Zwei-Zeichen Abkürzung</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s08.html">3.8. Dateiverwaltung (Mini-DMS)</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s08.html#d0e6839">3.8.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e6866">3.8.2. Struktur</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e6918">3.8.3. Anwendung</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e6961">3.8.4. Konfigurierung</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s09.html">3.9. Webshop-Api</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s09.html#d0e7026">3.9.1. Rechte für die Webshopapi</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7041">3.9.2. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7049">3.9.3. Webshopartikel</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7073">3.9.4. Bestellimport</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7126">3.9.5. Mapping der Daten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s10.html">3.10. ZUGFeRD Rechnungen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.preamble">3.10.1. Vorbedingung</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.summary">3.10.2. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.create_zugferd_bills">3.10.3. Erstellen von ZUGFeRD Rechnungen in Kivitendo</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.read_zugferd_bills">3.10.4. Einlesen von ZUGFeRD Rechnungen in Kivitendo</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Entwicklerdokumentation</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#devel.globals">4.1. Globale Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04.html#d0e7215">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7316">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7349">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7737">4.1.4. Ehemalige globale Variablen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s02.html">4.2. Entwicklung unter FastCGI</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.general">4.2.1. Allgemeines</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.exiting">4.2.2. Programmende und Ausnahmen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.globals">4.2.3. Globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.performance">4.2.4. Performance und Statistiken</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s03.html">4.3. Programmatische API-Aufrufe</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.introduction">4.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.client_selection">4.3.2. Wahl des Mandanten</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.http_basic_authentication">4.3.3. HTTP-»Basic«-Authentifizierung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.authentication_via_parameters">4.3.4. Authentifizierung mit Parametern</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.examples">4.3.5. Beispiele</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s04.html">4.4. SQL-Upgradedateien</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.introduction">4.4.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.format">4.4.2. Format der Kontrollinformationen</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.format-perl-files">4.4.3. Format von in Perl geschriebenen
|
|
9 | 9 |
Datenbankupgradescripten</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.dbupgrade-tool">4.4.4. Hilfsscript dbupgrade2_tool.pl</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s05.html">4.5. Translations and languages</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s05.html#translations-languages.introduction">4.5.1. Introduction</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#translations-languages.character-set">4.5.2. Character set</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#translations-languages.file-structure">4.5.3. File structure</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s06.html">4.6. Die kivitendo-Test-Suite</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s06.html#devel.testsuite.intro">4.6.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s06.html#devel.testsuite.prerequisites">4.6.2. Voraussetzungen</a></span></dt><dt><span class="sect2"><a href="ch04s06.html#devel.testsuite.execution">4.6.3. Existierende Tests ausführen</a></span></dt><dt><span class="sect2"><a href="ch04s06.html#devel.testsuite.meaning_of_scripts">4.6.4. Bedeutung der verschiedenen Test-Scripte</a></span></dt><dt><span class="sect2"><a href="ch04s06.html#devel.testsuite.create_new">4.6.5. Neue Test-Scripte erstellen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s07.html">4.7. Stil-Richtlinien</a></span></dt><dt><span class="sect1"><a href="ch04s08.html">4.8. Dokumentation erstellen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s08.html#devel.build-doc.introduction">4.8.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s08.html#devel.build-doc.required-software">4.8.2. Benötigte Software</a></span></dt><dt><span class="sect2"><a href="ch04s08.html#devel.build-doc.build">4.8.3. PDFs und HTML-Seiten erstellen</a></span></dt><dt><span class="sect2"><a href="ch04s08.html#devel.build-doc.repository">4.8.4. Einchecken in das Git-Repository</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Kapitel 1. Aktuelle Hinweise</td></tr></table></div></body></html> |
Auch abrufbar als: Unified diff
Dokumentation: Abschnitt zu OpenDocument-Vorlagen aktualisiert