Skip to content

Commit

Permalink
Dokumentation: Schweizer QR-Rechnung hinzugefügt
Browse files Browse the repository at this point in the history
- Abschnitt "Schweizer QR-Rechnung mit OpenDocument Vorlagen"
hinzugefügt
- Perl Abhängigkeiten ergänzt: libimager-perl, libimager-qrcode-perl,
- Imager, Imager::QRCode eingetragen
- DocBook Tip Bild für HTML Ausgabe hinzugefügt
- HTML und PDF neu erzeugt
  • Loading branch information
rebootl committed Dec 23, 2021
1 parent 079c91d commit 63abe30
Show file tree
Hide file tree
Showing 14 changed files with 290 additions and 69 deletions.
183 changes: 177 additions & 6 deletions doc/dokumentation.xml
Expand Up @@ -261,6 +261,14 @@
<para><literal>Image::Info</literal></para>
</listitem>

<listitem>
<para><literal>Imager</literal></para>
</listitem>

<listitem>
<para><literal>Imager::QRCode</literal></para>
</listitem>

<listitem>
<para><literal>JSON</literal></para>
</listitem>
Expand Down Expand Up @@ -376,6 +384,10 @@
</itemizedlist>


<para>Seit Version größer v3.5.9 sind die folgenden Pakete
hinzugekommen: <literal>Imager</literal>,
<literal>Imager::QRCode</literal></para>

<para>Seit Version größer v3.5.6 sind die folgenden Pakete hinzugekommen: <literal>Try::Tiny</literal>, <literal>Math::Round</literal></para>
<para>Seit Version größer v3.5.6 sind die folgenden Pakete hinzugekommen: <literal>XML::LibXML</literal>, <literal>CAM::PDF</literal></para>
<para>Seit Version größer v3.5.3 sind die folgenden Pakete hinzugekommen: <literal>Exception::Class</literal></para>
Expand Down Expand Up @@ -442,13 +454,14 @@
libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \
libimage-info-perl libgd-gd2-perl libapache2-mod-fcgid \
libfile-copy-recursive-perl postgresql libalgorithm-checkdigits-perl \
libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl\
postgresql-contrib poppler-utils libhtml-restrict-perl\
libdatetime-set-perl libset-infinite-perl liblist-utilsby-perl\
libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl\
libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl \
postgresql-contrib poppler-utils libhtml-restrict-perl \
libdatetime-set-perl libset-infinite-perl liblist-utilsby-perl \
libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl \
libfile-mimeinfo-perl libpbkdf2-tiny-perl libregexp-ipv6-perl \
libdatetime-event-cron-perl libexception-class-perl libcam-pdf-perl \
libxml-libxml-perl libtry-tiny-perl libmath-round-perl
libxml-libxml-perl libtry-tiny-perl libmath-round-perl \
libimager-perl libimager-qrcode-perl
</programlisting>
<para>Sollten Pakete nicht zu Verfügung stehen, so können diese auch mittels CPAN installiert werden. Ferner muss für Ubuntu das Repository "Universe" aktiv sein (s.a. Anmerkungen).</para>
<note id="ubuntu-universe">
Expand Down Expand Up @@ -2555,7 +2568,7 @@ digits_year: 4</programlisting>
sales_order_besr.odt</para>
</sect3>

<sect3>
<sect3 id="opendocument-druckvorlagen-mit-makros.vorbereitungen">
<title>Vorbereitungen im Adminbereich</title>

<para>Damit beim Erstellen von Rechnungen und Aufträgen neben der
Expand Down Expand Up @@ -2768,6 +2781,164 @@ digits_year: 4</programlisting>
</itemizedlist>
</sect3>
</sect2>

<sect2>
<title>Schweizer QR-Rechnung mit OpenDocument Vorlagen</title>

<sect3>
<title>Übersicht</title>

<para>Mit der Version 3.5.9 unterstützt Kivitendo die Erstellung von
Schweizer QR-Rechnungen gemäss <ulink
url="https://www.paymentstandards.ch/dam/downloads/ig-qr-bill-de.pdf">Swiss
Payment Standards, Version 2.2</ulink>. Implementiert ist hierbei die
Variante: <emphasis role="bold">QR-IBAN mit
QR-Referenz</emphasis>.</para>

<para>Der Vorlagensatz "rev-odt" enthält die Vorlage
<literal>invoice_qr.odt</literal>, welche für die Erstellung von
QR-Rechnungen vorgesehen ist. Damit diese verwendet werden kann muss
wie obenstehend Beschrieben ein Drucker hinzugefügt werden (siehe
<xref linkend="opendocument-druckvorlagen-mit-makros.vorbereitungen"/>
). Alternativ kann die Vorlage umbenannt werden in
<literal>invoice.odt</literal>.</para>

<para>Die Vorlage <literal>invoice_qr.odt</literal> kann beliebig
angepasst werden. Zwingend muss diese jedoch das QR-Code Platzhalter
Bild, als eingebettetes Bild, enthalten. Da dieses beim
Ausdrucken/Erzeugen der Rechnung, durch das neu generierte QR-Code
Bild ersetzt wird.</para>
</sect3>

<sect3>
<title>Einstellungen</title>

<sect4>
<title>Mandantenkonfiguration</title>

<para>Unter <emphasis>System → Mandatenkonfiguration →
Features</emphasis>. Im Abschnitt <emphasis>Einkauf und
Verkauf</emphasis> muss der Punkt <emphasis>Verkaufsrechnungen mit
Schweizer QR-Rechnung erzeugen</emphasis> aktiviert werden.</para>
</sect4>

<sect4>
<title>Konfiguration der Bankkonten</title>

<para>Unter <emphasis>System → Bankkonten</emphasis> muss bei
mindestens einem Bankkonto die Option <emphasis>Nutzung mit
Schweizer QR-Rechnung</emphasis> auf <emphasis
role="bold">Ja</emphasis> gestellt werden.</para>

<tip>
<para>Dieses Konto muss unter IBAN eine gültige <emphasis
role="bold">QR-IBAN Nummer</emphasis> enthalten. Diese
unterscheidet sich von der regulären IBAN.</para>

<para>Zusätzlich muss eine gültige <emphasis role="bold">Bankkonto
Identifikationsnummer</emphasis> angegeben werden
(6-stellig).</para>

<para>Diese werden von der jeweiligen Bank vergeben.</para>
</tip>

<para>Sind mehrere Konten ausgewählt, wird das erste
verwendet.</para>
</sect4>
</sect3>

<sect3>
<title>Adressdaten</title>

<para>Die Adressdaten zum Zahlungsempfänger werden aus der
Mandantenkonfiguration entnommen. Unter <emphasis>System →
Mandatenkonfiguration → Verschiedenes</emphasis>, Abschnitt
<emphasis>Firmenname und -adresse.</emphasis></para>

<para>Die Adressdaten zum Zahlungspflichtigen, stammen aus den
Kundendaten der jeweiligen Rechnung.</para>

<para>Diese können in der Vorlage mit den jeweiligen Variablen
eingetragen werden. Siehe auch: <xref
linkend="dokumentenvorlagen-und-variablen"/></para>

<para>Der erzeugte QR-Code verwendet Adress-Typ "K" (Kombinierte
Adressfelder, 2 Zeilen).</para>
</sect3>

<sect3>
<title>Referenznummer</title>

<para>Die Referenznummer wird in Kivitendo erzeugt und setzt sich
wiefolgt zusammen:</para>

<itemizedlist>
<listitem>
<para>Bankkonto Identifikationsnummer (6-stellig)</para>
</listitem>

<listitem>
<para>Kundennummer (6-stellig, mit führenden Nullen
aufgefüllt)</para>
</listitem>

<listitem>
<para>Auftragsnummer (7-stellig, mit führenden Nullen
aufgefüllt)</para>
</listitem>

<listitem>
<para>Rechnungsnummer (7-stellig, mit führenden Nullen
aufgefüllt)</para>
</listitem>

<listitem>
<para>Prüfziffer (1-stellig, berechnet mittels modulo 10,
rekursiv)</para>
</listitem>
</itemizedlist>

<para>Es sind lediglich Ziffern erlaubt. Allfällige Prefixe mit
Buchstaben werden entfernt und fehlende Stellen werden mit führenden
Nullen aufgefüllt.</para>
</sect3>

<sect3>
<title>Zusätzliche Variablen für Vorlage</title>

<para>Zusätzlich zu den in der Vorlage standardmässig verfügbaren
Variablen (siehe <xref linkend="dokumentenvorlagen-und-variablen"/>),
werden die folgenden Variablen erzeugt:</para>

<variablelist>
<varlistentry>
<term>ref_number_formatted</term>

<listitem>
<para>Referenznummer formatiert mit Leerzeichen, z.B.: 21 00000
00003 13947 14300 09017</para>
</listitem>
</varlistentry>

<varlistentry>
<term>iban_formatted</term>

<listitem>
<para>IBAN formatiert mit Leerzeichen</para>
</listitem>
</varlistentry>

<varlistentry>
<term>amount_formatted</term>

<listitem>
<para>Betrag formatiert mit Tausendertrennzeichen Leerschlag,
z.B.: 1 005.55</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
</sect2>
</sect1>

<sect1 id="nomenclature">
Expand Down
28 changes: 18 additions & 10 deletions doc/html/ch02s02.html
Expand Up @@ -64,6 +64,10 @@
<code class="literal">HTML::Restrict</code>
</p></li><li class="listitem"><p>
<code class="literal">Image::Info</code>
</p></li><li class="listitem"><p>
<code class="literal">Imager</code>
</p></li><li class="listitem"><p>
<code class="literal">Imager::QRCode</code>
</p></li><li class="listitem"><p>
<code class="literal">JSON</code>
</p></li><li class="listitem"><p>
Expand Down Expand Up @@ -114,7 +118,10 @@
<code class="literal">XML::LibXML</code>
</p></li><li class="listitem"><p>
<code class="literal">YAML::XS</code> oder <code class="literal">YAML</code>
</p></li></ul></div><p>Seit Version größer v3.5.6 sind die folgenden Pakete hinzugekommen: <code class="literal">Try::Tiny</code>, <code class="literal">Math::Round</code>
</p></li></ul></div><p>Seit Version größer v3.5.9 sind die folgenden Pakete
hinzugekommen: <code class="literal">Imager</code>,
<code class="literal">Imager::QRCode</code>
</p><p>Seit Version größer v3.5.6 sind die folgenden Pakete hinzugekommen: <code class="literal">Try::Tiny</code>, <code class="literal">Math::Round</code>
</p><p>Seit Version größer v3.5.6 sind die folgenden Pakete hinzugekommen: <code class="literal">XML::LibXML</code>, <code class="literal">CAM::PDF</code>
</p><p>Seit Version größer v3.5.3 sind die folgenden Pakete hinzugekommen: <code class="literal">Exception::Class</code>
</p><p>Seit Version größer v3.5.1 sind die folgenden Pakete hinzugekommen: <code class="literal">Set::Infinite</code>,
Expand Down Expand Up @@ -149,7 +156,7 @@
sind auch in 2.6.1 weiterhin mit ausgeliefert, wurden in einer
zukünftigen Version aber aus dem Paket entfernt werden. Es wird
empfohlen diese Module zusammen mit den anderen als Bibliotheken zu
installieren.</p><div class="sect3" title="2.2.2.1. Debian und Ubuntu"><div class="titlepage"><div><div><h4 class="title"><a name="d0e591"></a>2.2.2.1. Debian und Ubuntu</h4></div></div></div><p>Für Debian und Ubuntu stehen die meisten der benötigten
installieren.</p><div class="sect3" title="2.2.2.1. Debian und Ubuntu"><div class="titlepage"><div><div><h4 class="title"><a name="d0e611"></a>2.2.2.1. Debian und Ubuntu</h4></div></div></div><p>Für Debian und Ubuntu stehen die meisten der benötigten
Pakete als Debian-Pakete zur Verfügung. Sie können mit
folgendem Befehl installiert werden:</p><pre class="programlisting">apt install apache2 libarchive-zip-perl libclone-perl \
libconfig-std-perl libdatetime-perl libdbd-pg-perl libdbi-perl \
Expand All @@ -161,16 +168,17 @@
libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \
libimage-info-perl libgd-gd2-perl libapache2-mod-fcgid \
libfile-copy-recursive-perl postgresql libalgorithm-checkdigits-perl \
libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl\
postgresql-contrib poppler-utils libhtml-restrict-perl\
libdatetime-set-perl libset-infinite-perl liblist-utilsby-perl\
libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl\
libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl \
postgresql-contrib poppler-utils libhtml-restrict-perl \
libdatetime-set-perl libset-infinite-perl liblist-utilsby-perl \
libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl \
libfile-mimeinfo-perl libpbkdf2-tiny-perl libregexp-ipv6-perl \
libdatetime-event-cron-perl libexception-class-perl libcam-pdf-perl \
libxml-libxml-perl libtry-tiny-perl libmath-round-perl
libxml-libxml-perl libtry-tiny-perl libmath-round-perl \
libimager-perl libimager-qrcode-perl
</pre><p>Sollten Pakete nicht zu Verfügung stehen, so können diese auch mittels CPAN installiert werden. Ferner muss für Ubuntu das Repository "Universe" aktiv sein (s.a. Anmerkungen).</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"><a name="ubuntu-universe"></a>Anmerkung</th></tr><tr><td align="left" valign="top"><p>Die Perl Pakete für Ubuntu befinden sich im "Universe" Repository. Falls dies nicht aktiv ist, kann dies mit folgendem Aufruf aktiviert werden:
</p><pre class="programlisting">add-apt-repository universe</pre><p>
</p></td></tr></table></div></div><div class="sect3" title="2.2.2.2. Fedora"><div class="titlepage"><div><div><h4 class="title"><a name="d0e606"></a>2.2.2.2. Fedora</h4></div></div></div><p>Für Fedora stehen die meisten der benötigten Perl-Pakete als
</p></td></tr></table></div></div><div class="sect3" title="2.2.2.2. Fedora"><div class="titlepage"><div><div><h4 class="title"><a name="d0e626"></a>2.2.2.2. Fedora</h4></div></div></div><p>Für Fedora stehen die meisten der benötigten Perl-Pakete als
RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl
installiert werden:</p><pre class="programlisting">dnf install httpd mod_fcgid postgresql-server postgresql-contrib\
perl-Algorithm-CheckDigits perl-Archive-Zip perl-CPAN perl-Class-XSAccessor \
Expand All @@ -182,7 +190,7 @@
perl-Params-Validate perl-Regexp-IPv6 perl-Rose-DB perl-Rose-DB-Object \
perl-Rose-Object perl-Sort-Naturally perl-String-ShellQuote \
perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer \
perl-YAML perl-libwww-perl</pre></div><div class="sect3" title="2.2.2.3. openSUSE Leap 15.x und SUSE Linux Enterprise Server 15 GA"><div class="titlepage"><div><div><h4 class="title"><a name="d0e613"></a>2.2.2.3. openSUSE Leap 15.x und SUSE Linux Enterprise Server 15 GA</h4></div></div></div><p>Für openSUSE Leap 15.x stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung.</p><p>Damit diese installiert werden können, muß das System die erforderlichen Repositories kennen und Zugriff über das Internet darauf haben.</p><p>Daher machen wir die Repositories dem System bekannt.</p><p>Um die zusätzlichen Repositories für die Installation zur Verfügung zu stellen, kann man diese mit YaST oder auch in einem Terminal auf der Konsole bekannt geben. Wir beschränken uns hier mit der Eingabe auf der Konsole. In den allermeisten Fällen verwenden die Administratoren eine sichere SSH-Verbindung zum zu administrierenden Server.</p><p>Dazu geben wir folgenden Befehl ein:</p><pre class="programlisting">zypper addrepo -f \
perl-YAML perl-libwww-perl</pre></div><div class="sect3" title="2.2.2.3. openSUSE Leap 15.x und SUSE Linux Enterprise Server 15 GA"><div class="titlepage"><div><div><h4 class="title"><a name="d0e633"></a>2.2.2.3. openSUSE Leap 15.x und SUSE Linux Enterprise Server 15 GA</h4></div></div></div><p>Für openSUSE Leap 15.x stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung.</p><p>Damit diese installiert werden können, muß das System die erforderlichen Repositories kennen und Zugriff über das Internet darauf haben.</p><p>Daher machen wir die Repositories dem System bekannt.</p><p>Um die zusätzlichen Repositories für die Installation zur Verfügung zu stellen, kann man diese mit YaST oder auch in einem Terminal auf der Konsole bekannt geben. Wir beschränken uns hier mit der Eingabe auf der Konsole. In den allermeisten Fällen verwenden die Administratoren eine sichere SSH-Verbindung zum zu administrierenden Server.</p><p>Dazu geben wir folgenden Befehl ein:</p><pre class="programlisting">zypper addrepo -f \
http://download.opensuse.org/repositories/devel:languages:perl/openSUSE_Leap_15.2/ \
"devel:languages:perl"
</pre><pre class="programlisting">zypper addrepo -f \
Expand Down Expand Up @@ -227,7 +235,7 @@
texlive-upca
</pre><p>Zusätzlich müssen einige Pakete aus dem CPAN installiert
werden. Dazu können Sie die folgenden Befehle anwenden:</p><pre class="programlisting">cpan DateTime::event::Cron DateTime::Set FCGI \
HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite</pre></div></div><div class="sect2" title="2.2.3. Andere Pakete installieren"><div class="titlepage"><div><div><h3 class="title"><a name="d0e675"></a>2.2.3. Andere Pakete installieren</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite</pre></div></div><div class="sect2" title="2.2.3. Andere Pakete installieren"><div class="titlepage"><div><div><h3 class="title"><a name="d0e695"></a>2.2.3. Andere Pakete installieren</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
<code class="literal">poppler-utils</code> 'pdfinfo' zum Erkennen der Seitenanzahl bei der PDF-Generierung</p></li><li class="listitem"><p>
<code class="literal">Postgres Trigram-Index</code> Für datenbankoptimierte Suchanfragen. Bspw. im Paket <code class="literal">postgresql-contrib</code> enthalten</p></li></ul></div><p>Debian und Ubuntu: </p><pre class="programlisting">apt install postgresql-contrib poppler-utils</pre><p>
</p><p>Fedora: </p><pre class="programlisting">dnf install poppler-utils postgresql-contrib</pre><p>
Expand Down

0 comments on commit 63abe30

Please sign in to comment.