Brauche eine fixe Antwort zu Seriennummern!
Moderator: SYNERPY
-
MD10
- Beiträge: 328
- Registriert: Mo Sep 29, 2008 1:10 pm
Brauche eine fixe Antwort zu Seriennummern!
Hallo,
ich habe mal wieder ein dringendes Problem. Ich habe einen Artikel der Produziert worden ist, dieser hat auch eine Seriennummer (auch im Fertigungsauftrag).
In der Seriennummernverwaltung bei dieser Nummer steht auch der Fertigungsauftrag, jedoch steht da bei "Gebucht" ein "N". Ich bekomme auch diese Seriennummer mit dem Lieferschein nicht verknüpft. Der Fertigungsauftrag ist fertiggemeldet und aus meiner sicht ordnungsgemäß gebucht.
Wo könnte das Problem liegen?
Danke im Voraus.
Gruß
David
ich habe mal wieder ein dringendes Problem. Ich habe einen Artikel der Produziert worden ist, dieser hat auch eine Seriennummer (auch im Fertigungsauftrag).
In der Seriennummernverwaltung bei dieser Nummer steht auch der Fertigungsauftrag, jedoch steht da bei "Gebucht" ein "N". Ich bekomme auch diese Seriennummer mit dem Lieferschein nicht verknüpft. Der Fertigungsauftrag ist fertiggemeldet und aus meiner sicht ordnungsgemäß gebucht.
Wo könnte das Problem liegen?
Danke im Voraus.
Gruß
David
-----------------------------------
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
-
MD10
- Beiträge: 328
- Registriert: Mo Sep 29, 2008 1:10 pm
Ja, danke! Das Problem ist nämlich ein weiteres mal aufgetreten. Wie gesagt, obwohl der Fertigungsauftrag abgeschlossen ist und die gewünschte Fertigmenge im FA gebucht ist, steht in der Seriennummernverwaltung bei gebucht ein "N" und somit kann ich ab dem Lieferschein diese Seriennummern nicht mit einfügen. Ich sehe sie, kann sie aber nicht einfügen in den LS, RE usw.
Gruß
David
Gruß
David
-----------------------------------
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
-
SYN15
- Beiträge: 36
- Registriert: Di Jan 16, 2007 11:31 am
Hallo,
wie genau gehen Sie denn in dem Fertigungsauftrag vor? In welchem Status vergeben Sie die Seriennummern und wann tragen Sie die gefertigte Menge ein?
Wenn das Kennzeichen gebucht auf N steht ist die Seriennummer zwar im System vorhanden, gilt aber als nicht verwendbar, da sie noch nicht eingebucht wurde. Daher können Sie sie auch nicht in Ihrem Lieferschein hinzufügen.
MfG SYN15
wie genau gehen Sie denn in dem Fertigungsauftrag vor? In welchem Status vergeben Sie die Seriennummern und wann tragen Sie die gefertigte Menge ein?
Wenn das Kennzeichen gebucht auf N steht ist die Seriennummer zwar im System vorhanden, gilt aber als nicht verwendbar, da sie noch nicht eingebucht wurde. Daher können Sie sie auch nicht in Ihrem Lieferschein hinzufügen.
MfG SYN15
-
MD10
- Beiträge: 328
- Registriert: Mo Sep 29, 2008 1:10 pm
Hallo,
wir vergeben die Seriennummern beim erstellen eines Fertigungsauftrag. Sprich - erst Seriennummer und dann Fertigungsauftrag.
Wann genau muss eine Seriennummer eingebunden werden? Diese Info wäre für uns sehr hilfreich.
Gruß
David
wir vergeben die Seriennummern beim erstellen eines Fertigungsauftrag. Sprich - erst Seriennummer und dann Fertigungsauftrag.
Wann genau muss eine Seriennummer eingebunden werden? Diese Info wäre für uns sehr hilfreich.
Gruß
David
-----------------------------------
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
-
SYN15
- Beiträge: 36
- Registriert: Di Jan 16, 2007 11:31 am
Hallo,
zuerst muss der Fertigungsauftrag erstellt werden.
In den Status P, A oder I können dann über die 5. Registerkarte (Chargen) über einen Rechtsklick auf das rechte Grid die Seriennummern vergeben werden. Diese Registerkarte ist nur bei seriennummern- oder chargenpflichtigen Artikeln sichtbar!
Im Status I kann die gefertigte Menge vergeben werden. Dabei wird dann automatisch die entsprechende Anzahl hinterlegter Seriennummern gebucht in der vorgegebenen Reihenfolge.
MfG
zuerst muss der Fertigungsauftrag erstellt werden.
In den Status P, A oder I können dann über die 5. Registerkarte (Chargen) über einen Rechtsklick auf das rechte Grid die Seriennummern vergeben werden. Diese Registerkarte ist nur bei seriennummern- oder chargenpflichtigen Artikeln sichtbar!
Im Status I kann die gefertigte Menge vergeben werden. Dabei wird dann automatisch die entsprechende Anzahl hinterlegter Seriennummern gebucht in der vorgegebenen Reihenfolge.
MfG
-
MD10
- Beiträge: 328
- Registriert: Mo Sep 29, 2008 1:10 pm
Hallo,
und genau da streikt AvERP!! Er zeigt mir zwar die Seriennummern an aber fügt sie einfachnicht ein und wenn das AvERP die nummer doch einfügt, steht sie in der Seriennummernverwaltung als nicht gebucht.
Gruß
David
und genau da streikt AvERP!! Er zeigt mir zwar die Seriennummern an aber fügt sie einfachnicht ein und wenn das AvERP die nummer doch einfügt, steht sie in der Seriennummernverwaltung als nicht gebucht.
Gruß
David
-----------------------------------
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
-
SYN15
- Beiträge: 36
- Registriert: Di Jan 16, 2007 11:31 am
Hallo,
wo ist bitte genau da? Beim Einfügen der Seriennummer oder beim Setzen der gefertigten Menge?
Über welchen Menüpunkt im Rechtsklickmenü fügen Sie die Seriennummern denn ein?
Es ist vollkommen normal, dass die Seriennummern nach dem Einfügen erst einmal auf Gebucht = N stehen.
Am besten geben Sie mal Schritt für Schritt an wie Sie vorgehen.
MfG
wo ist bitte genau da? Beim Einfügen der Seriennummer oder beim Setzen der gefertigten Menge?
Über welchen Menüpunkt im Rechtsklickmenü fügen Sie die Seriennummern denn ein?
Es ist vollkommen normal, dass die Seriennummern nach dem Einfügen erst einmal auf Gebucht = N stehen.
Am besten geben Sie mal Schritt für Schritt an wie Sie vorgehen.
MfG
-
MD10
- Beiträge: 328
- Registriert: Mo Sep 29, 2008 1:10 pm
Hallo,
also, folgend ist meine Vorgehensweise:
1. Fertigungsauftrag ist im Status "I". Die gefertigte Menge ist in diesem Stadium noch auf Null, denn diese wird mit dem letzten Arbeitsgang beim Fertigmelden des Fertigungsauftrags automatisch gebucht. Fertigmelden des Fertigungsauftrags erfolgt auch automatisch mit dem letzten Arbeitsgang.
2. Ich gehe im Fertigungsauftrag auf die Registerkarte 5. Chargen und Seriennummern.
3. Klicke mit der rechten Maustaste auf die "zugewiesene Seriennummern". Gebe hier meine Seriennummer ein, diese wird übernommen.
4. Der FA wird bearbeitet und fertiggemeldet. Produktion abgeschlossen.
5. Beim erstellen des Lieferscheins kann ich die Seriennummer nicht übernehmen, in der Seriennummernverwaltung ist der FA noch nicht gebucht. Problem ist dass der FA fertiggemeldet ist, also Status "F" und die Fertigmenge auch ordentlich eingetragen ist.
Ich muss dazu sagen dass diese FAs auf Halt waren und noch aus der Zeit vor dem AvERP-Update waren, also letztes Jahr im September.
Gruß
David
also, folgend ist meine Vorgehensweise:
1. Fertigungsauftrag ist im Status "I". Die gefertigte Menge ist in diesem Stadium noch auf Null, denn diese wird mit dem letzten Arbeitsgang beim Fertigmelden des Fertigungsauftrags automatisch gebucht. Fertigmelden des Fertigungsauftrags erfolgt auch automatisch mit dem letzten Arbeitsgang.
2. Ich gehe im Fertigungsauftrag auf die Registerkarte 5. Chargen und Seriennummern.
3. Klicke mit der rechten Maustaste auf die "zugewiesene Seriennummern". Gebe hier meine Seriennummer ein, diese wird übernommen.
4. Der FA wird bearbeitet und fertiggemeldet. Produktion abgeschlossen.
5. Beim erstellen des Lieferscheins kann ich die Seriennummer nicht übernehmen, in der Seriennummernverwaltung ist der FA noch nicht gebucht. Problem ist dass der FA fertiggemeldet ist, also Status "F" und die Fertigmenge auch ordentlich eingetragen ist.
Ich muss dazu sagen dass diese FAs auf Halt waren und noch aus der Zeit vor dem AvERP-Update waren, also letztes Jahr im September.
Gruß
David
-----------------------------------
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
-
SYN15
- Beiträge: 36
- Registriert: Di Jan 16, 2007 11:31 am
-
MD10
- Beiträge: 328
- Registriert: Mo Sep 29, 2008 1:10 pm
Hallo,
der Fertigungsauftrag wird automatisch mit dem letzten Arbeitsgang, Barcoderückerfassung, fertiggemeldet.
Sofern keine Seriennummern-Pflicht im Artikelstamm im Verkauf angegeben ist, ist das buchen kein Problem. Ist sie angegeben, meldet AvERP "nicht genügend Seriennummern vorhanden". Also nein, ich kann nichts buchen wenn keine Seriennummer hinterlegt ist. Seriennummern sind aber für uns unabdingbar.
Ich muss dazu sagen das die Seriennummern in der Regel vor dem FA angelegt werden und dann mit dem FA verknüpft. Ansich nichts falsches denke ich.
MfG
der Fertigungsauftrag wird automatisch mit dem letzten Arbeitsgang, Barcoderückerfassung, fertiggemeldet.
Sofern keine Seriennummern-Pflicht im Artikelstamm im Verkauf angegeben ist, ist das buchen kein Problem. Ist sie angegeben, meldet AvERP "nicht genügend Seriennummern vorhanden". Also nein, ich kann nichts buchen wenn keine Seriennummer hinterlegt ist. Seriennummern sind aber für uns unabdingbar.
Ich muss dazu sagen das die Seriennummern in der Regel vor dem FA angelegt werden und dann mit dem FA verknüpft. Ansich nichts falsches denke ich.
MfG
-----------------------------------
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
-
SYN15
- Beiträge: 36
- Registriert: Di Jan 16, 2007 11:31 am
Hallo,
funktioniert es denn bei direkter Eingabe der gefertigten Menge im Fertigungsauftragskopf? Also tritt der Fehler nur auf, wenn über die Rückerfassungsmaske alles abgeschlossen wird?
D.h. Sie legen die Seriennummern manuell über die Seriennummernverwaltung an und weisen diese dann später per Rechtsklick im Fertigungsauftrag diesem zu oder haben Sie da eine andere Vorgehensweise?
(Sofern Sie per IB-Expert auf die Datenbank zugreifen können wäre mal der Stand des Triggers BARTLHBUX_AI2 interessant)
MfG
funktioniert es denn bei direkter Eingabe der gefertigten Menge im Fertigungsauftragskopf? Also tritt der Fehler nur auf, wenn über die Rückerfassungsmaske alles abgeschlossen wird?
D.h. Sie legen die Seriennummern manuell über die Seriennummernverwaltung an und weisen diese dann später per Rechtsklick im Fertigungsauftrag diesem zu oder haben Sie da eine andere Vorgehensweise?
(Sofern Sie per IB-Expert auf die Datenbank zugreifen können wäre mal der Stand des Triggers BARTLHBUX_AI2 interessant)
MfG
-
MD10
- Beiträge: 328
- Registriert: Mo Sep 29, 2008 1:10 pm
funktioniert es denn bei direkter Eingabe der gefertigten Menge im Fertigungsauftragskopf?
>wenn der FA mit dem letzten Arbeitsgang fertig gemeldet ist, ist die gefertigte Menge ordnungsgemäß eingetragen und vom Lager auch entsprechend abgebucht.
Also tritt der Fehler nur auf, wenn über die Rückerfassungsmaske alles abgeschlossen wird?
>anders wird bei uns ein FA nicht abgeschlossen, also ja.
D.h. Sie legen die Seriennummern manuell über die Seriennummernverwaltung an und weisen diese dann später per Rechtsklick im Fertigungsauftrag diesem zu oder haben Sie da eine andere Vorgehensweise?
>genau so machen wir das, nein eine andere Variante wird nicht verwendet.
(Sofern Sie per IB-Expert auf die Datenbank zugreifen können wäre mal der Stand des Triggers BARTLHBUX_AI2 interessant)
>
AS
DECLARE VARIABLE SJA VARCHAR(1);
DECLARE VARIABLE SNEIN VARCHAR(1);
DECLARE VARIABLE STDLAG VARCHAR(1);
DECLARE VARIABLE CHARGE_JN VARCHAR(1);
DECLARE VARIABLE DS_ID INTEGER;
DECLARE VARIABLE SNR_EK VARCHAR(1);
DECLARE VARIABLE SNR_VK VARCHAR(1);
BEGIN
/* Letzter Stand 02.02.2009 10:40:39 RW */
/* Erster Stand 17.07.2008 14:01:37 RW */
/* PROTOKOLLIEREN, DASS AKTION HIER DURCHGELAUFEN IST */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('BARTLHBUX_AI2');
-- Aktion 'I0' = Lagermengen vor Jahresinventur auf 0 setzen
EXECUTE PROCEDURE P_BFIRMA_JANEIN RETURNING_VALUES(:SJA, :SNEIN);
IF ((NEW.JOB IS NULL) OR (NEW.JOB <> 'X')) THEN
BEGIN
IF (USER <> 'WORSTCASE') THEN
BEGIN
IF (NEW.BUCHEN_JN = :sJA) THEN
BEGIN
IF (NEW.AKTION IN ('AP','LS','FM','VE','L1','BB','VM','VL')) THEN --,'I0'???????
-- Negative Buchung
UPDATE BARTLHPO
SET LIST = LIST - NEW.MENGE
WHERE ID = NEW.BARTLHPO_ID_LINKKEY;
ELSE
-- Positive Buchung
UPDATE BARTLHPO
SET LIST = LIST + NEW.MENGE
WHERE ID = NEW.BARTLHPO_ID_LINKKEY;
-- Artikelkennzeichen für Chargen und Seriennummern holen
SELECT A.CHARGE_JN, A.SERIENNR_EINK, A.SERIENNR_VERK
FROM BSA A
WHERE A.ID = NEW.BSA_ID
INTO :CHARGE_JN, :SNR_EK, :SNR_VK;
-- Welcher Teilbereich wird behandelt
IF (NEW.AKTION = 'FA') THEN
DS_ID = NEW.BFA_ID;
ELSE IF (NEW.AKTION = 'FM') THEN
DS_ID = NEW.BFAM_ID;
ELSE IF (NEW.AKTION = 'L1') THEN
DS_ID = NEW.BLAGVE_ID;
ELSE IF (NEW.AKTION = 'L2') THEN
DS_ID = NEW.BLAGVE_ID;
ELSE IF (NEW.AKTION = 'LS') THEN
DS_ID = NEW.BRRCP_ID;
ELSE IF (NEW.AKTION = 'BB') THEN
DS_ID = NEW.BBESPD_ID;
ELSE IF (NEW.AKTION = 'BW') THEN
DS_ID = NEW.BLLCPBT_ID;
ELSE IF (NEW.AKTION = 'GU') THEN
DS_ID = NEW.BRRCP_ID;
ELSE IF (NEW.AKTION = 'WE') THEN
DS_ID = NEW.BLRCP_ID;
ELSE IF (NEW.AKTION = 'AP') THEN
DS_ID = NEW.BAUFPOST_ID;
ELSE IF (NEW.AKTION = 'BA') THEN
DS_ID = NEW.BAUFPOBT_ID;
ELSE IF (NEW.AKTION = 'VE') THEN
DS_ID = NEW.BVERSCHROTTUNG_ID;
ELSE IF (NEW.AKTION = 'LV') THEN
DS_ID = NEW.BLINV_ID;
ELSE IF (NEW.AKTION = 'PV') THEN
DS_ID = NEW.BLPINV_ID;
ELSE IF (NEW.AKTION = 'IV') THEN
DS_ID = NEW.BINVRK_ID;
ELSE IF (NEW.AKTION = 'FB') THEN
DS_ID = NEW.BFAM_ID;
ELSE IF (NEW.AKTION = 'AU') THEN
DS_ID = NEW.BAUFPO_ID;
ELSE IF (NEW.AKTION = 'RM') THEN
DS_ID = NEW.BREKLPO_ID;
ELSE IF (NEW.AKTION = 'I0') THEN
DS_ID = NEW.BINVRK_ID;
-- Chargen buchen
IF (CHARGE_JN = SJA) THEN
EXECUTE PROCEDURE P_CHARGE_BUCH (NEW.BARTLHPO_ID_LINKKEY, :DS_ID, NEW.AKTION, NEW.MENGE, NEW.ID);
-- Seriennummern buchen
IF ((SNR_EK = SJA) OR (SNR_VK = SJA)) THEN
EXECUTE PROCEDURE P_BSSN_BUCHEN(NEW.BARTLHPO_ID_LINKKEY,:DS_ID,NEW.AKTION,NEW.MENGE,NEW.ID);
-- Reservierte Menge für Buchung von Nicht-Standardlagerort entfernen
SELECT STDLAG
FROM BARTLHPO
WHERE ID = NEW.BARTLHPO_ID_LINKKEY
INTO :STDLAG;
IF ((STDLAG = :sNEIN) AND (NEW.AKTION <> 'I0')) THEN
BEGIN
IF (NEW.BARTLHBU_ID IS NULL) THEN
UPDATE BARTLHBU
SET MENGE = MENGE - NEW.MENGE
WHERE BUCHEN_JN = :sNEIN AND
MENGE >= NEW.MENGE AND
BARTLHPO_ID_LINKKEY = NEW.BARTLHPO_ID_LINKKEY AND
BARTLH_ID = NEW.BARTLH_ID AND
BSA_ID = NEW.BSA_ID AND
BMAND_ID = NEW.BMAND_ID AND (
((BRRCP_ID IS NOT NULL) AND (BRRCP_ID = NEW.BRRCP_ID) AND (AKTION = 'LS')) OR
((BRRCP_ID IS NOT NULL) AND (BRRCP_ID = NEW.BRRCP_ID) AND (AKTION = 'GU')) OR
((BFA_ID IS NOT NULL) AND (BFA_ID = NEW.BFA_ID) AND (AKTION = 'FA')) OR
((BFAM_ID IS NOT NULL) AND (BFAM_ID = NEW.BFAM_ID) AND (AKTION = 'FM')) OR
((BFAM_ID IS NOT NULL) AND (BFAM_ID = NEW.BFAM_ID) AND (AKTION = 'FB')) OR
((BAUFPOBT_ID IS NOT NULL) AND (BAUFPOBT_ID = NEW.BAUFPOBT_ID) AND (AKTION = 'BA')) OR
((BINVRK_ID IS NOT NULL) AND (BINVRK_ID = NEW.BINVRK_ID) AND (AKTION = 'IV')) OR
((BLRCP_ID IS NOT NULL) AND (BLRCP_ID = NEW.BLRCP_ID) AND (AKTION = 'WE')) OR
((BREKLPO_ID IS NOT NULL) AND (BREKLPO_ID = NEW.BREKLPO_ID) AND (AKTION = 'RM')) OR
((BRLSVER_ID IS NOT NULL) AND (BRLSVER_ID = NEW.BRLSVER_ID) AND (AKTION = 'VM')) OR
((BLINV_ID IS NOT NULL) AND (BLINV_ID = NEW.BLINV_ID) AND (AKTION = 'LV')) OR
((BLPINV_ID IS NOT NULL) AND (BLPINV_ID = NEW.BLPINV_ID) AND (AKTION = 'PV')) OR
((BLAGVE_ID IS NOT NULL) AND (BLAGVE_ID = NEW.BLAGVE_ID) AND (AKTION = 'L1')) OR
((BLAGVE_ID IS NOT NULL) AND (BLAGVE_ID = NEW.BLAGVE_ID) AND (AKTION = 'L2')) OR
((BVERSCHROTTUNG_ID IS NOT NULL) AND (BVERSCHROTTUNG_ID = NEW.BVERSCHROTTUNG_ID) AND (AKTION = 'VE')));
ELSE
UPDATE BARTLHBU
SET MENGE = MENGE - NEW.MENGE
WHERE ID = NEW.BARTLHBU_ID AND
BUCHEN_JN = :sNEIN AND
MENGE >= NEW.MENGE AND
BARTLHPO_ID_LINKKEY = NEW.BARTLHPO_ID_LINKKEY AND
BARTLH_ID = NEW.BARTLH_ID AND
BSA_ID = NEW.BSA_ID AND
BMAND_ID = NEW.BMAND_ID;
END
END
END
END
END
Ich hoffe es war so richtig.
Tut mir leid das es so lange gedauert hat, aber hatte etwas viel zutun.
Gruß
David
>wenn der FA mit dem letzten Arbeitsgang fertig gemeldet ist, ist die gefertigte Menge ordnungsgemäß eingetragen und vom Lager auch entsprechend abgebucht.
Also tritt der Fehler nur auf, wenn über die Rückerfassungsmaske alles abgeschlossen wird?
>anders wird bei uns ein FA nicht abgeschlossen, also ja.
D.h. Sie legen die Seriennummern manuell über die Seriennummernverwaltung an und weisen diese dann später per Rechtsklick im Fertigungsauftrag diesem zu oder haben Sie da eine andere Vorgehensweise?
>genau so machen wir das, nein eine andere Variante wird nicht verwendet.
(Sofern Sie per IB-Expert auf die Datenbank zugreifen können wäre mal der Stand des Triggers BARTLHBUX_AI2 interessant)
>
AS
DECLARE VARIABLE SJA VARCHAR(1);
DECLARE VARIABLE SNEIN VARCHAR(1);
DECLARE VARIABLE STDLAG VARCHAR(1);
DECLARE VARIABLE CHARGE_JN VARCHAR(1);
DECLARE VARIABLE DS_ID INTEGER;
DECLARE VARIABLE SNR_EK VARCHAR(1);
DECLARE VARIABLE SNR_VK VARCHAR(1);
BEGIN
/* Letzter Stand 02.02.2009 10:40:39 RW */
/* Erster Stand 17.07.2008 14:01:37 RW */
/* PROTOKOLLIEREN, DASS AKTION HIER DURCHGELAUFEN IST */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('BARTLHBUX_AI2');
-- Aktion 'I0' = Lagermengen vor Jahresinventur auf 0 setzen
EXECUTE PROCEDURE P_BFIRMA_JANEIN RETURNING_VALUES(:SJA, :SNEIN);
IF ((NEW.JOB IS NULL) OR (NEW.JOB <> 'X')) THEN
BEGIN
IF (USER <> 'WORSTCASE') THEN
BEGIN
IF (NEW.BUCHEN_JN = :sJA) THEN
BEGIN
IF (NEW.AKTION IN ('AP','LS','FM','VE','L1','BB','VM','VL')) THEN --,'I0'???????
-- Negative Buchung
UPDATE BARTLHPO
SET LIST = LIST - NEW.MENGE
WHERE ID = NEW.BARTLHPO_ID_LINKKEY;
ELSE
-- Positive Buchung
UPDATE BARTLHPO
SET LIST = LIST + NEW.MENGE
WHERE ID = NEW.BARTLHPO_ID_LINKKEY;
-- Artikelkennzeichen für Chargen und Seriennummern holen
SELECT A.CHARGE_JN, A.SERIENNR_EINK, A.SERIENNR_VERK
FROM BSA A
WHERE A.ID = NEW.BSA_ID
INTO :CHARGE_JN, :SNR_EK, :SNR_VK;
-- Welcher Teilbereich wird behandelt
IF (NEW.AKTION = 'FA') THEN
DS_ID = NEW.BFA_ID;
ELSE IF (NEW.AKTION = 'FM') THEN
DS_ID = NEW.BFAM_ID;
ELSE IF (NEW.AKTION = 'L1') THEN
DS_ID = NEW.BLAGVE_ID;
ELSE IF (NEW.AKTION = 'L2') THEN
DS_ID = NEW.BLAGVE_ID;
ELSE IF (NEW.AKTION = 'LS') THEN
DS_ID = NEW.BRRCP_ID;
ELSE IF (NEW.AKTION = 'BB') THEN
DS_ID = NEW.BBESPD_ID;
ELSE IF (NEW.AKTION = 'BW') THEN
DS_ID = NEW.BLLCPBT_ID;
ELSE IF (NEW.AKTION = 'GU') THEN
DS_ID = NEW.BRRCP_ID;
ELSE IF (NEW.AKTION = 'WE') THEN
DS_ID = NEW.BLRCP_ID;
ELSE IF (NEW.AKTION = 'AP') THEN
DS_ID = NEW.BAUFPOST_ID;
ELSE IF (NEW.AKTION = 'BA') THEN
DS_ID = NEW.BAUFPOBT_ID;
ELSE IF (NEW.AKTION = 'VE') THEN
DS_ID = NEW.BVERSCHROTTUNG_ID;
ELSE IF (NEW.AKTION = 'LV') THEN
DS_ID = NEW.BLINV_ID;
ELSE IF (NEW.AKTION = 'PV') THEN
DS_ID = NEW.BLPINV_ID;
ELSE IF (NEW.AKTION = 'IV') THEN
DS_ID = NEW.BINVRK_ID;
ELSE IF (NEW.AKTION = 'FB') THEN
DS_ID = NEW.BFAM_ID;
ELSE IF (NEW.AKTION = 'AU') THEN
DS_ID = NEW.BAUFPO_ID;
ELSE IF (NEW.AKTION = 'RM') THEN
DS_ID = NEW.BREKLPO_ID;
ELSE IF (NEW.AKTION = 'I0') THEN
DS_ID = NEW.BINVRK_ID;
-- Chargen buchen
IF (CHARGE_JN = SJA) THEN
EXECUTE PROCEDURE P_CHARGE_BUCH (NEW.BARTLHPO_ID_LINKKEY, :DS_ID, NEW.AKTION, NEW.MENGE, NEW.ID);
-- Seriennummern buchen
IF ((SNR_EK = SJA) OR (SNR_VK = SJA)) THEN
EXECUTE PROCEDURE P_BSSN_BUCHEN(NEW.BARTLHPO_ID_LINKKEY,:DS_ID,NEW.AKTION,NEW.MENGE,NEW.ID);
-- Reservierte Menge für Buchung von Nicht-Standardlagerort entfernen
SELECT STDLAG
FROM BARTLHPO
WHERE ID = NEW.BARTLHPO_ID_LINKKEY
INTO :STDLAG;
IF ((STDLAG = :sNEIN) AND (NEW.AKTION <> 'I0')) THEN
BEGIN
IF (NEW.BARTLHBU_ID IS NULL) THEN
UPDATE BARTLHBU
SET MENGE = MENGE - NEW.MENGE
WHERE BUCHEN_JN = :sNEIN AND
MENGE >= NEW.MENGE AND
BARTLHPO_ID_LINKKEY = NEW.BARTLHPO_ID_LINKKEY AND
BARTLH_ID = NEW.BARTLH_ID AND
BSA_ID = NEW.BSA_ID AND
BMAND_ID = NEW.BMAND_ID AND (
((BRRCP_ID IS NOT NULL) AND (BRRCP_ID = NEW.BRRCP_ID) AND (AKTION = 'LS')) OR
((BRRCP_ID IS NOT NULL) AND (BRRCP_ID = NEW.BRRCP_ID) AND (AKTION = 'GU')) OR
((BFA_ID IS NOT NULL) AND (BFA_ID = NEW.BFA_ID) AND (AKTION = 'FA')) OR
((BFAM_ID IS NOT NULL) AND (BFAM_ID = NEW.BFAM_ID) AND (AKTION = 'FM')) OR
((BFAM_ID IS NOT NULL) AND (BFAM_ID = NEW.BFAM_ID) AND (AKTION = 'FB')) OR
((BAUFPOBT_ID IS NOT NULL) AND (BAUFPOBT_ID = NEW.BAUFPOBT_ID) AND (AKTION = 'BA')) OR
((BINVRK_ID IS NOT NULL) AND (BINVRK_ID = NEW.BINVRK_ID) AND (AKTION = 'IV')) OR
((BLRCP_ID IS NOT NULL) AND (BLRCP_ID = NEW.BLRCP_ID) AND (AKTION = 'WE')) OR
((BREKLPO_ID IS NOT NULL) AND (BREKLPO_ID = NEW.BREKLPO_ID) AND (AKTION = 'RM')) OR
((BRLSVER_ID IS NOT NULL) AND (BRLSVER_ID = NEW.BRLSVER_ID) AND (AKTION = 'VM')) OR
((BLINV_ID IS NOT NULL) AND (BLINV_ID = NEW.BLINV_ID) AND (AKTION = 'LV')) OR
((BLPINV_ID IS NOT NULL) AND (BLPINV_ID = NEW.BLPINV_ID) AND (AKTION = 'PV')) OR
((BLAGVE_ID IS NOT NULL) AND (BLAGVE_ID = NEW.BLAGVE_ID) AND (AKTION = 'L1')) OR
((BLAGVE_ID IS NOT NULL) AND (BLAGVE_ID = NEW.BLAGVE_ID) AND (AKTION = 'L2')) OR
((BVERSCHROTTUNG_ID IS NOT NULL) AND (BVERSCHROTTUNG_ID = NEW.BVERSCHROTTUNG_ID) AND (AKTION = 'VE')));
ELSE
UPDATE BARTLHBU
SET MENGE = MENGE - NEW.MENGE
WHERE ID = NEW.BARTLHBU_ID AND
BUCHEN_JN = :sNEIN AND
MENGE >= NEW.MENGE AND
BARTLHPO_ID_LINKKEY = NEW.BARTLHPO_ID_LINKKEY AND
BARTLH_ID = NEW.BARTLH_ID AND
BSA_ID = NEW.BSA_ID AND
BMAND_ID = NEW.BMAND_ID;
END
END
END
END
END
Ich hoffe es war so richtig.
Tut mir leid das es so lange gedauert hat, aber hatte etwas viel zutun.
Gruß
David
-----------------------------------
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5
SW-Version: 6.8.6.0
GDB-Version: AvERP2020.01
WI-V2.5.9.27139 Firebird V2.5