| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532 |
- /*------------------------------------------------------------------------
- File : ddabsatzzahlen.p
- Purpose :
- Syntax :
- Description :
- Author(s) : walter.riechsteiner
- Created : Wed Jun 23 09:36:53 CEST 2021
- Notes :
- ----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- USING OpenEdge.Core.Collections.List FROM PROPATH.
- USING Progress.Json.ObjectModel.JsonArray FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.DigitalDrinkHandler FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.Customer FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.Manufacturer FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.AbsatzAbschluss FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.Parameter FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.ResponseStatus FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.Sale FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.control.AbsatzdatenImport FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.control.AbsatzAbschlussImport FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.incl.BusinessType FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.incl.SalesUnit FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.incl.Type FROM PROPATH.
- DEFINE VARIABLE ipdVonDatum AS DATE NO-UNDO INIT 08/01/2020.
- DEFINE VARIABLE ipdBisDatum AS DATE NO-UNDO INIT 08/31/2020.
- DEFINE VARIABLE ipiHerst AS INTEGER NO-UNDO INIT 999999.
- DEFINE VARIABLE ipiLieferant AS INTEGER NO-UNDO INIT 999999.
- DEFINE VARIABLE ipcWgr AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lAbschluss AS LOGICAL NO-UNDO INIT TRUE.
- DEFINE VARIABLE lTest AS LOGICAL NO-UNDO INIT TRUE.
- DEFINE VARIABLE Firma AS CHARACTER NO-UNDO INIT '1000'.
- DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iVGeb AS INTEGER NO-UNDO.
- DEFINE VARIABLE iKGeb AS INTEGER NO-UNDO.
- DEFINE VARIABLE cWgr AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
- DEFINE VARIABLE opErrorMessage AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cLogFilePfad AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cLogFile AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cProgramm AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iJahr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iMonat AS INTEGER NO-UNDO.
- DEFINE VARIABLE cAnmeldung AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cVGebGLN AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cHerstGLN AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cHerst AS CHARACTER NO-UNDO.
- { propertiesDD.i }
- { properties.i }
- DEFINE VARIABLE oDigitalDrinkHandler AS DigitalDrinkHandler NO-UNDO.
- DEFINE VARIABLE oResponseStatus AS ResponseStatus NO-UNDO.
- DEFINE VARIABLE oAbsatzDatenImport AS AbsatzdatenImport NO-UNDO.
- DEFINE VARIABLE oAbsatzAbschlussImport AS AbsatzAbschlussImport NO-UNDO.
- DEFINE VARIABLE oCustomer AS Customer NO-UNDO.
- DEFINE VARIABLE oManufacturer AS Manufacturer NO-UNDO.
- DEFINE VARIABLE oAbsatzAbschluss AS AbsatzAbschluss NO-UNDO.
- DEFINE VARIABLE oSale AS Sale NO-UNDO.
- DEFINE TEMP-TABLE tArtbw LIKE Artbw
- FIELD JJ AS INTEGER
- FIELD MM AS INTEGER
- FIELD GLN AS CHARACTER
-
- INDEX tArtbw-k1 IS PRIMARY
- JJ
- MM
- GLN.
- DEFINE TEMP-TABLE tAbschluss
- FIELD JJ AS INTEGER
- FIELD MM AS INTEGER
- FIELD GLN AS CHARACTER
- FIELD cHerst AS CHARACTER
- FIELD lOK AS LOGICAL.
- DEFINE TEMP-TABLE tAbsatzZahlen
- FIELD JJ AS INTEGER
- FIELD MM AS INTEGER
- FIELD Knr AS INTEGER
- FIELD Artnr AS INTEGER
- FIELD Inhalt AS INTEGER
- FIELD Jahr AS INTEGER
- FIELD Herst AS INTEGER
- FIELD HerstGln AS CHARACTER
- FIELD Hersteller AS CHARACTER
- FIELD Fak_Datum AS DATE
- FIELD VGeb_Me AS INTEGER
- FIELD KGeb_Me AS INTEGER
- FIELD VGeb_Cd AS CHARACTER
- FIELD KGeb_Cd AS CHARACTER
- FIELD VGeb_Bez AS CHARACTER
- FIELD KGeb_Bez AS CHARACTER
- FIELD VGeb_Inhalt AS INTEGER
- FIELD KGeb_Inhalt AS INTEGER
- FIELD Bezeichnung AS CHARACTER
- FIELD Kgr AS INTEGER
- FIELD VGeb_gln AS CHARACTER
-
- INDEX tAbsatzZahlen-k1 IS PRIMARY
- JJ
- MM
- Knr
- Artnr
- Inhalt
- Jahr
- INDEX tAbsatzZahlen-k2
- JJ
- MM
- Herst
- Knr
- Artnr
- Inhalt
- Jahr.
-
- DEFINE BUFFER btAbsatzZahlen FOR tAbsatzZahlen.
- /* ******************** Preprocessor Definitions ******************** */
- /* *************************** Main Block *************************** */
- { super/funktionen.i }
- cAnmeldung = SUBSTITUTE('&2&1&3&1&4&1&5', CHR(01), cBatchUser, cBatchPassw, '1000' ).
- RUN ANMELDUNG ( INPUT cAnmeldung ).
- Firma = DYNAMIC-FUNCTION ('getMandant':U) NO-ERROR.
- cProgramm = 'ddabsatzzahlen'.
- cLogFilePfad = DYNAMIC-FUNCTION ('getLogFilePfad':U) NO-ERROR.
- cLogFile = cLogFilePfad + cProgramm + '&1.log'.
- cLogFile = SUBSTITUTE(cLogFile, STRING(TODAY,'99999999')).
- OS-DELETE VALUE(cLogFile) NO-ERROR.
- /*ASSIGN */
- /* ipdVonDatum = 01/01/2020 */
- /* ipdBisDatum = 06/30/2020.*/
-
- EMPTY TEMP-TABLE tArtbw .
- EMPTY TEMP-TABLE tAbschluss .
- FOR EACH Artst NO-LOCK
- WHERE Artst.Firma = Firma
- AND Artst.Aktiv = TRUE,
-
- FIRST Tabel NO-LOCK
- WHERE Tabel.Firma = Firma
- AND Tabel.Recart = 'HERST'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Artst.Herst
- AND Tabel.Bez2 <> '',
-
- FIRST Artbez NO-LOCK
- WHERE Artbez.Firma = Artst.Firma
- AND Artbez.Artnr = Artst.Artnr
- AND Artbez.Inhalt = Artst.Inhalt
- AND Artbez.Jahr = Artst.Jahr,
-
- FIRST KGebinde NO-LOCK
- WHERE KGebinde.Firma = Artst.Firma
- AND KGebinde.Geb_Cd = Artst.KGeb_Cd,
-
- FIRST VGebinde NO-LOCK
- WHERE VGebinde.Firma = Artst.Firma
- AND VGebinde.Geb_Cd = Artst.VGeb_Cd,
-
- EACH Artbw NO-LOCK
- WHERE Artbw.Firma = Artst.Firma
- AND Artbw.Artnr = Artst.Artnr
- AND Artbw.Inhalt = Artst.Inhalt
- AND Artbw.Jahr = Artst.Jahr
- AND Artbw.Fak_Dat <> ?
- AND Artbw.Fak_Dat >= ipdVonDatum
- AND Artbw.Fak_Dat <= ipdBisDatum
- AND Artbw.Tr_Art = 1
- AND Artbw.lDDUmsatz = FALSE ,
-
- FIRST Debst NO-LOCK
- WHERE Debst.Firma = Artst.Firma
- AND Debst.Knr = Artbw.Knr
- :
-
- IF SUBSTRING(Tabel.Bez2,01,01) < '0' OR
- SUBSTRING(Tabel.Bez2,01,01) > '9' THEN NEXT.
- IF ipiHerst <> 999999 THEN
- DO:
- IF Artst.Herst <> ipiHerst THEN NEXT.
- END.
-
- cVGebGLN = ''.
- IF ipiLieferant <> 999999 THEN
- DO:
- FIND FIRST ArtLief NO-LOCK
- WHERE ArtLief.Firma = Artst.Firma
- AND ArtLief.Artnr = Artst.Artnr
- AND ArtLief.Inhalt = Artst.Inhalt
- AND ArtLief.Jahr = Artst.Jahr
- AND ArtLief.Knr = ipiLieferant NO-ERROR.
- IF NOT AVAILABLE ArtLief THEN NEXT.
-
- cVGebGLN = ArtLief.Strichcode_VGeb.
- END.
- ELSE
- DO:
- FOR EACH ArtLief NO-LOCK
- WHERE ArtLief.Firma = Artst.Firma
- AND ArtLief.Artnr = Artst.Artnr
- AND ArtLief.Inhalt = Artst.Inhalt
- AND ArtLief.Jahr = Artst.Jahr
- AND ArtLief.Strichcode_VGeb <> '':
-
- cVGebGLN = ArtLief.Strichcode_VGeb.
- LEAVE.
- END.
- END.
-
- IF cVGebGLN = '' THEN NEXT.
-
- IF ipcWgr <> '' THEN
- DO:
- cWgr = STRING(Artst.Wg_Grp,'999').
- IF LOOKUP(cWgr, ipcWgr, ',') = 0 THEN NEXT.
- END.
-
- iKnr = (IF Debst.KnrFak > 0 AND Debst.KnrFak <> Debst.KnrLie THEN Debst.KnrFak ELSE Artbw.Knr).
-
- iJahr = YEAR (Artbw.Fak_Dat).
- iMonat = MONTH(Artbw.Fak_Dat).
-
- CREATE tArtbw.
- BUFFER-COPY Artbw TO tArtbw
- ASSIGN
- tArtbw.JJ = iJahr
- tArtbw.MM = iMonat
- tArtbw.GLN = Tabel.Bez2. /* Hersteller - GLN */
-
- FIND FIRST tAbsatzZahlen
- WHERE tAbsatzZahlen.JJ = iJahr
- AND tAbsatzZahlen.MM = iMonat
- AND tAbsatzZahlen.Knr = iKnr
- AND tAbsatzZahlen.Artnr = Artbw.Artnr
- AND tAbsatzZahlen.Inhalt = Artbw.Inhalt
- AND tAbsatzZahlen.Jahr = Artbw.Jahr
- AND tAbsatzZahlen.Fak_Datum = Artbw.Fak_Dat NO-ERROR.
- IF NOT AVAILABLE tAbsatzZahlen THEN
- DO:
- CREATE tAbsatzZahlen.
- ASSIGN
- tAbsatzZahlen.JJ = iJahr
- tAbsatzZahlen.MM = iMonat
- tAbsatzZahlen.Knr = iKnr
- tAbsatzZahlen.Artnr = Artbw.Artnr
- tAbsatzZahlen.Inhalt = Artbw.Inhalt
- tAbsatzZahlen.Jahr = Artbw.Jahr
- tAbsatzZahlen.Fak_Datum = Artbw.Fak_Dat
- tAbsatzZahlen.Herst = Artst.Herst
- tAbsatzZahlen.HerstGln = Tabel.Bez2
- tAbsatzZahlen.Hersteller = Tabel.Bez1
- tAbsatzZahlen.Bezeichnung = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2)
- tAbsatzZahlen.KGeb_Cd = Artst.KGeb_Cd
- tAbsatzZahlen.VGeb_Cd = Artst.VGeb_Cd
- tAbsatzZahlen.KGeb_Bez = KGebinde.Bez
- tAbsatzZahlen.VGeb_Bez = VGebinde.Bez
- tAbsatzZahlen.KGeb_Inhalt = KGebinde.Inhalt
- tAbsatzZahlen.VGeb_Inhalt = VGebinde.Inhalt
- tAbsatzZahlen.Kgr = Debst.Ku_Grp
- tAbsatzZahlen.VGeb_gln = cVGebGLN
- .
- END.
- ASSIGN
- tAbsatzZahlen.KGeb_Me = tAbsatzZahlen.KGeb_Me + Artbw.KGeb_Me
- tAbsatzZahlen.VGeb_Me = tAbsatzZahlen.VGeb_Me + Artbw.VGeb_Me.
- END.
- IF lTest THEN lDebug = TRUE.
- IF lDebug THEN
- DO:
- oDigitalDrinkHandler = NEW DigitalDrinkHandler(
- INPUT cDevURL_Import,
- INPUT cDevServerNameIndicator,
- INPUT cClientId,
- INPUT cPassword,
- INPUT cClientName,
- INPUT iGLN-Huber).
- END.
- ELSE
- DO:
- oDigitalDrinkHandler = NEW DigitalDrinkHandler(
- INPUT cURL_Import,
- INPUT cServerNameIndicator,
- INPUT cClientId,
- INPUT cPassword,
- INPUT cClientName,
- INPUT iGLN-Huber).
- END.
-
- oDigitalDrinkHandler:lDebug = lDebug.
- FOR EACH btAbsatzZahlen USE-INDEX tAbsatzZahlen-k2
- BREAK BY btAbsatzZahlen.JJ
- BY btAbsatzZahlen.MM
- BY btAbsatzZahlen.Herst:
-
- IF NOT FIRST-OF (btAbsatzZahlen.Herst) THEN NEXT.
-
- RUN writeLogFile.p ( cProgramm, cLogFile, SUBSTITUTE ('Start Absatzmeldung für Hersteller &1/&2, Jahr &3, Monat &4',
- btAbsatzZahlen.Herst, btAbsatzZahlen.Hersteller, btAbsatzZahlen.JJ, btAbsatzZahlen.MM) ).
- oAbsatzDatenImport = NEW AbsatzdatenImport(INPUT cClientId, INPUT cClientName, INPUT iGLN-Huber).
- oAbsatzDatenImport:lDebug = lDebug.
- /* ------------------------------------------------------ */
- /* Alle Kunden pro Hersteller und Monat */
- /* ------------------------------------------------------ */
-
- FOR EACH tAbsatzZahlen
- WHERE tAbsatzZahlen.JJ = btAbsatzZahlen.JJ
- AND tAbsatzZahlen.MM = btAbsatzZahlen.MM
- AND tAbsatzZahlen.Herst = btAbsatzZahlen.Herst
-
- BREAK BY tAbsatzZahlen.Knr:
-
- IF NOT FIRST-OF ( tAbsatzZahlen.Knr ) THEN NEXT.
-
- FIND Adresse NO-LOCK
- WHERE Adresse.Firma = Firma
- AND Adresse.Knr = tAbsatzZahlen.Knr NO-ERROR.
-
- oCustomer = NEW Customer().
-
- ASSIGN
- oCustomer:ino = tAbsatzZahlen.Knr
- oCustomer:cname1 = (IF Adresse.Firma1 <> '' THEN Adresse.Firma1 ELSE Adresse.Name)
- oCustomer:cname2 = (IF Adresse.Firma2 <> '' THEN Adresse.Firma2 ELSE Adresse.Vorname)
- oCustomer:cstreet = Adresse.Strasse
- oCustomer:czipcode = Adresse.Plz
- oCustomer:ccity = Adresse.Ort
- oCustomer:ccountry = Adresse.Lkz
- oCustomer:cphone1 = Adresse.Tel-1
- oCustomer:cphone2 = Adresse.Tel-2
- oCustomer:cfax = Adresse.Tel-3
- oCustomer:ctaxNumber = ''
- oCustomer:cmail = Adresse.Mail
- oCustomer:cstreet2 = ''
- oCustomer:cpostbox = Adresse.Postfach
- oCustomer:cinfo = ''
- oCustomer:cgln = ''.
-
- CASE tAbsatzZahlen.Kgr:
- WHEN 15 THEN
- oCustomer:eBusinessType = BusinessType:SC-02.
- WHEN 03 OR
- WHEN 12 OR
- WHEN 17 OR
- WHEN 14 THEN
- oCustomer:eBusinessType = BusinessType:SC-01.
- WHEN 10 THEN
- oCustomer:eBusinessType = BusinessType:SC-06.
- WHEN 04 THEN
- oCustomer:eBusinessType = BusinessType:SC-16.
- WHEN 05 OR
- WHEN 01 THEN
- oCustomer:eBusinessType = BusinessType:SC-09.
- WHEN 11 THEN
- oCustomer:eBusinessType = BusinessType:SC-04.
- WHEN 07 THEN
- oCustomer:eBusinessType = BusinessType:SC-11.
- OTHERWISE
- oCustomer:eBusinessType = BusinessType:SC-16.
- END CASE.
-
- oAbsatzDatenImport:addCustomer(oCustomer).
-
- END.
- /* ------------------------------------------------------ */
- /* Alle Verkäufe eines Herstellers pro Kunde und Monat */
- /* ------------------------------------------------------ */
-
- FOR EACH tAbsatzZahlen
- WHERE tAbsatzZahlen.Herst = btAbsatzZahlen.Herst
- AND tAbsatzZahlen.JJ = btAbsatzZahlen.JJ
- AND tAbsatzZahlen.MM = btAbsatzZahlen.MM
-
- BREAK BY tAbsatzZahlen.Herst
- BY tAbsatzZahlen.Knr
- BY tAbsatzZahlen.Artnr
- BY tAbsatzZahlen.Inhalt
- BY tAbsatzZahlen.Jahr :
-
- IF FIRST-OF ( tAbsatzZahlen.Herst ) THEN
- DO:
- oManufacturer = NEW Manufacturer().
- ASSIGN
- oManufacturer:cgln = tAbsatzZahlen.HerstGln
- oManufacturer:csalesDescription = tAbsatzZahlen.Hersteller.
-
- ASSIGN
- cHerstGLN = tAbsatzZahlen.HerstGln
- cHerst = tAbsatzZahlen.Hersteller.
- END.
-
- IF FIRST-OF ( tAbsatzZahlen.Jahr ) THEN
- DO:
- ASSIGN
- iVGeb = 0
- iKGeb = 0.
- END.
-
- ASSIGN
- iVGeb = iVGeb + tAbsatzZahlen.VGeb_Me
- iKGeb = iKGeb + tAbsatzZahlen.KGeb_Me.
-
- IF NOT LAST-OF ( tAbsatzZahlen.Jahr ) THEN NEXT.
-
- oSale = NEW Sale().
- ASSIGN
- oSale:icustomerNo = tAbsatzZahlen.Knr
- oSale:cGTIN = tAbsatzZahlen.VGeb_gln
- oSale:carticleNoClient = STRING(tAbsatzZahlen.Artnr ,'999999')
- + '.'
- + STRING(tAbsatzZahlen.Inhalt,'9999')
- + '.'
- + STRING(tAbsatzZahlen.Jahr ,'9999')
- oSale:carticleName = tAbsatzZahlen.Bezeichnung
- oSale:ifilling = tAbsatzZahlen.VGeb_Inhalt
- oSale:ffillingContent = tAbsatzZahlen.KGeb_Inhalt
- oSale:dtdate = tAbsatzZahlen.Fak_Datum
- oSale:fnormal = iKGeb * tAbsatzZahlen.KGeb_Inhalt / 10000
- oSale:fcampaign = 0
- oSale:ffree = 0
- oSale:ftotal = iKGeb * tAbsatzZahlen.KGeb_Inhalt / 10000
- oSale:eunit = SalesUnit:SU-03.
- oManufacturer:addSales(oSale).
- END.
-
- oAbsatzDatenImport:addManufacturer(oManufacturer).
-
- /* lRetVal = oDigitalDrinkHandler:getAbsatzDatenImport(INPUT oAbsatzDatenImport, INPUT Type:IMP001, OUTPUT opErrorMessage, OUTPUT oResponseStatus).*/
- lRetVal = TRUE.
- IF lRetVal THEN
- DO:
- CREATE tAbschluss.
- ASSIGN
- tAbschluss.GLN = cHerstGln
- tAbschluss.JJ = tAbsatzZahlen.JJ
- tAbschluss.MM = tAbsatzZahlen.MM
- tAbschluss.cHerst = cHerst
- tAbschluss.lOK = FALSE.
- END.
-
- RUN writeLogFile.p ( cProgramm, cLogFile, SUBSTITUTE ('Ende Absatzmeldung für Hersteller &1/&2, Jahr &3, Monat &4 -> &5',
- btAbsatzZahlen.Herst, btAbsatzZahlen.Hersteller, btAbsatzZahlen.JJ, btAbsatzZahlen.MM, STRING(lRetVal,'OK/Fehlerhaft')) ).
- IF VALID-OBJECT (oSale) THEN DELETE OBJECT oSale.
- IF VALID-OBJECT (oManufacturer) THEN DELETE OBJECT oManufacturer.
- IF VALID-OBJECT (oCustomer) THEN DELETE OBJECT oCustomer.
- IF VALID-OBJECT (oAbsatzDatenImport) THEN DELETE OBJECT oAbsatzDatenImport.
- END.
- OUTPUT TO 'C:\LogFiles\tAbschluss.csv'.
- FOR EACH tAbschluss:
- EXPORT DELIMITER ';' tAbschluss.
- END.
- OUTPUT CLOSE.
- DO WHILE lAbschluss:
- oAbsatzAbschlussImport = NEW AbsatzAbschlussImport(INPUT cClientId, INPUT cClientName, INPUT iGLN-Huber).
- oAbsatzAbschlussImport:lDebug = lDebug.
- FOR EACH tAbschluss:
- oAbsatzAbschluss = NEW AbsatzAbschluss ().
- oAbsatzAbschluss:cgln = tAbschluss.GLN.
- oAbsatzAbschluss:iYear = tAbschluss.JJ.
- oAbsatzAbschluss:iMonth = tAbschluss.MM.
- lRetVal = oAbsatzAbschlussImport:oAbsatzAbschlussList:Add(oAbsatzAbschluss).
- RUN writeLogFile.p ( cProgramm, cLogFile, SUBSTITUTE ('&1 - &2 - &3 - &4 - &5', tAbschluss.cHerst, tAbschluss.GLN, tAbschluss.JJ, tAbschluss.MM, lRetVal) ).
- lRetVal = oDigitalDrinkHandler:getAbsatzAbschlussImport(INPUT oAbsatzAbschlussImport, INPUT Type:IMP002, OUTPUT opErrorMessage, OUTPUT oResponseStatus).
- RUN writeLogFile.p ( cProgramm, cLogFile, SUBSTITUTE ('Abschluss Absatzmeldung -> &1', STRING(lRetVal,'OK/Fehlerhaft')) ).
-
- tAbschluss.lOK = lRetVal.
-
- IF VALID-OBJECT (oAbsatzAbschluss) THEN DELETE OBJECT oAbsatzAbschluss.
- END.
- FOR EACH tAbschluss
- WHERE tAbschluss.lOK = TRUE,
- EACH tArtbw USE-INDEX tArtbw-k1
- WHERE tArtbw.JJ = tAbschluss.JJ
- AND tArtbw.MM = tAbschluss.MM
- AND tArtbw.GLN = tAbschluss.GLN:
- FIND Artbw
- WHERE Artbw.Firma = tArtbw.Firma
- AND Artbw.Trnr = tArtbw.Trnr NO-ERROR.
- IF NOT AVAILABLE Artbw THEN NEXT.
- Artbw.lDDUmsatz = TRUE.
- END.
- LEAVE.
- END.
- FINALLY:
- IF VALID-OBJECT (oSale) THEN DELETE OBJECT oSale.
- IF VALID-OBJECT (oManufacturer) THEN DELETE OBJECT oManufacturer.
- IF VALID-OBJECT (oCustomer) THEN DELETE OBJECT oCustomer.
- IF VALID-OBJECT (oAbsatzDatenImport) THEN DELETE OBJECT oAbsatzDatenImport.
- IF VALID-OBJECT (oAbsatzAbschluss) THEN DELETE OBJECT oAbsatzAbschluss.
- IF VALID-OBJECT (oAbsatzAbschlussImport) THEN DELETE OBJECT oAbsatzAbschlussImport.
- IF VALID-OBJECT (oDigitalDrinkHandler) THEN DELETE OBJECT oDigitalDrinkHandler.
- END FINALLY.
|