anmeldungImpl.cls 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. /*------------------------------------------------------------------------
  2. File : anmeldungImpl
  3. Purpose :
  4. Syntax :
  5. Description :
  6. Author(s) : walter.riechsteiner
  7. Created : Wed May 29 21:02:53 CEST 2024
  8. Notes :
  9. ----------------------------------------------------------------------*/
  10. BLOCK-LEVEL ON ERROR UNDO, THROW.
  11. USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH.
  12. USING OpenEdge.Net.HTTP.StatusCodeEnum FROM PROPATH.
  13. USING OpenEdge.Web.IWebRequest FROM PROPATH.
  14. USING OpenEdge.Web.WebHandler FROM PROPATH.
  15. USING OpenEdge.Web.WebResponseWriter FROM PROPATH.
  16. USING Progress.Json.ObjectModel.JsonObject FROM PROPATH.
  17. USING utilities.utilitiesHandler FROM PROPATH.
  18. USING src.ch.adprime.gemis.WebHandlerUtilities FROM PROPATH.
  19. CLASS anmeldungImpl INHERITS WebHandler:
  20. DEFINE VARIABLE cAktion AS CHARACTER NO-UNDO.
  21. DEFINE VARIABLE outilitiesHandler AS utilitiesHandler.
  22. DEFINE TEMP-TABLE ttMandant SERIALIZE-NAME 'mandanten'
  23. FIELD mandant AS CHARACTER
  24. FIELD bezeichnung AS CHARACTER
  25. FIELD choose AS CHARACTER
  26. .
  27. { ttInput.i }
  28. METHOD OVERRIDE PROTECTED INTEGER HandlePost(INPUT poRequest AS IWebRequest):
  29. DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
  30. DEFINE VARIABLE oWriter AS WebResponseWriter NO-UNDO.
  31. DEFINE VARIABLE oJsonData AS JsonObject NO-UNDO.
  32. DEFINE VARIABLE lcJsonString AS LONGCHAR NO-UNDO.
  33. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
  34. DEFINE VARIABLE hbttMandant AS HANDLE NO-UNDO.
  35. DEFINE VARIABLE cGetHtml AS CHARACTER NO-UNDO.
  36. DEFINE VARIABLE lcHTML AS LONGCHAR NO-UNDO.
  37. DEFINE VARIABLE cDatei AS CHARACTER NO-UNDO.
  38. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  39. DEFINE VARIABLE lAdmin AS LOGICAL NO-UNDO.
  40. DEFINE VARIABLE oInput AS JsonObject NO-UNDO.
  41. MESSAGE "Entering HandlePost" VIEW-AS ALERT-BOX.
  42. lRetVal = WebHandlerUtilities:getJsonFromRequest(INPUT poRequest, OUTPUT oJsonData) NO-ERROR.
  43. oJsonData:WRITE(lcJsonString, FALSE).
  44. //
  45. // Input-Daten (Steuersatz) aus JsonObject lesen und in ttInput füllen
  46. //
  47. EMPTY TEMP-TABLE ttInput .
  48. hbttInput = TEMP-TABLE ttInput:DEFAULT-BUFFER-HANDLE.
  49. oInput = NEW JsonObject().
  50. oInput = oJsonData:GetJsonObject('ttInput').
  51. lRetVal = hbttInput:READ-JSON ('JsonObject', oInput).
  52. FIND FIRST ttInput.
  53. cAktion = ttInput.action.
  54. outilitiesHandler = NEW utilitiesHandler().
  55. DO WHILE lRetVal:
  56. hbttInput = TEMP-TABLE ttInput :DEFAULT-BUFFER-HANDLE.
  57. hbttMandant = TEMP-TABLE ttMandant :DEFAULT-BUFFER-HANDLE.
  58. MESSAGE 'Inputdaten gelesen mit returncode ' lRetVal.
  59. IF NOT lRetVal THEN LEAVE.
  60. FIND FIRST ttInput.
  61. IF ttInput.action = 'first' THEN
  62. DO:
  63. EMPTY TEMP-TABLE ttMandant.
  64. FOR EACH Mandant NO-LOCK
  65. WHERE Mandant.Zustand = TRUE:
  66. CREATE ttMandant.
  67. ASSIGN
  68. ttMandant.Mandant = Mandant.Firma
  69. ttMandant.Bezeichnung = Mandant.Name.
  70. /* ttMandant.choose = (IF Mandant = '2000' THEN '1' ELSE '0').*/
  71. END.
  72. oJsonData = NEW JsonObject().
  73. hbttMandant:WRITE-JSON('JsonObject', oJsonData).
  74. oJsonData:WRITE(lcJsonString, TRUE).
  75. END.
  76. IF ttInput.action = 'anmelden' THEN
  77. DO:
  78. oJsonData:WRITE(lcJsonString, FALSE).
  79. FIND FIRST ttInput.
  80. IF INDEX(ttInput.benutzer, '_Admin') > 0 THEN
  81. DO:
  82. ttInput.benutzer = REPLACE(ttInput.benutzer, '_Admin', '').
  83. lAdmin = TRUE.
  84. END.
  85. IF NOT lAdmin THEN
  86. DO:
  87. FIND Benutzer NO-LOCK
  88. WHERE Benutzer.Firma = ttInput.mandant
  89. AND Benutzer.Benutzer = ttInput.benutzer
  90. AND Benutzer.Kennwort = ttInput.password NO-ERROR.
  91. END.
  92. ELSE
  93. DO:
  94. FIND FIRST Benutzer NO-LOCK
  95. WHERE Benutzer.Firma = ttInput.mandant
  96. AND Benutzer.Benutzer = ttInput.benutzer NO-ERROR.
  97. END.
  98. IF NOT AVAILABLE (Benutzer) THEN
  99. DO:
  100. outilitiesHandler:getErrorMessage(INPUT '1990', INPUT 1, INPUT '', OUTPUT lcJsonString).
  101. oResponse = NEW OpenEdge.Web.WebResponse().
  102. oResponse:StatusCode = INTEGER(StatusCodeEnum:OK).
  103. oResponse:ContentType = "application/json;charset=utf-8".
  104. oWriter = NEW WebResponseWriter(oResponse).
  105. oWriter:Open().
  106. MESSAGE 'lcString Rückgabe: ' + STRING(lcJsonString) VIEW-AS ALERT-BOX.
  107. oWriter:Write(lcJsonString).
  108. oWriter:Close().
  109. RETURN -1.
  110. END.
  111. ttInput.action = 'return'.
  112. ttInput.link = 'gemis_start.html'.
  113. ttInput.sprcd = STRING(Benutzer.Sprcd).
  114. lcJsonString = ''.
  115. DO ii = 1 TO hbttInput:NUM-FIELDS:
  116. lcJsonString = lcJsonString
  117. + (IF lcJsonString = '' THEN '' ELSE ', ')
  118. + QUOTER(hbttInput:BUFFER-FIELD(ii):NAME)
  119. + ': '
  120. + QUOTER(hbttInput:BUFFER-FIELD(ii):BUFFER-VALUE).
  121. END.
  122. lcJsonString = CHR(123) + lcJsonString + chr(125).
  123. MESSAGE 'Return-Daten nach füllen aus ttInput ' STRING(lcJsonString).
  124. END.
  125. LEAVE.
  126. END.
  127. oResponse = NEW OpenEdge.Web.WebResponse().
  128. oResponse:StatusCode = INTEGER(StatusCodeEnum:OK).
  129. oResponse:ContentType = "application/json;charset=utf-8".
  130. oWriter = NEW WebResponseWriter(oResponse).
  131. oWriter:Open().
  132. MESSAGE 'lcString Rückgabe: ' + STRING(lcJsonString) VIEW-AS ALERT-BOX.
  133. oWriter:Write(lcJsonString).
  134. oWriter:Close().
  135. MESSAGE "Exiting HandlePost" VIEW-AS ALERT-BOX.
  136. CATCH e AS Progress.Lang.Error:
  137. MESSAGE "Exception occurred: " + e:GetMessage(1) VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  138. RETURN -1.
  139. END CATCH.
  140. END METHOD.
  141. METHOD OVERRIDE PROTECTED INTEGER HandleNotAllowedMethod(INPUT poRequest AS IWebRequest):
  142. DEFINE VARIABLE result AS INTEGER NO-UNDO.
  143. MESSAGE "HandleNotAllowedMethod called" VIEW-AS ALERT-BOX.
  144. RETURN result.
  145. END METHOD.
  146. METHOD OVERRIDE PROTECTED INTEGER HandleNotImplemented(INPUT poRequest AS IWebRequest):
  147. DEFINE VARIABLE result AS INTEGER NO-UNDO.
  148. MESSAGE "HandleNotImplemented called" VIEW-AS ALERT-BOX.
  149. RETURN result.
  150. END METHOD.
  151. END CLASS.