| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- /* Lager definieren */
- DISABLE TRIGGERS FOR LOAD OF ArtLager.
- FOR EACH Steuer
- WHERE Steuer.Firma < '9000':
- Steuer.St10 = 0.
- CREATE Tabel.
- ASSIGN Tabel.Firma = Steuer.Firma
- Tabel.RecArt = 'LAGER'
- Tabel.CodeI = 0
- Tabel.CodeC = ''
- Tabel.Sprcd = 1
- Tabel.Bez1 = 'Lager ' + Steuer.Ort NO-ERROR.
- IF ERROR-STATUS:ERROR THEN UNDO, RETRY.
- END.
- FOR EACH Artst,
- EACH ArtLager
- WHERE ArtLager.Firma = Artst.Firma
- AND ArtLager.Artnr = Artst.Artnr
- AND ArtLager.Inhalt = Artst.Inhalt
- AND ArtLager.Jahr = Artst.Jahr:
-
- ASSIGN ArtLager.Mind_Bestand = Artst.Mind_Bestand
- ArtLager.Soll_Bestand = Artst.Soll_Bestand.
-
- CASE ArtLager.Lager:
- WHEN 0 THEN DO:
- ASSIGN Artst.Bestand = ArtLager.Bestand
- ArtLager.Reserviert = Artst.Reserviert
- ArtLager.Bestellt = Artst.Bestellt.
- END.
- END.
- END.
- FOR EACH KuBes:
- FIND Debst NO-LOCK
- WHERE Debst.Firma = KuBes.Firma
- AND Debst.Knr = KuBes.Knr NO-ERROR.
- IF NOT AVAILABLE Debst THEN DO:
- FOR EACH KuBesSta
- WHERE KuBesSta.Firma = KuBes.Firma
- AND KuBesSta.Knr = KuBes.Knr :
- DELETE KuBesSta.
- END.
- DELETE KuBes.
- NEXT.
- END.
- KuBes.Vertr = Debst.Vertr.
- END.
- FOR EACH Tabel WHERE RecArt begins 'PREGRP':
- Tabel.Int_2 = 1. /* Alle Preisgruppen auf aktiv setzen */
- END.
- DEF VAR cFeld AS CHAR NO-UNDO.
- DEF VAR hBuffer AS HANDLE NO-UNDO.
- DEF VAR hFeld1 AS HANDLE NO-UNDO.
- DEF VAR kk AS INT NO-UNDO.
- DEF VAR cWort AS CHAR NO-UNDO.
- DEF VAR iArt AS INT NO-UNDO.
- DISABLE TRIGGERS FOR LOAD OF Adresse.
- DISABLE TRIGGERS FOR LOAD OF Artst.
- DISABLE TRIGGERS FOR LOAD OF ArtLief.
- FOR EACH Adresse:
- hBuffer = BUFFER Adresse:HANDLE.
- /* entfernen von Sonderzeichen */
- DO kk = 1 TO hBuffer:NUM-FIELDS:
- IF hBuffer:BUFFER-FIELD(kk):DATA-TYPE <> "CHARACTER" THEN NEXT.
- IF hBuffer:BUFFER-FIELD(kk):NAME BEGINS "Bem" THEN NEXT. /* Bemerkungsfeld kann/darf cr/lf enthalten */
- IF hBuffer:BUFFER-FIELD(kk):EXTENT > 0 THEN NEXT.
-
- IF INDEX(hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE, CHR(10)) = 0 AND
- INDEX(hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE, CHR(13)) = 0 THEN NEXT.
-
- hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE =
- REPLACE(hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE, CHR(10), '').
- hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE =
- REPLACE(hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE, CHR(13), '').
- END.
-
- ASSIGN cWort = ''
- Adresse.WortIndex = ''.
- DO kk = 1 TO hBuffer:NUM-FIELDS:
- hFeld1 = hBuffer:BUFFER-FIELD(kk).
- IF hFeld1:EXTENT > 0 THEN NEXT.
- IF NOT hFeld1:DATA-TYPE BEGINS 'CHAR' THEN NEXT.
- cFeld = hFeld1:NAME.
- IF cFeld BEGINS 'Erf' THEN NEXT.
- IF cFeld BEGINS 'Mut' THEN NEXT.
- IF cFeld BEGINS 'Anzeig' THEN NEXT.
- IF cFeld BEGINS 'Anschr' THEN NEXT.
- IF cFeld BEGINS 'Word' THEN NEXT.
- IF cFeld BEGINS 'Brief' THEN NEXT.
- IF cFeld BEGINS 'Cd' THEN NEXT.
- IF cFeld BEGINS 'Wort' THEN NEXT.
- iArt = 0.
- IF cFeld BEGINS 'Tel' THEN iArt = 1.
- RUN BEREINIGEN ( iArt, hFeld1:BUFFER-VALUE(0) ).
- END.
- hFeld1 = hBuffer:BUFFER-FIELD('Knr').
- RUN BEREINIGEN ( 0, TRIM(STRING(INTEGER(hFeld1:BUFFER-VALUE(0)),'>>>>>>9')) ).
- Adresse.WortIndex = cWort.
-
- END.
- FOR EACH Artbez:
- cWort = ''.
- 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 Artbez 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 ).
- END.
- FOR EACH ArtLief NO-LOCK
- WHERE ArtLief.Firma = Artbez.Firma
- AND ArtLief.Artnr = Artbez.Artnr
- AND ArtLief.Inhalt = Artbez.Inhalt
- AND ArtLief.Jahr = Artbez.Jahr :
- RUN BEREINIGEN ( 0, ArtLief.S_Artnr ).
- RUN BEREINIGEN ( 0, ArtLief.S_Bez1 ).
- RUN BEREINIGEN ( 0, ArtLief.S_Bez2 ).
- END.
-
- Artbez.WortIndex = cWort.
-
- RELEASE KGebinde.
- RELEASE Artst.
- RELEASE Artbez.
- END.
- 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 = 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.
-
|