| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- TRIGGER PROCEDURE FOR WRITE OF Besze
- NEW BUFFER nBesze
- OLD BUFFER oBesze.
- DEFINE VARIABLE cResult AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lWeiter AS LOG NO-UNDO.
- DEFINE VARIABLE iRecid AS RECID NO-UNDO.
- DEFINE VARIABLE lBatch AS LOG INIT TRUE NO-UNDO.
- DEFINE VARIABLE rArtst AS RECID NO-UNDO.
-
- DEFINE BUFFER bArtLager FOR ArtLager.
- DEFINE BUFFER bRuestAuf FOR RuestAuf.
- DEFINE BUFFER bBesko FOR Besko.
- DEFINE BUFFER bArtst FOR Artst.
- DEFINE BUFFER bArtbw FOR Artbw.
-
- IF nBesze.Artnr = 0 AND
- oBesze.Artnr = 0 THEN RETURN.
-
- BUFFER-COMPARE nBesze
- USING Best_Sta GGeb_Me VGeb_Me KGeb_Me GGeb_EG VGeb_EG KGeb_EG MBest MGeli MRuek Eingang
- TO oBesze
- SAVE RESULT IN cResult.
- IF cResult = '' THEN RETURN.
- FIND bArtst NO-LOCK
- WHERE bArtst.Firma = nBesze.Firma
- AND bArtst.Artnr = nBesze.Artnr
- AND bArtst.Inhalt = nBesze.Inhalt
- AND bArtst.Jahr = nBesze.Jahr NO-ERROR.
- IF NOT AVAILABLE bArtst OR
- NOT bArtst.Aktiv OR
- NOT bArtst.Lager OR
- bArtst.Ausverk = 9 THEN RETURN.
- rArtst = RECID(bArtst).
- FIND FIRST ASMutation
- WHERE ASMutation.Firma = nBesze.Firma
- AND ASMutation.Datum = TODAY
- AND ASMutation.MutArt = 'DASHBOARD'
- AND ASMutation.cFeld_1 = 'BESTELLUNG'
- AND ASMutation.iKey_1 = nBesze.Besnr NO-ERROR.
- IF AVAILABLE ASMutation THEN
- DO:
- IF (TIME - ASMutation.iFeld_1) > 5 THEN RELEASE ASMutation.
- END.
- IF NOT AVAILABLE ASMutation THEN
- DO:
- CREATE ASMutation.
- ASSIGN
- ASMutation.asmutation_id = NEXT-VALUE(asmutation_id)
- ASMutation.Aktiv = TRUE
- ASMutation.cStatus = ''
- ASMutation.Datum = TODAY
- ASMutation.Firma = nBesze.Firma
- ASMutation.MutArt = 'DASHBOARD'
- ASMutation.cFeld_1 = 'BESTELLUNG'
- ASMutation.iKey_1 = nBesze.Besnr
- ASMutation.iFeld_1 = TIME
- .
- END.
-
- lBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR.
- IF ERROR-STATUS:ERROR THEN lBatch = FALSE.
- IF lBatch = ? THEN lBatch = FALSE.
- /* ---------------------------------------------- */
- /* Bestandesmutation */
- /* ---------------------------------------------- */
- DO WHILE TRUE:
- IF oBesze.MGeli = nBesze.MGeli AND
- oBesze.MBest = nBesze.MBest AND
- oBesze.Eingang = nBesze.Eingang THEN LEAVE.
-
- ASSIGN
- nBesze.MRuek = nBesze.MBest - nBesze.MGeli - nBesze.Eingang.
-
- FIND Artst WHERE RECID(Artst) = rArtst.
- Artst.Bestellt = Artst.Bestellt - oBesze.MBest + nBesze.MBest.
-
- IF oBesze.Artnr > 0 THEN
- DO:
- FIND bArtLager
- WHERE bArtLager.Firma = oBesze.Firma
- AND bArtLager.Artnr = oBesze.Artnr
- AND bArtLager.Inhalt = oBesze.Inhalt
- AND bArtLager.Jahr = oBesze.Jahr
- AND bArtLager.Lager = oBesze.Lager NO-ERROR.
- IF NOT AVAILABLE bArtLager THEN
- DO:
- CREATE bArtLager.
- ASSIGN
- bArtLager.Firma = oBesze.Firma
- bArtLager.Artnr = oBesze.Artnr
- bArtLager.Inhalt = oBesze.Inhalt
- bArtLager.Jahr = oBesze.Jahr
- bArtLager.Lager = oBesze.Lager.
- END.
- ASSIGN
- bArtLager.Eingang = bArtLager.Eingang - oBesze.MGeli
- bArtLager.Bestand = bArtLager.Bestand - oBesze.MGeli
- bArtLager.Bestellt = bArtLager.Bestellt - oBesze.MBest.
- END.
- IF nBesze.Artnr > 0 THEN
- DO:
- FIND bArtLager
- WHERE bArtLager.Firma = nBesze.Firma
- AND bArtLager.Artnr = nBesze.Artnr
- AND bArtLager.Inhalt = nBesze.Inhalt
- AND bArtLager.Jahr = nBesze.Jahr
- AND bArtLager.Lager = nBesze.Lager NO-ERROR.
- IF NOT AVAILABLE bArtLager THEN
- DO:
- CREATE bArtLager.
- ASSIGN
- bArtLager.Firma = nBesze.Firma
- bArtLager.Artnr = nBesze.Artnr
- bArtLager.Inhalt = nBesze.Inhalt
- bArtLager.Jahr = nBesze.Jahr
- bArtLager.Lager = nBesze.Lager.
- END.
- ASSIGN
- bArtLager.Eingang = bArtLager.Eingang + nBesze.MGeli
- bArtLager.Bestand = bArtLager.Bestand + nBesze.MGeli
- bArtLager.Bestellt = bArtLager.Bestellt + nBesze.MBest.
- END.
- RELEASE bArtLager.
-
- IF nBesze.Trnr > 0 THEN
- DO:
- FIND bArtbw
- WHERE bArtbw.Firma = nBesze.Firma
- AND bArtbw.Trnr = nBesze.Trnr NO-ERROR.
- IF AVAILABLE bArtbw THEN
- DO:
- ASSIGN
- bArtbw.GGeb_Me = nBesze.GGeb_EG
- bArtbw.VGeb_Me = nBesze.VGeb_EG
- bArtbw.KGeb_Me = nBesze.KGeb_EG
- bArtbw.Menge = nBesze.MGeli .
- END.
- RELEASE bArtbw.
- END.
- LEAVE.
- END.
-
|