DEF VAR iAufnr AS INT NO-UNDO. DEF VAR hSavze AS HANDLE NO-UNDO. FOR EACH Savze WHERE Savze.Firma = '1000' AND Savze.Artnr > 0 AND Savze.Trnr = 0, FIRST Savko NO-LOCK OF Savze : hSavze = BUFFER Savze:HANDLE. RUN CREATE_ARTBW ( INPUT-OUTPUT hSavze ). END. PROCEDURE CREATE_ARTBW: /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT-OUTPUT PARAMETER iphSavze AS HANDLE NO-UNDO. DEF VAR cFirma AS CHAR NO-UNDO. DEF VAR iKnr AS INT NO-UNDO. DEF VAR iLager AS INT NO-UNDO. DEF VAR iArtnr AS INT NO-UNDO. DEF VAR iInhalt AS INT NO-UNDO. DEF VAR iJahr AS INT NO-UNDO. DEF VAR iTrnr AS INT NO-UNDO. DEF VAR hArtbw AS HANDLE NO-UNDO. DEF VAR nMGel AS DEC NO-UNDO. ASSIGN cFirma = iphSavze::Firma iArtnr = iphSavze::Artnr iInhalt = iphSavze::Inhalt iJahr = iphSavze::Jahr nMGel = iphSavze::MGeli iAufnr = iphSavze::Aufnr. FIND Savko NO-LOCK WHERE Savko.Firma = cFirma AND Savko.Aufnr = iAufnr NO-ERROR. IF NOT AVAILABLE Savko THEN RETURN. ASSIGN iKnr = Savko.Knr iLager = Savko.Lager. IF iphSavze::Trnr = 0 THEN DO: FIND LAST Artbw NO-LOCK USE-INDEX Artbw-k1 WHERE Artbw.Firma = cFirma NO-ERROR. IF AVAILABLE Artbw THEN iphSavze::Trnr = Artbw.Trnr + 1. ELSE iphSavze::Trnr = 1. END. iTrnr = iphSavze::Trnr. FIND Artbw USE-INDEX Artbw-k1 WHERE Artbw.Firma = cFirma AND Artbw.Trnr = iTrnr NO-ERROR. IF NOT AVAILABLE Artbw THEN DO: CREATE Artbw. ASSIGN Artbw.Firma = cFirma Artbw.Trnr = iTrnr Artbw.Tr_Art = 01 Artbw.Artnr = iArtnr Artbw.Inhalt = iInhalt Artbw.Jahr = iJahr Artbw.Knr = iKnr. END. hArtbw = BUFFER Artbw:HANDLE. hArtbw:BUFFER-COPY(iphSavze, "Firma,Trnr,Artnr,Inhalt,Jahr"). ASSIGN Artbw.Menge = nMGel Artbw.Datum = Savko.Auf_Dat Artbw.Faktor = 1 Artbw.Kurs = Savko.Kurs Artbw.Faknr = Savko.Faknr Artbw.Fak_Dat = Savko.Fak_Dat Artbw.Fak_Art = Savko.Fak_Art Artbw.Knr = Savko.Knr Artbw.Fak_Knr = Savko.Fak_Knr Artbw.Abhol = Savko.Abhol Artbw.Vertr = Savko.Vertr Artbw.Bonus_Verb = FALSE. /* ------------------------------------------ */ /* Bestand, Ausgang (Lager) */ /* ------------------------------------------ */ IF iphSavze::Lag_Buch THEN DO: FIND ArtLager USE-INDEX ArtLager-k1 WHERE ArtLager.Firma = cFirma AND ArtLager.Artnr = iArtnr AND ArtLager.Inhalt = iInhalt AND ArtLager.Jahr = iJahr AND ArtLager.Lager = iLager NO-ERROR. IF NOT AVAILABLE ArtLager THEN DO: CREATE ArtLager. ASSIGN ArtLager.Firma = cFirma ArtLager.Artnr = iArtnr ArtLager.Inhalt = iInhalt ArtLager.Jahr = iJahr ArtLager.Lager = iLager NO-ERROR. END. ASSIGN ArtLager.Ausgang = ArtLager.Ausgang + nMGel ArtLager.Bestand = ArtLager.Bestand - nMGel. END. END PROCEDURE.