+Upgrade auf v3.6.1
+
+Das manueller Korrigieren der Steuer bei Skontoverbuchungen entfällt seit
+dieser Version, da die Steuerkorrektur automatisch gemacht wird.
+
+Ein neues Perl-Modul ist hinzugekommen, Hilfe zum Installieren bietet wie immer
+das Skript 'scripts/installation_check.pl -v'.
+
+ * IPC::Run
+
+
+Upgrade auf v3.6.0
+
+Der 'neue Auftrags-Controller' ist mittlerweile weder neu noch experimentell und
+die entsprechende Mandantenkonfiguration 'Experimentellen neuen Auftrags-Controller'
+verwenden wird bei diesem Upgrade hart auf 'Ja' gesetzt.
+Die alte, noch aktive Auftragsmaske wird in einer zukünftigen Version von kivitendo entfernt
+werden.
+
+Einige neue Perl-Module sind hinzugekommen, Hilfe zum Installieren bietet wie immer
+das Skript 'scripts/installation_check.pl -v'.
+
+ * Neue Perl Abhängigkeiten:
+
+ * Term::ReadLine::Gnu
+ * Imager::QRCode
+ * Imager
+ * REST::Client
+
+
+
+Upgrade auf v3.5.8
+
+Die API für 'Erzeugnis fertigen' wurde geändert:
+Die Einstellung der Mandantenkonfiguration für 'Zum Fertigen wird das Standardlager
+des Bestandteils verwendet, nicht das Ziellager' hat keine Auswirkung mehr.
+Falls dieser Wert auf 'Nein' steht funktioniert das Verfahren wie vorher auch.
+Falls dieser Wert auf 'Ja' steht, muss geprüft werden, ob das Verfahren noch so
+benötigt wird.
+Alternativ kann 'Erzeugnis fertigen' ab dieser Version auch Erzeugnisbestandteile aus
+fremden Lagern (nicht das Ziellager) nehmen. Dies sollte i.d.R. den Prozeß abbilden können.
+
+Die Mandantenkonfiguration 'Standard-Auslagern ohne Prüfung auf Bestand' wird bei diesem
+Versionsupgrade hart auf 'Nein' gesetzt und kann vom kivitendo Administrator selbständig
+wieder auf 'Ja' gesetzt werden. Das Verfahren wird aber prinzipiell in einer zukünftigen
+Version von kivitendo nicht mehr unterstützt werden.
+
+
+Upgrade auf v3.5.7
+ * Neue Perl Abhängigkeiten:
+
+ * Math::Round
+ * Try::Tiny
+
+
+Upgrade auf v3.5.6.1
+
+Die Abwärtskompatibilität zur Lagermengen-Berechnung in Lieferscheinen wurde
+aufgehoben. Wer nicht mit Workflows arbeitet (nicht empfohlen) muss diese
+explizit in der Mandantenkonfiguration wieder aktivieren.
+
+
+Upgrade auf v3.5.6
+
+In dieser Version sind die Mehrwertsteueranpassungen für den SKR03 und SKR04
+ab 1.7.2020 vorhanden. Wer diese Anpassungen schon manuell eingestellt hat, sollte
+die Upgrade-Skripte deaktivieren.
+Dies betrifft diese drei Skripte "sql/Pg-upgrade2/konjunkturpaket_2020*", sowie
+ferner das Entfernen der Release-Abhängigkeiten dieser Skripte:
+
+Folgende zwei Sed-Kommandos erledigen das:
+
+ sed -i 's/ignore: 0/ignore: 1/g' sql/Pg-upgrade2/konjunkturpaket_2020*
+ sed -i 's/\bkonjunktur[^ ]*//g' sql/Pg-upgrade2/release_3_5_*
+
+
+Alternativ sollten die Datenbank-Upgrade-Skripte gegen einen Testdatenbestand ausgeführt werden
+und der kivitendo-Dienstleister Ihres Vertrauens griffbereit sein.
+
+Weitere Änderungen:
+
+Für den MT940-Import erwartet kivitendo aqbanking ab Version 6.
+
+Für die Erzeugung von ZUGFeRD 2.0 fähigen PDFs wird ein aktuelles TexLive ab Version 2018 benötigt.
+Details hierzu auch in der Dokumentation (HTML oder Dokumentation.pdf).
+
+Bitte wie immer vor dem Anmelden an der Weboberfläche 'scripts/installation_check.pl -v' ausführen.
+
+Es sollten mindestens zwei Perl-Module "CAM::PDF" und "XML::LibXML" dort erscheinen, falls noch nicht installiert.
+
+Diese Version ist ferner mit Postgres Datenbanken ab Version 12 kompatibel, da die Abhängigkeit von oids entfernt wurde.
+
+Sicherheitshinweis:
+
+Für git-Installation sollte geprüft werden ob das Verzeichnis .git/ für den Webserver auslesbar ist.
+Gleiches gilt für alle Installation für den Ordner config/, der die Datei kivitendo.conf beinhaltet.
+Die Standard-Konfiguration des Apache2 Webservers sollte letzteres verhindern, aber wir weisen darauf hin
+dies einmal zu überprüfen.
+
+Ab dieser Version wird eine globale .htaccess ausgeliefert die beide Verzeichnisse mittels rewrite sichert.
+Dafür muss einmalig das Modul rewrite für den Apache, bspw. mit "a2enmode rewrite" aktiviert werden.
+Regeldetails:
+
+<IfModule mod_rewrite.c>
+ RewriteEngine On
+ RewriteRule .*(\.git|config).*$ - [F,NC]
+</IfModule>
+
+Ferner wurde ein Security-Audit der kivitendo Version 3.1 veröffentlicht.
+Hierfür empfehlen wir die Ausarbeitung eines Sicherheitskonzept mit einem kivitendo Partner Eurer Wahl.
+Falls dies nicht möglich sein sollte, weisen wir darauf hin, dass ein SQL-Backup tages- und wochenaktuell
+für einen etwaigen Restore zu Verfügung stehen sollte. Ferner besteht die Gefahr, dass angemeldete
+Benutzer Formfelder mißbrauchen können, Abhilfe schafft hier zum Beispiel der Einsatz von modsecurity unter
+Apache2 (https://doxsec.wordpress.com/2017/06/11/using-modsecurity-web-application-firewall-to-prevent-sql-injection-and-xss-using-blocking-rules/)
+
+Upgrade auf v3.5.4
+
+* Task-Server berücksichtigt Memory-Limit
+
+Falls für fgci-Prozesse ein Memory-Limit in der Konfigurationsdatei eingerichtet
+ist, wird dies nun auch vom Task-Server berücksichtigt. Dieser beendet sich bei
+Überschreitung des Limits. Deshalb muss dafür gesorgt werden, dass der
+Task-Server in diesem Fall neu gestartet wird (z.B. über den systemd-Service).
+Siehe auch aktuelle kivitendo-Dokumentation.
+
+
+Upgrade auf v3.5.3
+
+* Fallback-Module entfernt
+
+Einige Default-Module die als Fallback zu Verfügung standen, werden ab
+dieser Version nicht mehr mit ausgeliefert.
+Bitte vor dem Anmelden an der Weboberfläche 'scripts/installation_check.pl -v' ausführen
+und die entsprechenden Module installieren.
+S.a. weitere Details in der aktuellen kivitendo-Dokumentation.
+
+
+Upgrade auf v3.5.1
+
+* Neue Perlabhängigkeiten
+
+* LWP::Authen::Digest für WebshopApi
+* LWP::UserAgent für WebshopApi
+
+* Zwingende Postgres Erweiterung pg_trgm(Trigram)
+
+ Die Trigramerweiterung bietet eine Ähnlichkeitsuche.
+ Diese verwendet das Shopmodul, wenn installiert, beim Bestellimport
+ um zu entscheiden ob ein Kunde neu angelegt oder als Vorschlag angezeigt wird.
+ Die Erweiterung wird bisher nur beim Ableich der Straße genutzt, da hier oft
+ unterschiedliche Schreibweisen vorhanden sind.
+ z.B Dorfstraße, Dorfstrasse, Dorfstr., Dorf Straße usw..
+ So wird vermieden, dass Kunden eventuell doppelt angelegt werden.
+
+ * Zunächst muss geprüft werden, ob die Erweiterung prinzipiell für postgres
+ vorhanden ist, dafür kann folgendes Select-Statement in template1 genutzt werden:
+
+ # select * from pg_available_extensions where name ='pg_trgm';
+
+ Sollte bei diesem Statement kein Ergebnis kommen, so muss die entsprechende
+ Erweiterung für die eigene Distribution nachinstalliert werden.
+ Bei debian/ubuntu befindet sich diese im Paket postgresql-contrib
+ und kann mit
+
+ $ apt install postgresql-contrib
+
+ installiert werden.
+
+ * Diese Erweiterung wird mit dem SQL-Updatescript sql/Pg-upgrade2/trigram_extension.sql
+ und Datenbank-Super-Benutzer Rechten automatisch installiert.
+ Dazu braucht der DatenbankSuperbenutzer "postgres" ein Passwort
+
+ su - postgres
+ psql
+ \password
+ <Eingabe passwort>
+ \q
+
+ Passwort und Benutzername können jetzt beim Anlegen einer neuen Datenbank bzw.
+ bei Updatescripten, die SuperUserRechte benötigen eingegeben werden.
+
+
+ * Änderungen DATEV-Export Format CSV
+
+ Die Felder Belegfeld2 und Buchungsbeschreibung werden nicht mehr befüllt.
+ Im KNE-Export war im Belegfeld2 die Fälligkeit der Buchung gesetzt und in
+ Buchungsbeschreibung der Kunden- oder Lieferantenname.
+ Bei nicht valider Umsatz-Steuer-Identnummer wird der Export abgelehnt.
+ Da das Feld ein Freitext-Feld und keine Validierung bei der Eingabe hat(te)
+ unternimmt kivitendo keine eigene Normalisierung, bzw. Konvertierung
+ des Datenfelds.
+
+ Eine Bereinigung der Ust-IDs muss der kivitendo-Admin eigenverantwortlich unternehmen.
+ Hier exemplarisch ein SQL-Schnipsel zum Ersetzen der Leerzeichen in diesem Feld:
+ UPDATE customer SET ustid=REPLACE(ustid, ' ', '') WHERE ustid LIKE '% %';
+
+ Upgrade auf v3.5.0
+ ===========================
+
+ * Neue Perl Abhängigkeiten:
+
+ * File::MimeInfo - für den Dateiupload
+ * Sys::CPU
+ * Thread::Pool::Simple
+
+ * Neue externe Abhängigkeiten:
+
+ * pdfinfo
+
+ * In der Rechte-Tabelle auth.master_rights wurden alle Positionswerte mit 100
+ multipliziert, um Lücken für neue Rechte zu schaffen.
+
+ * In der Tabelle "customer" wurde die Spalte "klass" nach "pricegroup_id"
+ migriert. Bei Kunden ohne Preisgruppe ist der Datenbankwert jetzt NULL statt
+ "0". Falls Kunden per CSV-Import importiert werden muß dieses Feld in der
+ CSV-Datei ebenfalls umbenannt werden.
+
+ * Für das neue Feature Lieferantenbriefe ist die Standardvorlage für Briefe
+ (letter.tex) angepasst worden. Statt letter.customer muss der Adressat jetzt
+ aus letter.custoemr_vendor erzeugt werden.
+
+ * In der Tabelle parts wurde die Boolean-Spalte "assembly" entfernt. Zur
+ Erkennung von Waren/Dienstleistungen/Erzeugnissen gibt es nun in parts eine
+ neue Spalte part_type vom ENUM-Typ, der auf die Werte 'part', 'service',
+ 'assembly' und 'assortment' beschränkt ist.
+
+ * In der Tabelle parts wurde die Spalten inventory_accno_id, expense_accno_id
+ und income_accno_id entfernt. Deren Funktionalität wurde schon lange durch
+ Buchungsgruppen ersetzt und für die Erkennung des Artikeltyps gibt es nun die
+ Spalte part_type
+
+ Upgrade auf v3.4.1
+ ==================
+
+ * Neue Druckvariante Gelangensbestätigung für Verkaufs-Aufträge
+
+ Im Standard-Vorlagensatz RB befindet sich als Vorlage die ic_supply.tex
+ als Orientierung für die Anpassung an eigene Vorlagen. Eigene Vorlagen
+ müssen entsprechend um diesen Typ für die 3.4.1 erweitert werden.
+
+ * Druckvorlagen für Briefe
+
+ Die Erzeugung der Druckausgabe für die Brieffunktion wurde auf die
+ Verwendung des Template Toolkits umgestellt. Dazu muss die verwendete
+ Druckvorlage "letter.tex" angepasst werden. Im Standard-Vorlagensatz RB ist
+ das bereits geschehen. Falls keine manuellen Änderungen an der "letter.tex"
+ aus einer vorherigen Version gemacht wurden, reicht es, diese Datei
+ ("templates/print/RB/letter.tex") in das verwendete Vorlagenverzeichnis zu
+ kopieren. Ansonsten kann diese Datei als Beispiel dienen.
+
+
+ Upgrade auf v3.4.0
+ ==================
+
+ * Neue Perl-Modul-Abhängigkeiten:
+
+ * Algorithm::CheckDigits
+ * PBKDF2::Tiny
+
+ Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
+
+ $ scripts/installation_check.pl -ro
+
+ * Der in der Dokumentation beschriebene Mechanismus für die CGI-Anbindung
+ (2.6.1 Grundkonfiguration mittels CGI) wurde geändert. Ein einfacher Alias
+ auf das Programmverzeichnis funktioniert nicht mehr, und es muss immer ein
+ AliasMatch auf einen dispatcher eingerichtet werden. Die Dokumentation wurde
+ aktualisiert. Für Benutzer der empfohlenen FastCGI Anbindung ändert sich
+ nichts.
+
+ * Der Task-Server ist nun mandantenfähig. Für jeden Mandanten, für den
+ der Task-Server laufen soll, muss in der Administrationsoberfläche
+ in der Konfiguration des Mandanten hinterlegt werden, welchen
+ kivitendo-Benutzer der Task-Server nutzen soll. Ist bei einem
+ Mandanten kein Benutzer hinterlegt, so ignoriert der Task-Server
+ diesen Mandanten.
+
+ Im Gegenzug wurden die beiden Konfigurations-Einstellungen »client«
+ und »login« aus dem Abschnitt [task_server] entfernt. Der
+ Task-Server prüft beim Starten allerdings, ob diese Einstellungen
+ noch existieren und verweigert den Start mit einer hilfreichen
+ Fehlermeldung, solange sie noch vorhanden sind.
+
+ * Die Unterstützung unsicherer Passwort-Hashing-Mechanism wurde
+ entfernt. Für BenutzerInnen, die noch alte Mechanismen verwenden,
+ müssen die Passwörter einmalig in der Administrationsoberfläche
+ zurückgesetzt werden.
+
+ Dies betrifft nur Accounts, deren Passwort sich das letzte Mal vor
+ kivitendo 2.7.0 geändert hat.
+
+ Upgrade auf v3.3.0
+ ==================
+
+ * Bei Upgrade von Versionen vor v.3.2.x wie immer erst die dortigen
+ Upgradehinweise beachten.
+
+ * Es gibt keine neuen Perl-Modul-Abhängigkeiten.
+
+ * Die alte ungepflegte Druckvorlagenvariante "Standard" wurde entfernt.
+ Bereits verwendete Druckvorlagen, die darauf aufbauen, funktionieren
+ natürlich weiterhin.
+
+ * Für die Verwendung des MT940 Import Features der Bankerweiterung muß
+ aqbanking installiert werden. Dies wird nur für die Konvertierung vom MT940
+ ins CSV Format benötigt, das Kommandozeilentool "aqbanking-cli" befindet sich
+ z.B. unter Ubuntu im Paket aqbanking-tools.
+
+ Upgrade auf v3.2.0
+ ==================
+
+ * Neue Perl-Modul-Abhängigkeiten:
+
+ * GD
+ * HTML::Restrict
+ * Image::Info
+ * List::UtilsBy
+
+ Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
+
+ $ scripts/installation_check.pl -ro
+
+ Sofern das Upgrade von einer früheren Version als 3.1.0 geschieht auch die
+ Upgradehinweise der Vorversionen beachten.
+
+ * Druckvorlagen auf shipto-Verwendung prüfen
+
+ Hier hat sich das Standardverhalten geändert und ggf. werden shipto* nicht mehr
+ ausgedruckt, hier müssten die Druckvorlagen individuell angepasst werden, s.a.
+ Changelog -> Verkaufsbeleg-Ausdruck.
+
+ Upgrade auf v3.1.0
+ ==================
+
+
+ * BEVOR ein Aufruf im Administrationsbereich erfolgt, muss zwingend der
+ webdav Ordner im Installationspfad vorhanden sein!
+ - mkdir webdav/
+- Rechte für webserver setzen ($ chmod www-data webdav/)
+ Dieses "Feature" war in vorhergehenden Versionen optional, wird aber
+ für das Upgrade auf Mandantenfähigkeit vorausgesetzt.
+
+ * Neue Softwarevoraussetzungen: Perl v5.10.1 oder neuer sowie
+ PostgreSQL 8.4 oder neuer werden zwingend vorausgesetzt. Ein Betrieb
+ mit älteren Versionen ist nicht mehr möglich.
+
+ * Neue Perl-Modul-Abhängigkeiten:
+
+ * File::Copy::Recursive
+ * Rose::DB::Object muss v0.788 oder neuer sein (aufgrund eines Bugs
+ in besagtem Modul im Zusammenspiel mit PostgreSQL)
+
+ Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
+
+ $ scripts/installation_check.pl -ro
+
+ * Die Datenbank muss zwingend Unicode als Encoding nutzen. Daher wird
+ auch die Konfigurationsvariable "system.dbcharset" nicht mehr
+ unterstützt.
+
+ * Einführung von Mandanten. Früher war die Konfiguration der
+ Datenbanken für jeden Benutzer getrennt vorzunehmen. Mit diesem
+ Release wurden Mandanten eingeführt: ein Mandant bekommt einen Namen
+ sowie die Datenbankkonfiguration, und Benutzer bekommen
+ Zugriffsrechte auf einen oder mehrere Mandanten.
+
+ Um dieses Update durchzuführen, müssen Sie sich einmal im
+ Administrationsbereich anmelden. Vorher ist kein Login im
+ Benutzerbereich möglich.
+
+ Die neue Struktur bedingt, dass viele Scripte, die bisher zur
+ Konfiguration nur einen Benutzer verlangt haben, jetzt auch einen
+ Mandanten verlangen. Die Konfiguration dieser Scripte ist deshalb
+ manuell anzupassen. Dazu gehören:
+
+ - der Task-Server (config/kivitendo.conf)
+- CSV-Import von der Shell aus (scripts/csv-import-from-shell.sh)
+
+ Die folgenden Scripte sind ebenfalls betroffen, allerdings nur für
+ Entwickler interessant:
+
+ - scripts/dbupgrade2_tool.pl
+ - scripts/rose_auto_create_model.pl
+
+ * Neue Benutzerrechte
+
+ Diese müssen bei vorhandenen Gruppen eventuell nachgepflegt werden. Z.B. bei
+ der Gruppe Vollzugriff
+
+ - Stammdaten -> Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten.
+ Alle Kunden bearbeiten
+ - Konfiguration -> Verändern der kivitendo-Installationseinstellungen (die
+ meisten Menüpunkte unterhalb von 'System')
+
+ * Die alten ungepflegten Druckvorlagenvarianten French und Service
+ wurden entfernt.
+
+ * Die HTML-Druckvorlagen der Berichte (GuV, Bilanz, SuSa, BWA, UStVA) werden
+ jetzt alle zentral in den Webvorlagen verwaltet, es werden keine
+ benutzerangepasste Versionen der Druckvorlagen im Druckvorlagenverzeichnis
+ mehr unterstützt.