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