evert "doc/* für DATEV:CSV Belegfeld2 aktivieren"
[kivitendo-erp.git] / doc / UPGRADE
1 Wichtige Hinweise zum Upgrade von älteren Versionen
2 ===================================================
3
4
5 ** BITTE FERTIGEN SIE VOR DEM UPGRADE EIN BACKUP IHRER DATENBANK(EN) AN! **
6
7 Upgrade auf v3.5.1
8
9 * Neue Perlabhängigkeiten
10
11   * LWP::Authen::Digest für WebshopApi
12   * LWP::UserAgent für WebshopApi
13
14 * Optionale Postgres Erweiterung pg_trgm(Trigram)
15
16   Die Trigramerweiterung bietet eine Ähnlichkeitsuche.
17   Diese verwendet das Shopmodul, wenn installiert, beim Bestellimport
18   um zu entscheiden ob ein Kunde neu angelegt oder als Vorschlag angezeigt wird.
19   Die Erweiterung wird bisher nur beim Ableich der Straße genutzt, da hier oft
20   unterschiedliche Schreibweisen vorhanden sind.
21   z.B Dorfstraße, Dorfstrasse, Dorfstr., Dorf Straße usw..
22   So wird vermieden, dass Kunden eventuell doppelt angelegt werden.
23
24   * Um diese Erweiterung generell in kivitendo zu installieren, um neuen Mandanten
25     und der kivitendo-Test-Suite zugänglich zu machen:
26
27     su - postgres
28     psql template1
29     CREATE EXTENSION IF NOT EXISTS pg_trgm;
30     \q
31
32   * Bei bestehende Mandanten-Datenbanken,
33     kann Erweiterung pg_trgm nachträglich installiert werden:
34
35     su - postgres
36     psql <DATENBANK>
37     CREATE EXTENSION IF NOT EXISTS pg_trgm;
38     \q
39
40     Wenn die Extension installiert ist können(kein muss) in den beiden Dateien
41     - sql/Pg-upgrade2/trigram_indices_webshop.sql
42     - sql/Pg-upgrade2/trigram_indices.sql
43     das ignore auf 0 gesetzt werden und beide Dateien werden dann beim Anmelden eingespielt.
44     Die Trigramindices sind ein Performancegewinn bei größeren Datenbanken
45
46 * Änderungen DATEV-Export Format CSV
47
48   Die Felder Belegfeld2 und Buchungsbeschreibung werden nicht mehr befüllt.
49   Im KNE-Export war im Belegfeld2 die Fälligkeit der Buchung gesetzt und in
50   Buchungsbeschreibung der Kunden- oder Lieferantenname.
51   Bei nicht valider Umsatz-Steuer-Identnummer wird der Export abgelehnt.
52   Da das Feld ein Freitext-Feld und keine Validierung bei der Eingabe hat(te)
53   unternimmt kivitendo keine eigene Normalisierung,  bzw. Konvertierung
54   des Datenfelds.
55
56   Eine Bereinigung der Ust-IDs muss der kivitendo-Admin eigenverantwortlich unternehmen.
57   Hier exemplarisch ein SQL-Schnipsel zum Ersetzen der Leerzeichen in diesem Feld:
58   UPDATE customer SET ustid=REPLACE(ustid, ' ', '') WHERE ustid LIKE '% %';
59
60 Upgrade auf v3.5.0
61 ===========================
62
63 * Neue Perl Abhängigkeiten:
64
65   * File::MimeInfo - für den Dateiupload
66   * Sys::CPU
67   * Thread::Pool::Simple
68
69 * Neue externe Abhängigkeiten:
70
71   * pdfinfo
72
73 * In der Rechte-Tabelle auth.master_rights wurden alle Positionswerte mit 100
74   multipliziert, um Lücken für neue Rechte zu schaffen.
75
76 * In der Tabelle "customer" wurde die Spalte "klass" nach "pricegroup_id"
77   migriert. Bei Kunden ohne Preisgruppe ist der Datenbankwert jetzt NULL statt
78   "0". Falls Kunden per CSV-Import importiert werden muß dieses Feld in der
79   CSV-Datei ebenfalls umbenannt werden.
80
81 * Für das neue Feature Lieferantenbriefe ist die Standardvorlage für Briefe
82   (letter.tex) angepasst worden. Statt letter.customer muss der Adressat jetzt
83   aus letter.custoemr_vendor erzeugt werden.
84
85 * In der Tabelle parts wurde die Boolean-Spalte "assembly" entfernt. Zur
86   Erkennung von Waren/Dienstleistungen/Erzeugnissen gibt es nun in parts eine
87   neue Spalte part_type vom ENUM-Typ, der auf die Werte 'part', 'service',
88   'assembly' und 'assortment' beschränkt ist.
89
90 * In der Tabelle parts wurde die Spalten inventory_accno_id, expense_accno_id
91   und income_accno_id entfernt. Deren Funktionalität wurde schon lange durch
92   Buchungsgruppen ersetzt und für die Erkennung des Artikeltyps gibt es nun die
93   Spalte part_type
94
95 Upgrade auf v3.4.1
96 ==================
97
98 * Neue Druckvariante Gelangensbestätigung für Verkaufs-Aufträge
99
100     Im Standard-Vorlagensatz RB befindet sich als Vorlage die ic_supply.tex
101     als Orientierung für die Anpassung an eigene Vorlagen. Eigene Vorlagen
102     müssen entsprechend um diesen Typ für die 3.4.1 erweitert werden.
103
104 * Druckvorlagen für Briefe
105
106     Die Erzeugung der Druckausgabe für die Brieffunktion wurde auf die
107     Verwendung des Template Toolkits umgestellt. Dazu muss die verwendete
108     Druckvorlage "letter.tex" angepasst werden. Im Standard-Vorlagensatz RB ist
109     das bereits geschehen. Falls keine manuellen Änderungen an der "letter.tex"
110     aus einer vorherigen Version gemacht wurden, reicht es, diese Datei
111     ("templates/print/RB/letter.tex") in das verwendete Vorlagenverzeichnis zu
112     kopieren. Ansonsten kann diese Datei als Beispiel dienen.
113
114
115 Upgrade auf v3.4.0
116 ==================
117
118 * Neue Perl-Modul-Abhängigkeiten:
119
120   * Algorithm::CheckDigits
121   * PBKDF2::Tiny
122
123   Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
124
125   $ scripts/installation_check.pl -ro
126
127 * Der in der Dokumentation beschriebene Mechanismus für die CGI-Anbindung
128   (2.6.1 Grundkonfiguration mittels CGI) wurde geändert. Ein einfacher Alias
129   auf das Programmverzeichnis funktioniert nicht mehr, und es muss immer ein
130   AliasMatch auf einen dispatcher eingerichtet werden. Die Dokumentation wurde
131   aktualisiert. Für Benutzer der empfohlenen FastCGI Anbindung ändert sich
132   nichts.
133
134 * Der Task-Server ist nun mandantenfähig. Für jeden Mandanten, für den
135   der Task-Server laufen soll, muss in der Administrationsoberfläche
136   in der Konfiguration des Mandanten hinterlegt werden, welchen
137   kivitendo-Benutzer der Task-Server nutzen soll. Ist bei einem
138   Mandanten kein Benutzer hinterlegt, so ignoriert der Task-Server
139   diesen Mandanten.
140
141   Im Gegenzug wurden die beiden Konfigurations-Einstellungen »client«
142   und »login« aus dem Abschnitt [task_server] entfernt. Der
143   Task-Server prüft beim Starten allerdings, ob diese Einstellungen
144   noch existieren und verweigert den Start mit einer hilfreichen
145   Fehlermeldung, solange sie noch vorhanden sind.
146
147 * Die Unterstützung unsicherer Passwort-Hashing-Mechanism wurde
148   entfernt. Für BenutzerInnen, die noch alte Mechanismen verwenden,
149   müssen die Passwörter einmalig in der Administrationsoberfläche
150   zurückgesetzt werden.
151
152   Dies betrifft nur Accounts, deren Passwort sich das letzte Mal vor
153   kivitendo 2.7.0 geändert hat.
154
155 Upgrade auf v3.3.0
156 ==================
157
158 * Bei Upgrade von Versionen vor v.3.2.x wie immer erst die dortigen
159   Upgradehinweise beachten.
160
161 * Es gibt keine neuen Perl-Modul-Abhängigkeiten.
162
163 * Die alte ungepflegte Druckvorlagenvariante "Standard" wurde entfernt.
164   Bereits verwendete Druckvorlagen, die darauf aufbauen, funktionieren
165   natürlich weiterhin.
166
167 * Für die Verwendung des MT940 Import Features der Bankerweiterung muß
168   aqbanking installiert werden. Dies wird nur für die Konvertierung vom MT940
169   ins CSV Format benötigt, das Kommandozeilentool "aqbanking-cli" befindet sich
170   z.B. unter Ubuntu im Paket aqbanking-tools.
171
172 Upgrade auf v3.2.0
173 ==================
174
175 * Neue Perl-Modul-Abhängigkeiten:
176
177   * GD
178   * HTML::Restrict
179   * Image::Info
180   * List::UtilsBy
181
182   Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
183
184   $ scripts/installation_check.pl -ro
185
186   Sofern das Upgrade von einer früheren Version als 3.1.0 geschieht auch die
187   Upgradehinweise der Vorversionen beachten.
188
189 * Druckvorlagen auf shipto-Verwendung prüfen
190
191   Hier hat sich das Standardverhalten geändert und ggf. werden shipto* nicht mehr
192   ausgedruckt, hier müssten die Druckvorlagen individuell angepasst werden, s.a.
193   Changelog -> Verkaufsbeleg-Ausdruck.
194
195 Upgrade auf v3.1.0
196 ==================
197
198
199 * BEVOR ein Aufruf im Administrationsbereich erfolgt, muss zwingend der
200   webdav Ordner im Installationspfad vorhanden sein!
201    -  mkdir webdav/
202    -  Rechte für webserver setzen ($ chmod www-data webdav/)
203   Dieses "Feature" war in vorhergehenden Versionen optional, wird aber
204   für das Upgrade auf Mandantenfähigkeit vorausgesetzt.
205
206 * Neue Softwarevoraussetzungen: Perl v5.10.1 oder neuer sowie
207   PostgreSQL 8.4 oder neuer werden zwingend vorausgesetzt. Ein Betrieb
208   mit älteren Versionen ist nicht mehr möglich.
209
210 * Neue Perl-Modul-Abhängigkeiten:
211
212   * File::Copy::Recursive
213   * Rose::DB::Object muss v0.788 oder neuer sein (aufgrund eines Bugs
214     in besagtem Modul im Zusammenspiel mit PostgreSQL)
215
216   Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
217
218   $ scripts/installation_check.pl -ro
219
220 * Die Datenbank muss zwingend Unicode als Encoding nutzen. Daher wird
221   auch die Konfigurationsvariable "system.dbcharset" nicht mehr
222   unterstützt.
223
224 * Einführung von Mandanten. Früher war die Konfiguration der
225   Datenbanken für jeden Benutzer getrennt vorzunehmen. Mit diesem
226   Release wurden Mandanten eingeführt: ein Mandant bekommt einen Namen
227   sowie die Datenbankkonfiguration, und Benutzer bekommen
228   Zugriffsrechte auf einen oder mehrere Mandanten.
229
230   Um dieses Update durchzuführen, müssen Sie sich einmal im
231   Administrationsbereich anmelden. Vorher ist kein Login im
232   Benutzerbereich möglich.
233
234   Die neue Struktur bedingt, dass viele Scripte, die bisher zur
235   Konfiguration nur einen Benutzer verlangt haben, jetzt auch einen
236   Mandanten verlangen. Die Konfiguration dieser Scripte ist deshalb
237   manuell anzupassen. Dazu gehören:
238
239   - der Task-Server (config/kivitendo.conf)
240   - CSV-Import von der Shell aus (scripts/csv-import-from-shell.sh)
241
242   Die folgenden Scripte sind ebenfalls betroffen, allerdings nur für
243   Entwickler interessant:
244
245   - scripts/dbupgrade2_tool.pl
246   - scripts/rose_auto_create_model.pl
247
248 * Neue Benutzerrechte
249
250   Diese müssen bei vorhandenen Gruppen eventuell nachgepflegt werden. Z.B. bei
251   der Gruppe Vollzugriff
252
253   - Stammdaten -> Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten.
254     Alle Kunden bearbeiten
255   - Konfiguration -> Verändern der kivitendo-Installationseinstellungen (die
256     meisten Menüpunkte unterhalb von 'System')
257
258 * Die alten ungepflegten Druckvorlagenvarianten French und Service
259   wurden entfernt.
260
261 * Die HTML-Druckvorlagen der Berichte (GuV, Bilanz, SuSa, BWA, UStVA) werden
262   jetzt alle zentral in den Webvorlagen verwaltet, es werden keine
263   benutzerangepasste Versionen der Druckvorlagen im Druckvorlagenverzeichnis
264   mehr unterstützt.
265
266 Upgrade auf v3.0.0
267 ==================
268
269 * Neue Abhängigkeiten
270
271   * Clone 1.16
272   * Email::MIME
273   * FCGI jetzt min Version 0.72
274   * Test::Harness 3.00
275   * IO::Socket::SSL
276   * Net::LDAP
277   * Net::SMTP::SSL
278   * Net::SSLGlue
279
280   Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
281
282   $ scripts/installation_check.pl -ro
283
284 * Neue Entwicklerabhängigkeiten
285
286   * Test::Deep
287   * GD 2.00
288
289 * Diverse umstrittene Features zum nicht standardkonformen Umgang mit gebuchten
290   Rechnungen sind jetzt standardmässig deaktiviert und müssen unter "System" ->
291   "Mandantenkonfiguration" aktiviert werden.
292
293 * Die Übersetzungen "de_DE" und "fr" für die alternative deutsche Version und
294   französische Version respektive wurden entfernt. Es bleiben offiziell
295   unterstützte Übersetzungen in Deutsch ("de") und English ("en").
296
297 * Dieses ist die letzte Version, die Perl-Versionen vor 5.10.1
298   unterstützen wird.  Ab dem nächsten Release werden Sprachkonstrukte
299   verwendet werden, die nicht mehr in 5.8 kompilieren, und Module, die
300   seit v5.10.1 zu den Coremodulen gehören, werden ab dann nicht mehr
301   als explizite Abhängigkeiten gelistet.
302
303
304 Upgrade auf v2.7.0
305 ==================
306
307 * In der Version 2.7.0 wird das XUL Menü entfernt. Alle Benutzer die das XUL
308   Menü noch eingestellt haben, werden beim ersten Einloggen auf ein
309   Kompatibilitätsmenü gesetzt. Das Javascriptmenü wurde entsprechend erweitert
310   um der Funktionalität nahe zu kommen.
311
312 * Das Lizenzenfeature wurde ersatzlos entfernt.
313
314 * In den LaTeX Vorlagen gilt der Befehl "pagebreak" und die dazugehörigen
315   "sumcarriedforward" und "lastpage" als deprecated und werden in einer
316   kommenden Version komplett entfernt. Die Mechanik ist anfällig gegenüber
317   subtilen Formatierungsfehlern bei bestimmten Zahlenformaten und ist
318   grundsätzlich fehlerhaft in den gemachten Annahmen über den verfügbaren Platz
319   auf einer Seite. Die Standardvorlagen sind entsprechend angepasst worden
320   und müssen in der Administration neu angelegt werden.
321
322 * Das Druckvorlagensystem wurde umgestellt, dadurch ist der Name "print" für
323   Druckvorlagen jetzt reserviert. Wenn eine Ihrer Vorlagensätze "print" heisst,
324   benennen Sie ihn um bevor Sie das Update starten.
325
326 * Die Druckvorlagen für USTVA vor 2012 wurden entfernt und das Ausdrucken von
327   USTVA als PDF ist deprecated. Da die Eingabe von Erklärungen als PDF nicht
328   mehr gestattet ist, sollten Archivkopien der USTVA direkt bei Elster bezogen
329   werden, oder auf anderem Wege erstellt werden. Der Prozess dazu wird sich in
330   einer kommenden Version ändern.
331
332 * Die Namen der von LaTeX generierten PDF-Dateien sind jetzt in der
333   eingestellten Dokumentensprache, nicht mehr in der Oberflächensprache des
334   Bearbeiters.
335
336 * Neue Abhängigkeiten
337
338   * JSON
339   * String::ShellQuote
340   * Digest::SHA (optional, empfohlen)
341
342   Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
343
344   $ scripts/installation_check.pl -ro
345
346 * CSV-Import wurde neu in Perl implementiert
347
348   Der PHP-Code wurde entfernt. Automatische Skripte, die per Aufruf von
349   lxo-import/partsB.php?cron=1 die Datei parts.csv importiert haben,
350   funktionieren nicht mehr.  Stattdessen kann scripts/csv-import-from-shell.sh
351   benutzt werden. Im Unterschied zur PHP-Version werden unbekannte Warengruppen
352   nicht mehr automatisch angelegt, stattdessen bricht das Skript ab.
353
354 * Rechteverwaltung
355
356   * Das Recht "Kunden und Lieferanten bearbeiten" wurde aufgespalten in zwei
357     einzelne Rechte. Ein Updatescript passt bestehende Gruppenaentsprechend an.
358   * Das Recht "Preise nd Rabatte bearbeiten" wurde neu eingeführt und ist
359     notwendig um in Belegen Preise ändern zu können. Es wird beim Upgrade
360     automatisch allen Benutzern erteilt.
361   * Das Recht "Administration" wurde neu eingeführt, und ist dazu da
362     administrative Tätigkeiten an der Mandantendatenbank aus einm Benutzerlogin
363     heraus durchzuführen. Es ist standardmäßig NICHT vergeben.
364   * Der Vorlageneditor wurde unter das Recht Administration gestellt, war
365     vorher Konfiguration.
366
367
368 Upgrade auf v2.6.3
369 ==================
370
371 1. Mit Version 2.6.3. wurden die beiden Konfigurationsdateien
372 authentication.pl und lx-erp.conf, sowie deren Varianten,
373 abgeschafft. Stattdessen gibt es nun die Datei lx_office.conf, die
374 aber erst neu angelegt werden muß. Als Vorlage dient hierfür die Datei
375 lx_office.conf.default. Die entsprechenden Werte muß man selber neu
376 konfigurieren, dies ist automatisiert zu fehleranfällig.
377
378 Nach dem Upgrade kann man sich so lange nicht anmelden, bis lx_office.conf
379 angelegt und authentication.pl und lx-erp.conf gelöscht oder verschoben wurden.
380
381 Es gibt keine local-Variante der lx_office.conf, arbeitet man mit git sollte
382 man lx_office.conf nicht einchecken.
383
384 Eine etwas ausführlichere Beschreibung findet sich in Kapitel 2.3
385 "Lx-Office-Konfigurationsdatei" in doc/Lx-Office-Dokumentation.pdf
386
387 2. Eine neu hinzugekommene Komponente ist der Task-Server. Hierbei
388 handelt es sich um einen Dämonen, der im Hintergrund läuft, in
389 regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese
390 zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser
391 Dämon wird bisher nur für die Erzeugung der wiederkehrenden Rechnungen
392 benutzt, wird aber in Zukunft deutlich mehr Aufgaben übertragen
393 bekommen. Die Einrichtung des Dämonen wird in der
394 Installationsdokumentation im Abschnitt "Der Task-Server" beschrieben.
395
396 3. Mit Version 2.6.3 sind einige Abhängigkeiten von Perl-Modulen
397 hinzugekommen. Bitte führen sie vor dem ersten Aufrufen der einmal
398 den folgenden Befehl im Lx-Office Verzeichnis aus:
399
400 $ scripts/installation_check.pl
401
402 Sollten Module als fehlend markiert sein, folgen Sie bitte den Anweisungen in
403 der Installationsanweisung.
404
405 Zumindest folgende Module sind neu benötigt:
406
407 * Config::Std
408 * Params::Validate
409
410 4. Sollten Sie die FCGI-Version einsetzen, das Apache-Modul
411 "mod_fcgid" (nicht "mod_fastcgi") benutzen und von diesem Modul die
412 Version v2.6.3 oder später installiert haben, so ist außerdem wichtig,
413 seinen Parameter "FcgidMaxRequestLen" deutlich zu erhöhen, weil sich
414 dieser im Release mod_fcgid-Release v2.6.3 deutlich geändert
415 hat. Details dazu finden sich in Kapitel 2.5.2 "Konfiguration für
416 FastCGI/FCGI" in doc/Lx-Office-Dokumentation.pdf
417
418
419 Upgrade auf v2.6.2
420 ==================
421
422  Vor dem Einloggen
423  -----------------
424
425 Mit Version 2.6.2 sind einige Abhängigkeiten von Perl-Modulen hinzugekommen.
426 Bitte führen sie vor dem ersten Aufrufen der einmal den folgenden Befehl im
427 Lx-Office Verzeichnis aus:
428
429 $ scripts/installation_check.pl
430
431 Sollten Module als fehlend markiert sein, folgen Sie bitte den Anweisungen in
432 der Installationsanweisung.
433
434 Zumindest folgende Module sind neu benötigt:
435
436 * Rose::Object, Rose::DB und Rose::DB::Object (die Installation von
437   Rose::DB::Object via CPAN oder den Paketmechanismus Ihrer
438   Distribution sollte für die automatische Installation der anderen
439   zwei Pakete sorgen)
440
441  Neue Gruppenrechte
442  ------------------
443
444 Es wurde ein neues Recht "Druck" eingeführt. Dieses bestimmt, ob die
445 Benutzerin das Menü "Druck" zu Gesicht bekommt oder nicht, unabhängig
446 davon, wie die Rechte für die einzelnen Unterpunkte gesetzt sind.
447
448 Für bereits bestehende Gruppen muss es sofern gewünscht vom
449 Administrator manuell gewährt werden.
450
451
452 Upgrade auf v2.6.1
453 ==================
454
455  Vor dem Einloggen
456  -----------------
457
458 Mit Version 2.6.1 wurden die Listen der benötigten Perl Module überarbeitet.
459 Einige der vorher in den Abhängigkeiten gelisteten Module waren Coremodules
460 (und damit in jeder Perldistribution vorhanden), oder ihrerseits Abhängigkeiten
461 anderer benötigter Module. Durch die Überarbeitung hat sich die Liste deutlich
462 geändert.
463
464 Bitte führen sie vor dem ersten Aufrufen der einmal den folgenden Befehl im
465 Lx-Office Verzeichnis aus:
466
467 $ scripts/installation_check.pl
468
469 Sollten Module als fehlend markiert sein, folgen Sie bitte den Anweisungen in
470 der Installationsanweisung.
471
472 Zumindest folgende Module sind neu benötigt:
473
474 * URI
475 * XML::Writer
476
477  Neue Konfigurationsvariablen
478  ----------------------------
479
480 In der config/lx-erp.conf ist als neue Option $show_best_before hinzugekommen.
481 Die Variable kontrolliert die Anzeige von Mindesthaltbarkeitsdaten. Sie ist
482 standardmäßig deaktiviert.