| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- /*------------------------------------------------------------------------
- File : anmeldungImpl
- Purpose :
- Syntax :
- Description :
- Author(s) : walter.riechsteiner
- Created : Wed May 29 21:02:53 CEST 2024
- Notes :
- ----------------------------------------------------------------------*/
- BLOCK-LEVEL ON ERROR UNDO, THROW.
- USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH.
- USING OpenEdge.Net.HTTP.StatusCodeEnum FROM PROPATH.
- USING OpenEdge.Web.IWebRequest FROM PROPATH.
- USING OpenEdge.Web.WebHandler FROM PROPATH.
- USING OpenEdge.Web.WebResponseWriter FROM PROPATH.
- USING Progress.Json.ObjectModel.JsonObject FROM PROPATH.
- USING utilities.utilitiesHandler FROM PROPATH.
- USING src.ch.adprime.gemis.WebHandlerUtilities FROM PROPATH.
- CLASS anmeldungImpl INHERITS WebHandler:
-
- DEFINE VARIABLE cAktion AS CHARACTER NO-UNDO.
-
- DEFINE VARIABLE outilitiesHandler AS utilitiesHandler.
-
- DEFINE TEMP-TABLE ttMandant SERIALIZE-NAME 'mandanten'
- FIELD mandant AS CHARACTER
- FIELD bezeichnung AS CHARACTER
- FIELD choose AS CHARACTER
- .
- { ttInput.i }
- METHOD OVERRIDE PROTECTED INTEGER HandlePost(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
- DEFINE VARIABLE oWriter AS WebResponseWriter NO-UNDO.
- DEFINE VARIABLE oJsonData AS JsonObject NO-UNDO.
- DEFINE VARIABLE lcJsonString AS LONGCHAR NO-UNDO.
-
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
-
- DEFINE VARIABLE hbttMandant AS HANDLE NO-UNDO.
- DEFINE VARIABLE cGetHtml AS CHARACTER NO-UNDO.
- DEFINE VARIABLE lcHTML AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE cDatei AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE lAdmin AS LOGICAL NO-UNDO.
- DEFINE VARIABLE oInput AS JsonObject NO-UNDO.
- MESSAGE "Entering HandlePost" VIEW-AS ALERT-BOX.
-
- lRetVal = WebHandlerUtilities:getJsonFromRequest(INPUT poRequest, OUTPUT oJsonData) NO-ERROR.
- oJsonData:WRITE(lcJsonString, FALSE).
- //
- // Input-Daten (Steuersatz) aus JsonObject lesen und in ttInput füllen
- //
- EMPTY TEMP-TABLE ttInput .
- hbttInput = TEMP-TABLE ttInput:DEFAULT-BUFFER-HANDLE.
- oInput = NEW JsonObject().
- oInput = oJsonData:GetJsonObject('ttInput').
- lRetVal = hbttInput:READ-JSON ('JsonObject', oInput).
-
- FIND FIRST ttInput.
- cAktion = ttInput.action.
-
- outilitiesHandler = NEW utilitiesHandler().
- DO WHILE lRetVal:
- hbttInput = TEMP-TABLE ttInput :DEFAULT-BUFFER-HANDLE.
- hbttMandant = TEMP-TABLE ttMandant :DEFAULT-BUFFER-HANDLE.
-
- MESSAGE 'Inputdaten gelesen mit returncode ' lRetVal.
- IF NOT lRetVal THEN LEAVE.
-
- FIND FIRST ttInput.
-
- IF ttInput.action = 'first' THEN
- DO:
- EMPTY TEMP-TABLE ttMandant.
- FOR EACH Mandant NO-LOCK
- WHERE Mandant.Zustand = TRUE:
- CREATE ttMandant.
- ASSIGN
- ttMandant.Mandant = Mandant.Firma
- ttMandant.Bezeichnung = Mandant.Name.
- /* ttMandant.choose = (IF Mandant = '2000' THEN '1' ELSE '0').*/
- END.
-
- oJsonData = NEW JsonObject().
- hbttMandant:WRITE-JSON('JsonObject', oJsonData).
- oJsonData:WRITE(lcJsonString, TRUE).
- END.
-
- IF ttInput.action = 'anmelden' THEN
- DO:
- oJsonData:WRITE(lcJsonString, FALSE).
-
- FIND FIRST ttInput.
-
- IF INDEX(ttInput.benutzer, '_Admin') > 0 THEN
- DO:
- ttInput.benutzer = REPLACE(ttInput.benutzer, '_Admin', '').
- lAdmin = TRUE.
- END.
- IF NOT lAdmin THEN
- DO:
- FIND Benutzer NO-LOCK
- WHERE Benutzer.Firma = ttInput.mandant
- AND Benutzer.Benutzer = ttInput.benutzer
- AND Benutzer.Kennwort = ttInput.password NO-ERROR.
- END.
- ELSE
- DO:
- FIND FIRST Benutzer NO-LOCK
- WHERE Benutzer.Firma = ttInput.mandant
- AND Benutzer.Benutzer = ttInput.benutzer NO-ERROR.
- END.
- IF NOT AVAILABLE (Benutzer) THEN
- DO:
- outilitiesHandler:getErrorMessage(INPUT '1990', INPUT 1, INPUT '', OUTPUT lcJsonString).
-
- oResponse = NEW OpenEdge.Web.WebResponse().
- oResponse:StatusCode = INTEGER(StatusCodeEnum:OK).
- oResponse:ContentType = "application/json;charset=utf-8".
- oWriter = NEW WebResponseWriter(oResponse).
- oWriter:Open().
- MESSAGE 'lcString Rückgabe: ' + STRING(lcJsonString) VIEW-AS ALERT-BOX.
- oWriter:Write(lcJsonString).
- oWriter:Close().
- RETURN -1.
- END.
-
- ttInput.action = 'return'.
- ttInput.link = 'gemis_start.html'.
- ttInput.sprcd = STRING(Benutzer.Sprcd).
-
- lcJsonString = ''.
- DO ii = 1 TO hbttInput:NUM-FIELDS:
- lcJsonString = lcJsonString
- + (IF lcJsonString = '' THEN '' ELSE ', ')
- + QUOTER(hbttInput:BUFFER-FIELD(ii):NAME)
- + ': '
- + QUOTER(hbttInput:BUFFER-FIELD(ii):BUFFER-VALUE).
- END.
- lcJsonString = CHR(123) + lcJsonString + chr(125).
- MESSAGE 'Return-Daten nach füllen aus ttInput ' STRING(lcJsonString).
- END.
- LEAVE.
- END.
- oResponse = NEW OpenEdge.Web.WebResponse().
- oResponse:StatusCode = INTEGER(StatusCodeEnum:OK).
- oResponse:ContentType = "application/json;charset=utf-8".
- oWriter = NEW WebResponseWriter(oResponse).
- oWriter:Open().
- MESSAGE 'lcString Rückgabe: ' + STRING(lcJsonString) VIEW-AS ALERT-BOX.
- oWriter:Write(lcJsonString).
- oWriter:Close().
- MESSAGE "Exiting HandlePost" VIEW-AS ALERT-BOX.
- CATCH e AS Progress.Lang.Error:
- MESSAGE "Exception occurred: " + e:GetMessage(1) VIEW-AS ALERT-BOX ERROR BUTTONS OK.
- RETURN -1.
- END CATCH.
-
- END METHOD.
- METHOD OVERRIDE PROTECTED INTEGER HandleNotAllowedMethod(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE result AS INTEGER NO-UNDO.
- MESSAGE "HandleNotAllowedMethod called" VIEW-AS ALERT-BOX.
- RETURN result.
- END METHOD.
- METHOD OVERRIDE PROTECTED INTEGER HandleNotImplemented(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE result AS INTEGER NO-UNDO.
- MESSAGE "HandleNotImplemented called" VIEW-AS ALERT-BOX.
- RETURN result.
- END METHOD.
- END CLASS.
|