| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329 |
- /*------------------------------------------------------------------------
- File : digitaldrinkartikelexport.p
- Purpose :
- Syntax :
- Description :
- Author(s) : walter.riechsteiner
- Created : Thu Dec 17 06:48:29 CET 2020
- Notes :
- ----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- USING OpenEdge.Core.Assert FROM PROPATH.
- 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.ContentDetails 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.incl.Language FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.incl.Type FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.control.ArtikelstammExportRequest FROM PROPATH.
- USING src.ch.adprime.api.digitaldrink.control.ArtikelstammExportResponse 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 oContentDetails AS ContentDetails 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 cStringEx AS CHARACTER NO-UNDO EXTENT.
- DEFINE VARIABLE cType AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAnzProdukte AS INTEGER NO-UNDO.
- DEFINE VARIABLE lRetVal 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.
- { ttinhaltsstoffe.i }
- DEFINE TEMP-TABLE tCharList
- FIELD cFeld AS CHARACTER
- .
- DEFINE INPUT PARAMETER ipcGlnNr AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER ipcGtinNr AS CHARACTER NO-UNDO.
-
- DEFINE OUTPUT PARAMETER TABLE FOR tinhalt.
- /* ******************** 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().
- IF ipcGlnNr <> '' THEN oProducts:cManufacturerGLN = ipcGlnNr.
- oBundles = NEW Bundle().
- oBundles:cGTIN =ipcGtinNr.
- oFilters = NEW Filter(INPUT oProducts, INPUT oBundles).
- MESSAGE ipcGlnNr '-' ipcGtinNr
- VIEW-AS ALERT-BOX.
-
- oParameters = NEW Parameter().
- oParameters:cClientId = cClientId.
- oParameters:cClientName = cClientName.
- oParameters:lContentMappings = TRUE.
- oParameters:eLanguage = Language:de.
- oParameters:oFilters = oFilters.
- /*Assert:Equals(TRUE, oDigitalDrinkHandler:getArtikelStammExport(INPUT cClientName, INPUT TYPE:EXP001, INPUT oParameters, OUTPUT opErrorMessage, OUTPUT oProductData)).*/
- oDigitalDrinkHandler:getArtikelStammExport(INPUT cClientName, INPUT TYPE:EXP001, INPUT oParameters, OUTPUT opErrorMessage, OUTPUT oProductData).
- 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().
- DO WHILE oProductsIterator:HasNext():
- oProducts = CAST(oProductsIterator:Next(), Product).
-
- oTrustIterator = oProducts:oTrustLevelList:ListIterator().
-
- /* ------------------------------------------------------------------ */
- /* Prüfung auf Freigegeben (Produzent oder DigitalDrink) */
- /* ------------------------------------------------------------------ */
- lRetVal = FALSE.
- DO WHILE oTrustIterator:HasNext():
- oTrust = CAST(oTrustIterator:NEXT(), TrustLevel ).
- 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.*/
- /* ------------------------------------------------------------------ */
- /* Allergiestoffe */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- EXTENT(cStringEx) = ?.
- cStringEx = oContent:oallergenic:ToArray().
- DO ii = 1 TO oContent:oallergenic:Count:
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = 'allergenic'
- tInhalt.cStoff = cStringEx[ii].
- END.
-
- /* ------------------------------------------------------------------ */
- /* animalSubstances */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- IF oContent:oAnimalSubstances:Count <> ? AND
- oContent:oAnimalSubstances:Count <> 0 THEN
- DO:
- EXTENT(cStringEx) = ?.
- cStringEx = oContent:oAnimalSubstances:ToArray().
- DO ii = 1 TO oContent:oAnimalSubstances:Count:
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = 'animalSubstances'
- tInhalt.cStoff = cStringEx[ii].
- END.
- END.
-
- /* ------------------------------------------------------------------ */
- /* vegetable */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- IF oContent:oVegetables:Count <> ? AND
- oContent:oVegetables:Count <> 0 THEN
- DO:
- EXTENT(cStringEx) = ?.
- cStringEx = oContent:oVegetables:ToArray().
- DO ii = 1 TO oContent:oVegetables:Count:
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = 'vegetables'
- tInhalt.cStoff = cStringEx[ii].
- END.
- END.
-
- /* ------------------------------------------------------------------ */
- /* fruits */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- IF oContent:oFruits:Count <> ? AND
- oContent:oFruits:Count <> 0 THEN
- DO:
- EXTENT(cStringEx) = ?.
- cStringEx = oContent:oFruits:ToArray().
- DO ii = 1 TO oContent:oFruits:Count:
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = 'Fruits'
- tInhalt.cStoff = cStringEx[ii].
- END.
- END.
-
- /* ------------------------------------------------------------------ */
- /* fruits */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- IF oContent:oDyes:Count <> ? AND
- oContent:oDyes:Count <> 0 THEN
- DO:
- EXTENT(cStringEx) = ?.
- cStringEx = oContent:oDyes:ToArray().
- DO ii = 1 TO oContent:oDyes:Count:
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = 'Dyes'
- tInhalt.cStoff = cStringEx[ii].
- END.
- END.
-
- /* ------------------------------------------------------------------ */
- /* Preservative */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- IF oContent:oPreservative:Count <> ? AND
- oContent:oPreservative:Count <> 0 THEN
- DO:
- EXTENT(cStringEx) = ?.
- cStringEx = oContent:oPreservative:ToArray().
- DO ii = 1 TO oContent:oPreservative:Count:
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = 'Preservative'
- tInhalt.cStoff = cStringEx[ii].
- END.
- END.
-
- /* ------------------------------------------------------------------ */
- /* Emulsifiers */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- IF oContent:oEmulsifiers:Count <> ? AND
- oContent:oEmulsifiers:Count <> 0 THEN
- DO:
- EXTENT(cStringEx) = ?.
- cStringEx = oContent:oEmulsifiers:ToArray().
- DO ii = 1 TO oContent:oEmulsifiers:Count:
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = 'Emulsifiers'
- tInhalt.cStoff = cStringEx[ii].
- END.
- END.
-
- /* ------------------------------------------------------------------ */
- /* Sweeteners */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- IF oContent:oSweeteners:Count <> ? AND
- oContent:oSweeteners:Count <> 0 THEN
- DO:
- EXTENT(cStringEx) = ?.
- cStringEx = oContent:oSweeteners:ToArray().
- DO ii = 1 TO oContent:oSweeteners:Count:
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = 'Sweeteners'
- tInhalt.cStoff = cStringEx[ii].
- END.
- END.
-
- /* ------------------------------------------------------------------ */
- /* nutritionInfo */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- oContentIterator = oContent:oNutritionInfoList:ListIterator().
-
- DO WHILE oContentIterator:HasNext():
- oContentDetails = CAST(oContentIterator:Next(), ContentDetails ).
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = oContentDetails:cName
- tInhalt.cStoff = oContentDetails:cDescription
- tInhalt.nWert = oContentDetails:fValue.
- END.
-
- /* ------------------------------------------------------------------ */
- /* vitamins */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- oContentIterator = oContent:oVitaminList:ListIterator().
-
- DO WHILE oContentIterator:HasNext():
- oContentDetails = CAST(oContentIterator:Next(), ContentDetails ).
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = oContentDetails:cName
- tInhalt.cStoff = oContentDetails:cDescription
- tInhalt.nWert = oContentDetails:fValue.
- END.
-
- /* ------------------------------------------------------------------ */
- /* acidifier */
- /* ------------------------------------------------------------------ */
- oContent = oProducts:oContent.
- oContentIterator = oContent:oAcidifierList:ListIterator().
-
- DO WHILE oContentIterator:HasNext():
- oContentDetails = CAST(oContentIterator:Next(), ContentDetails ).
- CREATE tInhalt.
- ASSIGN
- tInhalt.cType = oContentDetails:cName
- tInhalt.cStoff = oContentDetails:cDescription
- tInhalt.nWert = oContentDetails:fValue.
- END.
-
- END.
|