| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- DEF VAR ii AS INT NO-UNDO.
- DEF VAR iMenge AS INT NO-UNDO.
- DEF VAR dDatum AS DATE NO-UNDO.
- DEF VAR cRegal AS CHAR NO-UNDO.
- DEF VAR cPlatz AS CHAR NO-UNDO.
- DEF VAR cNiveau AS CHAR NO-UNDO.
- DEF VAR cSf AS CHAR NO-UNDO.
- DEF VAR cFirma AS CHAR NO-UNDO INIT '1000'.
- DEF VAR iLager AS INT NO-UNDO INIT 0.
- DEF TEMP-TABLE tExcel
- FIELD cSort AS CHAR
- FIELD Menge AS INT
- FIELD MHD AS CHAR
- FIELD iStatus AS INT
- FIELD Artnr AS INT
- FIELD Bestand AS INT
- FIELD Dummy AS CHAR EXTENT 5
- FIELD dMHD AS DATE
- .
-
- INPUT FROM 'C:\Entwicklung\TEMP\Huber\SirupeAnLager.csv' NO-MAP NO-CONVERT.
- REPEAT TRANSACTION ON STOP UNDO, LEAVE:
- CREATE tExcel.
- IMPORT DELIMITER ';' tExcel.
- END.
- INPUT CLOSE.
- FOR EACH tExcel:
- IF tExcel.cSort = '' THEN DO:
- DELETE tExcel.
- NEXT.
- END.
-
- DO ii = 1 TO NUM-ENTRIES(tExcel.cSort, '-'):
- CASE ii:
- WHEN 1 THEN cRegal = ENTRY(ii, tExcel.cSort, '-').
- WHEN 2 THEN cPlatz = ENTRY(ii, tExcel.cSort, '-').
- WHEN 3 THEN cNiveau = ENTRY(ii, tExcel.cSort, '-').
- WHEN 4 THEN cSf = ENTRY(ii, tExcel.cSort, '-').
- END CASE.
- END.
- DO WHILE LENGTH(cPlatz) < 3:
- cPlatz = '0' + cPlatz.
- END.
- DO WHILE LENGTH(cNiveau) < 2:
- cNiveau = '0' + cNiveau.
- END.
- DO WHILE cSF <> '' AND LENGTH(cSf) < 2:
- cSf = '0' + cSf.
- END.
- tExcel.cSort = SUBSTITUTE('&1-&2-&3', cRegal, cPlatz, cNiveau).
- IF cSF <> '' THEN tExcel.cSort = tExcel.cSort + '-' + cSf.
-
- IF tExcel.Artnr = 0 THEN NEXT.
- IF tExcel.Menge = 0 THEN tExcel.Menge = Bestand.
- IF tExcel.MHD = '' THEN NEXT.
-
- ii = INDEX(tExcel.MHD, 'x').
- IF ii = 0 THEN DO:
- tExcel.dMHD = DATE(tExcel.MHD) NO-ERROR.
- IF ERROR-STATUS:ERROR THEN DO:
- MESSAGE tExcel.MHD
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
- NEXT.
- END.
- NEXT.
- END.
- iMenge = INTEGER(TRIM(SUBSTRING(tExcel.MHD,01,ii - 1))).
- dDatum = DATE (TRIM(SUBSTRING(tExcel.MHD,ii + 1))) NO-ERROR.
- ASSIGN tExcel.Menge = iMenge
- tExcel.dMHD = dDatum.
- END.
- FOR EACH tExcel:
- FIND FIRST HoReLager NO-LOCK
- WHERE HoReLager.Firma = '1000'
- AND HoReLager.cSort = tExcel.cSort NO-ERROR.
- IF AVAILABLE HoReLager THEN NEXT.
-
- DO ii = 1 TO NUM-ENTRIES(tExcel.cSort, '-'):
- CASE ii:
- WHEN 1 THEN cRegal = ENTRY(ii, tExcel.cSort, '-').
- WHEN 2 THEN cPlatz = ENTRY(ii, tExcel.cSort, '-').
- WHEN 3 THEN cNiveau = ENTRY(ii, tExcel.cSort, '-').
- WHEN 4 THEN cSf = ENTRY(ii, tExcel.cSort, '-').
- END CASE.
- END.
-
- CREATE HoReLager.
- ASSIGN
- HoReLager.Firma = cFirma
- HoReLager.Lager = iLager
- HoReLager.Art = 1
- HoReLager.Regal = cRegal
- HoReLager.Niveau = cNiveau
- HoReLager.Platz = cPlatz
- HoReLager.Sf = cSf
- HoReLager.Artnr = 0
- HoReLager.Inhalt = 0
- HoReLager.Jahr = 0
- HoReLager.Bestand = 0
- HoReLager.iStatus = (IF HoReLager.Artnr = 0 THEN 0 ELSE 1)
- HoReLager.cSort = tExcel.cSort.
- END.
- FOR EACH tExcel:
- IF tExcel.cSort = '' THEN NEXT.
- IF tExcel.Artnr = 0 THEN NEXT.
-
- FIND FIRST HoReLager WHERE HoRelager.cSort = tExcel.cSort.
- IF HoReLager.Artnr > 0 AND
- HoReLager.Artnr <> tExcel.Artnr THEN DO:
- MESSAGE 'Artikel passt nicht' VIEW-AS ALERT-BOX.
- NEXT.
- END.
- HoReLager.Bestand = tExcel.Bestand.
-
- FIND FIRST Artst NO-LOCK
- WHERE Artst.Firma = cFirma
- AND Artst.Artnr = tExcel.Artnr NO-ERROR.
- IF NOT Artst.lVerfall THEN DO:
- HoReLager.Eingang = TODAY.
- HoReLager.iStatus = (IF HoReLager.Bestand = 0 THEN 1 ELSE 2).
- NEXT.
- END.
-
- FIND FIRST LotLager
- WHERE LotLager.HoReLager_Id = HoReLager.HoReLager_Id
- AND LotLager.Verfall = tExcel.dMHD NO-ERROR.
- IF AVAILABLE LotLager THEN DO:
- LotLager.Bestand = tExcel.Menge.
- NEXT.
- END.
-
- CREATE LotLager.
- ASSIGN
- LotLager.HoReLager_Id = HoReLager.HoReLager_Id
- LotLager.Artnr = Artst.Artnr
- LotLager.Inhalt = Artst.Inhalt
- LotLager.Jahr = Artst.Jahr
- LotLager.Eingang = TODAY
- LotLager.Verfall = tExcel.dMHD
- LotLager.Lotnummer = ''
- LotLager.Firma = cFirma
- LotLager.Barcode = ''.
-
- LotLager.Bestand = tExcel.Menge.
- END.
|