Merge branch 'mass_convert_delivery_orders_to_invoice'
authorJan Büren <jan@kivitendo-premium.de>
Fri, 4 Sep 2015 11:19:33 +0000 (13:19 +0200)
committerJan Büren <jan@kivitendo-premium.de>
Fri, 4 Sep 2015 11:19:33 +0000 (13:19 +0200)
31 files changed:
SL/DB/CustomVariable.pm
SL/PriceSource/Customer.pm
VERSION
bin/mozilla/io.pl
doc/changelog
doc/dokumentation.xml
doc/html/ch02s12.html
doc/html/ch03s03.html
doc/html/ch04.html
doc/html/index.html
doc/kivitendo-Dokumentation.pdf
doc/release_management.txt
locale/de/all
locale/de/special_chars
menus/user/00-erp.yaml
scripts/locales.pl
sql/Pg-upgrade2-auth/release_3_3_0.sql [new file with mode: 0644]
sql/Pg-upgrade2/release_3_3_0.sql [new file with mode: 0644]
sql/Pg-upgrade2/requirement_spec_parts_foreign_key_cascade.sql [new file with mode: 0644]
templates/print/rev-odt/LinuxPinguin.jpg [new file with mode: 0644]
templates/print/rev-odt/credit_note.odt [new file with mode: 0644]
templates/print/rev-odt/invoice.odt [new file with mode: 0644]
templates/print/rev-odt/pick_list.odt [new file with mode: 0644]
templates/print/rev-odt/proforma.odt [new file with mode: 0644]
templates/print/rev-odt/purchase_delivery_order.odt [new file with mode: 0644]
templates/print/rev-odt/purchase_order.odt [new file with mode: 0644]
templates/print/rev-odt/readme.txt [new file with mode: 0644]
templates/print/rev-odt/request_quotation.odt [new file with mode: 0644]
templates/print/rev-odt/sales_delivery_order.odt [new file with mode: 0644]
templates/print/rev-odt/sales_order.odt [new file with mode: 0644]
templates/print/rev-odt/sales_quotation.odt [new file with mode: 0644]

index 0971e64..46428fe 100644 (file)
@@ -44,7 +44,7 @@ sub parse_value {
   }
 
   if ($type =~ m{^(?:date|timestamp)}) {
-    return $self->timestamp_value(defined($unparsed) ? DateTime->from_kivitendo($unparsed) : undef);
+    return $self->timestamp_value(!defined($unparsed) ? undef : ref($unparsed) eq 'DateTime' ? $unparsed->clone : DateTime->from_kivitendo($unparsed));
   }
 
   # text, textfield, select
index 6bf06bc..52d35ee 100644 (file)
@@ -16,6 +16,7 @@ sub available_prices { }
 sub available_discounts {
   my ($self, %params) = @_;
 
+  return if     $self->part->not_discountable;
   return unless $self->record->is_sales;
   return unless $self->record->customer;
   return unless $self->record->customer->discount != 0;
diff --git a/VERSION b/VERSION
index 0ea8dc1..15a2799 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.3.0-beta
+3.3.0
index b9d2cc4..4ad3cbf 100644 (file)
@@ -353,8 +353,8 @@ sub display_row {
         $column_data{price_source} .= ' ' . $cgi->img({src => 'image/flag-red.png', alt => $price->invalid, title => $price->invalid }) if $price->invalid;
         $column_data{price_source} .= ' ' . $cgi->img({src => 'image/flag-red.png', alt => $price->missing, title => $price->missing }) if $price->missing;
         if (!$price->missing && !$price->invalid) {
-          $column_data{price_source} .= ' ' . $cgi->img({src => 'image/up.png',   alt => t8('This price has since gone up'),      title => t8('This price has since gone up' )     }) if $price->price > $record_item->sellprice;
-          $column_data{price_source} .= ' ' . $cgi->img({src => 'image/down.png', alt => t8('This price has since gone down'),    title => t8('This price has since gone down')    }) if $price->price < $record_item->sellprice;
+          $column_data{price_source} .= ' ' . $cgi->img({src => 'image/up.png',   alt => t8('This price has since gone up'),      title => t8('This price has since gone up' )     }) if $price->price - $record_item->sellprice > 0.01;
+          $column_data{price_source} .= ' ' . $cgi->img({src => 'image/down.png', alt => t8('This price has since gone down'),    title => t8('This price has since gone down')    }) if $price->price - $record_item->sellprice < -0.01;
           $column_data{price_source} .= ' ' . $cgi->img({src => 'image/ok.png',   alt => t8('There is a better price available'), title => t8('There is a better price available') }) if $best_price && $price->source ne $price_source->best_price->source;
         }
       }
@@ -362,8 +362,8 @@ sub display_row {
         $column_data{discount_source} .= ' ' . $cgi->img({src => 'image/flag-red.png', alt => $discount->invalid, title => $discount->invalid }) if $discount->invalid;
         $column_data{discount_source} .= ' ' . $cgi->img({src => 'image/flag-red.png', alt => $discount->missing, title => $discount->missing }) if $discount->missing;
         if (!$discount->missing && !$discount->invalid) {
-          $column_data{price_source} .= ' ' . $cgi->img({src => 'image/up.png',   alt => t8('This discount has since gone up'),      title => t8('This discount has since gone up')      }) if $discount->discount * 100 > $record_item->discount;
-          $column_data{price_source} .= ' ' . $cgi->img({src => 'image/down.png', alt => t8('This discount has since gone down'),    title => t8('This discount has since gone down')    }) if $discount->discount * 100 < $record_item->discount;
+          $column_data{price_source} .= ' ' . $cgi->img({src => 'image/up.png',   alt => t8('This discount has since gone up'),      title => t8('This discount has since gone up')      }) if $discount->discount * 100 - $record_item->discount > 0.01;
+          $column_data{price_source} .= ' ' . $cgi->img({src => 'image/down.png', alt => t8('This discount has since gone down'),    title => t8('This discount has since gone down')    }) if $discount->discount * 100 - $record_item->discount < -0.01;
           $column_data{price_source} .= ' ' . $cgi->img({src => 'image/ok.png',   alt => t8('There is a better discount available'), title => t8('There is a better discount available') }) if $best_discount && $discount->source ne $price_source->best_discount->source;
         }
       }
index c62d215..2eb3f91 100644 (file)
@@ -2,19 +2,19 @@
 # Veränderungen von kivitendo #
 ###############################
 
-2015-08-01 - Release 3.3-beta
+2015-08-20 - Release 3.3
 
 Größere neue Features:
 
-Bankerweiterung und Skontobehandlung
+Bankerweiterung und Skontobehandlung
 
   Bei der Bankerweiterung kann man
+
   * Kontoauszüge importieren (für MT940 wird aqbanking-cli benötigt)
-  * anhand der Kontoauszüge Zahlungen verbuchen
-  * die FiBu-Buchungen auf die Bankkonten mit den importieren Auszügen
-  abgleichen
+  * Zahlungen verbuchen anhand der Kontoauszüge
+  * Buchungen auf die Bankkonten mit den importieren Auszügen abgleichen
 
-__Es wurde ein neues Recht "Bankbewegungen" eingeführt.
+Es wurde ein neues Recht "Bankbewegungen" eingeführt.
 
   Beim Verbuchen der Zahlungen werden Rechnungsvorschläge gemacht, die anhand
   eines internen Punktesystems bewertet werden.
@@ -30,23 +30,14 @@ __Es wurde ein neues Recht "Bankbewegungen" eingeführt.
   Die Skontobehandlung wurde beim Verbuchen der Skontobelege und beim
   SEPA-Einzug bzw der SEPA-Überweisung implementiert.
   Beim Bezahlen von Rechnungen kann man auswählen ob man die Zahlung
+
   * ohne Skonto
   * mit Skonto laut Zahlungsbedingungen
   * die Differenz als Skonto
+
   buchen möchte. Es wird je nach Zahlungsbetrag und Zahlungsdatum ein sinnvoller
   Vorschlag gemacht.
 
-- Menüsystem überarbeitet: yaml, Icons und Rechte
-
-  Die Menüstruktur wird nun durch yaml-Dateien definiert. Statt Änderungen an
-  der menu.ini kann man nun durch Hinzufügen eigener Dateien neue Menüpunkte
-  hinzufügen oder bestehende Menüpunkte umsortieren.
-
-  Die Dateinamen der Icons wurden angepasst, und können nun unabhängig vom
-  Menunamen zugewiesen werden.
-
-  Die Rechte liegen jetzt in der auth Datenbank, in "auth.master_rights".
-
 Kleinere neue Features und Detailverbesserungen:
 
 - Briefe werden auch im WebDAV archiviert.
@@ -78,17 +69,29 @@ Kleinere neue Features und Detailverbesserungen:
 
 - Preisgruppe bei Stammdaten->Berichte->Kunden anzeigen lassen können.
 
-Änderungen:
-
 - Die Standarddruckvorlagen wurden entfernt, da diese nicht mehr gepflegt
   wurden. Neuer Default bei den Druckvorlagen sind die RB-Vorlagen.
 
+- Es gibt einen neuen Druckvorlagensatz rev-odt, der auf
+  OpenOffice/LibreOffice Dateien basiert.
+
+System- und API-Änderungen:
+
 - Belegpositionen werden nicht mehr mit ordnumber, transdate, cusordnumber
   gespeichert, für den Ausdruck in Rechnungen werden stattdessen die
   Informationen aus den verknüpften Positionen ermittelt.
 
 - wzToolTip wurde durch jQuery ToolTipster ersetzt
 
+- Menüsystem überarbeitet: yaml, Icons und Rechte
+  Die Menüstruktur wird nun durch yaml-Dateien definiert. Statt Änderungen an
+  der menu.ini kann man nun durch Hinzufügen eigener Dateien neue Menüpunkte
+  hinzufügen oder bestehende Menüpunkte umsortieren.
+
+  Die Dateinamen der Icons wurden angepasst, und können nun unabhängig vom
+  Menunamen zugewiesen werden.
+
+  Die Rechte liegen jetzt in der auth Datenbank, in "auth.master_rights".
 
 Bugfixes:
 
@@ -99,11 +102,14 @@ Bugfixes:
 - Bugfix #61 Als neu speichern und Kunde wechseln wirft einen DB-Fehler im Demo-Mandanten Steigmann Werft
 - Bugfix #62 Auftragsnummer in Auftragspositionen - ordnumber
 - Bugfix #64 Brieffunktion / letter fehlerhaft
+- Bugfix #65 Doppelte und Mehrfachzahlungen bei den Rechnungen durch den Bankimport
 - Bugfix #66 Bankimport Kontenabgleich Unausgeglichene Buchungen lassen sich speichern
 - Bugfix #68 Steuerzone hinzufügen - DB-Fehler
 - Bugfix #69 Einrichten/Upgrade neuer Datenbank schlägt fehl
 - Bugfix #71 Debitorenbuchungen und Kreditorenbuchungen können nicht mit Steuerschlüssel Ust-frei gebucht werden
 - Bugfix #73 Fehlermeldung bei UStVA
+- Bugfix #74 LaTeX-Fehler beim Drucken von pipe-, registered-, copyright- und Pfund-Symbol
+- Bugfix #77 Beim Erstellen eines odt-Dokuments wird eine fehlerhafte content.xml-Datei erzeugt
 
 
 
index 989a42c..b45f13a 100644 (file)
@@ -1437,11 +1437,13 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
 
       <para>kivitendo bringt drei alternative Vorlagensätze mit:</para>
       <itemizedlist>
-        <listitem><para>Standard</para></listitem>
-        <listitem><para>f-tex</para></listitem>
         <listitem><para>RB</para></listitem>
+        <listitem><para>f-tex</para></listitem>
+        <listitem><para>rev-odt</para></listitem>
       </itemizedlist>
 
+      <para>Der ehemalige Druckvorlagensatz "Standard" wurde mit der Version 3.3 entfernt, da er nicht mehr gepflegt wurde.</para>
+
       <sect2 id="Vorlagenverzeichnis-anlegen" xreflabel="Vorlagenverzeichnis anlegen">
         <title>Vorlagenverzeichnis anlegen</title>
         <para>Es lässt sich ein initialer Vorlagensatz erstellen. Die LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:</para>
@@ -1458,7 +1460,7 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
 
         <orderedlist>
           <listitem><para><option>Vorlagen auswählen</option>: Wählen Sie hier den Vorlagensatz aus, der kopiert werden soll
-          (<filename>Standard</filename>, <filename>f-tex</filename> oder <filename>RB</filename>.)</para></listitem>
+          (<filename>RB</filename>, <filename>f-tex</filename> oder <filename>odt-rev</filename>.)</para></listitem>
           <listitem><para><option>Neuer Name</option>: Der Verzeichnisname für den neuen Vorlagensatz. Dieser kann im Rahmen der üblichen
           Bedingungen für Verzeichnisnamen frei gewählt werden.</para></listitem>
         </orderedlist>
@@ -1470,11 +1472,22 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
 
 
       </sect2>
-      <sect2 id="Vorlagen-Standard">
-        <title>Standard</title>
 
-        <para>Der Standard-Vorlagensatz von kivitendo. Wie unter <ulink url="https://www.kivitendo.de">https://www.kivitendo.de</ulink> zu
-        sehen.</para>
+      <sect2 id="Vorlagen-RB">
+        <title>Der Druckvorlagensatz RB</title>
+
+        <para>Hierbei handelt es sich um einen vollständigen LaTeX Dokumentensatz mit alternativem Design. Die odt oder html-Varianten sind nicht gepflegt.</para>
+        <para>Die konzeptionelle Idee der Vorlagen wird <ulink
+          url="http://www.kivitendo-support.de/vortraege/Lx-Office%20Anwendertreffen%20LaTeX-Druckvorlagen-Teil3-finale.pdf">hier</ulink>
+          auf Folie 5 bis 10 vorgestellt. Informationen zur Anpassung an die eigenen Firmendaten finden sich in der Datei Readme.tex im Vorlagenverzeichnis.</para>
+
+        <para>Eine kurze Übersicht der Features:</para>
+          <itemizedlist>
+            <listitem><para>Mehrsprachenfähig, mit Deutscher und Englischer Übersetzung</para></listitem>
+            <listitem><para>Zentrale Konfigurationsdateien, die für alle Belege benutzt werden, z.B. für Kopf- und Fußzeilen, und Infos wie Bankdaten</para></listitem>
+            <listitem><para>mehrere vordefinierte Varianten für Logos/Hintergrundbilder</para></listitem>
+            <listitem><para>Berücksichtigung für Steuerzonen "EU mit USt-ID Nummer" oder "Außerhalb EU"</para></listitem>
+          </itemizedlist>
 
       </sect2>
 
@@ -1633,22 +1646,44 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/</programlisting>
           </para>
         </sect3>
       </sect2>
+      
+      <sect2 id="Vorlagen-rev-odt">
+        <title>Der Druckvorlagensatz rev-odt</title>
 
-      <sect2 id="Vorlagen-RB">
-        <title>Der Druckvorlagensatz RB</title>
-
-        <para>Hierbei handelt es sich um einen vollständigen \LaTeX Dokumentensatz mit alternativem Design. Die odt oder html-Varianten sind nicht gepflegt.</para>
-        <para>Die konzeptionelle Idee der Vorlagen wird <ulink
-          url="http://www.kivitendo-support.de/vortraege/Lx-Office%20Anwendertreffen%20LaTeX-Druckvorlagen-Teil3-finale.pdf">hier</ulink>
-          auf Folie 5 bis 10 vorgestellt. Informationen zur Anpassung an die eigenen Firmendaten finden sich in der Datei Readme.tex im Vorlagenverzeichnis.</para>
+        <para>Hierbei handelt es sich um einen Dokumentensatz der mit odt-Vorlagen erstellt wurde. Es gibt in dem Verzeichnis eine Readme-Datei, die eventuell aktueller als die Dokumentation hier ist.
+Die odt-Vorlagen in diesem Verzeichnis "rev-odt" wurden von revamp-it, Zürich erstellt
+und werden laufend aktualisiert. Ein paar der Formulierungen in den Druckvorlagen entsprechen dem Schweizer Sprachgebrauch, z.B. "Offerte" oder "allfällig".
+        </para>
 
-        <para>Eine kurze Übersicht der Features:</para>
-          <itemizedlist>
-            <listitem><para>Mehrsprachenfähig, mit Deutscher und Englischer Übersetzung</para></listitem>
-            <listitem><para>Zentrale Konfigurationsdateien, die für alle Belege benutzt werden, z.B. für Kopf- und Fußzeilen, und Infos wie Bankdaten</para></listitem>
-            <listitem><para>mehrere vordefinierte Varianten für Logos/Hintergrundbilder</para></listitem>
-            <listitem><para>Berücksichtigung für Steuerzonen "EU mit USt-ID Nummer" oder "Außerhalb EU"</para></listitem>
-          </itemizedlist>
+<para>
+Hinweis zum Einsatz des Feldes "Land" bei den Stammdaten für KundInnen und LieferantInnen,
+sowie bei Lieferadressen:
+Die in diesem Vorlagensatz vorhandenen Vorlagen erwarten für "Land" das entsprechende
+Kürzel, das in Adressen vor die Postleitzahl gesetzt wird.
+Das Feld kann auch komplett leer bleiben.
+Wer dies anders handhaben möchte, muss die Vorlagen entsprechend anpassen.
+</para>
+<para>
+odt-Vorlagen können mit LibreOffice oder OpenOffice editiert
+und den eigenen Bedürfnissen angepasst werden.
+Wichtig beim Editieren von if-Blöcken ist, dass immer der gesamte Block
+überschrieben werden muss und nicht nur Teile davon, da dies sonst oft
+zu einer odt-Datei führt, die vom Parser nicht korrekt gelesen werden kann.
+</para>
+<para>
+Zur Zeit gibt es in kivitendo noch keine Möglichkeit, odt-Vorlagen bei Mahnungen
+einzusetzen. Entsprechende Vorlagen sind deshalb nicht vorhanden.
+</para>
+<para>
+Inwieweit es möglich ist, für die in Version 3.2.0 neu eingeführten Pflichtenhefte
+odt-Vorlagen zu erstellen, sind wir am abklären.
+Wenn dies möglich ist, werden wir in Zukunft auch eine odt-Vorlage für Pflichtenhefte
+in diesem Vorlagensatz zur Verfügung stellen.
+</para>
+<para>
+Fehlermeldungen, Anregungen und Wünsche bitte senden an:
+empfang@revamp-it.ch
+</para>
 
       </sect2>
 
index 78dbf7b..21e5998 100644 (file)
@@ -5,21 +5,21 @@
       die Pakete mit:</p><p>
             </p><pre class="programlisting">aptitude install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \
   texlive-latex-extra texlive-lang-german texlive-generic-extra</pre><p>
-         </p><p>TODO: RPM-Pakete.</p><p>kivitendo bringt drei alternative Vorlagensätze mit:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Standard</p></li><li class="listitem"><p>f-tex</p></li><li class="listitem"><p>RB</p></li></ul></div><div class="sect2" title="2.12.1. Vorlagenverzeichnis anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagenverzeichnis-anlegen"></a>2.12.1. Vorlagenverzeichnis anlegen</h3></div></div></div><p>Es lässt sich ein initialer Vorlagensatz erstellen. Die LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:</p><pre class="programlisting">./scripts/installation_check.pl -lv</pre><p>Der Angemeldete Benutzer muss in einer Gruppe sein, die über das
+         </p><p>TODO: RPM-Pakete.</p><p>kivitendo bringt drei alternative Vorlagensätze mit:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>RB</p></li><li class="listitem"><p>f-tex</p></li><li class="listitem"><p>rev-odt</p></li></ul></div><p>Der ehemalige Druckvorlagensatz "Standard" wurde mit der Version 3.3 entfernt, da er nicht mehr gepflegt wurde.</p><div class="sect2" title="2.12.1. Vorlagenverzeichnis anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagenverzeichnis-anlegen"></a>2.12.1. Vorlagenverzeichnis anlegen</h3></div></div></div><p>Es lässt sich ein initialer Vorlagensatz erstellen. Die LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:</p><pre class="programlisting">./scripts/installation_check.pl -lv</pre><p>Der Angemeldete Benutzer muss in einer Gruppe sein, die über das
               Recht "Konfiguration -&gt; Mandantenverwaltung" verfügt. Siehe auch <a class="xref" href="ch02s09.html#Gruppen-anlegen" title="2.9.4. Gruppen anlegen">Abschnitt&nbsp;2.9.4, „Gruppen anlegen“</a>.
         </p><p>Im Userbereich lässt sich unter:
         "<span class="guimenu">System</span> -&gt;
         <span class="guisubmenu">Mandantenverwaltung</span> -&gt; <span class="guimenuitem">Verschiedenes</span>" die Option
         "Neue Druckvorlagen aus Vorlagensatz erstellen" auswählen.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
                      <code class="option">Vorlagen auswählen</code>: Wählen Sie hier den Vorlagensatz aus, der kopiert werden soll
-          (<code class="filename">Standard</code>, <code class="filename">f-tex</code> oder <code class="filename">RB</code>.)</p></li><li class="listitem"><p>
+          (<code class="filename">RB</code>, <code class="filename">f-tex</code> oder <code class="filename">odt-rev</code>.)</p></li><li class="listitem"><p>
                      <code class="option">Neuer Name</code>: Der Verzeichnisname für den neuen Vorlagensatz. Dieser kann im Rahmen der üblichen
           Bedingungen für Verzeichnisnamen frei gewählt werden.</p></li></ol></div><p>Nach dem Speichern wird das Vorlagenverzeichnis angelegt und ist für den aktuellen Mandanten ausgewählt.
            Der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Mandanten verwendet werden.
            Eventuell müssen Anpassungen (Logo, Erscheinungsbild, etc) noch vorgenommen werden. Den Ordner findet man im Dateisystem unter
            <code class="filename">./templates/[Neuer Name]</code>
-            </p></div><div class="sect2" title="2.12.2. Standard"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagen-Standard"></a>2.12.2. Standard</h3></div></div></div><p>Der Standard-Vorlagensatz von kivitendo. Wie unter <a class="ulink" href="https://www.kivitendo.de" target="_top">https://www.kivitendo.de</a> zu
-        sehen.</p></div><div class="sect2" title="2.12.3. f-tex"><div class="titlepage"><div><div><h3 class="title"><a name="f-tex"></a>2.12.3. f-tex</h3></div></div></div><p>Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur Verfügung stellt.</p><div class="sect3" title="2.12.3.1. Feature-Übersicht"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Feature-%C3%9Cbersicht"></a>2.12.3.1. Feature-Übersicht</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also
+            </p></div><div class="sect2" title="2.12.2. Der Druckvorlagensatz RB"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagen-RB"></a>2.12.2. Der Druckvorlagensatz RB</h3></div></div></div><p>Hierbei handelt es sich um einen vollständigen LaTeX Dokumentensatz mit alternativem Design. Die odt oder html-Varianten sind nicht gepflegt.</p><p>Die konzeptionelle Idee der Vorlagen wird <a class="ulink" href="http://www.kivitendo-support.de/vortraege/Lx-Office%20Anwendertreffen%20LaTeX-Druckvorlagen-Teil3-finale.pdf" target="_top">hier</a>
+          auf Folie 5 bis 10 vorgestellt. Informationen zur Anpassung an die eigenen Firmendaten finden sich in der Datei Readme.tex im Vorlagenverzeichnis.</p><p>Eine kurze Übersicht der Features:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Mehrsprachenfähig, mit Deutscher und Englischer Übersetzung</p></li><li class="listitem"><p>Zentrale Konfigurationsdateien, die für alle Belege benutzt werden, z.B. für Kopf- und Fußzeilen, und Infos wie Bankdaten</p></li><li class="listitem"><p>mehrere vordefinierte Varianten für Logos/Hintergrundbilder</p></li><li class="listitem"><p>Berücksichtigung für Steuerzonen "EU mit USt-ID Nummer" oder "Außerhalb EU"</p></li></ul></div></div><div class="sect2" title="2.12.3. f-tex"><div class="titlepage"><div><div><h3 class="title"><a name="f-tex"></a>2.12.3. f-tex</h3></div></div></div><p>Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur Verfügung stellt.</p><div class="sect3" title="2.12.3.1. Feature-Übersicht"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Feature-%C3%9Cbersicht"></a>2.12.3.1. Feature-Übersicht</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also
             Angebot, Rechnung, Proformarechnung, Lieferschein, aber eben nicht für Paketaufkleber etc.</p></li><li class="listitem"><p>Leichte Anpassung an das Firmen-Layout durch Verwendung eines Hintergrund-PDFs. Dieses kann leicht mit dem
             eigenen Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp, Adobe*)</p></li><li class="listitem"><p>Hintergrund-PDF umschaltbar auf "nur erste Seite" (Standard) oder "alle Seiten" (Option
             "<code class="option">bgPdfFirstPageOnly</code>" in Datei <code class="filename">letter.lco</code>)</p></li><li class="listitem"><p>Hintergrund-PDF für Ausdruck auf bereits bedrucktem Briefpapier abschaltbar. Es wird dann nur bei per E-Mail
           <code class="varname">shipto*</code>-Variable leer ist, wird die entsprechende Adressvariable eingesetzt.  Wenn also die Lieferadresse in
           Straße, Hausnummer und Ort abweicht, müssen auch nur diese Felder in der Lieferadresse ausgefüllt werden. Für den Firmenname wird
           der Wert der Hauptadresse angezeigt.
-          </p></div></div><div class="sect2" title="2.12.4. Der Druckvorlagensatz RB"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagen-RB"></a>2.12.4. Der Druckvorlagensatz RB</h3></div></div></div><p>Hierbei handelt es sich um einen vollständigen \LaTeX Dokumentensatz mit alternativem Design. Die odt oder html-Varianten sind nicht gepflegt.</p><p>Die konzeptionelle Idee der Vorlagen wird <a class="ulink" href="http://www.kivitendo-support.de/vortraege/Lx-Office%20Anwendertreffen%20LaTeX-Druckvorlagen-Teil3-finale.pdf" target="_top">hier</a>
-          auf Folie 5 bis 10 vorgestellt. Informationen zur Anpassung an die eigenen Firmendaten finden sich in der Datei Readme.tex im Vorlagenverzeichnis.</p><p>Eine kurze Übersicht der Features:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Mehrsprachenfähig, mit Deutscher und Englischer Übersetzung</p></li><li class="listitem"><p>Zentrale Konfigurationsdateien, die für alle Belege benutzt werden, z.B. für Kopf- und Fußzeilen, und Infos wie Bankdaten</p></li><li class="listitem"><p>mehrere vordefinierte Varianten für Logos/Hintergrundbilder</p></li><li class="listitem"><p>Berücksichtigung für Steuerzonen "EU mit USt-ID Nummer" oder "Außerhalb EU"</p></li></ul></div></div><div class="sect2" title="2.12.5. Allgemeine Hinweise zu LaTeX Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="allgemeine-hinweise-zu-latex"></a>2.12.5. Allgemeine Hinweise zu LaTeX Vorlagen</h3></div></div></div><p>In den allermeisten Installationen sollte das Drucken jetzt schon
+          </p></div></div><div class="sect2" title="2.12.4. Der Druckvorlagensatz rev-odt"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagen-rev-odt"></a>2.12.4. Der Druckvorlagensatz rev-odt</h3></div></div></div><p>Hierbei handelt es sich um einen Dokumentensatz der mit odt-Vorlagen erstellt wurde. Es gibt in dem Verzeichnis eine Readme-Datei, die eventuell aktueller als die Dokumentation hier ist.
+Die odt-Vorlagen in diesem Verzeichnis "rev-odt" wurden von revamp-it, Zürich erstellt
+und werden laufend aktualisiert. Ein paar der Formulierungen in den Druckvorlagen entsprechen dem Schweizer Sprachgebrauch, z.B. "Offerte" oder "allfällig".
+        </p><p>
+Hinweis zum Einsatz des Feldes "Land" bei den Stammdaten für KundInnen und LieferantInnen,
+sowie bei Lieferadressen:
+Die in diesem Vorlagensatz vorhandenen Vorlagen erwarten für "Land" das entsprechende
+Kürzel, das in Adressen vor die Postleitzahl gesetzt wird.
+Das Feld kann auch komplett leer bleiben.
+Wer dies anders handhaben möchte, muss die Vorlagen entsprechend anpassen.
+</p><p>
+odt-Vorlagen können mit LibreOffice oder OpenOffice editiert
+und den eigenen Bedürfnissen angepasst werden.
+Wichtig beim Editieren von if-Blöcken ist, dass immer der gesamte Block
+überschrieben werden muss und nicht nur Teile davon, da dies sonst oft
+zu einer odt-Datei führt, die vom Parser nicht korrekt gelesen werden kann.
+</p><p>
+Zur Zeit gibt es in kivitendo noch keine Möglichkeit, odt-Vorlagen bei Mahnungen
+einzusetzen. Entsprechende Vorlagen sind deshalb nicht vorhanden.
+</p><p>
+Inwieweit es möglich ist, für die in Version 3.2.0 neu eingeführten Pflichtenhefte
+odt-Vorlagen zu erstellen, sind wir am abklären.
+Wenn dies möglich ist, werden wir in Zukunft auch eine odt-Vorlage für Pflichtenhefte
+in diesem Vorlagensatz zur Verfügung stellen.
+</p><p>
+Fehlermeldungen, Anregungen und Wünsche bitte senden an:
+empfang@revamp-it.ch
+</p></div><div class="sect2" title="2.12.5. Allgemeine Hinweise zu LaTeX Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="allgemeine-hinweise-zu-latex"></a>2.12.5. Allgemeine Hinweise zu LaTeX Vorlagen</h3></div></div></div><p>In den allermeisten Installationen sollte das Drucken jetzt schon
         funktionieren. Sollte ein Fehler auftreten, wirft TeX sehr lange
         Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeile,
         die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum
index 1dea2a9..f38b7eb 100644 (file)
                         <code class="varname">invdate</code>
                      </span></dt><dd><p>Rechnungsdatum</p></dd><dt><span class="term">
                         <code class="varname">invnumber</code>
-                     </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="d0e5076"></a>3.3.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
+                     </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="d0e5085"></a>3.3.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
           Rechnung. Allerdings heißen die Variablen, die mit
           <code class="varname">inv</code> beginnen, jetzt anders. Bei den Angeboten
           fangen sie mit <code class="varname">quo</code> für "quotation" an:
index 20b33d9..430f224 100644 (file)
@@ -1,6 +1,6 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-   <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.3.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo 3.3.0: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s05.html" title="3.5. Mandantenkonfiguration Lager"><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="ch03s05.html">Zurück</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<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="d0e5714"></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="d0e5720"></a>4.1.1. Wie sehen globale Variablen in Perl aus?</h3></div></div></div><p>Globale Variablen liegen in einem speziellen namespace namens
+   <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.3.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo 3.3.0: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s05.html" title="3.5. Mandantenkonfiguration Lager"><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="ch03s05.html">Zurück</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<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="d0e5723"></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="d0e5729"></a>4.1.1. Wie sehen globale Variablen in Perl aus?</h3></div></div></div><p>Globale Variablen liegen in einem speziellen namespace namens
         "main", der von überall erreichbar ist. Darüber hinaus sind bareword
         globs global und die meisten speziellen Variablen sind...
         speziell.</p><p>Daraus ergeben sich folgende Formen:</p><div class="variablelist"><dl><dt><span class="term">
@@ -25,7 +25,7 @@
               <code class="varname">$PACKAGE::form</code>.</p></dd><dt><span class="term">
                      <code class="literal">local $form</code>
                   </span></dt><dd><p>Alle Änderungen an <code class="varname">$form</code> werden am Ende
-              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="d0e5821"></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>
+              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="d0e5830"></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>
                <span class="productname">SQL-Ledger</span>™ hat fast alles im globalen
         namespace abgelegt, und erwartet, dass es da auch wiederzufinden ist.
         Unter <span class="productname">FCGI</span>™ müssen diese Sachen aber wieder
@@ -39,7 +39,7 @@
         dies hat, seit der Einführung, u.a. schon so manche langwierige
         Bug-Suche verkürzt. Da globale Variablen aber implizit mit Package
         angegeben werden, werden die nicht geprüft, und somit kann sich
-        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="d0e5854"></a>4.1.3. Kanonische globale Variablen</h3></div></div></div><p>Um dieses Problem im Griff zu halten gibt es einige wenige
+        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="d0e5863"></a>4.1.3. Kanonische globale Variablen</h3></div></div></div><p>Um dieses Problem im Griff zu halten gibt es einige wenige
         globale Variablen, die kanonisch sind, d.h. sie haben bestimmte
         vorgegebenen Eigenschaften, und alles andere sollte anderweitig
         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,7 +62,7 @@
                      <code class="varname">$::request</code>
                   </p></li></ul></div><p>Damit diese nicht erneut als Müllhalde missbraucht werden, im
         Folgenden eine kurze Erläuterung der bestimmten vorgegebenen
-        Eigenschaften (Konventionen):</p><div class="sect3" title="4.1.3.1. $::form"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5918"></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
+        Eigenschaften (Konventionen):</p><div class="sect3" title="4.1.3.1. $::form"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5927"></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
               "<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
               sein.</p></li><li class="listitem"><p>Enthält am Anfang eines Requests die Requestparameter vom
               User</p></li><li class="listitem"><p>Kann zwar intern über Requestgrenzen ein Datenbankhandle
   push @{ $form-&gt;{TEMPLATE_ARRAYS}{number} },          $form-&gt;{"partnumber_$i"};
   push @{ $form-&gt;{TEMPLATE_ARRAYS}{description} },     $form-&gt;{"description_$i"};
   # ...
-}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6002"></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
+}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6011"></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
               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
               extern serialisiert werden, weil da auch der Datenbankzugriff
               für diesen user drinsteht.</p></li><li class="listitem"><p>Enthält unter anderem Listenbegrenzung vclimit,
           überwiegend die Daten, die sich unter <span class="guimenu">Programm</span>
           -&gt; <span class="guimenuitem">Einstellungen</span> befinden, bzw. die
           Informationen über den Benutzer die über die
-          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="d0e6041"></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
+          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="d0e6050"></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
               sein.</p></li><li class="listitem"><p>Cached intern über Requestgrenzen hinweg benutzte
               Locales</p></li></ul></div><p>Lokalisierung für den aktuellen User. Alle Übersetzungen,
-          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="d0e6059"></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
+          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="d0e6068"></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
               Funktionen</p></li></ul></div><p>
                   <code class="varname">$::lxdebug</code> stellt Debuggingfunktionen
           bereit, wie "<code class="function">enter_sub</code>" und
           "<code class="function">message</code>" und "<code class="function">dump</code>" mit
           denen man flott Informationen ins Log (tmp/kivitendo-debug.log)
           packen kann.</p><p>Beispielsweise so:</p><pre class="programlisting">$main::lxdebug-&gt;message(0, 'Meine Konfig:' . Dumper (%::myconfig));
-$main::lxdebug-&gt;message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form-&gt;{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6096"></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>
+$main::lxdebug-&gt;message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form-&gt;{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6105"></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>
                   <code class="varname">$::auth</code> stellt Funktionen bereit um die
           Rechte des aktuellen Users abzufragen. Obwohl diese Informationen
           vom aktuellen User abhängen wird das Objekt aus
           Geschwindigkeitsgründen nur einmal angelegt und dann nach jedem
           Request kurz resettet.</p><p>Dieses Objekt kapselt auch den gerade aktiven Mandanten. Dessen Einstellungen können über
           <code class="literal">$::auth-&gt;client</code> abgefragt werden; Rückgabewert ist ein Hash mit den Werten aus der Tabelle
-          <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="d0e6125"></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
+          <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="d0e6134"></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
               "<code class="classname">SL::LxOfficeConf</code>"</p></li><li class="listitem"><p>Global gecached</p></li><li class="listitem"><p>Repräsentation der
               <code class="filename">config/kivitendo.conf[.default]</code>-Dateien</p></li></ul></div><p>Globale Konfiguration. Configdateien werden zum Start gelesen
           und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass
@@ -152,16 +152,16 @@ $main::lxdebug-&gt;message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form-&gt;{
 file_name = /tmp/kivitendo-debug.log</pre><p>ist der Key <code class="varname">file</code> im Programm als
           <code class="varname">$::lx_office_conf-&gt;{debug}{file}</code>
           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
-            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="d0e6161"></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
+            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="d0e6170"></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
               "<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>,
           speichert aber Daten die von der Instanz abhängig sind. Eine Instanz
           ist hier eine Mandantendatenbank. Beispielsweise überprüft
           </p><pre class="programlisting">$::instance_conf-&gt;get_inventory_system eq 'perpetual'</pre><p>
-          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="d0e6182"></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
+          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="d0e6191"></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
               "<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
               Server</p></li></ul></div><p>Der dritte Punkt ist auch der einzige Grund warum das Objekt
           global gespeichert wird. Wird vermutlich irgendwann in einem anderen
-          Objekt untergebracht.</p></div><div class="sect3" title="4.1.3.9. $::request"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6200"></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>
+          Objekt untergebracht.</p></div><div class="sect3" title="4.1.3.9. $::request"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6209"></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>
                   <code class="varname">$::request</code> ist ein generischer Platz um
           Daten "für den aktuellen Request" abzulegen. Sollte nicht für action
           at a distance benutzt werden, sondern um lokales memoizing zu
@@ -174,20 +174,20 @@ file_name = /tmp/kivitendo-debug.log</pre><p>ist der Key <code class="varname">f
               <code class="varname">$::request</code>
                      </p></li><li class="listitem"><p>Muss ich von anderen Teilen des Programms lesend drauf
               zugreifen? Dann <code class="varname">$::request</code>, aber Zugriff über
-              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="d0e6242"></a>4.1.4. Ehemalige globale Variablen</h3></div></div></div><p>Die folgenden Variablen waren einmal im Programm, und wurden
-        entfernt.</p><div class="sect3" title="4.1.4.1. $::cgi"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6247"></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
+              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="d0e6251"></a>4.1.4. Ehemalige globale Variablen</h3></div></div></div><p>Die folgenden Variablen waren einmal im Programm, und wurden
+        entfernt.</p><div class="sect3" title="4.1.4.1. $::cgi"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6256"></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
               Klassenfunktionen funktionieren</p></li><li class="listitem"><p>Aufruf als Klasse erzeugt Dummyobjekt was im
               Klassennamespace gehalten wird und über Requestgrenzen
               leaked</p></li><li class="listitem"><p>liegt jetzt unter
               <code class="varname">$::request-&gt;{cgi}</code>
-                     </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="d0e6263"></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
+                     </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="d0e6272"></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
               ein paar hundert mal pro Request eine Liste der Einheiten
               brauchen, und de als Parameter durch einen Riesenstack von
               Funktionen geschleift werden müssten.</p></li><li class="listitem"><p>Liegt jetzt unter
               <code class="varname">$::request-&gt;{cache}{all_units}</code>
                      </p></li><li class="listitem"><p>Wird nur in
               <code class="function">AM-&gt;retrieve_all_units()</code> gesetzt oder
-              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="d0e6282"></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
+              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="d0e6291"></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
               abzufangen.</p></li><li class="listitem"><p>Wurde entfernt, weil callsub nur einen Bruchteil der
               möglichen Rekursioenen darstellt, und da nie welche
               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="ch03s05.html">Zurück</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch04s02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">3.5. Mandantenkonfiguration Lager&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;4.2. Entwicklung unter FastCGI</td></tr></table></div></body></html>
\ No newline at end of file
index 1fa07ab..f3df486 100644 (file)
@@ -1,9 +1,9 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-   <title>kivitendo 3.3.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.3.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.3.0: Installation, Konfiguration, Entwicklung</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch01.html">Weiter</a></td></tr></table><hr></div><div lang="de" class="book" title="kivitendo 3.3.0: Installation, Konfiguration, Entwicklung"><div class="titlepage"><div><div><h1 class="title"><a name="kivitendo-documentation"></a>kivitendo 3.3.0: Installation, Konfiguration, 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></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#Datenbankbenutzer-anlegen">2.5.4. 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#d0e740">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></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#Einbinden-in-den-Boot-Prozess">2.7.2. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle">2.7.3. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle2">2.7.4. Task-Server mit mehreren Mandanten</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-Standard">2.12.2. Standard</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#f-tex">2.12.3. f-tex</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#Vorlagen-RB">2.12.4. Der Druckvorlagensatz RB</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#allgemeine-hinweise-zu-latex">2.12.5. 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><dt><span class="sect1"><a href="ch02s14.html">2.14. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
+   <title>kivitendo 3.3.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.3.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.3.0: Installation, Konfiguration, Entwicklung</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch01.html">Weiter</a></td></tr></table><hr></div><div lang="de" class="book" title="kivitendo 3.3.0: Installation, Konfiguration, Entwicklung"><div class="titlepage"><div><div><h1 class="title"><a name="kivitendo-documentation"></a>kivitendo 3.3.0: Installation, Konfiguration, 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></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#Datenbankbenutzer-anlegen">2.5.4. 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#d0e740">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></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#Einbinden-in-den-Boot-Prozess">2.7.2. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle">2.7.3. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle2">2.7.4. Task-Server mit mehreren Mandanten</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#f-tex">2.12.3. f-tex</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#Vorlagen-rev-odt">2.12.4. Der Druckvorlagensatz rev-odt</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#allgemeine-hinweise-zu-latex">2.12.5. 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><dt><span class="sect1"><a href="ch02s14.html">2.14. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
       EUR</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s14.html#config.eur.introduction">2.14.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s14.html#config.eur.parameters">2.14.2. Konfigurationsparameter</a></span></dt><dt><span class="sect2"><a href="ch02s14.html#config.eur.setting-parameters">2.14.3. Festlegen der Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s14.html#config.eur.inventory-system-perpetual">2.14.4. Bemerkungen zur Bestandsmethode</a></span></dt><dt><span class="sect2"><a href="ch02s14.html#config.eur.knonw-issues">2.14.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s15.html">2.15. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s15.html#config.skr04-update-3804.introduction">2.15.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#config.skr04-update-3804.create-chart">2.15.2. Konto 3804 manuell anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s16.html">2.16. Verhalten des Bilanzberichts</a></span></dt><dt><span class="sect1"><a href="ch02s17.html">2.17. Einstellungen pro Mandant</a></span></dt><dt><span class="sect1"><a href="ch02s18.html">2.18. 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
         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
-        Formularen</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></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#d0e5720">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5821">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5854">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e6242">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. SQL-Upgradedateien</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.introduction">4.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.format">4.3.2. Format der Kontrollinformationen</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.format-perl-files">4.3.3. Format von in Perl geschriebenen Datenbankupgradescripten</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.dbupgrade-tool">4.3.4. Hilfsscript dbupgrade2_tool.pl</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s04.html">4.4. Translations and languages</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s04.html#translations-languages.introduction">4.4.1. Introduction</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#translations-languages.character-set">4.4.2. Character set</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#translations-languages.file-structure">4.4.3. File structure</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s05.html">4.5. Die kivitendo-Test-Suite</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.intro">4.5.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.prerequisites">4.5.2. Voraussetzungen</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.execution">4.5.3. 
+        Formularen</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></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#d0e5729">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5830">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5863">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e6251">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. SQL-Upgradedateien</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.introduction">4.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.format">4.3.2. Format der Kontrollinformationen</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.format-perl-files">4.3.3. Format von in Perl geschriebenen Datenbankupgradescripten</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.dbupgrade-tool">4.3.4. Hilfsscript dbupgrade2_tool.pl</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s04.html">4.4. Translations and languages</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s04.html#translations-languages.introduction">4.4.1. Introduction</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#translations-languages.character-set">4.4.2. Character set</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#translations-languages.file-structure">4.4.3. File structure</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s05.html">4.5. Die kivitendo-Test-Suite</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.intro">4.5.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.prerequisites">4.5.2. Voraussetzungen</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.execution">4.5.3. 
           Existierende Tests ausführen
         </a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.meaning_of_scripts">4.5.4. 
           Bedeutung der verschiedenen Test-Scripte
index 6ce7f19..75bba98 100644 (file)
Binary files a/doc/kivitendo-Dokumentation.pdf and b/doc/kivitendo-Dokumentation.pdf differ
index ba9bf4a..6ba651d 100644 (file)
@@ -24,7 +24,7 @@ als freundliche Checkliste zum Ausdrucken und Erweitern.
   Benutzer und Mandant muss hierfür entsprechend in kivitendo.conf > Abschnitt testing
   konfiguriert sein.
 
-  - Im Moment sind 3 Fehler optimal (die sind noch nicht angegangen):
+  - Im Moment sind 3 Fehler optional (die sind noch nicht angegangen):
     o  bin/mozilla/ic.pl contains at least 123 html tags.
   - Einige Tests setzen eine korrekt aufgesetzte Datenbank für tests voraus.
     TODO: diese Tests korrekt skippen wenn keine DB gefunden wurde.
@@ -196,6 +196,8 @@ als freundliche Checkliste zum Ausdrucken und Erweitern.
   Wichtig: Seit 3.0.0 gibt es noch zusätzlich ein Pg-Upgrade2-auth/ Verzeichnis, welches
   für die  Authentifizierungsupdates benutzt wird.
 
+  $ scripts/dbupgrade2_tool.pl --nodeps --auth-db
+
 * Voraussichtliches Releasedatum im changelog eintragen
 
 * Finaler Testlauf:
@@ -221,18 +223,9 @@ als freundliche Checkliste zum Ausdrucken und Erweitern.
   Commits mit Tags können von github als Archiv heruntergeladen werden:
   https://github.com/kivitendo/kivitendo-erp/releases
 
-* Tarball testen, wird das richtig entpackt?
-
-* SHA1 und MD5 von tarball machen und in *.sha1 bzw. *.md5 speichern
-
-* Alles auf Sourceforge hochladen
-
-* Auf Sourceforge den Standarddownloadlink setzen
-
 * Releasemessages schreiben für folgende Ziele:
 
   - kivitendo.de: deutsch, prosa, formell
-  - freecode.com: englisch, max 600 zeichen, technische stichpunkte aus dem changelog (ehemals freshmeat.net)
   - Mailinglisten: deutsch, freitext, informell
 
 * Alle Releasemessages von mindestens einer Person Korrektur lesen lassen
index 77d18a6..859b94f 100755 (executable)
@@ -130,6 +130,7 @@ $self->{texts} = {
   'Accounting method'           => 'Versteuerungsart',
   'Accrual'                     => 'Soll-Versteuerung',
   'Accrual accounting'          => 'Soll-Versteuerung',
+  'Activate kivitendo module'   => 'Modul aktivieren',
   'Active'                      => 'Aktiv',
   'Active?'                     => 'Aktiviert?',
   'Add'                         => 'Erfassen',
@@ -153,7 +154,6 @@ $self->{texts} = {
   'Add Language'                => 'Sprache hinzufügen',
   'Add Lead'                    => 'Kundenquelle erfassen',
   'Add Letter'                  => 'Brief hinzufügen',
-  'Add Machine'                 => 'Maschine erfassen',
   'Add Part'                    => 'Ware erfassen',
   'Add Price Factor'            => 'Preisfaktor erfassen',
   'Add Pricegroup'              => 'Preisgruppe erfassen',
@@ -170,7 +170,6 @@ $self->{texts} = {
   'Add Sales Invoice'           => 'Rechnung erfassen',
   'Add Sales Order'             => 'Auftrag erfassen',
   'Add Service'                 => 'Dienstleistung erfassen',
-  'Add Service Contract'        => 'Wartungsvertrag erfassen',
   'Add Storno Credit Note'      => 'Gutschrift Storno hinzufügen',
   'Add Transaction'             => 'Dialogbuchen',
   'Add User'                    => 'Neuer Benutzer',
@@ -203,7 +202,6 @@ $self->{texts} = {
   'Additional articles'         => 'Zusätzliche Artikel',
   'Additional articles actions' => 'Aktionen zu zusätzlichen Artikeln',
   'Address'                     => 'Adresse',
-  'Admin'                       => 'Administration',
   'Administration'              => 'Administration',
   'Administration area'         => 'Administration',
   'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
@@ -260,8 +258,6 @@ $self->{texts} = {
   'Apply to transfers without comment' => 'Bei allen Lagerbewegungen ohne Kommentar setzen',
   'Apply to transfers without warehouse' => 'Bei allen Lagerbewegungen ohne Lager setzen',
   'Applying #1:'                => 'Führe #1 aus:',
-  'Appointment Category'        => 'Termin Kategorie',
-  'Appointments'                => 'Termine',
   'Approximately #1 prices will be updated.' => 'Ungefähr #1 Preise werden aktualisiert.',
   'Apr'                         => 'Apr',
   'April'                       => 'April',
@@ -437,7 +433,6 @@ $self->{texts} = {
   'CB Transaction'              => 'SB-Buchung',
   'CB Transactions'             => 'SB-Buchungen',
   'CR'                          => 'H',
-  'CRM'                         => 'CRM',
   'CSS style for pictures'      => 'CSS Style für Bilder',
   'CSV'                         => 'CSV',
   'CSV export -- options'       => 'CSV-Export -- Optionen',
@@ -452,7 +447,6 @@ $self->{texts} = {
   'CTI settings'                => 'CTI-Einstellungen',
   'Calculate'                   => 'Berechnen',
   'Calculate due date automatically' => 'Fälligkeitsdatum automatisch berechnen',
-  'Calculate the value of goods for delivery plan (WARNING:  Experimental (not taxincluded safe!)' => 'Warenverkaufswert anzeigen (Brutto / Netto), so wie im Auftrags-Beleg gespeichert. Benötigt das Recht: Verkaufs-Aufträge bearbeiten.',
   'Calling #1 now'              => 'Wähle jetzt #1',
   'Can not create that quantity with current stock' => 'Diese Anzahl kann mit dem gegenwärtigen Lagerbestand nicht hergestellt werden.',
   'Cancel'                      => 'Abbrechen',
@@ -502,7 +496,6 @@ $self->{texts} = {
   'Cash'                        => 'Zahlungsverkehr',
   'Cash accounting'             => 'Ist-Versteuerung',
   'Cash basis accounting'       => 'Einnahmen-Überschuss-Rechnung',
-  'Catalog'                     => 'Katalog',
   'Cc'                          => 'Cc',
   'Cc E-mail'                   => 'CC (E-Mail)',
   'Change default bin for this parts' => 'Standardlagerplatz für diese Waren ändern',
@@ -754,7 +747,6 @@ $self->{texts} = {
   'DATEX - Export Assistent'    => 'DATEV-Exportassistent',
   'DELETED'                     => 'Gelöscht',
   'DFV-Kennzeichen'             => 'DFV-Kennzeichen',
-  'DHL'                         => 'DHL',
   'DR'                          => 'S',
   'DUNNING STARTED'             => 'Mahnprozess gestartet',
   'DUNS number'                 => 'DUNS-Nummer',
@@ -929,10 +921,8 @@ $self->{texts} = {
   'Document Project (description)' => 'Projektnummer des Belegs (Beschreibung)',
   'Document Project (number)'   => 'Projektnummer des Belegs',
   'Document Project Number'     => 'Projektnummer des Belegs',
-  'Document Template'           => 'Dokumentvorlage',
   'Documentation'               => 'Dokumentation',
   'Documentation (in German)'   => 'Dokumentation',
-  'Documents'                   => 'Dokumente',
   'Documents in the WebDAV repository' => 'Dokumente im WebDAV-Repository',
   'Done'                        => 'Fertig',
   'Double partnumbers'          => 'Doppelte Artikelnummern',
@@ -1140,8 +1130,6 @@ $self->{texts} = {
   'Ertrag'                      => 'Ertrag',
   'Ertrag prozentual'           => 'Ertrag prozentual',
   'Escape character'            => 'Escape-Zeichen',
-  'Etikett'                     => 'Etikett',
-  'EuR'                         => 'EuR',
   'Everyone can log in.'        => 'Alle können sich anmelden.',
   'Exact'                       => 'Genau',
   'Example'                     => 'Beispiel',
@@ -1461,13 +1449,11 @@ $self->{texts} = {
   'KNr. beim Kunden'            => 'KNr. beim Kunden',
   'Keep the project link the way it is.' => 'Die aktuelle Verknüpfung beibehalten.',
   'Keine Suchergebnisse gefunden!' => 'Keine Suchergebnisse gefunden!',
-  'Knowledge'                   => 'Wissen',
   'Konten'                      => 'Konten',
   'L'                           => 'L',
   'LIABILITIES'                 => 'PASSIVA',
   'LP'                          => 'LP',
   'LaTeX Templates'             => 'LaTeX-Vorlagen',
-  'Label'                       => 'Etikett',
   'Landscape'                   => 'Querformat',
   'Language'                    => 'Sprache',
   'Language (database ID)'      => 'Sprache (Datenbank-ID)',
@@ -1562,7 +1548,6 @@ $self->{texts} = {
   'MIME type'                   => 'MIME-Typ',
   'MT940'                       => 'MT940',
   'MT940 import'                => 'MT940 Import',
-  'Machine'                     => 'Maschine',
   'Main Preferences'            => 'Grundeinstellungen',
   'Main sorting'                => 'Hauptsortierung',
   'Make'                        => 'Lieferant',
@@ -1799,7 +1784,6 @@ $self->{texts} = {
   'Open this Website'           => 'Homepage in neuem Fenster &ouml;ffnen',
   'OpenDocument/OASIS'          => 'OpenDocument/OASIS',
   'Openings'                    => 'Öffnungszeiten',
-  'Opportunity'                 => 'Auftragschance',
   'Optional comment'            => 'Optionaler Kommentar',
   'Options'                     => 'Optionen',
   'Or download the whole Installation Documentation as PDF (350kB) for off-line study (currently in German Language): ' => 'Oder laden Sie die komplette Installationsbeschreibung als PDF (350kB) herunter: ',
@@ -1821,7 +1805,6 @@ $self->{texts} = {
   'Orientation'                 => 'Seitenformat',
   'Orphaned'                    => 'Nie benutzt',
   'Orphaned currencies'         => 'Verwaiste Währungen',
-  'Other'                       => 'Sonstiges',
   'Other Matches'               => 'Andere Treffer',
   'Other users\' follow-ups'    => 'Wiedervorlagen anderer Benutzer',
   'Other values are ignored.'   => 'Andere Eingaben werden ignoriert.',
@@ -1836,6 +1819,7 @@ $self->{texts} = {
   'Override'                    => 'Override',
   'Override invoice language'   => 'Diese Sprache verwenden',
   'Overview'                    => 'Übersicht',
+  'Overview kivitendo modules'  => 'Modul-Übersicht',
   'Own bank account number or IBAN' => 'Eigene Kontonummer oder IBAN',
   'Own bank code'               => 'Eigene Bankleitzahl',
   'Owner of account'            => 'Kontoinhaber',
@@ -1848,7 +1832,6 @@ $self->{texts} = {
   'PRINTED'                     => 'Gedruckt',
   'Package name'                => 'Paketname',
   'Packing Lists'               => 'Lieferschein',
-  'Packliste'                   => 'Packliste',
   'Page'                        => 'Seite',
   'Page #1/#2'                  => 'Seite #1/#2',
   'Paid'                        => 'bezahlt',
@@ -1872,7 +1855,6 @@ $self->{texts} = {
   'Parts must have an entry type.' => 'Waren m&uuml;ssen eine Buchungsgruppe haben.',
   'Parts with existing part numbers' => 'Artikel mit existierender Artikelnummer',
   'Parts, services and assemblies' => 'Waren, Dienstleistungen und Erzeugnisse',
-  'Partsedit'                   => 'Wareneditor',
   'Partsgroup (database ID)'    => 'Warengruppe (Datenbank-ID)',
   'Partsgroup (name)'           => 'Warengruppe (Name)',
   'Partsgroups where variables are shown' => 'Warengruppen, bei denen Variablen angezeigt werden',
@@ -1909,7 +1891,6 @@ $self->{texts} = {
   'Periodic invoices active'    => 'Wiederkehrende Rechnungen aktiv',
   'Periodic invoices inactive'  => 'Wiederkehrende Rechnungen inaktiv',
   'Perpetual inventory'         => 'Bestandsmethode',
-  'Person'                      => 'Person',
   'Personal settings'           => 'Pers&ouml;nliche Einstellungen',
   'Phone'                       => 'Telefon',
   'Phone extension'             => 'Durchwahl',
@@ -2343,7 +2324,6 @@ $self->{texts} = {
   'Serial No.'                  => 'Seriennummer',
   'Serial Number'               => 'Seriennummer',
   'Service'                     => 'Dienstleistung',
-  'Service Contract'            => 'Wartungsvertrag',
   'Service Items'               => 'Dienstleistungen',
   'Service Number missing!'     => 'Dienstleistungsnummer fehlt!',
   'Service, assembly or part'   => 'Dienstleistung, Erzeugnis oder Ware',
@@ -2929,7 +2909,6 @@ $self->{texts} = {
   'This will set an exact price.' => 'Diese Option setzt einen festen Preis.',
   'Three Options:'              => 'Drei Optionen:',
   'Time Format'                 => 'Uhrzeitformat',
-  'Time Tracking'               => 'Zeiterfassung',
   'Time and cost estimate'      => 'Zeit- und Kostenschätzung',
   'Time estimate'               => 'Zeitschätzung',
   'Time period for the analysis:' => 'Analysezeitraum:',
@@ -3060,7 +3039,6 @@ $self->{texts} = {
   'Useable for…'                => 'Benutzbar für…',
   'User'                        => 'Benutzer',
   'User Config'                 => 'Einstellungen',
-  'User Groups'                 => 'Gruppen',
   'User Preferences'            => 'Benutzereinstellungen',
   'User access'                 => 'Benutzerzugriff',
   'User list'                   => 'Benutzerliste',
@@ -3126,9 +3104,7 @@ $self->{texts} = {
   'Warehouse Migration'         => 'Lagermigration',
   'Warehouse To'                => 'Ziellager',
   'Warehouse content'           => 'Lagerbestand',
-  'Warehouse correction'        => 'Lagerkorrektur',
   'Warehouse deleted.'          => 'Lager gel&ouml;scht.',
-  'Warehouse list'              => 'Inventurliste',
   'Warehouse management'        => 'Lagerverwaltung/Bestandsveränderung',
   'Warehouse saved.'            => 'Lager gespeichert.',
   'Warehouses'                  => 'Lager',
@@ -3211,7 +3187,6 @@ $self->{texts} = {
   'Your browser does not currently support Javascript.' => 'Ihr Browser unterstützt im Moment kein Javascript!',
   'Your download does not exist anymore. Please re-run the DATEV export assistant.' => 'Ihr Download existiert nicht mehr. Bitte starten Sie den DATEV-Exportassistenten erneut.',
   'Your import is being processed.' => 'Ihr Import wird verarbeitet',
-  'ZM'                          => 'ZM',
   'Zeitpunkt'                   => 'Zeitpunkt',
   'Zeitraum'                    => 'Zeitraum',
   'Zero amount posting!'        => 'Buchung ohne Wert',
@@ -3274,7 +3249,6 @@ $self->{texts} = {
   'do not include'              => 'Nicht aufnehmen',
   'done'                        => 'erledigt',
   'dunning_list'                => 'mahnungsliste',
-  'eBayImporter'                => 'eBay-Importierer',
   'eMail Send?'                 => 'E-Mail-Versand?',
   'eMail?'                      => 'E-Mail?',
   'ea'                          => 'St.',
@@ -3315,6 +3289,7 @@ $self->{texts} = {
   'kivitendo has found one or more problems in the general ledger.' => 'kivitendo hat ein oder mehrere Probleme im Hauptbuch gefunden.',
   'kivitendo is about to update the database [ #1 ].' => 'kivitendo wird gleich die Datenbank [ #1 ] aktualisieren.',
   'kivitendo is now able to manage warehouses instead of just tracking the amount of goods in your system.' => 'kivitendo enth&auml;lt jetzt auch echte Lagerverwaultung anstatt reiner Mengenz&auml;hlung.',
+  'kivitendo modules'           => 'Module',
   'kivitendo needs to update the authentication database before you can proceed.' => 'kivitendo muss die Authentifizierungsdatenbank aktualisieren, bevor Sie fortfahren können.',
   'kivitendo v#1'               => 'kivitendo v#1',
   'kivitendo v#1 administration' => 'kivitendo v#1 Administration',
index 0d34668..ccf947a 100644 (file)
@@ -46,15 +46,15 @@ _=\\_
 ²=$^2$
 ³=$^3$
 °=$^\\circ$
-§=\\S
-®=\\textregistered
-©=\\textcopyrighta
+§=\\S\s
+®=\\textregistered\s
+©=\\textcopyright\s
 \xad=\\-
 ➔=$\\rightarrow$
 →=$\\rightarrow$
 ←=$\\leftarrow$
 \xa0=~
-|=\\textbar
+|=\\textbar\s
 −={\\textemdash}
 
 [Template/OpenDocument]
index 035d562..64d3d71 100644 (file)
   params:
     action: company_logo
     no_todo_list: 1
+- parent: program
+  id: program_kivitendo_modul
+  name: kivitendo modules
+  order: 350
+- parent: program_kivitendo_modul
+  id: program_kivitendo_modul_overview
+  name: Overview kivitendo modules
+  order: 100
+  href: http://www.kivitendo-premium.de/module.shtml
+  target: _blank
+- parent: program_kivitendo_modul
+  id: program_kivitendo_modul_activate
+  name: Activate kivitendo module
+  order: 200
+  href: http://www.kivitendo-premium.de/modul-aktivieren.shtml
+  target: _blank
 - parent: program
   id: program_administration_area
   name: Administration area
index a83ff9f..2c31f87 100755 (executable)
@@ -44,7 +44,7 @@ my $basedir      = "../..";
 my $locales_dir  = ".";
 my $bindir       = "$basedir/bin/mozilla";
 my @progdirs     = ( "$basedir/SL" );
-my @menufiles    = <"${basedir}/menus/*/*">;
+my @menufiles    = glob("${basedir}/menus/*/*");
 my @javascript_dirs = ($basedir .'/js', $basedir .'/templates/webpages');
 my $javascript_output_dir = $basedir .'/js';
 my $submitsearch = qr/type\s*=\s*[\"\']?submit/i;
@@ -615,7 +615,7 @@ sub scanhtmlfile {
     }
 
     while ($line =~ m/\[\%          # Template-Start-Tag
-                      [\-~#]?       # Whitespace-Unterdrückung
+                      [\-~#]*       # Whitespace-Unterdrückung
                       \s*           # Optional beliebig viele Whitespace
                       (?:           # Die erkannten Template-Direktiven
                         PROCESS
diff --git a/sql/Pg-upgrade2-auth/release_3_3_0.sql b/sql/Pg-upgrade2-auth/release_3_3_0.sql
new file mode 100644 (file)
index 0000000..37484a2
--- /dev/null
@@ -0,0 +1,4 @@
+-- @tag: release_3_3_0
+-- @description: Abhängigkeitsscript für Release 3.2.0, bzw. vergessene 3.1.0
+-- @depends: release_3_2_0 sales_letter_rights delivery_plan_rights requirement_spec_rights delivery_process_value bank_transaction_rights
+-- @charset: utf-8
diff --git a/sql/Pg-upgrade2/release_3_3_0.sql b/sql/Pg-upgrade2/release_3_3_0.sql
new file mode 100644 (file)
index 0000000..4c8619b
--- /dev/null
@@ -0,0 +1,3 @@
+-- @tag: release_3_3_0
+-- @description: Leeres Script, das alle Upgradescripte bis zum Release 3.3.0 voraussetzt, um ein fest definiertes Schema zu definieren.
+-- @depends: release_3_2_0 bankaccounts_sortkey_and_obsolete sepa_items_payment_type letter_reference defaults_drop_delivery_plan_config letter_date_type custom_variables_delete_via_trigger_requirement_specs bank_accounts_unique_chart_constraint invoices_amount_paid_not_null periodic_invoices_order_value_periodicity automatic_reconciliation tax_skonto_automatic ar_ap_fix_notes_as_html_for_non_invoices letter_cp_id bankaccounts_reconciliation transfer_out_sales_invoice remove_terms_add_payment_id defaults_sales_purchase_order_show_ship_missing_column delete_invalidated_custom_variables_for_parts payment_terms_automatic_calculation letter_draft
diff --git a/sql/Pg-upgrade2/requirement_spec_parts_foreign_key_cascade.sql b/sql/Pg-upgrade2/requirement_spec_parts_foreign_key_cascade.sql
new file mode 100644 (file)
index 0000000..c4c22bd
--- /dev/null
@@ -0,0 +1,9 @@
+-- @tag: requirement_spec_parts_foreign_key_cascade
+-- @description: Automatisches Löschen in requirement_spec_parts wenn zugehöriges Pflichtenheft gelöscht wird
+-- @depends: requirement_spec_parts
+ALTER TABLE requirement_spec_parts
+DROP CONSTRAINT requirement_spec_parts_requirement_spec_id_fkey;
+
+ALTER TABLE requirement_spec_parts
+ADD FOREIGN KEY (requirement_spec_id) REFERENCES requirement_specs (id)
+ON DELETE CASCADE;
diff --git a/templates/print/rev-odt/LinuxPinguin.jpg b/templates/print/rev-odt/LinuxPinguin.jpg
new file mode 100644 (file)
index 0000000..a7f63b9
Binary files /dev/null and b/templates/print/rev-odt/LinuxPinguin.jpg differ
diff --git a/templates/print/rev-odt/credit_note.odt b/templates/print/rev-odt/credit_note.odt
new file mode 100644 (file)
index 0000000..9ec4502
Binary files /dev/null and b/templates/print/rev-odt/credit_note.odt differ
diff --git a/templates/print/rev-odt/invoice.odt b/templates/print/rev-odt/invoice.odt
new file mode 100644 (file)
index 0000000..9ea1c85
Binary files /dev/null and b/templates/print/rev-odt/invoice.odt differ
diff --git a/templates/print/rev-odt/pick_list.odt b/templates/print/rev-odt/pick_list.odt
new file mode 100644 (file)
index 0000000..58aa56e
Binary files /dev/null and b/templates/print/rev-odt/pick_list.odt differ
diff --git a/templates/print/rev-odt/proforma.odt b/templates/print/rev-odt/proforma.odt
new file mode 100644 (file)
index 0000000..a526580
Binary files /dev/null and b/templates/print/rev-odt/proforma.odt differ
diff --git a/templates/print/rev-odt/purchase_delivery_order.odt b/templates/print/rev-odt/purchase_delivery_order.odt
new file mode 100644 (file)
index 0000000..54eabe5
Binary files /dev/null and b/templates/print/rev-odt/purchase_delivery_order.odt differ
diff --git a/templates/print/rev-odt/purchase_order.odt b/templates/print/rev-odt/purchase_order.odt
new file mode 100644 (file)
index 0000000..7f53585
Binary files /dev/null and b/templates/print/rev-odt/purchase_order.odt differ
diff --git a/templates/print/rev-odt/readme.txt b/templates/print/rev-odt/readme.txt
new file mode 100644 (file)
index 0000000..cadd8d0
--- /dev/null
@@ -0,0 +1,43 @@
+Die odt-Vorlagen in diesem Verzeichnis "rev-odt" wurden von revamp-it, Zürich erstellt
+und werden laufend aktualisiert.
+
+Aktuell (August 2015 - kivitendo-erp Version 3.3.0) stehen folgende
+Vorlagen zur Verfügung:
+
+Verkaufsvorlagen:
+sales_quotation.odt            Offerte
+sales_order.odt                        Auftragsbestätigung
+sales_delivery_order.odt       Lieferschein
+pick_list.odt                  Sammelliste
+invoice.odt                    Rechnung
+proforma.odt                   Proforma-Rechnung
+credit_note.odt                        Gutschrift
+
+Einkaufsvorlagen:
+request_quotation.odt          Preisanfrage
+purchase_order.odt             Bestellung/Lieferantenauftrag
+purchase_delivery_order.odt    Einkaufslieferschein
+
+Hinweis zum Einsatz des Feldes "Land" bei den Stammdaten für KundInnen und LieferantInnen,
+sowie bei Lieferadressen:
+Die in diesem Vorlagensatz vorhandenen Vorlagen erwarten für "Land" das entsprechende
+Kürzel, das in Adressen vor die Postleitzahl gesetzt wird.
+Das Feld kann auch komplett leer bleiben.
+Wer dies anders handhaben möchte, muss die Vorlagen entsprechend anpassen.
+
+odt-Vorlagen können mit LibreOffice oder OpenOffice editiert
+und den eigenen Bedürfnissen angepasst werden.
+Wichtig beim Editieren von if-Blöcken ist, dass immer der gesamte Block
+überschrieben werden muss und nicht nur Teile davon, da dies sonst oft
+zu einer odt-Datei führt, die vom Parser nicht korrekt gelesen werden kann.
+
+Zur Zeit gibt es in Kivitendo noch keine Möglichkeit, odt-Vorlagen bei Mahnungen
+einzusetzen. Entsprechende Vorlagen sind deshalb nicht vorhanden.
+
+Inwieweit es möglich ist, für die in Version 3.2.0 neu eingeführten Pflichtenhefte
+odt-Vorlagen zu erstellen, sind wir am abklären.
+Wenn dies möglich ist, werden wir in Zukunft auch eine odt-Vorlage für Pflichtenhefte
+in diesem Vorlagensatz zur Verfügung stellen.
+
+Fehlermeldungen, Anregungen und Wünsche bitte senden an:
+empfang@revamp-it.ch
diff --git a/templates/print/rev-odt/request_quotation.odt b/templates/print/rev-odt/request_quotation.odt
new file mode 100644 (file)
index 0000000..fda58e9
Binary files /dev/null and b/templates/print/rev-odt/request_quotation.odt differ
diff --git a/templates/print/rev-odt/sales_delivery_order.odt b/templates/print/rev-odt/sales_delivery_order.odt
new file mode 100644 (file)
index 0000000..c4ac65d
Binary files /dev/null and b/templates/print/rev-odt/sales_delivery_order.odt differ
diff --git a/templates/print/rev-odt/sales_order.odt b/templates/print/rev-odt/sales_order.odt
new file mode 100644 (file)
index 0000000..4a8af66
Binary files /dev/null and b/templates/print/rev-odt/sales_order.odt differ
diff --git a/templates/print/rev-odt/sales_quotation.odt b/templates/print/rev-odt/sales_quotation.odt
new file mode 100644 (file)
index 0000000..f39bf4e
Binary files /dev/null and b/templates/print/rev-odt/sales_quotation.odt differ