Index: BL/PR/GA/TB/tmpDev2.mac.rou =================================================================== diff -u -r39820 -r67927 --- BL/PR/GA/TB/tmpDev2.mac.rou (.../tmpDev2.mac.rou) (revision 39820) +++ BL/PR/GA/TB/tmpDev2.mac.rou (.../tmpDev2.mac.rou) (revision 67927) @@ -28,14 +28,16 @@ ;d TTraceW("WS: Opties:"_$G(Opties)_" condition No Prices calc:"_($G(Opties)'["PRS=1;")) new sDbg Set sDbg="" + New blTBox Set blTBox = %this + New dsID,Result,Templ,arKDtl,lbDomLU,sDomVERW,sDomKLNr New arValidWS New GemaaktProductId Set lbDomLU=WS.DomainLookUp(WS.WebDomain,$LB("VERW","KLNR")) Set sDomVERW=$LG(lbDomLU,1) Set sDomKLNr=$LG(lbDomLU,2) - Set Result=$$bfwTemplateViaLadeKL(..GetKlantBeperkDesign(WS.KLNummer,sDomVERW)) ; (.Templ) + Set Result=$$bfwTemplateViaLadeKL(blTBox, WS, blTBox.GetKlantBeperkDesign(WS.KLNummer,sDomVERW)) ; (.Templ) If '$G(Templ) Do Quit . Do bfwMarkAllError . d TTraceW(Result_" "_sDbg) @@ -48,30 +50,30 @@ ;d WL^vhDBG("Tijd einde BldFrWS : "_$$RestartTimer^vhLib) Quit $listbuild(GemaaktProductId) -bfwTemplateViaLadeKL(BeperkDesignCode) ; (Templ) - New klID,lbTPs,TPCode,TemplateID,blnCheckDesign ; "dsID" is declared at a higher level - Set klID=WS.Lijnen.GetNext("").ItemKL +bfwTemplateViaLadeKL(blTBox, WebOrder, BeperkDesignCode) ; (Templ) + New klID,lbTPs,TPCode,TemplateID,blnCheckDesign,OrderDesignID + Set klID=WebOrder.Lijnen.GetNext("").ItemKL Set:(klID="BE") klID="BA" d DbgAdd("KL",klID) - Set dsID=WS.Lijnen.GetNext("").ItemDS ; Get design from first line - it shoud be the same for all other - If dsID="" Do + Set OrderDesignID=WebOrder.Lijnen.GetNext("").ItemDS ; Get design from first line - it shoud be the same for all other + If OrderDesignID="" Do . Set blnCheckDesign=(BeperkDesignCode="") - . Set dsID=..DesignFromLadeKleur(klID,BeperkDesignCode) + . Set OrderDesignID=blTBox.DesignFromLadeKleur(klID,BeperkDesignCode) Else If $L(BeperkDesignCode) Do ; !!! TEMPORARY PATCH for F-Design !!! (added by WimV on 13/03/2009) . Set blnCheckDesign=0 - . Set dsID=..DesignFromLadeKleur(klID,BeperkDesignCode) + . Set OrderDesignID=blTBox.DesignFromLadeKleur(klID,BeperkDesignCode) Else Do . Set blnCheckDesign=0 - Quit:(dsID="") "Geen Design gevonden" - d DbgAdd("DS",dsID) + Quit:(OrderDesignID="") "Geen Design gevonden" + d DbgAdd("DS",OrderDesignID) ; Alleen "Standaard Design" toegelaten. - Quit:(blnCheckDesign)&&($LG(..BTDep("TBDesign","TBDesignCode",dsID),1)'?1(1"S",1"B")) "Geen Standaard Design" - Set lbTPs=..TPCodesFromDesign(dsID) + Quit:(blnCheckDesign)&&($LG(blTBox.BTDep("TBDesign","TBDesignCode",OrderDesignID),1)'?1(1"S",1"B")) "Geen Standaard Design" + Set lbTPs=blTBox.TPCodesFromDesign(OrderDesignID) Set TPCode=$LG(lbTPs,1) - Quit:(TPCode="") "TemplateCode niet gevonden" + Quit:(TPCode="") "TemplateCode niet gevonden voor Design '"_OrderDesignID_"'." d DbgAdd("TPCode",TPCode) Set TemplateID=$LG(##class(Prod.GAData.Template).IDsViaCode(TPCode),1) - Quit:(TemplateID="") "TemplateID niet gevonden" + Quit:(TemplateID="") "TemplateID niet gevonden voor TPCode '"_TPCode_"'." d DbgAdd("TemplateID",TemplateID) Set Templ=##class(Prod.GAData.Template).%OpenId(TemplateID) Quit "" @@ -83,6 +85,7 @@ Quit bfwCalcWSLijnen New Prod,i,arValidPR,Som,SomAant,WSLn,OrdStdL,arWSStdL,KLReductie,KLKorting,KLNrProd,GeldigeActiesVoorOrder,ProductTypeAPI + New MetaArray, PRNr, Taal ;n arORefs Do bfwCalcProductsInit Set i="" @@ -108,110 +111,120 @@ ; Maakt een GAData.Product object voor WSLn If (WSLn.Exclude=1) Do Quit "" Else If WSLn.ItemSTDL=$$$tbxCodeStdLade Do Quit $$$tbxCodeStdLade - Set ..Qty=WSLn.Qty - Set WSLn.ItemDS=dsID + Set blTBox.Qty=WSLn.Qty + Set:(WSLn.ItemDS="") WSLn.ItemDS=OrderDesignID Set WSLn.GAMeta="TBX" - Do ..ResetTB() - Do bfwBTItemsFromWSLijn + Do blTBox.ResetTB() + Do bfwBTItemsFromWSLijn(WSLn,blTBox) ; Data van blTBox naar GAData.Product New Prod Set Prod=##class(Prod.GAData.Product).BuildFromTemplate(Templ.%Id()) Do Prod.TemplateTmpInit() Do Prod.AutosFromTemplate(,"FILL") Do:(KLNrProd) Prod.KlantSetObjectId(KLNrProd) - Do ..BTValues.SetAt(Prod.TemplateCode,"TemplateCode") - Do bfwSetNietMeeItems(pdlNietMee) - Do bfwFBevestNML - Do bfwResetNMItemsBinnenlade ; Reling/boxside worden sowieso gemonteerd op een binnenlade - Do ..BTValuesToProduct(Prod) - Do ..BWValuesToProduct(Prod) - Do ..KMValuesToProduct(Prod,"TBR") + Do blTBox.BTValues.SetAt(Prod.TemplateCode,"TemplateCode") + Do bfwSetNietMeeItems(blTBox,pdlNietMee) + Do bfwFBevestNML(blTBox) + Do bfwResetNMItemsBinnenlade(blTBox) ; Reling/boxside worden sowieso gemonteerd op een binnenlade + Do blTBox.BTValuesToProduct(Prod) + Do blTBox.BWValuesToProduct(Prod) + Do blTBox.KMValuesToProduct(Prod,"TBR") Quit Prod -bfwBTItemsFromWSLijn - New lbDSCodes,DSCode,KFront,KRug,KBxs,Klas,SPZKpiece1,AantalUitsparingen +bfwBTItemsFromWSLijn(WSLn,blTBox) + New lbDSCodes,DSCode,KFront,KRug,KBxs,Klas,SPZKpiece1,AantalUitsparingen,CodeStalenRug ;d WLIP^vhDBG(97,"*"_$L(WSLn.ItemRK)_"*"_" - "_WSLn.ItemRK) - Set DSCode=$S($L(WSLn.ItemDS):$LG(..BTDep("TBDesign","TBDesignCode",WSLn.ItemDS),1), 1:"") - Set KFront=$S($L(WSLn.ItemRK):$LG(..BTDep("TBRelingKleur","TBFrontKleur",WSLn.ItemRK),1), 1:"") - Set KRug =$S($L(WSLn.ItemDS):$LG(..BTDep("TBDesign","TBRugKleur",dsID),1), 1:"") + Set DSCode=$S($L(WSLn.ItemDS):$LG(blTBox.BTDep("TBDesign","TBDesignCode",WSLn.ItemDS),1), 1:"") + Set KFront=$S($L(WSLn.ItemRK):$LG(blTBox.BTDep("TBRelingKleur","TBFrontKleur",WSLn.ItemRK),1), 1:"") + Set KRug =$S($L(WSLn.ItemDS):$LG(blTBox.BTDep("TBDesign","TBRugKleur",WSLn.ItemDS),1), 1:"") If WSLn.ItemKX="" Do - . Set KBxs=$S($L(WSLn.ItemDS):$LG(..BTDep("TBDesign","TBBoxsideKleur",dsID),1), 1:"") + . Set KBxs=$S($L(WSLn.ItemDS):$LG(blTBox.BTDep("TBDesign","TBBoxsideKleur",WSLn.ItemDS),1), 1:"") . Set WSLn.ItemKX=KBxs ; Set to WSLijn Else Do . Set KBxs=WSLn.ItemKX - Do ..BTValues.SetAt(WSLn.ItemDS ,"TBDesign") - Do ..BTValues.SetAt(DSCode ,"TBDesignCode") - Do ..BTValues.SetAt(WSLn.ItemLT ,"LadeCode") + Do blTBox.BTValues.SetAt(WSLn.ItemDS ,"TBDesign") + Do blTBox.BTValues.SetAt(DSCode ,"TBDesignCode") + Do blTBox.BTValues.SetAt(WSLn.ItemLT ,"LadeCode") Do bfwBTItemsLadeCode(WSLn.ItemLT) - Set Klas=..BTValues.GetAt("TBKlasse") - Do ..BTValues.SetAt($S(..BTValues.GetAt("TBLadeType")="B":"Z", 1:WSLn.ItemFB) ,"TBFBevestiging") - Do ..BTValues.SetAt(WSLn.ItemCB ,"TBCBreedte") - Do ..BTValues.SetAt(WSLn.ItemWD ,"TBWandDikte") - Do ..BTValues.SetAt($S(WSLn.ItemOPVL["L":25, 1:0) ,"OpvullijstLi") - Do ..BTValues.SetAt($S(WSLn.ItemOPVL["R":25, 1:0) ,"OpvullijstRe") - Do ..BTValues.SetAt(..DFLMinTolerantie(WSLn.ItemWD) ,"MinTolerantie") ; $S(+WSLn.ItemWD=0:0, 1:1) - Do ..BTValues.SetAt(WSLn.ItemLD ,"TBLadeDiepte") - Do ..BTValues.SetAt(WSLn.ItemDK ,"TBDraagKracht") - Do ..BTValues.SetAt(WSLn.ItemKB ,"TBBodemKleur") - Do ..BTValues.SetAt(WSLn.ItemRK ,"TBRelingKleur") - Do ..BTValues.SetAt(KFront ,"TBFrontKleur") - Do ..BTValues.SetAt($S(WSLn.ItemKL="BE":"BA", 1:WSLn.ItemKL) ,"TBLadeKleur") - Do ..BTValues.SetAt(KRug ,"TBRugKleur") - Do ..BTValues.SetAt(WSLn.ItemBM ,"TBBlumotion") + Set Klas=blTBox.BTValues.GetAt("TBKlasse") + Do blTBox.BTValues.SetAt($S(blTBox.BTValues.GetAt("TBLadeType")="B":"Z", 1:WSLn.ItemFB) ,"TBFBevestiging") + Do blTBox.BTValues.SetAt(WSLn.ItemCB ,"TBCBreedte") + Do blTBox.BTValues.SetAt(WSLn.ItemWD ,"TBWandDikte") + Do blTBox.BTValues.SetAt($S(WSLn.ItemOPVL["L":25, 1:0) ,"OpvullijstLi") + Do blTBox.BTValues.SetAt($S(WSLn.ItemOPVL["R":25, 1:0) ,"OpvullijstRe") + Do blTBox.BTValues.SetAt(blTBox.DFLMinTolerantie(WSLn.ItemWD) ,"MinTolerantie") ; $S(+WSLn.ItemWD=0:0, 1:1) + Do blTBox.BTValues.SetAt(WSLn.ItemLD ,"TBLadeDiepte") + Do blTBox.BTValues.SetAt(WSLn.ItemDK ,"TBDraagKracht") + Do blTBox.BTValues.SetAt(WSLn.ItemKB ,"TBBodemKleur") + Do blTBox.BTValues.SetAt(WSLn.ItemRK ,"TBRelingKleur") + Do blTBox.BTValues.SetAt(KFront ,"TBFrontKleur") + Do blTBox.BTValues.SetAt($S(WSLn.ItemKL="BE":"BA", 1:WSLn.ItemKL) ,"TBLadeKleur") + Do blTBox.BTValues.SetAt(KRug ,"TBRugKleur") + Do blTBox.BTValues.SetAt(WSLn.ItemBM ,"TBBlumotion") - Do ..BTValues.SetAt(WSLn.ItemBX ,"TBBoxSide") - Do ..BTValues.SetAt(KBxs ,"TBBoxsideKleur") ; WSLn.ItemKX - Do ..BTValues.SetAt(WSLn.ItemKV ,"TBVulstukKleur") - Do ..BTValues.SetAt(WSLn.ItemKLROPVL ,"TBOpvullijstKleur") + Do blTBox.BTValues.SetAt(WSLn.ItemBX ,"TBBoxSide") + Do blTBox.BTValues.SetAt(KBxs ,"TBBoxsideKleur") ; WSLn.ItemKX + Do blTBox.BTValues.SetAt(WSLn.ItemKV ,"TBVulstukKleur") + Do blTBox.BTValues.SetAt(WSLn.ItemKLROPVL ,"TBOpvullijstKleur") - Do ..BTValues.SetAt(WSLn.ItemSB ,"TBStabilisator") - Do ..BTValues.SetAt(WSLn.ItemRSTL ,"TBRugStukVerlaagd") - Do ..BTValues.SetAt("Z" ,"TBStalenRug") + Do blTBox.BTValues.SetAt(WSLn.ItemSB ,"TBStabilisator") + Do blTBox.BTValues.SetAt(WSLn.ItemRSTL ,"TBRugStukVerlaagd") + Set CodeStalenRug = $$$If(WSLn.ItemRugwandMateriaal="Staal", "V", "Z") + Do blTBox.BTValues.SetAt(CodeStalenRug ,"TBStalenRug") Set SPZKpiece1=$P(WSLn.ItemSPZK,";",1) - Do ..BTValues.SetAt(SPZKpiece1 ,"TBSPZijkant") + Do blTBox.BTValues.SetAt(SPZKpiece1 ,"TBSPZijkant") - If Klas=##class(DOM.PM.enu.TBXToepassing).SifonTypeBlum() { - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",2) ,"SpoelbakZkLi") - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",3) ,"SpoelbakZkRe") - Set AantalUitsparingen=..SpoelbakUitsparingen(WSLn.ItemLT,SPZKpiece1,Klas) + If ##class(TECH.StringUtils).Equals(Klas, ##class(DOM.PM.enu.TBXToepassing).SifonType2(),##class(DOM.PM.enu.TBXToepassing).SifonType3()) { + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",2) ,"SpoelbakZkLi") + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",3) ,"SpoelbakZkRe") + Set AantalUitsparingen=blTBox.SpoelbakUitsparingen(WSLn.ItemLT,SPZKpiece1,Klas) If AantalUitsparingen>1 { - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",4) ,"SpoelbakZkMi") - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",5) ,"SpoelbakBreedte1") - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",6) ,"SpoelbakBreedte2") + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",4) ,"SpoelbakZkMi") + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",5) ,"SpoelbakBreedte1") + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",6) ,"SpoelbakBreedte2") } Else { - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",4) ,"SpoelbakBreedte1") + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",4) ,"SpoelbakBreedte1") } } ElseIf Klas=##class(DOM.PM.enu.TBXToepassing).Spoelbak() { #define SPZkOpMaat(%v) (%v?1(1"M".E,1"SI".E)) If $$$SPZkOpMaat(SPZKpiece1) { ; Spoelbak zijkant op maat - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",2) ,"SpoelbakZkLi") - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",3) ,"SpoelbakZkRe") - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",4) ,"SpoelbakZkMi") + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",2) ,"SpoelbakZkLi") + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",3) ,"SpoelbakZkRe") + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",4) ,"SpoelbakZkMi") ; SpoelbakBreedte (SPBR) wordt berekend in Prod.BWValuesToProduct() } } - ElseIf Klas=##class(DOM.PM.enu.TBXToepassing).Sifon() { - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",2) ,"SpoelbakZkLi") - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",3) ,"SpoelbakZkRe") - Do ..BTValues.SetAt($P(WSLn.ItemSPZK,";",4) ,"SpoelbakZkMi") + ElseIf Klas=##class(DOM.PM.enu.TBXToepassing).SifonType1() { + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",2) ,"SpoelbakZkLi") + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",3) ,"SpoelbakZkRe") + Do blTBox.BTValues.SetAt($P(WSLn.ItemSPZK,";",4) ,"SpoelbakZkMi") Set SPBR=##class(BL.PR.GA.TandemBox).CalcBreedteSpoelbak(SPZKpiece1,0,0,DSCode) - Do ..BTValues.SetAt(SPBR ,"SpoelbakBreedte") ; deze moet ingevuld zijn voor dubbele sifonlade + Do blTBox.BTValues.SetAt(SPBR ,"SpoelbakBreedte") ; deze moet ingevuld zijn voor dubbele sifonlade } If ($L(WSLn.ItemVPK)) Do - . Do ..BTValues.SetAt(WSLn.ItemVPK ,"Verpakking") + . Do blTBox.BTValues.SetAt(WSLn.ItemVPK ,"Verpakking") . Do:(##class(BL.PR.GA.TandemBox).NietMeeToepassen(WSLn.ItemVPK)="True")||(WSLn.ItemVPK="xxP") bfwUpdateNMItemsBulk ; Do:(WSLn.ItemVPK?1(1"C",1"P",1"Z",1"A",1"Y")) bfwUpdateNMItemsBulk - Do:($L(WSLn.ItemBGRP) ) ..BTValues.SetAt(WSLn.ItemBGRP ,"TBBinnenGreep") - Do:('$L(WSLn.ItemBGRP)) ..BTValues.SetAt($S(WSLn.ItemLT?1(1"D/Z",1"C/Z"):"H",1:""),"TBBinnenGreep") + Do:($L(WSLn.ItemBGRP) ) blTBox.BTValues.SetAt(WSLn.ItemBGRP ,"TBBinnenGreep") + Do:('$L(WSLn.ItemBGRP)) blTBox.BTValues.SetAt($S(WSLn.ItemLT?1(1"D/Z",1"C/Z"):"H",1:""),"TBBinnenGreep") - Do ..BTValues.SetAt($S(WSLn.ItemFS="":"A", 1:WSLn.ItemFS) ,"TBFrontSteun") - Do ..BTValues.SetAt($S(WSLn.ItemASM="":"0", 1:WSLn.ItemASM) ,"TBMat") - Do ..BTValues.SetAt(WSLn.ItemDWV ,"TBDwarsVerdeling") - Do ..BTValues.SetAt(WSLn.ItemOLP ,"OrgaluxProduct") + Do blTBox.BTValues.SetAt($S(WSLn.ItemFS="":"A", 1:WSLn.ItemFS) ,"TBFrontSteun") + Do blTBox.BTValues.SetAt($S(WSLn.ItemASM="":"0", 1:WSLn.ItemASM) ,"TBMat") + Do blTBox.BTValues.SetAt(WSLn.ItemDWV ,"TBDwarsVerdeling") + If $$$Not(##class(TECH.StringUtils).Equals(WSLn.ItemOnderdelenSpeciaal, "V", "")) { + Do blTBox.BTValues.SetAt(WSLn.ItemOnderdelenSpeciaal ,"TBOndSpecial") + } + If $$$HasLength(WSLn.ItemPlaatMateriaal) { + Do blTBox.BTValues.SetAt(WSLn.ItemPlaatMateriaal ,"PlaatMat") + } + If $$$HasLength(WSLn.ItemMinTolerantieOpIB) { + Do blTBox.BTValues.SetAt(WSLn.ItemMinTolerantieOpIB ,"MinTolerantie") + } + Do blTBox.BTValues.SetAt(WSLn.ItemOLP ,"OrgaluxProduct") Do bfwExtrasFromGlobal(DSCode) Quit bfwBTItemsLadeCode(LCodeID) @@ -222,10 +235,10 @@ Quit:('LCode) Set Key="" For Set TBVal=LCode.TBKenm.GetNext(.Key) Quit:(Key="") Do - . Do ..BTValues.SetAt(TBVal,Key) + . Do blTBox.BTValues.SetAt(TBVal,Key) Set LCode="" ; Close Quit -bfwSetNietMeeItems(pdlNietMee) ; Niet Meeleveren is gedefinieerd op Hoofding-niveau en niet op Lijn-niveau +bfwSetNietMeeItems(blTBox,pdlNietMee) ; Niet Meeleveren is gedefinieerd op Hoofding-niveau en niet op Lijn-niveau Quit:(pdlNietMee="") New lbNietMee,i Set lbNietMee="" @@ -243,7 +256,7 @@ Set:(pdlNietMee["NMOVL" ) lbNietMee=lbNietMee_$LB("NMOpvullijst") Set:(pdlNietMee["NMSPDL") lbNietMee=lbNietMee_$LB("NMSPDwarsLatjes") Set:(pdlNietMee["NMASM" ) lbNietMee=lbNietMee_$LB("NMAntislipmat") - For i=1:1:$LL(lbNietMee) Do:(1) ..BTValues.SetAt(1,$LI(lbNietMee,i)) + For i=1:1:$LL(lbNietMee) Do:(1) blTBox.BTValues.SetAt(1,$LI(lbNietMee,i)) ; WEL Meeleveren ("WM...") New lbWelMee @@ -262,33 +275,33 @@ Set:(pdlNietMee["WMOVL" ) lbWelMee=lbWelMee_$LB("NMOpvullijst") Set:(pdlNietMee["WMSPDL") lbWelMee=lbWelMee_$LB("NMSPDwarsLatjes") Set:(pdlNietMee["WMASM" ) lbWelMee=lbWelMee_$LB("NMAntislipmat") - For i=1:1:$LL(lbWelMee) Do:(1) ..BTValues.SetAt(0,$LI(lbWelMee,i)) + For i=1:1:$LL(lbWelMee) Do:(1) blTBox.BTValues.SetAt(0,$LI(lbWelMee,i)) Quit -bfwFBevestNML ; FrontBevestiging Niet Meeleveren bij Lade ZONDER FB (excl. Binnenlade) ! - If (..BTValues.GetAt("TBFBevestiging")="NM") || ((..BTValues.GetAt("TBFBevestiging")="Z")&&(..BTValues.GetAt("TBLadeType")'="B")) Do - . Do ..BTValues.SetAt("S","TBFBevestiging") - . Do ..BTValues.SetAt(1,"NMFBevestiging") +bfwFBevestNML(blTBox) ; FrontBevestiging Niet Meeleveren bij Lade ZONDER FB (excl. Binnenlade) ! + If (blTBox.BTValues.GetAt("TBFBevestiging")="NM") || ((blTBox.BTValues.GetAt("TBFBevestiging")="Z")&&(blTBox.BTValues.GetAt("TBLadeType")'="B")) Do + . Do blTBox.BTValues.SetAt("S","TBFBevestiging") + . Do blTBox.BTValues.SetAt(1,"NMFBevestiging") Quit bfwUpdateNMItemsBulk New Key,dummy Set Key="NM" - For Set Key=$O(..LookUp(Key)) Quit:(Key'?1"NM".E) Do + For Set Key=$O(blTBox.LookUp(Key)) Quit:(Key'?1"NM".E) Do . Quit:(Key?1(1"NMBlumoBehuizing",1"NMAntislipmat")) - . Do:('..BTValues.IsDefined(Key)) ..BTValues.SetAt(1,Key) - ;Do bfwResetNMItemsBinnenlade // de oproep is nu verhuisd naar bfwProductFromWSLijn + . Do:('blTBox.BTValues.IsDefined(Key)) blTBox.BTValues.SetAt(1,Key) + ;Do bfwResetNMItemsBinnenlade(blTBox) // de oproep is nu verhuisd naar bfwProductFromWSLijn Quit -bfwResetNMItemsBinnenlade +bfwResetNMItemsBinnenlade(blTBox) ; Binnenlade kan NIET gemonteerd worden zonder Reling, dus NMZijReling terug op 0 zetten - If (..BTValues.GetAt("TBLadeType")="B")&&(..BTValues.GetAt("TBBoxSide")'="ZR") Do ; binnenlade met reling/boxside - . Do ..BTValues.SetAt(0,"NMZijReling") - . Do ..BTValues.SetAt(0,"NMBoxSide") + If (blTBox.BTValues.GetAt("TBLadeType")="B")&&(blTBox.BTValues.GetAt("TBBoxSide")'="ZR") Do ; binnenlade met reling/boxside + . Do blTBox.BTValues.SetAt(0,"NMZijReling") + . Do blTBox.BTValues.SetAt(0,"NMBoxSide") Quit bfwExtrasFromGlobal(DSCode) #define KLDataExtra(%v) $$$GlobalKLData(0,sDomVERW,KLNrProd,%v) #define DelimByDC(%v) $P(%v,";",$S(DSCode="I":2,1:1)) Quit:(sDomVERW'="VHEPN") ; Only for safety - Do:($$$DelimByDC($G($$$KLDataExtra("NMAK")))=1) ..BTValues.SetAt(1,"NMAfdekkap") ; KLNrProd <--> WS.KLNummer - Do:($G($$$GlobalKLData(0,sDomVERW,KLNrProd,"SR"))?1"V") ..BTValues.SetAt($$$GlobalKLData(0,sDomVERW,KLNrProd,"SR"),"TBStalenRug") + Do:($$$DelimByDC($G($$$KLDataExtra("NMAK")))=1) blTBox.BTValues.SetAt(1,"NMAfdekkap") ; KLNrProd <--> WS.KLNummer + Do:($G($$$GlobalKLData(0,sDomVERW,KLNrProd,"SR"))?1"V") blTBox.BTValues.SetAt($$$GlobalKLData(0,sDomVERW,KLNrProd,"SR"),"TBStalenRug") Quit bfwCalcProductsInit @@ -383,7 +396,7 @@ Set IsBeursUser=($G(Opties)["PRS=B;") Set IsAnonymousUser=0 ; ($G(Opties)'["PRS=1;") - If Prod.ValidatePR(.arValidPR) Do + If Prod.ValidatePR(.arValidPR) || ($G(Opties)["DDEFS=1") Do . Set GenPRNr=Prod.GenerischPRNr() . Set WSLn.Exclude=0 . @@ -400,10 +413,40 @@ . Set KLNrPrs=$S(sDomVERW'="VHEPN":sDomKLNr, (WS.KLNummer?1.N)&&(WS.KLNummer>0):WS.KLNummer, 1:4645) . Set AKPrs=$P($$KLANTPR^KPRIJS(KLNrPrs,GenPRNr,$G(%NoSa),$J(KPrijsVH,0,2)),"\",1) . Set VKPrs=$$bfwCalcVKPrijsKlant(KPrijsVH,AKPrs,GeldigeActiesVoorOrder) - . If $G(Opties)["KPR=1" D - . . Do Prod.KPRCreate() - . . Set GemaaktProductId = Prod.ProductGetObjectId() + . + . New GADataProduct, TbxHelper + . Set GADataProduct = Prod + . Set TbxHelper = ##class(APPS.PM.Maatwerk.impl.BerekeningServiceProduct.TbxHelper).%New() + . // Enkel de DataDefinities bewaren + . If $G(Opties)["DDEFS=1" Do Quit ; Early quit, beter anders oplossen! + . . Do TbxHelper.StelInProductDataOpGADataProduct(GADataProduct, Opties) + . . Do GADataProduct.GenereerDataDefinities() + . . ; Het is wel mogelijk dat niet alle HFBuilder correct berekend konden worden (nieuwe impl zoals bvb. Rug X38). De DataDefinities zullen dan toch nog correct gegenereerd zijn. + . . Set GemaaktProductId = GADataProduct.ProductGetObjectId() + . ;Else : + . If $G(Opties)["KPR=1" Do + . . New GADataProduct, GADataProductId,scSave,TbxHelper + . . Set GADataProduct = Prod + . . Set TbxHelper = ##class(APPS.PM.Maatwerk.impl.BerekeningServiceProduct.TbxHelper).%New() + . . Do TbxHelper.StelInProductDataOpGADataProduct(GADataProduct, Opties) + . . Do GADataProduct.KPRCreate() + . . Set GemaaktProductId = GADataProduct.ProductGetObjectId() + . . + . . If (GemaaktProductId '> 0) Do Quit + . . . // SetStatus : Error + . . . Set GemaaktProductId = "" + . . . Do ##class(vhLib.Logger).%New().ErrorMail("KPRCreate failed","KPRCreate vanuit BL.PR.GA.TB.tmpDev2.mac is niet gelukt. "_"KPR Product not created") + . . ; Else + . . Set scSave=GADataProduct.SaveClean() + . . If $$$ISOK(scSave) Do + . . . Set GADataProductId = GADataProduct.%Id() + . . . Do ##class(Prod.Product).SetPropViaNr(GemaaktProductId,"GAProdID",GADataProductId) ; ^KPR(PRNr,"G") --> 13e piece + . . Else Do + . . . Set GemaaktProductId = "" + . . . Do ##class(vhLib.Logger).%New().ErrorMail("KPRCreate failed","GADataProduct.SaveClean() vanuit BL.PR.GA.TB.tmpDev2.mac is niet gelukt. "_$$ParseStatus^vhLib(scSave)) + . Else Do + . Set GemaaktProductId = "" . Set VKPrs="ERROR" . Set WSLn.Exclude=1 @@ -590,3 +633,5 @@ + +