| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 |
- /*------------------------------------------------------------------------
- File : digitaldrinkartikelexport.p
- Purpose :
- Syntax :
- Description :
- Author(s) : walter.riechsteiner
- Created : Thu Dec 17 06:48:29 CET 2020
- Notes :
- ----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- USING OpenEdge.Core.Collections.IListIterator FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.DigitalDrinkHandler FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.Bundle FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.Content FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.Filter FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.Parameter FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.Product FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.beans.TrustLevel FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.control.ArtikelstammExportRequest FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.control.ArtikelstammExportResponse FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.incl.Language FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.incl.Type FROM PROPATH.
- { propertiesDD.i }
- DEFINE VARIABLE oDigitalDrinkHandler AS DigitalDrinkHandler NO-UNDO.
- DEFINE VARIABLE oArtikelstammExport AS ArtikelstammExportRequest NO-UNDO.
- DEFINE VARIABLE oParameters AS Parameter NO-UNDO.
- DEFINE VARIABLE oFilters AS Filter NO-UNDO.
- DEFINE VARIABLE oProducts AS Product NO-UNDO.
- DEFINE VARIABLE oTrust AS TrustLevel NO-UNDO.
- DEFINE VARIABLE oBundles AS Bundle NO-UNDO.
- DEFINE VARIABLE oContent AS Content NO-UNDO.
- DEFINE VARIABLE oSupplierGLN AS Content NO-UNDO.
- DEFINE VARIABLE dtLastRequirementDate AS DATE NO-UNDO.
- DEFINE VARIABLE lRequirementAllDates AS LOGICAL NO-UNDO.
- DEFINE VARIABLE opErrorMessage AS CHARACTER NO-UNDO.
- DEFINE VARIABLE oProductData AS ArtikelstammExportResponse NO-UNDO.
- DEFINE VARIABLE oProductsIterator AS IListIterator NO-UNDO.
- DEFINE VARIABLE oTrustIterator AS IListIterator NO-UNDO.
- DEFINE VARIABLE oBundlesIterator AS IListIterator NO-UNDO.
- DEFINE VARIABLE oContentIterator AS IListIterator NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cBundleName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cStringEx AS CHARACTER NO-UNDO EXTENT.
- DEFINE VARIABLE cStateId AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cType AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE i1 AS INTEGER NO-UNDO INIT 0.
- DEFINE VARIABLE iAnzProdukte AS INTEGER NO-UNDO.
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
- DEFINE VARIABLE lResult AS LOGICAL NO-UNDO.
- DEFINE VARIABLE lBasis AS LOGICAL NO-UNDO.
- DEFINE VARIABLE lInhalt AS LOGICAL NO-UNDO.
- DEFINE VARIABLE lMarketing AS LOGICAL NO-UNDO.
- DEFINE VARIABLE iArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE lFound AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cHerstArtnr AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cEANKGeb AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cEANVGeb AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cEANGGeb AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iKGebMe AS DECIMAL NO-UNDO.
- DEFINE VARIABLE iVGebMe AS DECIMAL NO-UNDO.
- DEFINE VARIABLE iGGebMe AS DECIMAL NO-UNDO.
- DEFINE VARIABLE cDDVGebinde AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lAktiv AS LOGICAL NO-UNDO.
- DEFINE VARIABLE lVerfuegbar AS LOGICAL NO-UNDO.
- DEFINE VARIABLE nInhalte AS DECIMAL NO-UNDO EXTENT 5.
- DEFINE VARIABLE nWert AS DECIMAL NO-UNDO.
- { ttDDArtikel.i }
- DEFINE BUFFER bttDDArtikel FOR ttDDArtikel.
- DEFINE TEMP-TABLE tCharList
- FIELD cFeld AS CHARACTER.
- DEFINE INPUT PARAMETER ipcGlnNr AS CHARACTER NO-UNDO.
-
- DEFINE OUTPUT PARAMETER TABLE FOR ttDDArtikel.
- /* ******************** Preprocessor Definitions ******************** */
- /* ************************ Function Prototypes ********************** */
- /* *************************** Main Block *************************** */
- /* ************************ Function Implementations ***************** */
- oDigitalDrinkHandler = NEW DigitalDrinkHandler(
- INPUT cURL_Export,
- INPUT cServerNameIndicator,
- INPUT cClientId,
- INPUT cPassword,
- INPUT cClientName,
- INPUT iGLN-Huber).
- oDigitalDrinkHandler:lDebug = lDebug.
- oProducts = NEW Product().
- /*oProducts:cManufacturerGLN = "7611793000004". /* Coca Cola */*/
- oProducts:cManufacturerGLN = ipcGlnNr.
- oBundles = NEW Bundle().
- oFilters = NEW Filter(INPUT oProducts, INPUT oBundles).
- oParameters = NEW Parameter().
- oParameters:cClientId = cClientId.
- oParameters:cClientName = cClientName.
- oParameters:lContentMappings = TRUE.
- oParameters:eLanguage = Language:de.
- oParameters:oFilters = oFilters.
- lResult = oDigitalDrinkHandler:getArtikelStammExport(INPUT cClientName, INPUT TYPE:EXP001, INPUT oParameters, OUTPUT opErrorMessage, OUTPUT oProductData).
- MESSAGE lResult opErrorMessage
- VIEW-AS ALERT-BOX.
- IF oProductData:oResponseStatus:cState <> 'DONE' THEN
- DO:
- MESSAGE 'Abfrage misslungen' VIEW-AS ALERT-BOX.
- RETURN 'ERROR'.
- END.
- iAnzProdukte = oProductData:oResponseStatus:iStateCount.
- oProductsIterator = oProductData:oProductsList:ListIterator().
- iAnzProdukte = oProductData:oProductsList:Size.
- DO WHILE oProductsIterator:HasNext():
- oProducts = CAST(oProductsIterator:Next(), Product).
-
- iAnzProdukte = iAnzProdukte + 1.
-
- /* ------------------------------------------------------------------ */
- /* Prüfung auf Freigegeben (Produzent oder DigitalDrink) */
- /* ------------------------------------------------------------------ */
- lRetVal = FALSE.
- oTrustIterator = oProducts:oTrustLevelList:ListIterator().
-
- /* DO WHILE oTrustIterator:HasNext(): */
- /* oTrust = CAST(oTrustIterator:NEXT(), TrustLevel ) NO-ERROR. */
- /* IF ERROR-STATUS:ERROR THEN MESSAGE 'Trust-Error' ERROR-STATUS:GET-MESSAGE (1).*/
- /* cString = oTrust:cCode. */
- /* CASE cString: */
- /* WHEN 'provedProducer' THEN */
- /* lRetVal = TRUE. */
- /* WHEN 'provedDigitalDrink' THEN */
- /* lRetVal = TRUE. */
- /* END. */
- /* IF lRetVal THEN LEAVE. */
- /* END. */
- /* IF NOT lRetVal THEN NEXT.*/
- cString = oProducts:cname.
- cStateId = oProducts:cStateId.
-
- CASE cStateId:
- WHEN 'Prd_Deleted' THEN
- NEXT.
- WHEN 'Prd_Created' THEN
- NEXT.
- WHEN 'Prd_Archived' THEN
- NEXT.
- WHEN 'Prd_Denied' THEN
- NEXT.
- WHEN 'Prd_Denied_SalesData' THEN
- NEXT.
- END CASE.
- oContent = oProducts:oContent.
- oBundlesIterator = oProducts:oBundlesList:ListIterator().
- BUNDLE:
- DO WHILE oBundlesIterator:HasNext():
- oBundles = CAST(oBundlesIterator:Next(), Bundle).
- cStateId = oBundles:cStateID.
-
- lAktiv = TRUE.
- lVerfuegbar = TRUE.
- CASE cStateId:
- WHEN 'Art_Deleted' THEN
- lAktiv = FALSE.
- WHEN 'Art_Created' THEN
- lVerfuegbar = FALSE.
- WHEN 'Art_Archived' THEN
- lAktiv = FALSE.
- WHEN 'Art_Denied' THEN
- lVerfuegbar = FALSE.
- WHEN 'Art_Denied_SalesData' THEN
- lVerfuegbar = FALSE.
- END CASE.
- cBundleName = oBundles:cname.
- /* IF lDebug THEN MESSAGE 'Bundle : ' cBundleName.*/
-
- cString = oBundles:cTypeID NO-ERROR.
- lRetVal = TRUE.
- iArt = 0.
- lFound = FALSE.
-
- ASSIGN
- cEANKGeb = ''
- cEANVGeb = ''
- cEANGGeb = ''.
- DO WHILE TRUE:
- IF oBundles:cGTIN = '' THEN
- DO:
- iArt = 2.
- cEANKGeb = oBundles:crootBundleGTIN.
- cEANVGeb = oBundles:cParentBundleGTIN.
- iGGebMe = oBundles:iQuantity.
- LEAVE.
- END.
-
- IF oBundles:cParentBundleGTIN = '' AND
- oBundles:crootBundleGTIN = '' THEN
- DO:
- iArt = 0.
- cEANKGeb = oBundles:cGTIN.
- iKGebMe = oBundles:fQuantityLiter * 100.
- LEAVE.
- END.
-
- cType = oBundles:cTypeID.
- IF cType BEGINS 'CON.BEV.PA' THEN
- DO:
- iArt = 2.
- cEANKGeb = oBundles:crootBundleGTIN.
- cEANVGeb = oBundles:cParentBundleGTIN.
- cEANGGeb = oBundles:cGTIN.
- iGGebMe = oBundles:iQuantity.
- LEAVE.
- END.
-
- iArt = 1.
- cEANKGeb = oBundles:crootBundleGTIN.
- cEANVGeb = oBundles:cGTIN.
- iVGebMe = oBundles:iQuantity.
- LEAVE.
- END.
-
- EXTENT(cStringEx) = ?.
- cString = ''.
- IF oBundles:oSuppliersGln:Count > 0 THEN
- DO:
- EXTENT(cStringEx) = oBundles:oSuppliersGln:Count.
- cStringEx = oBundles:oSuppliersGln:ToArray().
- DO ii = 1 TO oBundles:oSuppliersGln:Count:
- cString = cString
- + (IF cString = '' THEN '' ELSE ',')
- + cStringEx[ii].
- END.
- END.
-
- cHerstArtnr = oBundles:cManufacturerArtNo.
- IF cHerstArtnr = ? THEN cHerstArtnr = ''.
-
- IF iArt = 0 THEN
- DO:
- CREATE ttDDArtikel.
- ASSIGN
- ttDDArtikel.iArt = iArt
- ttDDArtikel.Bezeichnung = oBundles:cName
- ttDDArtikel.HerstArtnr = cHerstArtnr
- ttDDArtikel.LieferGLN = cString
- ttDDArtikel.Gebinde = oBundles:cTypeID
- ttDDArtikel.lFound = FALSE
- ttDDArtikel.EANKGeb = cEANKGeb
- ttDDArtikel.EANVGeb = ''
- ttDDArtikel.EANGGeb = ''
- ttDDArtikel.KGebMe = iKGebMe
- ttDDArtikel.KGebCd = oBundles:cTypeID
- ttDDArtikel.lAktiv = lAktiv
- ttDDArtikel.lVerfuegbar = lVerfuegbar
- ttDDArtikel.lAnzeigen = TRUE.
- IF oBundles:cTypeID = 'CON.BEV.BA.PR' OR
- oBundles:cTypeID = 'CON.BEV.BA.PO' THEN
- DO:
- iArt = 1.
- iVGebMe = iKGebMe / 100.
- iKGebMe = 100.
- ttDDArtikel.KGebMe = iKGebMe.
- END.
-
- END.
- IF iArt = 1 THEN
- DO:
- nInhalte = 0.
- i1 = 0.
- DO ii = 1 TO NUM-ENTRIES (oBundles:cName, ' '):
- cString = ENTRY(ii, oBundles:cName, ' ').
- nWert = DECIMAL(cString) NO-ERROR.
- IF ERROR-STATUS:ERROR THEN NEXT.
- IF nWert = 0 OR
- nWert = ? THEN NEXT.
- i1 = i1 + 1.
- nInhalte[i1] = nWert.
- END.
- IF i1 > 2 THEN DO:
- MESSAGE 'Produkt = ' STRING(oBundles:cName) '-' nInhalte[01] '-' nInhalte[02]
- VIEW-AS ALERT-BOX.
- iVGebMe = nInhalte[01] * nInhalte[02].
- END.
- CREATE ttDDArtikel.
- ASSIGN
- ttDDArtikel.iArt = iArt
- ttDDArtikel.Bezeichnung = oBundles:cName
- ttDDArtikel.HerstArtnr = cHerstArtnr
- ttDDArtikel.LieferGLN = cString
- ttDDArtikel.Gebinde = oBundles:cTypeID
- ttDDArtikel.lFound = FALSE
- ttDDArtikel.EANKGeb = cEANKGeb
- ttDDArtikel.EANVGeb = cEANVGeb
- ttDDArtikel.EANGGeb = ''
- ttDDArtikel.VGebMe = iVGebMe
- ttDDArtikel.VGebCd = oBundles:cTypeID
- ttDDArtikel.lAktiv = lAktiv
- ttDDArtikel.lVerfuegbar = lVerfuegbar
- ttDDArtikel.lAnzeigen = TRUE.
- END.
- IF iArt = 2 THEN
- DO:
- CREATE ttDDArtikel.
- ASSIGN
- ttDDArtikel.iArt = iArt
- ttDDArtikel.Bezeichnung = oBundles:cName
- ttDDArtikel.HerstArtnr = cHerstArtnr
- ttDDArtikel.LieferGLN = cString
- ttDDArtikel.Gebinde = oBundles:cTypeID
- ttDDArtikel.lFound = FALSE
- ttDDArtikel.EANKGeb = cEANKGeb
- ttDDArtikel.EANVGeb = cEANVGeb
- ttDDArtikel.EANGGeb = cEANGGeb
- ttDDArtikel.GGebMe = iGGebMe
- ttDDArtikel.GGebCd = oBundles:cTypeID
- ttDDArtikel.lAktiv = lAktiv
- ttDDArtikel.lVerfuegbar = lVerfuegbar
- ttDDArtikel.lAnzeigen = TRUE.
- END.
- END.
-
- END.
|