#include %occInclude #include vhLib.Macro /* Kill ; Compiled March 14, 2001 17:22:49 Do KillAllObjects^%apiOBJ() Set Obj=##class(Prod.GADef.KaderDeur).%OpenId(40000) Write Obj.KostPrijs(1,,1) ;Do Obj.DisplayPrijsDtl() Set CalcObj=##class(Prod.GADef.KadPrijs).%New() Set Prijs=$$CALC(Obj,10,CalcObj) Write !,"Prijs = ",Prijs,! Quit TEST Set Prof="P02-EV" Set Vul="" Set VulExtra="" Set Hoogte=1193 Set Breedte=399 Set CharType="HETS" Set CharQty=0 Set VulBor=0 Set P1Bor=0 Set P2Bor=0 Set P3Bor=0 Set IsMont="" Set IsMont="" Set ProfKost=500 Set VulKost=2000 Set caObj=##class(Prod.GADef.KaderDeur).%New() Do caObj.FillObjectViaParam(Prof,Hoogte,Breedte,CharType,CharQty,VulBor,P1Bor,P2Bor,P3Bor,Vul,VulExtra,IsMont,"",ProfKost,VulKost) Do caObj.%Save() Set Prijs=caObj.KostPrijs(1,"",1) Write caObj.%Id(),"->",Prijs ;Do caObj.%Close() Quit */ CALC(%this,Staffel,CalcObj,blnGADataSchaduw) s %ClientIP=$G(%ClientIP,"192.168.1.97") New KPrijs Set $ZTRAP="cgpCalcError" Set KPrijs=$$CALCviaGADataProduct(%this,.Staffel,.CalcObj,.blnGADataSchaduw) ; =$$CalcKostPrijsNew^Prod.GADef.KaderDeur.tmpDev(%this,.Staffel,.CalcObj,.blnGADataSchaduw) d WL^vhDBG("CALCviaGADataProduct : "_KPrijs_" EUR") Set $ZTRAP="" Quit KPrijs cgpCalcError Set Err=$ZE Set $ZTRAP="" Set msg="KostPrijsCalc Error : "_$$$CRLF_Err ; $$ParseStatus^vhLib(Err) d WLIP^vhDBG(97,"Error KAD KPCalc New - "_$G(KadID)_" - %NoSa : "_$G(%NoSa)) d WLIP^vhDBG(97,msg) Set $ZE="" Quit "" // ===================================================================================================== // CALCviaGADataProduct : // -------------------- // Creatie: juni 2006 // Routine omgeschakeld van CALCviaResPiKost() op 01/09/2006 door WimV. // De omschakeling ging gepaard verandering van munteenheid (EUR ipv. BEF) in de kostdetails, en ging // eveneens gepaard met een algemene prijsverhoging bij VanHoecke/Halux. // ===================================================================================================== CALCviaGADataProduct(%this,Staffel,CalcObj,blnGADataSchaduw) #define KADBasis "KADBasis" New KadObj,Prod,arValidPR,KPrijs,arKDtls,BEF2EUR Set KadObj=%this Set:($G(%IsKlantHein)) KLNr=7833 ; Added by WimV on 31/08/2011 - prijsberekening voor VPK=E(xport) ;Set BldDtl=($IsObject($G(CalcObj))) Do tnbInitGADataProd Quit:('$IsObject(Prod)) "" If $G(%DtlRecalcOnly)'=1 Do . Do Prod.KlantSetObjectId($G(KLNr)) . Do Prod.TemplateTmpInit() . Do Prod.AutosFromTemplate(,"FILL") . Do tnbValuesToProduct Do Prod.CalcAll() Kill %KadObj New modbit,sc Set modbit=KadObj.%IsModified() Set KadObj.GADataProduct=Prod Set sc=KadObj.%SetModified(modbit) Set:($IsObject($G(CalcObj))) CalcObj.DetailGAData=Prod If 'Prod.ValidatePR(.arValidPR) Do . Do tnbInvalidPR . Set KPrijs="" Else Do . Set KPrijs=+$J($G(Prod.Cumuls("KPrijs")),0,2) Quit KPrijs ; $J(KPrijs,0,2) tnbInitGADataProd // Initialize GAData Product: // 1 - reference from KadObj if available; // 2 - reference from CalcObj (saved) if available; // 3 - create new object New TemplateID Set Prod=KadObj.GADataProduct Set:('$IsObject(Prod)) Prod=$S($IsObject($G(CalcObj)):CalcObj.DetailGAData, 1:"") If $IsObject(Prod) Do . Quit:($G(%DtlRecalcOnly)=1) . Do Prod.ClearAllData() ; Reset all DataItems, KostItems, Lookups, Cumuls, arTree . Do Prod.TemplateTmpInit() . Do Prod.CopyItemsFromProduct(Prod.TemplateTmp.Product,"NotProd&Kost") . ;d WLIP^vhDBG(97," Build from prev obj") Else Do . Set TemplateID=$LG(##class(Prod.GAData.Template).IDsViaCode($$$KADBasis),1) . Set Prod=##class(Prod.GAData.Product).BuildFromTemplate(TemplateID,blnGADataSchaduw) . ;d WLIP^vhDBG(97," Build_FromTemplate : Prod version ="_Prod.TemplateVersion_" (TemplateID:"_TemplateID_") blnGADataSchaduw="_blnGADataSchaduw) Quit tnbInvalidPR d WLIP^vhDBG(97,"KAD KPCalc New - "_$G(KadID,%this.%Id())_" - %NoSa : "_$G(%NoSa)_" Staffel: "_Staffel) New msg Set msg=Prod.ValidPRArrayToText(.arValidPR) ;Do MApplication.MessageBox(msg,"Producten valideren",$$$MBICONEXCLAMATION) d WL^vhDBG(msg) Quit tnbValuesToProduct Do:('$D(Prod.LookUp("PLItem"))) Prod.BuildLookUp($LB("ICode")) ; "PLItem" is onderdeel van BuildLU("ICode") Do tnbSetViaObj(KadObj) Do tnbSetViaProgLabel("QTY",Staffel) Set sc=$$tnbSetDItemKadObj(KadObj) Do Prod.BuildLookUp($LB("PL")) Quit tnbSetViaObj(KadObj) Do tnbSetViaProgLabel("TOEP",KadObj.Toepassing.ItemID) Do tnbSetViaProgLabel("PH",KadObj.Hoogte) Do tnbSetViaProgLabel("PB",KadObj.Breedte) Do tnbSetViaProgLabel("PT",KadObj.ProfType.ItemID) Do tnbSetViaProgLabel("PA",KadObj.ProfAfw.ItemID) If $IsObject(KadObj.Vulling.Vulling) Do . Do tnbSetViaProgLabel("VULCODE",KadObj.Vulling.Vulling.ItemID) . Do tnbSetViaProgLabel("LVE",$$tnbListVullingExtras()) . Do tnbSetViaProgLabel("VULOPP",KadObj.VulOpp()) . Do tnbSetViaProgLabel("VULOMTREK",KadObj.VulOmtrek()) Do tnbSetViaProgLabel("OPH",KadObj.OphangPlaats.ItemID) Do tnbSetViaProgLabel("LBSL","") Do tnbSetViaProgLabel("LBSL2","") Do tnbSetViaProgLabel("LBOR","") Do tnbSetViaProgLabel("MON",KadObj.Gemonteerd) Do tnbSetViaProgLabel("VPK",KadObj.Verpakking) Do tnbSetViaProgLabel("DOSNR",KadObj.Dossier) Set BEF2EUR=1 ; 1/40.3399 Do tnbSetViaProgLabel("PROFKS",KadObj.ProfAfwKostSpecial*BEF2EUR) Do tnbSetViaProgLabel("VULKS",KadObj.VullingKostSpecial*BEF2EUR) Do tnbSetViaProgLabel("CONSKS",KadObj.ConstructKostSpecial*BEF2EUR) Do tnbSetViaProgLabel("GEWICHT",KadObj.Gewicht()) Do tnbSetViaProgLabel("PWIJZE",$S(1:KadObj.ProductieWijzeGetObjectId(), ..cboLosProfDeel.ItemIndex>-1:"LPR", 1:"")) Do tnbSetViaProgLabel("ODEEL",$$ObjectListToLB^vhLib(KadObj.Onderdelen)) Quit tnbListVullingExtras() Quit:('$IsObject(KadObj.Vulling)) New Key,VE,tmpLB Set (tmpLB,Key)="" For Set VE=KadObj.Vulling.VullingExtra.GetNext(.Key) Quit:(Key="") Set tmpLB=tmpLB_$LB(VE.ItemID) Quit tmpLB tnbSetViaProgLabel(ProgLabel,Val) Do Prod.SetItemValByPL(ProgLabel,Val) Quit tnbSetDItemKadObj(KadObj) #define NodePLItem "PLItem" New Item,ProgLabel Set ProgLabel="KADOBJ" Set Item=$G(Prod.LookUp($$$NodePLItem,ProgLabel,"IOref")) Quit:('$IsObject(Item)) $$$ERROR($$$GeneralError,"No Item Object") Set Item.FixedKeys=$LB("Object") ; Temporary set key fixed, else it will be cleared before Re-CalcAll() Quit Item.SetObject(KadObj) Quit $$$OK // ===================================================================================================== // CALCviaResPiKost : // ---------------- // Creatie: maart 2001 // Routine omgeschakeld naar CALCviaGADataProduct() op 01/09/2006 door WimV // De omschakeling ging gepaard verandering van munteenheid (EUR ipv. BEF) in de kostdetails, en ging // eveneens gepaard met een algemene prijsverhoging bij VanHoecke/Halux. // ===================================================================================================== CALCviaResPiKost(%this,Staffel,CalcObj) New Muntpar,DtlObj,Tel,Hoogte,Breedte,Omtrek,Opp,Volume,VulHoogte,VulBreedte,VulOmtrek,VulOpp,VulVolume,KaliberQty,ProfLengte,Toepas New ProfUitval,ProfUitvalFaktor,DichtUitval,DichtUitvalFaktor,QtyGlasBoor,ProfQtyProf,TelVul,TelProf,Prijs,GAObj,IsMont,GlasProf,VolgNr New IsLosProf,LosProfPlaats,LosProfLengte,LosProfHalf,LosProfKwart,KaliberPQty,KaliberNew,IsKleef Set GAObj=%this d WL^vhDBG("CALCviaResPiKost ") d WL^vhDBG("CALCviaResPiKost Aborted !!!") Quit 99999.99 /* Do INIT ;Do DEBUG^%Serenji("LabelDebug+1^"_$zn,"192.168.1.97") ; IP van WV_W2K ;LabelDebug Set Prijs=0 If Toepas="GL" Do . Set Prijs=Prijs+$$VULLING() . Set Prijs=Prijs+$$VERPAK() Else Do . Set Prijs=Prijs+$$GOEDEREN() . Set:('IsLosProf) Prijs=Prijs+$$VULLING() . Set Prijs=Prijs+$$CAD() . Set Prijs=Prijs+$$GEREI() . If IsLosProf Set Prijs=Prijs+$$ZAAG(LosProfLengte) . Else Do .. Set Prijs=Prijs+$$ZAAG(Hoogte) .. Set Prijs=Prijs+$$ZAAG(Breedte) . Set Prijs=Prijs+$$FREES() . Set Prijs=Prijs+$$BOOR() . Set Prijs=Prijs+$$DICHTING() . Set Prijs=Prijs+$$MONTEER() . Set Prijs=Prijs+$$CONTROLE() . Set Prijs=Prijs+$$VERPAK() Quit $J(Prijs,0,2) ; Activeren wanneer de Dtl-prijzen in EUR worden gebruikt ;Quit Prijs INIT Set GlobRef=$NA(^ResItemsD(4)), GlobDef=4 Set BEF2EUR=1 ; /40.3399 ; *** ; *** al volgende locals worden gebruikt voor de kostprijs calculatie : MultiplicantEval en ReductieEval ; *** Set IsLosProf=(%this.ProductieWijzeGetObjectId()="LPR") Set:(IsLosProf) LosProfPlaats=..Onderdelen.GetNext("") ; mogelijke waarde: "PL", "PR", "PB", "PO" Set:(IsLosProf) LosProfLengte=..LosProfLengte(LosProfPlaats)/1000 Set LosProfHalf=$S(IsLosProf:0.5, 1:1) Set LosProfKwart=$S(IsLosProf:0.25, 1:1) ; =LosProfHalf*LosProfHalf Set GemCom=3 ; Gemiddelde commisiegrootte Set Staffel=$G(Staffel,1) Set:Staffel<0 Staffel=-Staffel ; absolute waarde Set Staffel=$S(Staffel<10:1,Staffel>50:Staffel,1:Staffel\10*10) ;Staffel tussen 1 en 50 in stappen van 10 Set Hoogte=%this.Hoogte/1000 Set Breedte=%this.Breedte/1000 Set Omtrek=%this.KadOmtrek() ; in meters Set Opp=%this.KadOpp() ;Set Volume=%this.KadVolume() Set VulHoogte=%this.VulHoogte()/1000 Set VulBreedte=%this.VulBreedte()/1000 Set VulOmtrek=%this.VulOmtrek() ; in meters Set VulOpp=%this.VulOpp() ;Set VulVolume=%this.VulVolume() Set ProfLengte=%this.ProfAfw.Lengte Set:'ProfLengte ProfLengte=3 Set ProfUitval=%this.ProfType.ProfUitval/1000 Set ProfUitvalFaktor=1+%this.ProfType.ProfUitvalPerc Set DichtUitval=%this.ProfType.DichtUitval/1000 Set DichtUitvalFaktor=1+%this.ProfType.DichtUitvalPerc Set KaliberQty=%this.ProfType.KaliberAantal Set:KaliberQty KaliberQty=250\(%this.ProfType.Breedte+10) Set GlasProf=($E(%this.ProfType.ItemID,3)="G")!($E(%this.ProfType.ItemID,3)="K") Set IsKleef=$E(%this.ProfType.ItemID,3)="K" ; gekleefd Set IsMont=%this.Gemonteerd["K" Set Toepas=%this.Toepassing.ItemID Do %this.TelBoringen(.TelProf,.TelVul) ;zw TelProf ;zw TelVul Set VolgNr=0 ;zw TelProf Quit GOEDEREN() New Prijs If %this.ProfAfwKostSpecial Do . Set Prijs=$$KOST(%this.ProfAfw.ItemID,,%this.ProfAfwKostSpecial*BEF2EUR) Else Do . Set Prijs=$$KOST(%this.ProfAfw.ItemID) Set Prijs=Prijs+$$KOST(%this.ProfType.DichtingKostCode) Set:('IsLosProf)&&$L(%this.ProfType.Hoek) Prijs=Prijs+$$KOST(%this.ProfType.Hoek.SchroefKostCode) Set:('IsLosProf)&&$L(%this.ProfType.Hoek) Prijs=Prijs+$$KOST(%this.ProfType.Hoek.HoekKostCode) Quit Prijs FREES() #define VakQty 6 #define RowQty 4 #define VakLengte .500 New Prijs,ProfKant,ProfQty,ProfWisselQty,ProfPlaats,ProfDiam,GatType,ProfGatenQty,BoorWissel,ProfCnt Set ProfKant="" Set Prijs=0 Set ProfCnt=0 ; Tellen van hoeveel profielen er moeten genomen worden van de 4 For Set ProfKant=$O(TelProf(ProfKant)) Quit:ProfKant="" Do . Set ProfPlaats="" . For Set ProfPlaats=$O(TelProf(ProfKant,ProfPlaats)) Quit:ProfPlaats="" Do .. Set:'$D(ProfCnt(ProfPlaats)) ProfCnt=ProfCnt+1 ; NVDR.(Wim) : ALTIJD DUS ! .. ;Set ProfCnt(ProfPlaats)="" ; markeer ProfPlaats als "reeds geteld" ; New PLen,ProfsPerRij Set PLen=$S(IsLosProf:LosProfLengte, Hoogte Set KaliberNew=(ProfQty*Staffel)\(($$$VakQty\((PLen\$$$VakLengte)+1))*$$$RowQty)+1 Set ProfsPerRij=$$$VakQty\((PLen\$$$VakLengte)+1) Set:(ProfsPerRij<1) ProfsPerRij=1 ; voor profielen groter dan de totale lengte van de Kaliber Set ProfKant="" For Set ProfKant=$O(TelProf(ProfKant)) Quit:ProfKant="" Do . New BoorWissel,ProfGatenQty . Set (ProfQty,ProfWisselQty)=0 . Set ProfPlaats="" . For Set ProfPlaats=$O(TelProf(ProfKant,ProfPlaats)) Quit:ProfPlaats="" Do .. Set ProfQty=ProfQty+1 .. Set ProfDiam="" .. For Set ProfDiam=$O(TelProf(ProfKant,ProfPlaats,ProfDiam)) Quit:ProfDiam="" Do ... Set:'$D(BoorWissel(ProfDiam)) ProfWisselQty=ProfWisselQty+1,BoorWissel(ProfDiam)="" ... Set:ProfDiam<10 GatType="K" ... Set:ProfDiam'<10 GatType="G" ... Set ProfGatenQty(GatType)=$G(ProfGatenQty(GatType))+TelProf(ProfKant,ProfPlaats,ProfDiam) . ;Set KaliberNew=(ProfQty*Staffel)\(($$$VakQty\((PLen\$$$VakLengte)+1))*$$$RowQty)+1 ; Berekening: zie boven . Set KaliberNew=(ProfQty*Staffel)\(ProfsPerRij*$$$RowQty)+1 ; Berekening: zie boven . Set Prijs=Prijs+$$KOST($S(IsLosProf:"FL", 1:%this.ProfType.FreesKostCode)) Quit Prijs ZAAG(Lengte) New MaxLengte Set MaxLengte=$S($E(%this.ProfType.%Id(),2)="S":.350,1:.400) Quit:Lengte'emKostObj.TijdMin:Tijd,1:emKostObj.TijdMin) Set TijdViaMin=(Tijd=emKostObj.TijdMin) Set TijdKost=$J(%this.KostPlaatsKost*%this.KostToeslagKlein*%this.KostToeslagGroot*Reductie*Tijd/3600,0,4) Set:Staffel=10&(%this.Variabelen["Staffel") TijdKost=TijdKost*2 ; Indien Staffel=10 dan niet ineens delen door 10 maar wel door 5 ; Voor de prijsberekening kan er een speciale prijs doorgegeven worden Set MatBasis2=$G(MatBasis,emKostObj.MatBasis) Set MatMultiplicant2=$G(MatMultiplicant,emKostObj.MatMultiplicant) Set MatMin2=$G(MatMin,emKostObj.MatMin) Set Mat=MatBasis2+(MatMultiplicant2*Multi) Set:Mat Mat=$S(Mat>MatMin2:Mat,1:MatMin2) Set MatViaMin=(Mat=MatMin2) Set:$G(MatFull) Mat=MatFull,MatViaMin=0 Set Mat=$J(Reductie*Mat,0,4) ;W Multi,*9,Reductie,$J(Tijd,10,4),$J(TijdKost,10,4),$J(Mat,10,4) If Mat!Tijd,CalcObj Do .Set CalcDtlObj=##class(Prod.GADef.emKadPrijsDtl).%New() .Set CalcDtlObj.Groep=%this.KostGroep .Set CalcDtlObj.KostCode=%this.ItemID .Set CalcDtlObj.KostPlaats=%this.KostPlaats .Set CalcDtlObj.SortNr=%this.Sort .Set CalcDtlObj.Multiplicant=Multi .Set CalcDtlObj.Reductor=Reductie .Set CalcDtlObj.MatKost=Mat .Set CalcDtlObj.MatViaMin=MatViaMin .Set CalcDtlObj.Tijd=$J(Reductie*Tijd,0,0) .Set CalcDtlObj.TijdKost=TijdKost .Set CalcDtlObj.TijdViaMin=TijdViaMin .Set CalcDtlObj.Variabelen=$$EVALVAR(%this.Variabelen) .Set VolgNr=VolgNr+1 .Do CalcObj.Details.SetAt(CalcDtlObj,VolgNr) .Do CalcDtlObj.%Close() Quit TijdKost+Mat EVALVAR(Vars) New Result,I,Var,Val Set Result="" For I=1:1:$L(Vars,";") Do .Set Var=$P(Vars,";",I) .Quit:'$L(Var) .X "Set Val=$G("_Var_",""???"")" .Set Result=Result_"; "_Var_"="_Val Quit $E(Result,3,999) */ IMPORTCLEAN Set TabelID=4 Set ID="" For Set ID=$O(^ResItemsD(TabelID,ID)) Quit:ID="" Do .Set Obj=##class(Res.PI.Items).%OpenId(TabelID_"||"_ID) .If Obj.BeperkingTabel="NEW" Do .. ;Write Obj," " .. Kill Obj .. Do ##class(Res.PI.Items).%DeleteId(TabelID_"||"_ID) .Else Do .. Kill Obj Quit ; Do IMPORT^Prod.GADef.KaderDeur.KostPrijs IMPORT New Obj,DevObj,emObj Set t=$P($H,",",2) Do IMPORTCLEAN Set DevObj=##class(%Library.File).%New("c:\KAD KostDtl.TXT") ;Write DevObj.Size Do DevObj.Open("R") Do DevObj.Rewind() Set D=$C(9) Set Cnt=0 For Set Len=1000,Rec=DevObj.Read(.Len) Quit:Rec="" Do . Set Cnt=Cnt+1 . Quit:Cnt=1 ; niet de titel . ;Write Cnt," " ,$P(Rec,D,1),! ; ," ",$$TRIM($P(Rec,D,9)),! . Set ID=$P(Rec,D,1) . Quit:ID="" . Set TabelID=4 ;=##class(Res.PI.Definitie).IDViaNaam("Kost") . Set TabObj=##class(Res.PI.Definitie).%OpenId(TabelID) . Set Obj=##class(Res.PI.Kost).%New() . Set Obj.TabelID=TabObj . Set Obj.ItemID=ID . Set Obj.BeperkingTabel="NEW" . Set Obj.Sort=$P(Rec,D,2) . Set Obj.Omschrijving=$$TRIM($P(Rec,D,3)) . Set Obj.KostGroep=$P(Rec,D,4) . Set Obj.KostPlaats=$P(Rec,D,5) . Set Obj.KostPlaatsKost=$TR($P(Rec,D,6),",",".") . Set Obj.KostToeslagGroot=$TR($P(Rec,D,7),",",".") . Set Obj.KostToeslagKlein=$TR($P(Rec,D,8),",",".") . Set Obj.ReductieFormule=$$TRIM($P(Rec,D,9)) . Set Obj.MultiplicantFormule=$$TRIM($P(Rec,D,10)) . Set Obj.Variabelen=$$TRIM($P(Rec,D,11)) . Set emObj=##class(Res.PI.emKostDetail).%New() . Set Staffel=$P(Rec,D,12) . ; om het resultaat van de prijsberekening niet te doen veranderen van CAche V4 naar V5 moet tijdbasis en multiplicant integer zijn. . ; de integer wordt getrunceerd, niet afgerond . Set emObj.TijdBasis=$tr(+$P(Rec,D,13),",",".") . Set emObj.TijdMultiplicant=$tr(+$P(Rec,D,14),",",".") . Set emObj.TijdMin=$tr($P(Rec,D,15),",",".") . Set emObj.MatBasis=$TR($P(Rec,D,16),",",".") . Set emObj.MatMultiplicant=$TR($P(Rec,D,17),",",".") . Set emObj.MatMin=$TR($P(Rec,D,18),",",".") . Do Obj.Staffel.SetAt(emObj,Staffel) . ;Do DumpObject^%apiOBJ(Obj) . Write Cnt," ",$$ParseStatus^vhLib(Obj.%Save()),! . Set (Obj,emObj)="" Set DevObj="" Write !,"Duur : ",$P($H,",",2)-t Write !,"Aantal : ",Cnt,! Quit TRIM(String) Quit:$E(String)="""" $$TRIM($E(String,2,$L(String)-1)) Quit:String["""""" $$TRIM($P(String,"""""")_""""_$P(String,"""""",2,9999)) Quit String /* CALC(%this,Staffel,CalcObj) s %ClientIP=$G(%ClientIP,"192.168.1.97") #define TestMode 0 #define SINGLESaveGAData ($O(%arFakeIDs($O(%arFakeIDs(""))))="")&&($O(%arFakeIDs(""))'="") Quit $$CALCviaGADataProductTMP(%this,.Staffel,.CalcObj) #If $$$TestMode Quit $$CALCTEST(%this,.Staffel,.CalcObj) #Else Quit:($$CalcNewKost^Prod.GADef.KaderDeur.tmpDev()) $$CALCviaGADataProductTMP(%this,.Staffel,.CalcObj) Quit $$CALCviaResPiKost(%this,.Staffel,.CalcObj) #EndIf */ /* CALCviaGADataProductTMP(%this,Staffel,CalcObj) New KPrijs Set $ZTRAP="cgpCalcError" ;Set %NoSa=$G(%NoSa,"S") ; $S(blnCalcNew=2:$G(%NoSa,"S"), 1:$G(%NoSa,"")) ; $S(blnCalcNew=2:"S", 1:"") d WLIP^vhDBG(97,"KAD KPCalc New - %NoSa : "_$G(%NoSa)_" Staffel: "_Staffel) d WL^vhDBG("New "_$G(KadID)) Set KPrijs=$$CALCviaGADataProduct(%this,.Staffel,.CalcObj) ; =$$CalcKostPrijsNew^Prod.GADef.KaderDeur.tmpDev(%this,.Staffel,.CalcObj) d WL^vhDBG("CALCviaGADataProduct : "_KPrijs_" EUR") ;Kill %NoSa ; Globale variabele onmiddellijk verwijderen na calculatie product Set $ZTRAP="" Quit KPrijs cgpCalcError Set Err=$ZE Set $ZTRAP="" Set msg="KostPrijsCalc Error : "_$$$CRLF ; _Err ; $$ParseStatus^vhLib(Err) d WLIP^vhDBG(97,"Error KAD KPCalc New - "_$G(KadID)_" - %NoSa : "_$G(%NoSa)) d WLIP^vhDBG(97,msg) Set $ZE="" Quit "" */ /* CALCTEST(%this,Staffel,CalcObj) New blnCalcNew Set blnCalcNew=1 ; 1 = only CalcNew ; 2 = CalcNew + CalcOLD ; 0 = CalcOLD Quit:(blnCalcNew) $$CALCviaGADataProductTEST(%this,.Staffel,.CalcObj) Quit $$CALCviaResPiKost(%this,.Staffel,.CalcObj) CALCviaGADataProductTEST(%this,Staffel,CalcObj) New KPrijs,KadID,VulID,lbVulE,tmpLB,tmpLB2 New tmpQty Set $ZTRAP="cgpCalcError" Set:('$D(%NoSa)) %NoSa=$S(blnCalcNew:"S", 1:"") Set KadID=%this.%Id() ;d WLIP^vhDBG(97,"KAD KPCalc New - "_KadID_" - %NoSa : "_$G(%NoSa)_" Staffel: "_Staffel) ;Set %arLOG(0) =$LB("[NP]","[OP]","[DIFF]","Toepas","Prof","Vul","Hgt","Brd","Qty","FrezZK","LVE","VPKType","ProfKS","VulKS","ConsKS") If $IsObject(%this.Vulling.Vulling) Do . Set VulID=%this.Vulling.Vulling.ItemID . Set lbVulE=$$cgpListVullingExtras(%this) Set tmpLB=$LB(%this.ProfAfwKostSpecial,%this.VullingKostSpecial,%this.ConstructKostSpecial) Set:(tmpLB=$LB("","","")) tmpLB="" Set tmpLB2=%this.VerpakkingsType($G(Staffel,1)) Set tmpLB=$S(tmpLB2'=$LB("K"):$LB(tmpLB2), $L(tmpLB):$LB(), 1:"")_tmpLB Set tmpLB=$S($L($G(lbVulE)):$LB(lbVulE), $L(tmpLB):$LB(), 1:"")_tmpLB Set tmpLB=$LB()_tmpLB Set %arLOG(KadID)=$LB("[NP]","[OP]","[DIFF]",%this.Toepassing.ItemID,%this.ProfAfw.ItemID,$G(VulID),%this.Hoogte,%this.Breedte,$G(Staffel,1))_tmpLB If $G(blnCalcNew)=2 Do . Set tmpQty=$G(Staffel) . Set KPrijs=$$CALCviaResPiKost(%this,.Staffel,.CalcObj) . Set $LI(%arLOG(KadID),2)=KPrijs . ;d WL^vhDBG("CALCviaResPiKost : "_KPrijs_" EUR") Set:($G(tmpQty)>0) Staffel=tmpQty ; Reset Staffel Set KPrijs=$$CALCviaGADataProduct(%this,.Staffel,.CalcObj) ; =$$CalcKostPrijsNew^Prod.GADef.KaderDeur.tmpDev(%this,.Staffel,.CalcObj) Set tmpLB2=$G(%FRZ("ProfKant")) Set:(tmpLB2=$LB("ON"))||(tmpLB2=$LB("IN","ON")) tmpLB2="" Set $LI(%arLOG(KadID),1)=KPrijs Set $LI(%arLOG(KadID),3)=$LI(%arLOG(KadID),1)-$LG(%arLOG(KadID),2) Set $LI(%arLOG(KadID),10)=tmpLB2 ;d WL^vhDBG("CALCviaGADataProduct : "_KPrijs_" EUR") Kill %NoSa ; Globale variabele onmiddellijk verwijderen na calculatie product Set $ZTRAP="" Quit KPrijs cgpListVullingExtras(KadObj) Quit:('$IsObject(KadObj.Vulling)) New Key,VE,tmpLB Set (tmpLB,Key)="" For Set VE=KadObj.Vulling.VullingExtra.GetNext(.Key) Quit:(Key="") Set tmpLB=tmpLB_$LB(VE.ItemID) Quit tmpLB */