#include vhLib.Macro
InitializeCSP
#define LandKeuzeDFL 1
#define LabelType "L"
#define LastKM "Diepte"
#define GroepKM "OL"
#define WebTextVal(%v) ##class(cspBasis.ProductList).WebTextValue(%v,Taal,"L")
#define GetImgUrl(%v) ##class(Res.VertalingLink).GetLinkVertaling("OLW",%v,"LB",Taal,,"WWW")
s:('$D(%ClientIP)) %ClientIP="192.168.1.97"
Set GroepID=$$$GroepKM
Set UseWildCards=1
Set ComputerName=##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam()
Set NameSpace=$ZUTIL(67,6,$J)
Set Taal=$$$UCase($G(tmpRqData("taal",1)))
Set:(Taal="")||("N;F;D;E"'[Taal) Taal="N" ; VH's Default
Set LandCode=$$$UCase($G(tmpRqData("LandCode",1)))
If LandCode="" Do
. Set LandCode=$G(LandCodeViaCookie)
. ;d WL^vhDBG("LandCode Via Cookie, LC="_LandCode)
Set blnLandKeuze=((LandCode="")||("BE;NL"'[LandCode))
Set:(blnLandKeuze)&&($$$LandKeuzeDFL) LandCode="BE"
d:(blnLandKeuze) WL^vhDBG("Landkeuze, LC="_LandCode)
;w "Session ID="_%session.SessionId_" - "_$S(%session.NewSession:"first", 1:"subsequent")_" request - EventClass="_%session.EventClass
Set blnImgLarge=(''$G(%request.Data("IMGHIRES",1)))
Do iniPreloadMetaObjs
;Do ##class(Prod.Kenmerk.Utils).PRLijstViaCriteria(GroepID,"ArPR",.tmpRqData)
Do ##class(Prod.Kenmerk.Utils).PRLijstViaCriteriaExtra(GroepID,"ArPR",.tmpRqData,$$$LastKM,.arLastKMVal)
Do iniVertaalMetaLabels
/*
Set BPLastKM=""
If $D(tmpRqData($$$LastKM)) Do
. New lbLastKMValIntern,lbOtherKMValIntern,i,VTL,HRef
. Set LastMetaObj=MetaArray($$$LastKM)
. Set lbLastKMValIntern=$G(arLastKMVal("SORTED","KMVAL"))
. Set lbLastKMVal=""
. For i=1:1:$LL(lbLastKMValIntern) Set:($LG(lbLastKMValIntern,i)'="") lbLastKMVal=lbLastKMVal_$LB(LastMetaObj.VertaalItem($LI(lbLastKMValIntern,i),Taal,"K"))
. Set BPLastKM=$$$LCase(MetaArray($$$LastKM,"VTL"))_" "_$$LCVTSimple^vhLib(lbLastKMVal," - ")
. Do iniSetOtherKMVal
. ;d WL^vhDBG("Values"_$$$ArrayTT("arLastKMVal"))
. Set lbOtherKMValIntern=$G(arLastKMVal("SORTED","OTHER"))
. Set lbOtherKMVal=""
. ; Build Texts
. Set FrameURL=%request.URL_"?"_##class(cspBasis.ProductList).CQueryString(.tmpRqData)
. For i=1:1:$LL(lbOtherKMValIntern) Do:($LG(lbOtherKMValIntern,i)'="")
.. Set VTL=##class(Res.Vertaling).GetVertalingPlus("OLW","AndereKMDiepte","L",Taal)_" "_LastMetaObj.VertaalItem($LI(lbOtherKMValIntern,i),Taal,"K")
.. Set HRef=""_""_VTL_""_""
.. ;Set VTL=LastMetaObj.VertaalItem($LI(lbOtherKMValIntern,i),Taal,"K")
.. ;Set HRef=""_VTL_""
.. Set lbOtherKMVal=lbOtherKMVal_$LB(HRef)
. ;Set LastKMOtherVal=""
. Set LastKMOtherVal=$$LCVTSimple^vhLib(lbOtherKMVal," - ") ; ," - ")
*/
Set BPLastKM=""
If $D(tmpRqData($$$LastKM))&&($LL($G(arLastKMVal("SORTED","KMVAL")))=1) Do
. New LastKMValIntern,lbAllKMValIntern,lbAllKMVal,QSLastKMVal,LastMetaObj,i,VTL,FrameURL,HRef,classSpan ; BPLastKM mag niet ge-newd worden
. Set LastKMValIntern=$LG(arLastKMVal("SORTED","KMVAL"),1) ; Slechts 1 beperking op LastKM
. Quit:(LastKMValIntern="")
. Set LastMetaObj=MetaArray($$$LastKM)
. Set BPLastKM=MetaArray($$$LastKM,"VTL")
. Set lbAllKMValIntern=$G(arLastKMVal("SORTED","ALL"))
. Set lbAllKMVal=""
. ; Build Texts
. Set QSLastKMVal=$$$LastKM_"="_$ZCVT(LastKMValIntern,"o","URL")
. Set FrameURL=%request.URL_"?"_##class(cspBasis.ProductList).CQueryString(.tmpRqData)
. For i=1:1:$LL(lbAllKMValIntern) Do:($LG(lbAllKMValIntern,i)'="")
.. Set VTL=LastMetaObj.VertaalItem($LI(lbAllKMValIntern,i),Taal,"K")
.. Set classSpan=$S($F(LastKMValIntern,$LI(lbAllKMValIntern,i))>0:"clsLastKMBtnAct",1:"clsLastKMBtn")
.. Set HRef=""_""_VTL_""_""
.. Set lbAllKMVal=lbAllKMVal_$LB(HRef)
. Set LastKMAllVal=$$LCVTSimple^vhLib(lbAllKMVal," - ")
. Set LastKMOtherVal=LastKMAllVal
// ProductTitle
If $L($G(tmpRqData("SubType",1)))&&('$D(tmpRqData("SubType",2))) Do
. Set PageTitle=##class(Res.Vertaling).GetVertalingPlus("PK",tmpRqData("SubType",1),"K",Taal)
Else Do
. Set PageTitle=##class(cspBasis.ProductList).WebTextValue("ProdInfoTitel",Taal,"L")
// Landkeuze veranderen
#If ($ZCVT($$$Server,"U")["WWW")
Set blnShowLcWIS=0
#Else
Set blnShowLcWIS=1
#EndIf
Set QScodeLeeg=$$iniClearLandCodeFromQS
Set QScodeWIS=QScodeLeeg_"&LandCode=WIS"
Set QScodeBE=QScodeLeeg_"&LandCode=BE"
Set QScodeNL=QScodeLeeg_"&LandCode=NL"
Set TagVlagBE="
"
Set TagVlagNL="
"
Quit
iniPreloadMetaObjs
New rs
Set rs=##class(%ResultSet).%New("Prod.Kenmerk.MetaDefinitie:LijstPerGroep")
Do rs.Execute(GroepID)
For Quit:('rs.Next()) Set MetaArray(rs.Data("Kenmerk"))=##class(Prod.Kenmerk.MetaDefinitie).%OpenId(GroepID_"||"_rs.Data("Kenmerk"))
Do rs.%Close()
Quit ; De objecten moeten in het geheugen blijven; ze worden pas aan het einde van de CSP-Body gesloten.
;
; Close MetaObjects
;New k,tmpOref
;Set k=""
;For Set k=$O(MetaArray(k)) Quit:(k="") Set tmpOref=MetaArray(k) Do tmpOref.%Close() Kill MetaArray(k)
;Quit
iniVertaalMetaLabels
New k,tmpOref
Set k=""
For Set k=$O(MetaArray(k)) Quit:(k="") Do
. Set tmpOref=MetaArray(k)
. Set MetaArray(k,"VTL")=tmpOref.VertaalItem("§",Taal,$$$LabelType) ; Vertaling van de MetaDefinie zelf
Quit
iniSetOtherKMVal
New i,Pos
Set arLastKMVal("SORTED","OTHER")=$G(arLastKMVal("SORTED","ALL"))
Quit:($G(arLastKMVal("SORTED","KMVAL"))="")
For i=1:1:$LL(arLastKMVal("SORTED","KMVAL")) Do
. Set Pos=$LF(arLastKMVal("SORTED","ALL"),$LG(arLastKMVal("SORTED","KMVAL"),i))
. $$$DoLBDeleteAtIf((Pos>0),arLastKMVal("SORTED","OTHER"),Pos)
Quit
iniClearLandCodeFromQS()
Quit $$iniClearParamFromQS(%request.GetCgiEnv("QUERY_STRING"),"LandCode")
iniClearParamFromQS(QS,Param)
Quit:(Param="") ""
New tmpQS,SubQS
Set tmpQS=QS
For Set SubQS=$$$TextBetween("&"_tmpQS_"&","&"_Param_"=","&") Quit:(SubQS="") Do
. Set tmpQS=$$$Replace("&"_tmpQS,"&"_Param_"="_SubQS,"")
Set:($E(tmpQS,1)="&") $E(tmpQS,1)=""
Quit tmpQS
DataDefValueList() ; Parameters: Taal,GroepID,UnID,Kenmerk,TextType,ListItems,ListSep
Quit:($G(GroepID)="")!($G(UnID)="")!($G(Kenmerk)="") ""
New objDD,i,LBVal,LBX
Set objDD=##class(Prod.Kenmerk.DataDefinitie).%OpenId(UnID_"||"_GroepID_"||"_Kenmerk)
Quit:('objDD) ""
Set LBX=$$ddvBuildItemsLB(objDD,.ListItems)
; Quit zonder vertaling
Quit:($G(TextType)="") $S($G(ListSep)="":LBX, 1:$LB($$LCVTSimple^vhLib(LBX,";")))
; Met LBX: items vertalen
Set LBVal=""
If $L($G(ListSep)) Do ; ListSeparator is defined ==> create textlist of concat values
. Do ddvAddToLB(.LBVal,objDD.VertaalConcatList(LBX,ListSep,Taal,TextType))
Else Do
. For i=1:1:$LL(LBX) Do ; put separate values in $LB()
.. Do ddvAddToLB(.LBVal,objDD.VertaalItem($LI(LBX,i),Taal,TextType))
Do objDD.%Close()
Quit LBVal
ddvBuildItemsLB(objDD,ListItems)
; Mogelijke waarden voor ListItems: bvb.: "*" , "1" , "1;2" , "1;2;5;7"
New LBX,i,CntW
Set LBX=""
If ListItems="*" Do
. For i=1:1:objDD.Waarden.Count() Do ddvAddToLB(.LBX,objDD.Waarden.GetAt(i))
Else Do
. Set CntW=objDD.Waarden.Count()
. For i=1:1:$L(ListItems,";") Do:(+$P(ListItems,";",i)'>CntW) ddvAddToLB(.LBX,objDD.Waarden.GetAt(+$P(ListItems,";",i)))
Quit LBX
ddvAddToLB(LB,X)
Set:($L(X)) LB=LB_$LB(X)
Quit
DataDefValueListURL() ; Parameters: Taal,GroepID,UnID,Kenmerk,TextType,ListItems,ListSep,ToepasCode
#define ToepasCode $G(ToepasCode,"WWW")
#define VertaalLinkItem(%v) ##class(Res.VertalingLink).GetLinkVertaling(KenmType,%v,TextType,Taal,,$$$ToepasCode)
Quit:($G(GroepID)="")!($G(UnID)="")!($G(Kenmerk)="") ""
New objDD,i,LBVal,LBX,KenmType
Set objDD=##class(Prod.Kenmerk.DataDefinitie).%OpenId(UnID_"||"_GroepID_"||"_Kenmerk)
Quit:('objDD) ""
Set KenmType=objDD.Kenmerk.GetVertalingsGroep()
Set LBX=$$ddvBuildItemsLB(objDD,.ListItems)
; Met LBX: items vertalen
Set LBVal=""
If $L($G(ListSep)) Do
. Set LBVal=$LB("NOT IMPLEMENTED By WimV")
. ;Do ddvAddToLB(.LBVal,objDD.VertaalConcatListXxxURL (LBX,ListSep,Taal,TextType))
Else Do
. For i=1:1:$LL(LBX) Do ; put separate values in $LB()
.. Do ddvAddToLB(.LBVal,$$$VertaalLinkItem($LI(LBX,i)))
Do objDD.%Close()
Quit LBVal
ddvAddToLBxxx(LB,X)
// See ddvAddToLB()
;Set:($L(X)) LB=LB_$LB(X)
;Quit
ddvBuildItemsLBxxx(objDD,ListItems)
// See ddvBuildItemsLB()
;...
;Quit LBX