Kundenrahmenauftrag
Moderator: SYNERPY
-
- Beiträge: 481
- Registriert: Di Mai 18, 2004 8:42 pm
- Wohnort: Pforzheim
Kundenrahmenauftrag
Hat jemand eine Schritt für Schritt Anleitung? oder ein mehr an Informationen.
Ein Kunde bestellt bei mir 100 Stück "Rumpfbaugruppe B001" als Rahmenauftrag.
Die Rumpfbaugruppe B001 wird 25 Stück weise vom Kunden abgerufen und von mir bestätigt. Nachdem ich diese Rumpfbaugruppe (25 Stück) gefertigt habe wird ihm diese verkauft.
Dann stellt er mir diese bei damit ich damit weiterarbeiten kann. Die B001 bleibt im Besitz des Kunden.
Er bestellt dann 3 Stück A004 und 2 Stück A002. In beiden Geräten ist die Rumpfbaugruppe B001 enthalten und soll in die Geräte einfliessen und abgebucht werden.
Ich denke das ich diesen Teil über die Stückliste/ Fertigungsauftrag abbilden kann.
Wie kann ich das mit dem Kunden Rahmenauftrag lösen.
- Es ist kein Konsignationslager, eher eine Beistellung.
r
Ein Kunde bestellt bei mir 100 Stück "Rumpfbaugruppe B001" als Rahmenauftrag.
Die Rumpfbaugruppe B001 wird 25 Stück weise vom Kunden abgerufen und von mir bestätigt. Nachdem ich diese Rumpfbaugruppe (25 Stück) gefertigt habe wird ihm diese verkauft.
Dann stellt er mir diese bei damit ich damit weiterarbeiten kann. Die B001 bleibt im Besitz des Kunden.
Er bestellt dann 3 Stück A004 und 2 Stück A002. In beiden Geräten ist die Rumpfbaugruppe B001 enthalten und soll in die Geräte einfliessen und abgebucht werden.
Ich denke das ich diesen Teil über die Stückliste/ Fertigungsauftrag abbilden kann.
Wie kann ich das mit dem Kunden Rahmenauftrag lösen.
- Es ist kein Konsignationslager, eher eine Beistellung.
r
Lieblingsthema-> Dokumentation, das unbekannte Wesen
Ronald Werner
http://www.rws-automation.de
Averp lebensecht seit 13.08.2014 davor A.L.F. mit RWSFA seit 1991
Averp DB 2019.02 , EXE: 6.8.6.0 auf WinServer 2008
Ronald Werner
http://www.rws-automation.de
Averp lebensecht seit 13.08.2014 davor A.L.F. mit RWSFA seit 1991
Averp DB 2019.02 , EXE: 6.8.6.0 auf WinServer 2008
-
- Beiträge: 1295
- Registriert: Fr Jul 28, 2006 9:13 am
Re: Kundenrahmenauftrag
Die Beistellung hat aber doch mit dem Rahmenauftrag rein logisch nichts zu tun, so wie ich das sehe. Beistellung geht in der Tat über die Stückliste / Arbeitsplan und die damit verbundenen Funktionen im Bereich der Kundenbeistellteile.
Den Rahmenauftrag hinterlegt man, davon völlig losgelöst im Kundenstamm in den Unterprogrammen. Sobald man das gemacht hat und einen Kundenauftrag für die Abrufe im System einlastet wird man auf der Positionsebene automatisch gefragt, ob man den vorhandenen Rahmen verwenden will.
Gruß
Michael
Den Rahmenauftrag hinterlegt man, davon völlig losgelöst im Kundenstamm in den Unterprogrammen. Sobald man das gemacht hat und einen Kundenauftrag für die Abrufe im System einlastet wird man auf der Positionsebene automatisch gefragt, ob man den vorhandenen Rahmen verwenden will.
Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
-
- Beiträge: 481
- Registriert: Di Mai 18, 2004 8:42 pm
- Wohnort: Pforzheim
Re: Kundenrahmenauftrag
Danke für dein Interresse.
In der Tat hat die Beistellung nur den Artikel mit dem Auftrag gemeinsam.
Ich habs gefunden. So richtig erschliessen sich die Zusammenhänge für mich noch nicht.
Momentan glaube ich noch das Rahmenauftrag und Abrufauftrag bei Averp möglicherweise Unterschiede haben.
Wenn ich ein Auftragsart.KZ (Auftragsart Kennzeichen?) "Rahmenauftrag" anlege und dort Rahmenauftrag=J einstelle bekomme ich einen AUftrag ohne Preise.
Das werden meine Kunden nicht akzeptieren...
Ich werd mir das mal aufmalen.... Vielleicht kann ich ja nächste Woche "Rahmen".
Schönes Wochende
Ronald
In der Tat hat die Beistellung nur den Artikel mit dem Auftrag gemeinsam.
Ich habs gefunden. So richtig erschliessen sich die Zusammenhänge für mich noch nicht.
Momentan glaube ich noch das Rahmenauftrag und Abrufauftrag bei Averp möglicherweise Unterschiede haben.
Wenn ich ein Auftragsart.KZ (Auftragsart Kennzeichen?) "Rahmenauftrag" anlege und dort Rahmenauftrag=J einstelle bekomme ich einen AUftrag ohne Preise.
Das werden meine Kunden nicht akzeptieren...
Ich werd mir das mal aufmalen.... Vielleicht kann ich ja nächste Woche "Rahmen".
Schönes Wochende
Ronald
Lieblingsthema-> Dokumentation, das unbekannte Wesen
Ronald Werner
http://www.rws-automation.de
Averp lebensecht seit 13.08.2014 davor A.L.F. mit RWSFA seit 1991
Averp DB 2019.02 , EXE: 6.8.6.0 auf WinServer 2008
Ronald Werner
http://www.rws-automation.de
Averp lebensecht seit 13.08.2014 davor A.L.F. mit RWSFA seit 1991
Averp DB 2019.02 , EXE: 6.8.6.0 auf WinServer 2008
-
- Beiträge: 1295
- Registriert: Fr Jul 28, 2006 9:13 am
Re: Kundenrahmenauftrag
Okay, fangen wir vorne an:
Dein Kunde vereinbart mit Dir (optimalerweise schriftlich) einen Rahmen. Diesen erfasst Du in AvERP als Kundenauftrag mit einem AuftragsKZ (entspricht AUFTRAGSART) in der RAHMEN = J gesetzt ist. Du bildest also den Vertrag mit Deinem Kunden als Beleg ab. Deswegen findet auch keine normale Preisfindung statt, weil ein Rahmen normalerweise Spezialkonditionen enthält. Sprich:
* Preis der Auftragsposition = vereinbarter Rahmenpreis
* Liefertermin der Auftragsposition = Laufzeit / Enddatum des Rahmen
Wenn Du das alles eingetragen und als AB gedruckt hast, kannst Du über das passende Utility die Rahmenaufträge erzeugen. Dadurch werden alle relevanten Daten aus dem Kundenautrag in die vorher genannte Maske übertragen im Kundenstamm
ENDE DER RAHMENBEARBEITUNG![Smile :)](./images/smilies/icon_smile.gif)
===
Erfassung der Abrufe:
Die Abrufe erfasst Du als normale Kundenaufträge mit einem NORMALEN Auftragskennzeichen, in welchem RAHMEN=N gesetzt ist! Bei Anlage einer Position kommt nach Auswahl des Artikels der Hinweis, dass es einen Rahmen für den Artikel gibt. Durch Doppelklick wählst Du den Rahmen aus und es werden alle Sondervereinbarungen aus dem Rahmen in den Abruf übernommen. Danach verhält sich ein Abruf wie ein ganz normaler Kundenauftrag.
Die erfassten Abrufe und ihre Lieferungen siehst Du im Kundenstamm im Unterprogramm mit den Rahmenaufträgen als RESERVIERTE und GEBUCHTE Menge. Die Bezeichnungen können leicht schwanken, je nach Version und Einstellung.
===
Spiel das bis hierhin mal durch, dann machen wir die Beistellung in einem zweiten Schritt ...
Gruß
Michael
Dein Kunde vereinbart mit Dir (optimalerweise schriftlich) einen Rahmen. Diesen erfasst Du in AvERP als Kundenauftrag mit einem AuftragsKZ (entspricht AUFTRAGSART) in der RAHMEN = J gesetzt ist. Du bildest also den Vertrag mit Deinem Kunden als Beleg ab. Deswegen findet auch keine normale Preisfindung statt, weil ein Rahmen normalerweise Spezialkonditionen enthält. Sprich:
* Preis der Auftragsposition = vereinbarter Rahmenpreis
* Liefertermin der Auftragsposition = Laufzeit / Enddatum des Rahmen
Wenn Du das alles eingetragen und als AB gedruckt hast, kannst Du über das passende Utility die Rahmenaufträge erzeugen. Dadurch werden alle relevanten Daten aus dem Kundenautrag in die vorher genannte Maske übertragen im Kundenstamm
ENDE DER RAHMENBEARBEITUNG
![Smile :)](./images/smilies/icon_smile.gif)
===
Erfassung der Abrufe:
Die Abrufe erfasst Du als normale Kundenaufträge mit einem NORMALEN Auftragskennzeichen, in welchem RAHMEN=N gesetzt ist! Bei Anlage einer Position kommt nach Auswahl des Artikels der Hinweis, dass es einen Rahmen für den Artikel gibt. Durch Doppelklick wählst Du den Rahmen aus und es werden alle Sondervereinbarungen aus dem Rahmen in den Abruf übernommen. Danach verhält sich ein Abruf wie ein ganz normaler Kundenauftrag.
Die erfassten Abrufe und ihre Lieferungen siehst Du im Kundenstamm im Unterprogramm mit den Rahmenaufträgen als RESERVIERTE und GEBUCHTE Menge. Die Bezeichnungen können leicht schwanken, je nach Version und Einstellung.
===
Spiel das bis hierhin mal durch, dann machen wir die Beistellung in einem zweiten Schritt ...
Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
-
- Beiträge: 481
- Registriert: Di Mai 18, 2004 8:42 pm
- Wohnort: Pforzheim
Re: Kundenrahmenauftrag
Hall Michael danke Dir für Deine ausführliche Antwort!
Alleine ich kanns so nicht (alles) nachvollziehen und darf noch viel üben.
Aber hier schon mal meine Erkenntnisse
Nicht überall wo Kundenabrufe oder Abrufe draufsteht ist auch Abrufe drin, Ich denke Mann muß die Abfolge genau einhalten.
Schade ists das nicht Rahmenauftrag draufsteht, der Preis = 0 ist,
Kundenstamm (BKUNDE) Kunde eingeben und Unterprogramm -> Abrufaufträge da findet man das Erzeugte wieder.
Alleine ich kann das nirgends ausdrucken
Abrufe glaube ich auch schon erfasst zu haben, alleine ich sehe es auf den Ausdrucken nicht.
An der Stelle verabschiede ich mich ins Wochenende und spiele in der nächsten Woche weiter
Grüße aussem Schwarzwald
Ronald
Alleine ich kanns so nicht (alles) nachvollziehen und darf noch viel üben.
Aber hier schon mal meine Erkenntnisse
![Very Happy :D](./images/smilies/icon_biggrin.gif)
![Embarassed :oops:](./images/smilies/icon_redface.gif)
Hat geklappt.Diesen erfasst Du in AvERP als Kundenauftrag mit einem AuftragsKZ (entspricht AUFTRAGSART) in der RAHMEN =
![Neutral :|](./images/smilies/icon_neutral.gif)
, das hab ich nicht gefunden.* Preis der Auftragsposition = vereinbarter Rahmenpreis
, das sieht gut aus.* Liefertermin der Auftragsposition = Laufzeit / Enddatum des Rahmen
Schade ists, das da nicht Rahmenvereinbarung drüber steht, ok ich lass mir eien eigene RahmenauftragsDruckReport machen, das geht wohl.Wenn Du das alles eingetragen und als AB gedruckt hast
Also bei der Angebots- und AUftragsverwaltung (BAUF) -> Utility -> Kundenabrufaufträge erstellen da blitzs ein bischen auf dem Bildschirm und es entsteht irgendow ein Abrufauftragüber das passende Utility die Rahmenaufträge
Kundenstamm (BKUNDE) Kunde eingeben und Unterprogramm -> Abrufaufträge da findet man das Erzeugte wieder.
Alleine ich kann das nirgends ausdrucken
Abrufe glaube ich auch schon erfasst zu haben, alleine ich sehe es auf den Ausdrucken nicht.
An der Stelle verabschiede ich mich ins Wochenende und spiele in der nächsten Woche weiter
Grüße aussem Schwarzwald
Ronald
Lieblingsthema-> Dokumentation, das unbekannte Wesen
Ronald Werner
http://www.rws-automation.de
Averp lebensecht seit 13.08.2014 davor A.L.F. mit RWSFA seit 1991
Averp DB 2019.02 , EXE: 6.8.6.0 auf WinServer 2008
Ronald Werner
http://www.rws-automation.de
Averp lebensecht seit 13.08.2014 davor A.L.F. mit RWSFA seit 1991
Averp DB 2019.02 , EXE: 6.8.6.0 auf WinServer 2008
-
- Beiträge: 5
- Registriert: Mi Jan 22, 2014 4:42 pm
Re: Kundenrahmenauftrag
Ich habe hier noch ein Problem mit den Lagerreservierungen.
Ich habe einen Rahmenauftrag eines Artikels (z.B. 100Stk) mit einem spätesten Liefertermin bestätigt. Daraus resultiert ein geplanter Ausgang im Einzellager.
In einem neuen Auftrag rufe ich z.B. 5Stk ab und drucke eine Auftragsbestätigung. Es resultiert daraus ein geplanter Lagerausgang im Einzellager wie es sein soll.
Nur bleibt der geplante Lagerausgang vom Rahmenauftrag auch komplett, weil in FRMV_BABAU die reservierte Menge unverändert bleibt. Das heißt der voraussichtliche Lagerausgang ist zu viel. Erst wenn der Lieferschein erstellt worden ist, wird hier die reservierte Menge verändert und der geplante Lagerausgang ist wieder korrekt.
Folgende Veränderung der Prozedur P_BABAU_SUMME für die Ermittlung der reservierten Menge löst das Problem nicht:
-- reservierte Menge (Lieferschein)
SELECT SUM(C.MENGE_LAG)
FROM BABAUL A
LEFT OUTER JOIN BAUFPO B ON A.BAUFPO_ID_AUFNRPOS = B.ID
LEFT OUTER JOIN BRLSP C ON B.ID = C.BAUFPO_ID_AUFNRPOS
LEFT OUTER JOIN BRLS D ON C.BRLS_ID_LSNR = D.ID
LEFT OUTER JOIN BABAU E ON A.BABAU_ID_LINKKEY = E.ID
WHERE A.BABAU_ID_LINKKEY = :ID_LINKKEY AND
A.BAUFPO_ID_AUFNRPOS IS NOT NULL AND
D.LSGEDRUCKT = :SNEIN AND
B.BSA_ID_ARTNR = E.BSA_ID_ARTNR
INTO :RES_MENGE;
RES_MENGE = COALESCE(RES_MENGE, 0.0);
-- reservierte Menge (Auftrag)
SELECT SUM(B.MENGE)
FROM BABAUL A
LEFT OUTER JOIN BAUFPO B ON A.BAUFPO_ID_AUFNRPOS = B.ID
LEFT OUTER join bauf C on B.BAUF_ID_LINKKEY = C.ID
LEFT OUTER JOIN BABAU E ON A.BABAU_ID_LINKKEY = E.ID
WHERE A.BABAU_ID_LINKKEY = :ID_LINKKEY AND
A.BAUFPO_ID_AUFNRPOS IS NOT NULL AND
C.AUFTRAG = :SJA AND
B.BSA_ID_ARTNR = E.BSA_ID_ARTNR
INTO :RES_MENGE_AUFTRAG;
RES_MENGE_AUFTRAG = COALESCE(RES_MENGE_AUFTRAG, 0.0);
if (RES_MENGE_AUFTRAG > RES_MENGE) then
RES_MENGE = RES_MENGE_AUFTRAG;
Ich habe einen Rahmenauftrag eines Artikels (z.B. 100Stk) mit einem spätesten Liefertermin bestätigt. Daraus resultiert ein geplanter Ausgang im Einzellager.
In einem neuen Auftrag rufe ich z.B. 5Stk ab und drucke eine Auftragsbestätigung. Es resultiert daraus ein geplanter Lagerausgang im Einzellager wie es sein soll.
Nur bleibt der geplante Lagerausgang vom Rahmenauftrag auch komplett, weil in FRMV_BABAU die reservierte Menge unverändert bleibt. Das heißt der voraussichtliche Lagerausgang ist zu viel. Erst wenn der Lieferschein erstellt worden ist, wird hier die reservierte Menge verändert und der geplante Lagerausgang ist wieder korrekt.
Folgende Veränderung der Prozedur P_BABAU_SUMME für die Ermittlung der reservierten Menge löst das Problem nicht:
-- reservierte Menge (Lieferschein)
SELECT SUM(C.MENGE_LAG)
FROM BABAUL A
LEFT OUTER JOIN BAUFPO B ON A.BAUFPO_ID_AUFNRPOS = B.ID
LEFT OUTER JOIN BRLSP C ON B.ID = C.BAUFPO_ID_AUFNRPOS
LEFT OUTER JOIN BRLS D ON C.BRLS_ID_LSNR = D.ID
LEFT OUTER JOIN BABAU E ON A.BABAU_ID_LINKKEY = E.ID
WHERE A.BABAU_ID_LINKKEY = :ID_LINKKEY AND
A.BAUFPO_ID_AUFNRPOS IS NOT NULL AND
D.LSGEDRUCKT = :SNEIN AND
B.BSA_ID_ARTNR = E.BSA_ID_ARTNR
INTO :RES_MENGE;
RES_MENGE = COALESCE(RES_MENGE, 0.0);
-- reservierte Menge (Auftrag)
SELECT SUM(B.MENGE)
FROM BABAUL A
LEFT OUTER JOIN BAUFPO B ON A.BAUFPO_ID_AUFNRPOS = B.ID
LEFT OUTER join bauf C on B.BAUF_ID_LINKKEY = C.ID
LEFT OUTER JOIN BABAU E ON A.BABAU_ID_LINKKEY = E.ID
WHERE A.BABAU_ID_LINKKEY = :ID_LINKKEY AND
A.BAUFPO_ID_AUFNRPOS IS NOT NULL AND
C.AUFTRAG = :SJA AND
B.BSA_ID_ARTNR = E.BSA_ID_ARTNR
INTO :RES_MENGE_AUFTRAG;
RES_MENGE_AUFTRAG = COALESCE(RES_MENGE_AUFTRAG, 0.0);
if (RES_MENGE_AUFTRAG > RES_MENGE) then
RES_MENGE = RES_MENGE_AUFTRAG;
-
- Beiträge: 1295
- Registriert: Fr Jul 28, 2006 9:13 am
Re: Kundenrahmenauftrag
Frage: Hat bei der Erfassung der Abrufs über 5 Stück AvERP den 100er Rahmen angeboten? Sprich, kam da nach Auswahl des Artikels eine Auswahlliste der aktuell gültigen Rahmenvereinbarungen?
Steht in der Auftragsposition des 5er Abrufs in rechten, mittleren Bereich der Positionsmaske die Verlinkung zum Rahmenauftrag?
Gruß
Michael
Steht in der Auftragsposition des 5er Abrufs in rechten, mittleren Bereich der Positionsmaske die Verlinkung zum Rahmenauftrag?
Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
-
- Beiträge: 5
- Registriert: Mi Jan 22, 2014 4:42 pm
Re: Kundenrahmenauftrag
Danke für die Antwort.
Ja, der Rahmenauftrag wurde zur Auswahl angeboten und wurde in das entsprechende Feld in der Auftragsposition übernommen.
Die reservierte Menge wird auch in BABAU eingetragen aber erst, wenn der Lieferschein erstellt worden ist.
Bis dahin ist dann der geplante Lagerausgang zu hoch.
Ja, der Rahmenauftrag wurde zur Auswahl angeboten und wurde in das entsprechende Feld in der Auftragsposition übernommen.
Die reservierte Menge wird auch in BABAU eingetragen aber erst, wenn der Lieferschein erstellt worden ist.
Bis dahin ist dann der geplante Lagerausgang zu hoch.
-
- Beiträge: 5
- Registriert: Mi Jan 22, 2014 4:42 pm
Re: Kundenrahmenauftrag
So, ich habe jetzt das Skript P_BABAUL_SUMME so verändert, dass das gewünschte Lagerausgang immer korrekt berechnet wird. Dabei werden jetzt zusätzlich zu nichtgedruckten Lieferscheinpositionen auch abgeschlossene Aufträge (ohne, dass ein Lieferschein erstellt worden ist) als reservierte Menge mitgezählt:
BEGIN
/* LETZTER STAND 26.02.2013 13:15:27 RP */
/* ERSTER STAND 28.08.2008 15:15:57 HS */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_BABAUL_SUMME');
/* Summe des KD-Abrufauftrags errechnen */
EXECUTE PROCEDURE P_BFIRMA_JANEIN RETURNING_VALUES(:SJA, :SNEIN);
IF (COALESCE(ID_LINKKEY, 0) <= 0) THEN
EXIT;
-- reservierte Menge (Lieferschein)
SELECT SUM(C.MENGE_LAG)
FROM BABAUL A
LEFT OUTER JOIN BAUFPO B ON A.BAUFPO_ID_AUFNRPOS = B.ID
LEFT OUTER JOIN BRLSP C ON B.ID = C.BAUFPO_ID_AUFNRPOS
LEFT OUTER JOIN BRLS D ON C.BRLS_ID_LSNR = D.ID
LEFT OUTER JOIN BABAU E ON A.BABAU_ID_LINKKEY = E.ID
WHERE A.BABAU_ID_LINKKEY = :ID_LINKKEY AND
A.BAUFPO_ID_AUFNRPOS IS NOT NULL AND
D.LSGEDRUCKT = :SNEIN AND
B.BSA_ID_ARTNR = E.BSA_ID_ARTNR
INTO :RES_MENGE;
RES_MENGE = COALESCE(RES_MENGE, 0.0);
-- reservierte Menge (Auftrag ohne Lieferschein)
SELECT SUM(B.MENGE)
FROM BABAUL A
LEFT OUTER JOIN BAUFPO B ON A.BAUFPO_ID_AUFNRPOS = B.ID
LEFT OUTER join bauf C on B.BAUF_ID_LINKKEY = C.ID
LEFT OUTER JOIN BABAU E ON A.BABAU_ID_LINKKEY = E.ID
WHERE A.BABAU_ID_LINKKEY = :ID_LINKKEY AND
A.BAUFPO_ID_AUFNRPOS IS NOT NULL AND
C.AUFTRAG = :SJA AND
B.BSA_ID_ARTNR = E.BSA_ID_ARTNR AND
(
select COUNT(D.ID)
FROM brlsp D
LEFT OUTER join brls E
ON D.BRLS_ID_LSNR = E.ID AND
E.LSGEDRUCKT=:SNEIN
WHERE B.ID=D.BAUFPO_ID_AUFNRPOS
)=0
INTO :RES_MENGE_AUFTRAG;
RES_MENGE_AUFTRAG = COALESCE(RES_MENGE_AUFTRAG, 0.0);
RES_MENGE = RES_MENGE + RES_MENGE_AUFTRAG;
-- Verbrauchte Menge
SELECT SUM(C.MENGE_LAG)
FROM BABAUL A
LEFT OUTER JOIN BAUFPO B ON A.BAUFPO_ID_AUFNRPOS = B.ID
LEFT OUTER JOIN BRLSP C ON B.ID = C.BAUFPO_ID_AUFNRPOS
LEFT OUTER JOIN BRLS D ON C.BRLS_ID_LSNR = D.ID
LEFT OUTER JOIN BABAU E ON A.BABAU_ID_LINKKEY = E.ID
WHERE A.BABAU_ID_LINKKEY = :ID_LINKKEY AND
A.BAUFPO_ID_AUFNRPOS IS NOT NULL AND
D.LSGEDRUCKT = :SJA AND
B.BSA_ID_ARTNR = E.BSA_ID_ARTNR
INTO :GEB_MENGE;
GEB_MENGE = COALESCE(GEB_MENGE, 0.0);
-- Geplante Menge
SELECT COALESCE(D.MENGE, 0.0)
FROM BABAU D
WHERE D.ID = :ID_LINKKEY
INTO :BABAU_MENGE;
-- RES_MENGE = :RES_MENGE - :GEB_MENGE;
IF (RES_MENGE > BABAU_MENGE) THEN
EXCEPTION MENGENFEHLER;
-- Update nur bei geänderten Mengen
UPDATE BABAU
SET RESMENGE = :RES_MENGE,
GEBMENGE = :GEB_MENGE
WHERE ID = :ID_LINKKEY AND
((RESMENGE IS DISTINCT FROM :RES_MENGE) OR
(GEBMENGE IS DISTINCT FROM :GEB_MENGE));
END
BEGIN
/* LETZTER STAND 26.02.2013 13:15:27 RP */
/* ERSTER STAND 28.08.2008 15:15:57 HS */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_BABAUL_SUMME');
/* Summe des KD-Abrufauftrags errechnen */
EXECUTE PROCEDURE P_BFIRMA_JANEIN RETURNING_VALUES(:SJA, :SNEIN);
IF (COALESCE(ID_LINKKEY, 0) <= 0) THEN
EXIT;
-- reservierte Menge (Lieferschein)
SELECT SUM(C.MENGE_LAG)
FROM BABAUL A
LEFT OUTER JOIN BAUFPO B ON A.BAUFPO_ID_AUFNRPOS = B.ID
LEFT OUTER JOIN BRLSP C ON B.ID = C.BAUFPO_ID_AUFNRPOS
LEFT OUTER JOIN BRLS D ON C.BRLS_ID_LSNR = D.ID
LEFT OUTER JOIN BABAU E ON A.BABAU_ID_LINKKEY = E.ID
WHERE A.BABAU_ID_LINKKEY = :ID_LINKKEY AND
A.BAUFPO_ID_AUFNRPOS IS NOT NULL AND
D.LSGEDRUCKT = :SNEIN AND
B.BSA_ID_ARTNR = E.BSA_ID_ARTNR
INTO :RES_MENGE;
RES_MENGE = COALESCE(RES_MENGE, 0.0);
-- reservierte Menge (Auftrag ohne Lieferschein)
SELECT SUM(B.MENGE)
FROM BABAUL A
LEFT OUTER JOIN BAUFPO B ON A.BAUFPO_ID_AUFNRPOS = B.ID
LEFT OUTER join bauf C on B.BAUF_ID_LINKKEY = C.ID
LEFT OUTER JOIN BABAU E ON A.BABAU_ID_LINKKEY = E.ID
WHERE A.BABAU_ID_LINKKEY = :ID_LINKKEY AND
A.BAUFPO_ID_AUFNRPOS IS NOT NULL AND
C.AUFTRAG = :SJA AND
B.BSA_ID_ARTNR = E.BSA_ID_ARTNR AND
(
select COUNT(D.ID)
FROM brlsp D
LEFT OUTER join brls E
ON D.BRLS_ID_LSNR = E.ID AND
E.LSGEDRUCKT=:SNEIN
WHERE B.ID=D.BAUFPO_ID_AUFNRPOS
)=0
INTO :RES_MENGE_AUFTRAG;
RES_MENGE_AUFTRAG = COALESCE(RES_MENGE_AUFTRAG, 0.0);
RES_MENGE = RES_MENGE + RES_MENGE_AUFTRAG;
-- Verbrauchte Menge
SELECT SUM(C.MENGE_LAG)
FROM BABAUL A
LEFT OUTER JOIN BAUFPO B ON A.BAUFPO_ID_AUFNRPOS = B.ID
LEFT OUTER JOIN BRLSP C ON B.ID = C.BAUFPO_ID_AUFNRPOS
LEFT OUTER JOIN BRLS D ON C.BRLS_ID_LSNR = D.ID
LEFT OUTER JOIN BABAU E ON A.BABAU_ID_LINKKEY = E.ID
WHERE A.BABAU_ID_LINKKEY = :ID_LINKKEY AND
A.BAUFPO_ID_AUFNRPOS IS NOT NULL AND
D.LSGEDRUCKT = :SJA AND
B.BSA_ID_ARTNR = E.BSA_ID_ARTNR
INTO :GEB_MENGE;
GEB_MENGE = COALESCE(GEB_MENGE, 0.0);
-- Geplante Menge
SELECT COALESCE(D.MENGE, 0.0)
FROM BABAU D
WHERE D.ID = :ID_LINKKEY
INTO :BABAU_MENGE;
-- RES_MENGE = :RES_MENGE - :GEB_MENGE;
IF (RES_MENGE > BABAU_MENGE) THEN
EXCEPTION MENGENFEHLER;
-- Update nur bei geänderten Mengen
UPDATE BABAU
SET RESMENGE = :RES_MENGE,
GEBMENGE = :GEB_MENGE
WHERE ID = :ID_LINKKEY AND
((RESMENGE IS DISTINCT FROM :RES_MENGE) OR
(GEBMENGE IS DISTINCT FROM :GEB_MENGE));
END
-
- Beiträge: 481
- Registriert: Di Mai 18, 2004 8:42 pm
- Wohnort: Pforzheim
Re: Kundenrahmenauftrag RW
Es hat ein bischen gedauert und jetzt hab ich das verstanden und kann es meinen Kolleginnen erklären.
Schade ist nur das der Abruf den eingetragenen Preis nicht ausdruckt.
Herzlichen Dank für die Hilfe
und möge die Macht mit Euch sein![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
Schade ist nur das der Abruf den eingetragenen Preis nicht ausdruckt.
Herzlichen Dank für die Hilfe
![Idea :idea:](./images/smilies/icon_idea.gif)
und möge die Macht mit Euch sein
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
Lieblingsthema-> Dokumentation, das unbekannte Wesen
Ronald Werner
http://www.rws-automation.de
Averp lebensecht seit 13.08.2014 davor A.L.F. mit RWSFA seit 1991
Averp DB 2019.02 , EXE: 6.8.6.0 auf WinServer 2008
Ronald Werner
http://www.rws-automation.de
Averp lebensecht seit 13.08.2014 davor A.L.F. mit RWSFA seit 1991
Averp DB 2019.02 , EXE: 6.8.6.0 auf WinServer 2008