Erstellt vor 7 Jahren

Geschlossen vor 7 Jahren

#788 closed Fehler (fixed)

Nach Datenbankupdate alle Waren auf Menge 0

Erstellt von: mike.constabel@… Verantwortlicher: m.bunkus@…
Priorität: normal Meilenstein:
Komponente: kivitendo ERP Version: 2.6.2 unstable
Schweregrad: kritisch Stichworte: Migration
Beobachter:

Beschreibung

Nach update von unstable Rev. 2969 auf Rev. 3099 wird die Datenbank
aktualisiert. Danach stehen alle Waren auf der Menge 0.

  • Führe custom_variables.sql aus: Benutzerdefinierte Variablen für beliebige

Module. Hier nur für Kunden- und Lieferantenstammdaten implementiert.

  • Führe follow_ups.sql aus: Tabellenstruktur für Wiedervorlagen und allgemeine

Notizen

  • Führe todo_user_config.sql aus: Benutzerkonfiguration zur Aufgabenliste
  • Führe warehouse.sql aus: Diverse neue Tabellen und Spalten zur Mehrlagerfähigkeit
  • Führe delivery_orders.sql aus: Lieferscheine als eigener Beleg
  • Führe transfer_type_shipped.sql aus: Transfertyp "verschickt" wird benötigt.

Änderungshistorie (4)

comment:1 Geändert vor 7 Jahren durch m.bunkus@…

  • Verantwortlicher von p.reetz@… nach m.bunkus@… geändert

comment:2 Geändert vor 7 Jahren durch info@…

Ich habe eine Möglichkeit zur Übernahme des Warenbestandes als Patch zum
Updatescript warehouse.sql geschrieben.
Die Idee:
Es wird ein Lager 'Transfer' angelegt. Die Lagerplätze werden aus dem Feld 'bin'
der parts-Tabelle generiert. Die Daten aus parts werden in einer temporären
Tabelle tmp_parts aufgehoben und in die neu generierten Lagerplätze übertragen,
nachdem der Trigger zur automatischen Berechnung von 'onhand' eingerichtet ist.

Achtung, evtl. modifizieren:

  1. Die trans_id wird aus der Sequenz 'id' generiert und sonst nirgendwo

eingetragen. Ist das korrekt?

  1. Es wird der erste Benutzer aus der Tabelle employee für employee_id genommen,

da ich nicht weiß, wie ich in dem Skript den aktuellen Benutzer herausfinden kann.

  1. Transfer_type ist 'stock'. Oder wäre 'found' besser?

Hier also jetzt der Patch:

--- /home/ftp/lx_test/unstable/sql/Pg-upgrade2/warehouse.sql (Revision 3206)
+++ /home/ftp/lx_test/unstable/sql/Pg-upgrade2/warehouse.sql (Arbeitskopie)
@@ -18,6 +18,9 @@

FOR EACH ROW EXECUTE PROCEDURE set_mtime();


-- Tabelle "warehouse"

+-- für Übertragung vorbereiten
+INSERT INTO warehouse(description) VALUES ('Transfer');
+

ALTER TABLE warehouse ADD COLUMN sortkey integer;
CREATE SEQUENCE tmp_counter;
UPDATE warehouse SET sortkey = nextval('tmp_counter');

@@ -88,6 +91,8 @@

ALTER TABLE inventory ADD COLUMN comment text;


-- "onhand" in "parts" über einen Trigger automatisch berechnen lassen.

+-- Vorher Warenbestand sichern JZ
+SELECT id,onhand,bin INTO TEMP TABLE tmp_parts FROM parts WHERE NOT onhand=0;

ALTER TABLE parts DROP COLUMN onhand;
ALTER TABLE parts ADD COLUMN onhand numeric(25,5);
UPDATE parts SET onhand = COALESCE((SELECT SUM(qty) FROM inventory WHERE

inventory.parts_id = parts.id), 0);
@@ -115,3 +120,6 @@

AFTER INSERT OR UPDATE OR DELETE ON inventory
FOR EACH ROW EXECUTE PROCEDURE update_onhand();


+-- Warenbestand wiederherstellen
+INSERT INTO bin(warehouse_id,description) (SELECT DISTINCT warehouse.id,bin
from warehouse,tmp_parts WHERE warehouse.description='Transfer');
+INSERT INTO
inventory(warehouse_id,parts_id,bin_id,qty,employee_id,trans_id,trans_type_id)
(SELECT warehouse.id,tmp_parts.id,bin.id,onhand,(SELECT id FROM employee LIMIT
1),nextval('id'),transfer_type.id FROM transfer_type, warehouse,tmp_parts,bin
WHERE warehouse.description='Transfer' AND bin=bin.description AND
transfer_type.description='stock');

comment:3 Geändert vor 7 Jahren durch mike.constabel@…

Evtl. seit r3222 funktioniert es. Mit r3300 sind die Mengen vorhanden.

comment:4 Geändert vor 7 Jahren durch m.bunkus@…

  • Lösung auf fixed gesetzt
  • Status von new nach closed geändert
Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.