| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- TRIGGER PROCEDURE FOR WRITE OF ArtLief
- NEW BUFFER NArtLief
- OLD BUFFER OArtLief.
-
- DEF VAR cDiff AS CHAR NO-UNDO.
- DEF VAR cFeld AS CHAR NO-UNDO.
- DEF VAR kk AS INT NO-UNDO.
- DEF VAR kx AS INT NO-UNDO.
- DEF VAR cWort AS CHAR NO-UNDO.
-
- DEFINE BUFFER bBesze FOR Besze .
- DEFINE BUFFER bArtst FOR Artst .
- DEFINE BUFFER bArtLief FOR ArtLief .
-
- DISABLE TRIGGERS FOR LOAD OF Artbez .
- DISABLE TRIGGERS FOR LOAD OF Artst .
-
- IF NArtLief.S_Artnr <> OArtLief.S_Artnr AND
- NArtLief.S_Artnr <> '' THEN
- DO:
- FOR EACH Besze NO-LOCK
- WHERE Besze.Firma = NArtLief.Firma
- AND Besze.Artnr = NArtLief.Artnr
- AND Besze.Inhalt = NArtLief.Inhalt
- AND Besze.Jahr = NArtLief.Jahr
- AND Besze.Best_Sta < 4
- AND Besze.S_Artnr <> NArtLief.S_Artnr,
-
-
- FIRST Besko NO-LOCK
- WHERE Besko.Firma = Besze.Firma
- AND Besko.Besnr = Besze.Besnr
- AND Besko.Knr = NArtLief.Knr :
-
- FIND bBesze EXCLUSIVE-LOCK WHERE RECID(bBesze) = RECID(Besze) NO-WAIT NO-ERROR.
- IF NOT AVAILABLE bBesze THEN NEXT.
- bBesze.S_Artnr = NArtLief.S_Artnr.
- RELEASE bBesze.
- END.
- END.
-
-
- BUFFER-COMPARE NArtLief USING S_Artnr S_Bez1 S_Bez2 S_Preis S_Preis_Frw Strichcode_GGeb Strichcode_VGeb Strichcode_KGeb
- Min_GGebinde Min_VGebinde Min_KGebinde
- TO OArtLief
- SAVE RESULT IN cDiff.
- IF cDiff = '' THEN RETURN.
- cWort = ''.
- RUN BEREINIGEN ( 0, NArtLief.Strichcode_KGeb ).
- RUN BEREINIGEN ( 0, NArtLief.Strichcode_VGeb ).
- FOR EACH bArtLief NO-LOCK
- WHERE bArtLief.Firma = NArtLief.Firma
- AND bArtLief.Artnr = NArtLief.Artnr
- AND bArtLief.Inhalt = NArtLief.Inhalt
- AND bArtLief.Jahr = NArtLief.Jahr
- AND bArtLief.Knr <> NArtLief.Knr:
- IF bArtLief.Min_GGebinde = NArtLief.Min_GGebinde AND
- bArtLief.Min_VGebinde = NArtLief.Min_VGebinde AND
- bArtLief.Min_KGebinde = NArtLief.Min_KGebinde AND
- bArtLief.Strichcode_VGeb = NArtLief.Strichcode_VGeb AND
- bArtLief.Strichcode_KGeb = NArtLief.Strichcode_KGeb THEN NEXT.
- FIND CURRENT bArtLief EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF ERROR-STATUS:ERROR THEN NEXT.
-
- ASSIGN
- bArtLief.Min_GGebinde = (IF OArtLief.Min_GGebinde = NArtLief.Min_GGebinde THEN bArtLief.Min_GGebinde ELSE NArtLief.Min_GGebinde)
- bArtLief.Min_VGebinde = (IF OArtLief.Min_VGebinde = NArtLief.Min_VGebinde THEN bArtLief.Min_VGebinde ELSE NArtLief.Min_VGebinde)
- bArtLief.Min_KGebinde = (IF OArtLief.Min_KGebinde = NArtLief.Min_KGebinde THEN bArtLief.Min_KGebinde ELSE NArtLief.Min_KGebinde)
- bArtLief.Strichcode_VGeb = (IF OArtLief.Strichcode_VGeb = NArtLief.Strichcode_VGeb THEN bArtLief.Strichcode_VGeb ELSE NArtLief.Strichcode_VGeb)
- bArtLief.Strichcode_KGeb = (IF OArtLief.Strichcode_KGeb = NArtLief.Strichcode_KGeb THEN bArtLief.Strichcode_KGeb ELSE NArtLief.Strichcode_KGeb).
-
- IF bArtLief.Strichcode_KGeb = '' AND NArtLief.Strichcode_KGeb <> '' THEN bArtLief.Strichcode_KGeb = NArtLief.Strichcode_KGeb.
- IF bArtLief.Strichcode_VGeb = '' AND NArtLief.Strichcode_VGeb <> '' THEN bArtLief.Strichcode_VGeb = NArtLief.Strichcode_VGeb.
-
- RELEASE bArtLief.
- END.
- FIND Artbez USE-INDEX Artbez-k1
- WHERE Artbez.Firma = NArtLief.Firma
- AND Artbez.Artnr = NArtLief.Artnr
- AND Artbez.Inhalt = NArtLief.Inhalt
- AND Artbez.Jahr = NArtLief.Jahr
- AND Artbez.Sprcd = 1 EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF NOT AVAILABLE Artbez THEN RETURN.
-
- RUN BEREINIGEN ( 0, Artbez.Bez1 ).
- RUN BEREINIGEN ( 0, Artbez.Bez2 ).
- DO kk = 1 TO 10:
- cFeld = Artbez.Zustext[kk].
- IF cFeld = '' THEN NEXT.
- RUN BEREINIGEN ( 0, cFeld ).
- END.
-
- FIND Artst NO-LOCK OF NArtLief NO-ERROR.
- IF AVAILABLE Artst THEN
- DO:
- RUN BEREINIGEN ( 0, Artst.Suchbe ).
- RUN BEREINIGEN ( 0, Artst.Strichcode ).
- RUN BEREINIGEN ( 0, TRIM(STRING(Artst.Artnr,'>>>>>9')) ).
- IF Artst.FremdNr <> '' THEN
- DO:
- RUN BEREINIGEN ( 0, STRING(Artst.FremdNr,'XXXXXX XXXX XXXX')).
- RUN BEREINIGEN ( 0, TRIM(STRING(INTEGER(SUBSTRING(Artst.FremdNr,01,06)),'>>>>>9'))).
- END.
- FIND KGebinde NO-LOCK
- WHERE KGebinde.Firma = Artst.Firma
- AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
- IF AVAILABLE KGebinde THEN RUN BEREINIGEN ( 0, KGebinde.KBez ).
- IF NArtLief.Strichcode_KGeb <> '' AND
- Artst.Strichcode <> NArtLief.Strichcode_KGeb THEN
- DO:
- FIND bArtst EXCLUSIVE-LOCK WHERE RECID(bArtst) = RECID(Artst) NO-WAIT NO-ERROR.
- IF AVAILABLE bArtst THEN bArtst.Strichcode = NArtLief.Strichcode_KGeb.
- RELEASE bArtst.
- END.
- END.
-
- RUN BEREINIGEN ( 0, NArtLief.S_Artnr ).
- RUN BEREINIGEN ( 0, NArtLief.S_Bez1 ).
- RUN BEREINIGEN ( 0, NArtLief.S_Bez2 ).
- cFeld = 'XLIEFSTX' + STRING(NArtLief.Knr,'999999').
- RUN BEREINIGEN ( 0, cFeld ).
-
- FOR EACH ArtLief NO-LOCK
- WHERE ArtLief.Firma = NArtLief.Firma
- AND ArtLief.Artnr = NArtLief.Artnr
- AND ArtLief.Inhalt = NArtLief.Inhalt
- AND ArtLief.Jahr = NArtLief.Jahr
- AND ArtLief.Knr <> NArtLief.Knr :
- RUN BEREINIGEN ( 0, ArtLief.S_Artnr ).
- /*
- RUN BEREINIGEN ( 0, ArtLief.S_Bez1 ).
- RUN BEREINIGEN ( 0, ArtLief.S_Bez2 ).
- */
- cFeld = 'XLIEFSTX' + STRING(ArtLief.Knr,'999999').
- RUN BEREINIGEN ( 0, cFeld ).
- END.
-
- Artbez.WortIndex = TRIM(cWort).
- RELEASE Artbez.
- RELEASE Artst.
- RELEASE ArtLief.
-
- RETURN.
- PROCEDURE BEREINIGEN:
- DEF INPUT PARAMETER ipArt AS INT NO-UNDO.
- DEF INPUT PARAMETER ipString AS CHAR NO-UNDO.
- DEF VAR wString AS CHAR NO-UNDO.
- DEF VAR xString AS CHAR NO-UNDO.
- DEF VAR yy AS INT NO-UNDO.
- IF ipString = '' THEN RETURN.
- wString = ipString.
- IF ipArt = 1 THEN
- DO:
- wString = REPLACE(wString, ' ', '').
- wString = REPLACE(wString, '.', '').
- wString = REPLACE(wString, '/', '').
- wString = REPLACE(wString, '-', '').
- END.
- wString = REPLACE(wString, '*' , '' ).
- wString = REPLACE(wString, '&' , ' ').
- wString = REPLACE(wString, '+' , '' ).
- wString = REPLACE(wString, '(' , '' ).
- wString = REPLACE(wString, ')' , '' ).
- wString = REPLACE(wString, '!' , '' ).
- wString = REPLACE(wString, '|' , '' ).
- wString = REPLACE(wString, '^' , '' ).
- wString = REPLACE(wString, ';' , '' ).
- wString = REPLACE(wString, "'" , '' ).
- wString = REPLACE(wString, ',' , '' ).
- wString = REPLACE(wString, ' ', ' ').
- wString = REPLACE(wString, '-' , ' ').
- wString = TRIM(wString).
- IF wString = '' THEN RETURN.
- DO yy = 1 TO NUM-ENTRIES(wString, ' '):
- xString = ENTRY(yy, wString, ' ').
- IF LOOKUP(xString, cWort, ' ') > 0 THEN NEXT.
- cWort = cWort + (IF cWort = '' THEN '' ELSE ' ')
- + xString.
- END.
- END PROCEDURE.
|