#include PRGACNTs
#include APPS.TBXWeb
#define RefStartNew "\\\START"
OnPreHTTP()
#define CSPPage ##class(%CSP.Page)
#define TaalDfl $S(sDomVERW="HEIN":"D", sDomVERW="LMC":"F", sDomVERW="SFS":"D", 1:"N")
s:('$D(ClientIP)) ClientIP="192.168.1.97"
;d WL^vhDBG($C(13,10))
New Ref,RefNew,RefArray,tmpRq
Do ophInitLookups^cspBasis.TBX.DecodeURL.tmpDev
// URL --> domain / sDomVERW / sDomKLNr
Set sDomain=$$GetURLDomain^cspBasis.Library
Set sDomCVT="www.tandem-box.com" ; $$TBXDomainCVT^cspBasis.Library(sDomain)
Set lbDomLU=##class(WS.TBX.Order).DomainLookUp(sDomCVT,$LB("VERW","KLNR"))
Set sDomVERW=$LG(lbDomLU,1)
Set sDomKLNr=$LG(lbDomLU,2)
Set Taal=$G(%request.Data("Taal",1),$$$TaalDfl)
Set QS=$G(%request.CgiEnvs("QUERY_STRING"))
Set Ref=$G(%request.Data("REF",1))
Set RefNew=$G(%request.Data("REF",1),$$$RefStartNew) ; Als REF niet meegegeven is, StartNew (dfl) gebruiken
; Convert QueryString to Array: tmpRq(name)=value
Set name=""
For Set name=$O(%request.Data(name)) Quit:(name="") Merge tmpRq(name)=%request.Data(name,1)
Kill tmpRq("CSPToken")
; HRefs to switch Taal
Do ophBuildSwitchTLArray
; Analyse REF
Set Ref=$$ophGetRef^cspBasis.TBX.DecodeURL.tmpDev(Ref) ; Get Ref decrypted
Set:(Ref="")&&($L(RefNew)) Ref=RefNew
If $L(Ref) Do
. Do ophRefToArray^cspBasis.TBX.DecodeURL.tmpDev(Ref,.RefArray)
. Set:($G(RefArray("VERW"))="") RefArray("VERW")=sDomVERW
. Set VERW=RefArray("VERW")
. Set KLNr=$G(RefArray("KLNR"))
. Set wsID=$G(RefArray("WSID"))
. Set sMode=$G(RefArray("MODE"))
Set:($G(VERW)="") VERW=sDomVERW
Set blnNoAccess=0
Set RefOut=Ref
If $G(%request.Data("REF",1))="" Do
. Set VERW=$G(%request.Data("VERW",1))
. Set KLNr=$G(%request.Data("KLNR",1))
. Set wsID=$G(%request.Data("WSID",1))
. Set sMode=$G(%request.Data("MODE",1))
Do
. Set %blnBuildRef=1
. Set DataOpt=$G(%request.Data("DATAOPT",1))
. Set DataOptOut=$$OPTIMADecryptData^cspBasis.TBX.DecodeURL.tmpDev(DataOpt,,$S(VERW="SFS":"SFS", VERW="LMC":"LMC", VERW="MBHO":"MBHO", VERW="HFLB":"HFLB", VERW="KISCH":"KISCH", VERW="RAEM":"RAEM", 1:""))
. Kill %blnBuildRef
If ($G(%request.Data("SUBMIT",1))="Encrypt") Do
. Set blnEncrypt=1
. Set EncRefOut=$$CreateHashedRef^cspBasis.TBX.DecodeURL.tmpDev($LB(KLNr,VERW,wsID,sMode))
. Set RefCheck=VERW_"\"_KLNr_"\"_wsID_"\"_sMode
. Set RefOut=""
. ;If $L($G(%request.Data("DATAOPT",1))) Do
. If $L(DataOpt) Do
.. Set DataOptCheck=DataOpt
.. Set EncDataOptOut=$$OPTIMAEncryptData^cspBasis.TBX.DecodeURL.tmpDev(DataOpt,$S(VERW="SFS":"SFS", VERW="LMC":"LMC", VERW="MBHO":"MBHO", VERW="HFLB":"HFLB", VERW="KISCH":"KISCH", VERW="RAEM":"RAEM", 1:""))
.. ;Set EncDataOptOut=$system.Encryption.Base64Decode($TR(EncDataOptOut,"_-","+="))
. ;New Page,UrlTaal
. Set Page=$G(%request.Data("PAGE",1))
. Set UrlTaal=$G(%request.Data("URLTAAL",1))
. Set UrlOut=$S($L(Page):Page_"?REF="_EncRefOut_$S($L(UrlTaal):"&Taal="_UrlTaal,1:""), 1:"")
;Set UrlOut="Test: "_VERW_" "_KLNr_" "_wsID_" "_sMode
Do ophAddToLog("BUILDREF")
Quit 1
ophAddToLog(OverrideActie)
Do ##class(cspBasis.GAProdTBox).AddToLog($G(OverrideActie,"BUILDREF"),sDomain,,,,$S($G(VERW)="":$G(sDomVERW),1:VERW),Taal,"")
Quit
ophBuildSwitchTLArray
New TL,tmpAr
Merge tmpAr=tmpRq
For TL="N","F","E","D" Do
. If TL=Taal Do Quit
.. Set arSwitchTL(TL)=TL
. ; Else
. Set tmpAr("Taal")=TL
. Set arSwitchTL(TL)=""_TL_""
Quit
// Specific Test Page for testing DataOpt Parameter in URL (for OPTIMA / SFS / MBHO / HFLB)
OnPreHTTPTestDataOpt(TestVERW)
#define CSPPage ##class(%CSP.Page)
s:('$D(ClientIP)) ClientIP="192.168.1.97"
;d WL^vhDBG($C(13,10))
New Ref,RefNew,RefArray,tmpRq,tmpAr,tmpTaal
Set %RemoteIP=$G(%request.CgiEnvs("REMOTE_ADDR"))
Do ophInitLookups^cspBasis.TBX.DecodeURL.tmpDev
New TBXContext,DefaultTaal
Set TBXContext=##class(APPS.TBXWeb.TBXContext).InitFromHttpRequest()
Set sDomain=TBXContext.GeefHttpRequestDomein()
Set sDomCVT=TBXContext.GeefWebDomein()
Set sDomVERW=TBXContext.GeefDomeinVerwerker()
Set sDomKLNr=TBXContext.GeefDomeinKlantNummer()
Set DefaultTaal=TBXContext.GeefDefaultTaal()
Set Taal=$G(%request.Data("Taal",1),DefaultTaal)
Set QS=$G(%request.CgiEnvs("QUERY_STRING"))
Set Ref=$G(%request.Data("REF",1))
Set RefNew=$G(%request.Data("REF",1),$$$RefStartNew) ; Als REF niet meegegeven is, StartNew (dfl) gebruiken
Set blnKeySteps=($G(%request.Data("KeySteps",1),0)=1)
; Convert QueryString to Array: tmpRq(name)=value
Set name=""
For Set name=$O(%request.Data(name)) Quit:(name="") Merge tmpRq(name)=%request.Data(name,1)
Kill tmpRq("CSPToken")
; HRefs to switch Taal
Do ophBuildSwitchTLArray
; Analyse REF
Set Ref=$$ophGetRef^cspBasis.TBX.DecodeURL.tmpDev(Ref) ; Get Ref decrypted
Set:(Ref="")&&($L(RefNew)) Ref=RefNew
If $L(Ref) Do
. Do ophRefToArray^cspBasis.TBX.DecodeURL.tmpDev(Ref,.RefArray)
. Set:($G(RefArray("VERW"))="") RefArray("VERW")=sDomVERW
. Set VERW=RefArray("VERW")
. Set KLNr=$G(RefArray("KLNR"))
. Set wsID=$G(RefArray("WSID"))
. Set sMode=$G(RefArray("MODE"))
Set:($G(VERW)="") VERW=sDomVERW
d WLIP^vhDBG(97,"sDomVERW="_sDomVERW_" VERW="_VERW_" TestVERW="_TestVERW_"")
Set blnNoAccess=0
If 0 Set blnNoAccess=1
If (TestVERW'=sDomVERW) Set blnNoAccess=1
Else If sDomVERW="SFS" Set blnNoAccess=$$$Not($$$AccessTestPageDataOptSFS(%RemoteIP)||($$IsInternIPAdres^cspBasis.Library(%RemoteIP)))
Else If sDomVERW="LMC" Set blnNoAccess=$$$Not($$$AccessTestPageDataOptLMC(%RemoteIP)||($$IsInternIPAdres^cspBasis.Library(%RemoteIP))) || 1 ; blocked for all IP
Else If sDomVERW="MBHO" Set blnNoAccess=$$$Not($$$AccessTestPageDataOptMBHO(%RemoteIP)||($$IsInternIPAdres^cspBasis.Library(%RemoteIP)))
Else If sDomVERW="HFLB" Set blnNoAccess=$$$Not($$$AccessTestPageDataOptHFLB(%RemoteIP)||($$IsInternIPAdres^cspBasis.Library(%RemoteIP)))
Else If sDomVERW="KISCH" Set blnNoAccess=1
Else If sDomVERW="RAEM" Set blnNoAccess=1
Else Set blnNoAccess=1
d WLIP^vhDBG(97,"blnNoAccess="_blnNoAccess_"")
Set RefOut=Ref
If 'blnNoAccess Do
. Set %blnBuildRef=1
. Set DataOpt=$G(%request.Data("DATAOPT",1))
. Set DataOptOut=$$OPTIMADecryptData^cspBasis.TBX.DecodeURL.tmpDev(DataOpt,.tmpAr,$S(sDomVERW="SFS":"SFS", sDomVERW="MBHO":"MBHO", sDomVERW="HFLB":"HFLB", sDomVERW="KISCH":"KISCH", sDomVERW="RAEM":"RAEM", 1:"LMC"))
. Kill %blnBuildRef
Set tmpTaal=$G(tmpAr("Taal"))
Set:(tmpTaal?1(1"N",1"F",1"E",1"D")) Taal=tmpTaal
Merge arDataOpt=tmpAr
If $G(%request.Data("REF",1))="" Do
. Set VERW=$G(%request.Data("VERW",1))
. Set KLNr=$G(%request.Data("KLNR",1))
. Set wsID=$G(%request.Data("WSID",1))
. Set sMode=$G(%request.Data("MODE",1))
d WLIP^vhDBG(97,"blnNoAccess="_blnNoAccess_" DataOptOut="_$G(DataOptOut))
If (sDomVERW="SFS")&&(blnNoAccess) Do Quit 1 ; Block access to this page. Only enable it when requested
. ;Set blnNoAccess=1
. Set msg="TestPage voor SFS is geblokkeerd (/VHISIE/TBX/TestDataOptSFS.csp). "_$$$CRLF_"Toegang enkel mogelijk op aanvraag."_$$$CRLF
. Do ophSendAlertMail^csp.vhisie.TBX.Main.tmpDev(msg)
. Do ophAddToLog("!TESTOPTSFS!")
Else If (sDomVERW="MBHO")&&(blnNoAccess) Do Quit 1 ; Block access to this page. Only enable it when requested
. ;Set blnNoAccess=1
. Set msg="TestPage voor MBHO is geblokkeerd (/VHISIE/TBX/TestDataOptMBHO.csp). "_$$$CRLF_"Toegang enkel mogelijk op aanvraag."_$$$CRLF
. Do ophSendAlertMail^csp.vhisie.TBX.Main.tmpDev(msg)
. Do ophAddToLog("!TESTOPTMBHO!")
Else If (sDomVERW="HFLB")&&(blnNoAccess) Do Quit 1 ; Block access to this page. Only enable it when requested
. ;Set blnNoAccess=1
. Set msg="TestPage voor HFLB is geblokkeerd (/VHISIE/TBX/TestDataOptHFLB.csp). "_$$$CRLF_"Toegang enkel mogelijk op aanvraag."_$$$CRLF
. Do ophSendAlertMail^csp.vhisie.TBX.Main.tmpDev(msg)
. Do ophAddToLog("!TESTOPTHFLB!")
Else If blnNoAccess Do Quit 1 ; Block access to this page. Only enable it when requested
. ;Set blnNoAccess=1
. Set msg="TestPage voor Optima is geblokkeerd (/VHISIE/TBX/TestDataOptLMC.csp). "_$$$CRLF_"Toegang enkel mogelijk op aanvraag."_$$$CRLF
. Do ophSendAlertMail^csp.vhisie.TBX.Main.tmpDev(msg)
. Do ophAddToLog("!TESTOPTIMA!")
If ($G(%request.Data("SUBMIT",1))="Encrypt") Do
. Set blnEncrypt=1
. Set EncRefOut=$$CreateHashedRef^cspBasis.TBX.DecodeURL.tmpDev($LB(KLNr,VERW,wsID,sMode))
. Set RefCheck=VERW_"\"_KLNr_"\"_wsID_"\"_sMode
. Set RefOut=""
. ;If $L($G(%request.Data("DATAOPT",1))) Do
. If $L(DataOpt) Do
.. Set DataOptCheck=DataOpt
.. Set EncDataOptOut=$$OPTIMAEncryptData^cspBasis.TBX.DecodeURL.tmpDev(DataOpt,$S(sDomVERW="SFS":"SFS", sDomVERW="MBHO":"MBHO", sDomVERW="HFLB":"HFLB", sDomVERW="KISCH":"KISCH", sDomVERW="RAEM":"RAEM", 1:"LMC"))
.. ;Set EncDataOptOut=$system.Encryption.Base64Decode($TR(EncDataOptOut,"_-","+="))
.. If blnKeySteps Do ophOPTIMAIntermediates(DataOpt,sDomVERW)
. ;New Page,UrlTaal
. Set Page=$G(%request.Data("PAGE",1))
. Set UrlTaal=$G(%request.Data("URLTAAL",1))
. Set UrlOut=$S($L(Page):Page_"?REF="_EncRefOut_$S($L(UrlTaal):"&Taal="_UrlTaal,1:""), 1:"")
Do ophAddToLog($S(sDomVERW="LMC":"TESTOPTIMA", sDomVERW="SFS":"TESTOPTSFS", sDomVERW="MBHO":"TESTOPTMBHO", sDomVERW="HFLB":"TESTOPTHFLB", sDomVERW="KISCH":"TESTOPTKISCH", sDomVERW="RAEM":"TESTOPTRAEM", 1:"TESTDATAOPT"))
Quit 1
ophOPTIMAIntermediates(Data,sDomVERW)
New OptimaKey,encData,Step1,Step2,Step3,Step4,Step2Hex
Quit:($G(Data)="") ""
Set OptimaKey=##class(APPS.TBXWeb.TBXContext).%New("").GeefDataOptKeyVoorDomVerwerker(sDomVERW)
Set:(OptimaKey="") OptimaKey=ERROR ; Trigger error
Set Step1=Data
Set Step2=$system.Encryption.AESEncode(Step1,OptimaKey)
Set Step3=$TR($system.Encryption.Base64Encode(Step2),$$$CRLF,"")
Set Step4=$TR($TR(Step3,"+","_"),"=","-")
Set Step2Hex=$$ophCVTHex(Step2)
Set arStepsOPT(1)=Step1
Set arStepsOPT(2)=Step2 Set arStepsOPT("2Hex")=Step2Hex
Set arStepsOPT(3)=Step3
Set arStepsOPT(4)=Step4
Quit
ophCVTHex(str,Sep)
New strH,i
Set Sep=$G(Sep," ")
Set strH=""
For i=1:1:$L(str) Set $P(strH,Sep,i)=$ZHEX($ASCII($E(str,i)))
Quit strH
OnPreHTTPFixOptima()
#define CSPPage ##class(%CSP.Page)
#define TaalDfl "F"
s:('$D(ClientIP)) ClientIP="192.168.1.97"
;d WL^vhDBG($C(13,10))
New Ref,RefNew,RefArray,tmpRq,tmpAr,tmpTaal,TBXContext
Set %RemoteIP=$G(%request.CgiEnvs("REMOTE_ADDR"))
Do ophInitLookups^cspBasis.TBX.DecodeURL.tmpDev
// URL --> domain / sDomVERW / sDomKLNr
Set sDomain=$$GetURLDomain^cspBasis.Library
Set sDomCVT="www.optima-tbx.fr" ; $$TBXDomainCVT^cspBasis.Library(sDomain)
Set TBXContext=##class(APPS.TBXWeb.TBXContext).%New(sDomCVT,"")
Set lbDomLU=##class(WS.TBX.Order).DomainLookUp(sDomCVT,$LB("VERW","KLNR"))
Set sDomVERW=$LG(lbDomLU,1)
Set sDomKLNr=$LG(lbDomLU,2)
Set Taal=$G(%request.Data("Taal",1),$$$TaalDfl)
Set QS=$G(%request.CgiEnvs("QUERY_STRING"))
Set Ref=$G(%request.Data("REF",1))
Set EncRef=Ref
; Analyse REF
Set Ref=$$ophGetRef^cspBasis.TBX.DecodeURL.tmpDev(Ref) ; Get Ref decrypted
If $L(Ref) Do
. Do ophRefToArray^cspBasis.TBX.DecodeURL.tmpDev(Ref,.RefArray)
. Set:($G(RefArray("VERW"))="") RefArray("VERW")=sDomVERW
. Set VERW=RefArray("VERW")
. Set KLNr=$G(RefArray("KLNR"))
. Set wsID=$G(RefArray("WSID"))
. Set sMode=$G(RefArray("MODE"))
Set blnNoAccess=$$$Not(($G(VERW)="LMC")&&($G(sMode)="START"))
Set %blnBuildRef=($G(%request.Data("SUBMIT",1))="Sauver")
Set DataOpt=$G(%request.Data("DATAOPT",1))
Set EncDataOptOrig=$G(%request.Data("DATAOPTORIG",1),DataOpt)
Set DataOptOut=$$OPTIMADecryptData^cspBasis.TBX.DecodeURL.tmpDev(DataOpt,.tmpAr,"LMC")
Set blnEditData=($E(DataOptOut,1,4)="EDIT")
If blnEditData Do
. Set CodeSubmit=$G(%request.Data("SUBMIT",1))
. Set KLNrOpt=$G(%request.Data("KLNR",1))
. Set blnEditFind=(CodeSubmit="EditFind")
. Set blnEditModify=(CodeSubmit="EditModify")
. Set blnEditRemove=(CodeSubmit="EditRemove")
. Kill tmpAr
. If blnEditFind Do
. . ; Show stored data
. . Set:($IsValidNum(KLNrOpt)) KLMini=##class(cspBasis.GAProdTBox).GetKlantData(sDomVERW,KLNrOpt,TBXContext,$LB("Stg","NoAction"))
. . If $IsObject($G(KLMini)) Do
. . . Set tmpAr("Taal")= KLMini.Taal
. . . Set tmpAr("KLNummer")=KLMini.Nummer
. . . Set tmpAr("KLNaam")=KLMini.Naam
. . . Set tmpAr("EMail")=KLMini.EMail
. . . Set tmpAr("Korting")=KLMini.Korting
. . Else Do
. . . Set msgDataOptToGlobal="No data found for KLNrOpt. Try again on the previous page."
. Else If blnEditRemove Do
. . Set scSave=##class(cspBasis.GAProdTBox).SetOptimaFixData("",KLNrOpt,"",1)
. . Set msgDataOptEdit="Data for KLNrOpt has been deleted.
Please test your login again (retournez à la page de ""Connexion"") ..."
. Else If blnEditModify Do
. . ; ...
. Set (EncDataOptOrig,DataOptOut)=""
. ;Set:(blnEditFind) DataOpt=""
. Set msgVerifyKLNr="!!! Verifiez le Numéro de client !!!"
Kill %blnBuildRef
Merge arDataOpt=tmpAr
Set:($G(arDataOpt("Taal"))="") arDataOpt("Taal")="F"
Set:($G(arDataOpt("EMail"))="") arDataOpt("EMail")="tandembox@lmc.tm.fr"
If ($G(arDataOpt("KLNummer"))="")&&($IsValidNum($G(%OptimaVar("KLNr")))) Do ; TBXContext.IsKlantIDIngevuld(...)
. Set arDataOpt("KLNummer")=%OptimaVar("KLNr")
. Set msgVerifyKLNr="!!! Verifiez le Numéro de client !!!"
d WL^vhDBG("Input QS decrypted :"_$G(%OptimaVar("Data"))_$$$CRLF_$$ArrayToText^vhLib("arDataOpt"))
Quit:(blnNoAccess) 1
If '($$$OptimaAccess) Do Quit 1 ; Block access to this page. Only enable it when requested
. Set blnNoAccess=1
. Set msg="FixPage voor Optima is geblokkeerd (/VHISIE/TBX/FixOPTIMA.csp). "_$$$CRLF_"Toegang enkel mogelijk op aanvraag."_$$$CRLF
. Do ophSendAlertMail^csp.vhisie.TBX.Main.tmpDev(msg)
. Do ophAddToLog("!FIXOPTIMA!")
If ($G(%request.Data("SUBMIT",1))="Sauver") Do
.// Set RefCheck=VERW_"\"_KLNr_"\"_wsID_"\"_sMode
. Set KLNrOpt=$G(%request.Data("KLNR",1))
. Set arDataOpt("Taal")=$G(%request.Data("TAALKL",1))
. Set arDataOpt("KLNummer")=KLNrOpt
. Set arDataOpt("KLNaam")=$G(%request.Data("KLNAAM",1))
. Set arDataOpt("EMail")=$G(%request.Data("EMAIL",1))
. Set arDataOpt("Korting")=$TR($G(%request.Data("KORTING",1)),"%","")
. Set DataOptOut=arDataOpt("Taal")_"\"_KLNrOpt_"\"_arDataOpt("KLNaam")_"\"_arDataOpt("EMail")_"\"_arDataOpt("Korting")
. ; Save data - StorageGlobal...
. Set scSave=##class(cspBasis.GAProdTBox).SetOptimaFixData(EncDataOptOrig,KLNrOpt,DataOptOut)
. If $$$ISERR(scSave) Do
. . Set msgDataOptToGlobal="Error when trying to save this data: "_"
"_$$ParseStatus^vhLib(scSave)_"
"_"Please try again ..."
. Else Do
. . Set msgDataOptToGlobal="Data saved successful.
Please test your login again (retournez à la page de ""Connexion"") ..."
. ;New Page,UrlTaal
. If $L(DataOptOut) Do
.. Set DataOptCheck=DataOptOut
.. Set EncDataOptOut=$$OPTIMAEncryptData^cspBasis.TBX.DecodeURL.tmpDev(DataOptOut,"LMC")
. Set Page="main.csp" ; $G(%request.Data("PAGE",1))
. Set UrlTaal="F" ; $G(%request.Data("URLTAAL",1))
. Set UrlOut=$S($L(Page):Page_"?REF="_EncRef_"&DATAOPT="_EncDataOptOut, 1:"")
. Set UrlOut2=$S($L(Page):Page_"?REF="_EncRef_$S($L(UrlTaal):"&Taal="_UrlTaal,1:""), 1:"")
Do ophAddToLog("FIXOPTIMA")
Quit 1
/*
SELECT ID, LogTime, ClientHost, Operation, Target, Parameters, ServiceStatus
FROM DW_WWW.HTTPLogTBX
WHERE (LogTime like '2004-07-03%') and (Target like '%TestDataOptSFS.CSP')
WHERE (LogTime like '2004-07-03%') and (Target like '%TestDataOptLMC.CSP')
WHERE (LogTime like '2004-07-03%') and (UPPER(Target) like '%TESTOPTIMA.CSP')
*/