| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- /*------------------------------------------------------------------------
- File : ybmProducts.p
- Purpose :
- Syntax :
- Description :
- Author(s) : walter.riechsteiner
- Created : Tue Apr 06 15:28:25 CEST 2021
- Notes :
- ----------------------------------------------------------------------*/
- USING OpenEdge.Core.Collections.IListIterator FROM PROPATH.
- USING OpenEdge.Core.Collections.List FROM PROPATH.
- USING src.ch.adprime.api.yourbarmate.YourBarMateHandler FROM PROPATH.
- USING src.ch.adprime.api.yourbarmate.beans.Category FROM PROPATH.
- /*USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH. */
- /* *************************** Definitions ************************** */
- DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO INIT '1000'.
- DEFINE VARIABLE cTestLive AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cParameter AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cLogFile AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cProgramm AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cAnmeldung AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO.
- DEFINE VARIABLE oYourBarMateHandler AS YourBarMateHandler NO-UNDO.
- DEFINE VARIABLE oCategory AS Category NO-UNDO.
- DEFINE VARIABLE oCategories AS List NO-UNDO.
-
- DEFINE VARIABLE opErrorMessage AS CHARACTER NO-UNDO.
- DEFINE VARIABLE oBundleListIterator AS IListIterator NO-UNDO.
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
- DEFINE VARIABLE cId AS CHARACTER NO-UNDO.
- { propertiesYBM.i }
- DEFINE TEMP-TABLE tWarenGrp LIKE WarenGrp
- FIELD lOK AS LOGICAL
- FIELD lKGebinde AS LOGICAL
- .
- { funktionen.i }
- /* ******************** Preprocessor Definitions ******************** */
- /* ************************ Function Prototypes ********************** */
- FUNCTION loeschenWarengruppe RETURNS CHARACTER
- (ipiWgr AS INTEGER) FORWARD.
- /* *************************** Main Block *************************** */
- cAnmeldung = SUBSTITUTE ('&1&4&2&4&3', 'SYSTEM', 'SYSTEM', '1000', CHR(01) ). /* Benutzer, Passwort, Firma */
- RUN ANMELDUNG ( cAnmeldung ) NO-ERROR.
- cParameter = SESSION:PARAMETER.
- cParameter = REPLACE(cParameter, ',', ';').
- IF cParameter = '' OR
- cParameter = ? THEN cParameter = '1000;TEST'.
- DO ii = 1 TO NUM-ENTRIES(cParameter, ';'):
- CASE ii.
- WHEN 1 THEN
- cFirma = ENTRY(ii, cParameter, ';').
- WHEN 2 THEN
- cTestLive = ENTRY(ii, cParameter, ';').
- END CASE.
- END.
- cInstallation = DYNAMIC-FUNCTION ('getInstallation':U).
- cProgramm = ENTRY(1, THIS-PROCEDURE:NAME, '.').
- IF R-INDEX(cProgramm, '\') > 0 OR
- R-INDEX(cProgramm, '/') > 0 THEN
- DO:
- cProgramm = REPLACE(cProgramm, '\', '/').
- ii = R-INDEX(cProgramm, '/') + 1.
- cProgramm = TRIM(SUBSTRING(cProgramm,ii)).
- END.
- cLogFile = DYNAMIC-FUNCTION ('getLogFilePfad':U) + cProgramm + '_' + cTestLive + '.log'.
- RUN writeLogFile.p ( cProgramm, cLogFile, SUBSTITUTE('Start KategorienUpdate &1', cTestLive) ).
- CASE cTestLive:
- WHEN 'LIVE' THEN
- DO:
- oYourBarMateHandler = NEW YourBarMateHandler().
- oYourBarMateHandler:cURL = cURI_Categories.
- oYourBarMateHandler:cApiKey = cApiName.
- oYourBarMateHandler:cApiKeyValue = cApiKey.
- oYourBarMateHandler:cServerNameIndicator = cServerNameIndicator.
- oYourBarMateHandler:lDebug = FALSE.
- END.
- WHEN 'TEST' THEN
- DO:
- oYourBarMateHandler = NEW YourBarMateHandler().
- oYourBarMateHandler:cURL = cURI_CategoriesDev.
- oYourBarMateHandler:cApiKey = cApiName.
- oYourBarMateHandler:cApiKeyValue = cApiKeyDev.
- oYourBarMateHandler:cServerNameIndicator = cServerNameIndicatorDev.
- oYourBarMateHandler:lDebug = TRUE.
- END.
- END CASE.
- /* ---------------------------------------------------------- */
- /* Bereits vorhandene Warengruppen abrufen */
- /* ---------------------------------------------------------- */
- RUN ybmgetCategories.r ( OUTPUT TABLE tWarenGrp ).
- ii = 0.
- FOR EACH tWarenGrp:
- tWarenGrp.lOK = TRUE.
- ii = ii + 1.
- END.
- RUN writeLogFile.p ( cProgramm, cLogFile, SUBSTITUTE('Anzahl Kategorien bei YBM &1', ii) ).
- /* ---------------------------------------------------------- */
- /* Warengruppen bei YBM mit Warengruppen ERP abgleichen */
- /* ---------------------------------------------------------- */
- ii = 0.
- i1 = 0.
- FOR EACH tWarenGrp NO-LOCK:
-
- FIND FIRST WarenGrp NO-LOCK
- WHERE WarenGrp.Firma = cFirma
- AND WarenGrp.Wgr = tWarenGrp.Wgr NO-ERROR.
-
- IF NOT AVAILABLE WarenGrp THEN
- DO:
- ii = ii + 1.
- tWarenGrp.lOK = FALSE.
- opErrorMessage = DYNAMIC-FUNCTION ('loeschenWarengruppe':U, tWarenGrp.Wgr ) NO-ERROR.
- IF opErrorMessage = '' THEN
- DO:
- i1 = i1 + 1.
- NEXT.
- END.
- END.
- IF WarenGrp.lShopB2B OR
- WarenGrp.lShopB2C THEN NEXT.
- ii = ii + 1.
- tWarenGrp.lOK = FALSE.
- opErrorMessage = DYNAMIC-FUNCTION ('loeschenWarengruppe':U, tWarenGrp.Wgr ) NO-ERROR.
- IF opErrorMessage = '' THEN
- DO:
- i1 = i1 + 1.
- NEXT.
- END.
- END.
- IF ii > 0 THEN
- DO:
- opErrorMessage = SUBSTITUTE('&1 Warengruppe(n) von &2 zu löschenden Warengruppe(n) gelöscht', i1, ii).
- RUN writeLogFile.p ( cProgramm, cLogFile, opErrorMessage ).
- END.
- /* ---------------------------------------------------------- */
- /* Warengruppen / Kategorien senden */
- /* ---------------------------------------------------------- */
- oCategories = NEW List().
- ii = 0.
- FOR EACH WarenGrp NO-LOCK
- WHERE WarenGrp.Firma = cFirma
- /* AND (WarenGrp.lShopB2B = TRUE*/
- /* OR WarenGrp.lShopB2C = TRUE)*/
- :
-
- IF NOT WarenGrp.lShopB2B AND
- NOT WarenGrp.lShopB2C THEN
- DO:
- FIND FIRST tWarenGrp
- WHERE tWarenGrp.Wgr = WarenGrp.Wgr NO-ERROR.
- IF NOT AVAILABLE (tWarenGrp) THEN NEXT.
- END.
-
- oCategory = NEW Category ().
-
- oCategory:cId = STRING(WarenGrp.Wgr,'999').
- oCategory:cName = WarenGrp.Bez1.
- cString = oCategory:ToString().
-
- lRetVal = oCategories:Add(oCategory).
- ii = ii + 1.
- RUN writeLogFile.p (cProgramm, cLogfile, SUBSTITUTE('&1 - &2 - &3', ii, lRetVal, cString)).
- /* lRetVal = oYourBarMateHandler:putCategories (INPUT oCategories, OUTPUT opErrorMessage ). */
- /* RUN writeLogFile.p ( cProgramm, cLogFile, SUBSTITUTE('Kategorie &1 / &2 übertragen mit RetVal = &3 und ErrorMessage = &4', STRING(WarenGrp.Wgr,'999'), WarenGrp.Bez1, lRetVal, opErrorMessage) ).*/
- END.
- cString = oCategories:ToString().
- lRetVal = oYourBarMateHandler:putCategories (INPUT oCategories, OUTPUT opErrorMessage ).
- RUN writeLogFile.p (cProgramm, cLogfile, SUBSTITUTE('&1 - &2 - &3', ii, lRetVal, cString)).
- RUN writeLogFile.p ( cProgramm, cLogFile, SUBSTITUTE('&1 Kategorien übertragen mit RetVal = &2 und ErrorMessage = &3', ii, lRetVal, opErrorMessage) ).
- QUIT.
- /*FINALLY: */
- /* IF VALID-OBJECT (oCategory) THEN DELETE OBJECT oCategory .*/
- /* IF VALID-OBJECT (oCategories) THEN DELETE OBJECT oCategories .*/
- /* IF VALID-OBJECT (oYourBarMateHandler) THEN DELETE OBJECT oYourBarMateHandler.*/
- /*END FINALLY. */
- /* ************************ Function Implementations ***************** */
- FUNCTION loeschenWarengruppe RETURNS CHARACTER
- ( ipiWgr AS INTEGER ):
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
- lRetVal = oYourBarMateHandler:deleteCategory(INPUT ipiWgr, OUTPUT cMessage ) NO-ERROR.
-
- IF lRetVal THEN
- DO:
- RUN writeLogFile.p ( cProgramm, cLogFile, cMessage ).
- cMessage = ''.
- END.
-
- RETURN cMessage.
-
- END FUNCTION.
|