Index: BL/Flow/Offerte/ProductGAData.cls.xml =================================================================== diff -u -r734 -r771 --- BL/Flow/Offerte/ProductGAData.cls.xml (.../ProductGAData.cls.xml) (revision 734) +++ BL/Flow/Offerte/ProductGAData.cls.xml (.../ProductGAData.cls.xml) (revision 771) @@ -1,35 +1,192 @@ - + - Use new version : BL.Flow.Offerte.LijnProductGA -]]> -%Prod.Product,BL.EC.Common +%Prod.Product,BL.EC.Common,PRGACNTs 1 %RegisteredObject -62083,43636.961067 +62124,57841.451635 60207,60266.322035 0 - - + +Fill offertelijn (TBX) via params : +de Kenmerken-array (+ enkele properties) van oLijn worden ingevuld met de gegevens uit de array Params + +%Status + + + + + +Voorbereiden van een offertelijn (TBX) voor import in een order +oLijn:Flow.Offerte.Lijn,NoSa:%String +%Status + + + + + +Voorbereiden van een offertelijn (TBX) voor prijsberekening en controle +Het GAData product wordt gegenereerd, maar NIET opgeslagen. Het KPR product wordt NIET gecreƫerd. +De prijs, korttekst, langtekst, ... worden gesimuleerd en ingevuld in de offertelijn. +Vult de Status van offertelijn in als er een fout opgetreden is +oLijn:Flow.Offerte.Lijn,Taal:%String,NoSa:%String +%Status + + + + + +Controle van een lijn (TBX) op prijs, levertermijn, aantal +What : P = Prijzen, L = Levertermijn, A = Aantal +oLijn:Flow.Offerte.Lijn,What:%String,Taal:%String,NoSa:%String +%Status + + + + + +Zie ..GetProducts() + +%Status + + + + + +Genereren van het GAData Product en het KPR Product. +Vult de Status van offertelijn in als er een fout opgetreden is +Via de list lbProducts wordt ook de vermenigvuldigingsfactor meegegeven. +format: $LB($LB(PRNr,Qty),...) vb. $LB($LB(7458,4),$LB(105215,1)) + +%Status +0 Do Quit $$$ERROR($$$GeneralError,$$$LCVT(lbError)) + . Set lbError=$LB($$$errGADataNoKPRProd) ; "KPR Product not created" + . $$$blFlowOfferte + . Do %blFlowOfferte.SetStatus(oLijn,$$$OffStatAfgeleidProd,lbError) + ; Else + Do oLijn.ProductSetObjectId(PRNr) + + ; Save GAData.Product + Set sc=GAProd.SaveClean() + If $$$ISOK(sc) Do + . Set GAProdID=GAProd.%Id() + . Do ##class(Prod.Product).SetPropViaNr(PRNr,"GAProdID",GAProdID) ; ^KPR(PRNr,"G") --> 13e piece + Set lbProducts=$LB($LB(oLijn.ProductGetObjectId(),1)) + Quit $$$OK + + Quit:($$gprErrorInFullCalc) $$$ERROR($$$GeneralError,$$$LCVT(lbError)) +gprErrorInFullCalc() ; Detect error and set to oLijn.Status + Set:('$IsObject(GAProd))&&($G(lbError)="") lbError=$LB($$$errGADataNoProd) ; "GAData Product not created" + If $L($G(lbError)) Do + . $$$blFlowOfferte + . Do %blFlowOfferte.SetStatus(oLijn,$$$OffStatAfgeleidProd,lbError) + Quit ('$IsObject(GAProd)) +]]> + + + +PRNr +0 + + + + + +Maakt een GAData.Product object voor oLijn. Berekent en valideert de DataItems. +Bij fouten wordt de melding via arErrs doorgegeven. +Returns GAProd or "". + +1 +Prod.GAData.Product + "_$LG(tmpLB,$$$liOms)_" ("_$LG(tmpLB,$$$liCode)_") : PRNr="""_$LG(tmpLB,$$$liPRNr)_"""" Quit $LB("VPR")_lbVPR -} +]]> + -/// Maakt een GAData.Product object voor oLijn. Bij fouten wordt de melding via arErrs (node "BLD") doorgegeven. -/// Returns GAProd or "". -Method GAProductBuildTBX(oLijn As Flow.Offerte.LijnAbstract, ByRef blTBox As BL.PR.GA.TandemBox, ByRef arErrs As %String) As Prod.GAData.Product [ Private ] -{ + + +Maakt een GAData.Product object voor oLijn. Bij fouten wordt de melding via arErrs (node "BLD") doorgegeven. +Returns GAProd or "". + +1 +Prod.GAData.Product + voor import into Admin + calc vanuit Excel + - CACHE02 : klasse BL.Prod.GAData.TBXLadeConvert --> voor import into (Dev-)Admin + calc vanuit Excel + - routine BL.PR.GA.TB.tmpDev2.MAC --> voor berekening WSOrder + */ + gbtValuesToProduct #define PL blTBox.LookUp(KM,"DIC") ;New KM,arKenm Do gbtKenmToTempArray Set arKenm("TemplateCode")=GAProd.TemplateCode ; nodig voor blTBox.KMValuesToProduct() Set arKenm="ARRAY" Do:('$D(GAProd.LookUp("PLItem"))) GAProd.BuildLookUp($LB("ICode")) ; "PLItem" is onderdeel van BuildLU("ICode") + Do gbtSetNietMeeItems($$$GetKenm("lstNietMee")) Do gbtFBevestNML - Do bfwResetNMItemsBinnenlade ; Reling/boxside worden sowieso gemonteerd op een binnenlade + Do gbtResetNMItemsBinnenlade ; Reling/boxside worden sowieso gemonteerd op een binnenlade ; Basis Input waarden to Product Set KM="" For Set KM=$O(arKenm(KM)) Quit:(KM="") Do:($L($G($$$PL))) GAProd.SetItemValByPL($$$PL,arKenm(KM)) @@ -161,63 +332,67 @@ Quit gbtKenmToTempArray ;New DSCode,KFront,KRug,KBxs,lbDSCodes - ;Set DSCode=$S($L($$$GetKenm("ItemDS")):$LG(blTBox.BTDep("TBDesign","TBDesignCode",$$$GetKenm("ItemDS")),1), 1:"") + Set DSCode=$S($L($$$GetKenm("ItemDS")):$LG(blTBox.BTDep("TBDesign","TBDesignCode",$$$GetKenm("ItemDS")),1), 1:"") + /* + // tijdelijke methode om DesignCode "L" in te stellen (before 2009) Set lbDSCodes=$S($L($$$GetKenm("ItemDS")):blTBox.BTDep("TBDesign","TBDesignCode",$$$GetKenm("ItemDS")), 1:"") Set DSCode=$LG(lbDSCodes,1) If (DSCode="A")&&($LF(lbDSCodes,"L"))&&($L($$$GetKenm("ItemBX"))) Do . ; INTIVO design-code is afhankelijk van de Boxside --> A of L . Set:($LF(blTBox.BTDep("TBBoxSide","TBDesignCode",$$$GetKenm("ItemBX")),"L")) DSCode="L" + */ Set KFront=$S($L($$$GetKenm("ItemRK")):$LG(blTBox.BTDep("TBRelingKleur","TBFrontKleur",$$$GetKenm("ItemRK")),1), 1:"") Set KRug =$S($L($$$GetKenm("ItemDS")):$LG(blTBox.BTDep("TBDesign","TBRugKleur",dsID),1), 1:"") Set KBxs =$S($L($$$GetKenm("ItemKX")):$$$GetKenm("ItemKX"), $L($$$GetKenm("ItemDS")):$LG(blTBox.BTDep("TBDesign","TBBoxsideKleur",dsID),1), 1:"") - Set arKenm("TBDesign")=$$$GetKenm("ItemDS") - Set arKenm("TBDesignCode")=DSCode - Set arKenm("LadeCode")=$$$GetKenm("ItemLT") + + Set arKenm("TBDesign") =$$$GetKenm("ItemDS") + Set arKenm("TBDesignCode") =DSCode + Set arKenm("LadeCode") =$$$GetKenm("ItemLT") Do gbtBTItemsLadeCode($$$GetKenm("ItemLT")) Set arKenm("TBFBevestiging")=$S(($G(arKenm("TBLadeType"))="B"):"Z", 1:$$$GetKenm("ItemFB")) - Set arKenm("TBCBreedte")=$$$GetKenm("ItemCB") - Set arKenm("TBWandDikte")=$$$GetKenm("ItemWD") - Set arKenm("OpvullijstLi")=$S($$$GetKenm("ItemOPVL")["L":25, 1:0) - Set arKenm("OpvullijstRe")=$S($$$GetKenm("ItemOPVL")["R":25, 1:0) - Set arKenm("MinTolerantie")=blTBox.DFLMinTolerantie($$$GetKenm("ItemWD")) ; $S(+$$$GetKenm("ItemWD")=0:0, 1:1) - Set arKenm("TBLadeDiepte")=$$$GetKenm("ItemLD") - Set arKenm("TBDraagKracht")=$$$GetKenm("ItemDK") - Set arKenm("TBBodemKleur")=$$$GetKenm("ItemKB") - Set arKenm("TBRelingKleur")=$$$GetKenm("ItemRK") - Set arKenm("TBFrontKleur")=KFront - Set arKenm("TBLadeKleur")=$S($$$GetKenm("ItemKL")="BE":"BA", 1:$$$GetKenm("ItemKL")) - Set arKenm("TBRugKleur")=KRug - Set arKenm("TBBlumotion")=$$$GetKenm("ItemBM") + Set arKenm("TBCBreedte") =$$$GetKenm("ItemCB") + Set arKenm("TBWandDikte") =$$$GetKenm("ItemWD") + Set arKenm("OpvullijstLi") =$S($$$GetKenm("ItemOPVL")["L":25, 1:0) + Set arKenm("OpvullijstRe") =$S($$$GetKenm("ItemOPVL")["R":25, 1:0) + Set arKenm("MinTolerantie") =blTBox.DFLMinTolerantie($$$GetKenm("ItemWD")) ; $S(+$$$GetKenm("ItemWD")=0:0, 1:1) + Set arKenm("TBLadeDiepte") =$$$GetKenm("ItemLD") + Set arKenm("TBDraagKracht") =$$$GetKenm("ItemDK") + Set arKenm("TBBodemKleur") =$$$GetKenm("ItemKB") + Set arKenm("TBRelingKleur") =$$$GetKenm("ItemRK") + Set arKenm("TBFrontKleur") =KFront + Set arKenm("TBLadeKleur") =$S($$$GetKenm("ItemKL")="BE":"BA", 1:$$$GetKenm("ItemKL")) + Set arKenm("TBRugKleur") =KRug + Set arKenm("TBBlumotion") =$$$GetKenm("ItemBM") /* * / ; Temporary work-around for GlazenBoxside, until the web-wizard also uses ItemKV ( Switched off by WimV on 27/04/2009) If (DSCode'="I") && ($$$GetKenm("ItemBX")?1(1"BZ",1"BF",1"BC")) Do . ;New KVul . Set KVul=$Case($$$GetKenm("ItemBX"), "BZ":"FZ", "BF":"FG", "BC":"FC", :ERROR) - . Set arKenm("TBBoxSide")="BG" + . Set arKenm("TBBoxSide") ="BG" . Set arKenm("TBBoxsideKleur")=KBxs . Set arKenm("TBVulstukKleur")=KVul Else If (DSCode="I") Do - . Set arKenm("TBBoxSide")=$$$GetKenm("ItemBX") + . Set arKenm("TBBoxSide") =$$$GetKenm("ItemBX") . Set arKenm("TBBoxsideKleur")=KBxs ; $$$GetKenm("ItemKX") . Set arKenm("TBVulstukKleur")=$$$GetKenm("ItemKV") Else Do - . Set arKenm("TBBoxSide")=$$$GetKenm("ItemBX") + . Set arKenm("TBBoxSide") =$$$GetKenm("ItemBX") . Set arKenm("TBBoxsideKleur")=$$$GetKenm("ItemKX") . ;Set arKenm("TBVulstukKleur")=$$$GetKenm("ItemKV") - /* * / ; Remove space to close CommentBlock + /* */ ; ( Switched ON by WimV on 27/04/2009) - Set arKenm("TBBoxSide")=$$$GetKenm("ItemBX") + Set arKenm("TBBoxSide") =$$$GetKenm("ItemBX") Set arKenm("TBBoxsideKleur")=KBxs ; $$$GetKenm("ItemKX") Set arKenm("TBVulstukKleur")=$$$GetKenm("ItemKV") Set arKenm("TBStabilisator")=$$$GetKenm("ItemSB") Set arKenm("TBStalenRug") =$$$GetKenm("ItemSR") Set:(arKenm("TBStalenRug")="") arKenm("TBStalenRug")="Z" Set arKenm("TBSPZijkant") =$P($$$GetKenm("ItemSPZK"),";",1) - + #define SPZkOpMaat(%v) (%v?1(1"M".E,1"SI".E)) If $$$SPZkOpMaat(arKenm("TBSPZijkant")) Do ; Spoelbak zijkant op maat @@ -238,7 +413,6 @@ Set arKenm("TBDwarsVerdeling")=$$$GetKenm("ItemDWV") Set arKenm("OrgaluxProduct")=$$$GetKenm("ItemOLP") Do gbtExtrasFromGlobal() - Do gbtSetNietMeeItems($$$GetKenm("lstNietMee")) Quit gbtBTItemsLadeCode(LCodeID) ; Uit LadeCode volgen deze vijf properties: @@ -293,9 +467,9 @@ . Quit:(NMKey?1(1"NMBlumoBehuizing",1"NMAntislipmat")) . ;d WL^vhDBG($S('$D(arKenm(NMKey)):"Set "_NMKey_" =1", 1:"Val at "_NMKey_" is :"_$G(arKenm(NMKey)))) . Set:('$D(arKenm(NMKey))) arKenm(NMKey)=1 - ;Do bfwResetNMItemsBinnenlade // de oproep is nu verhuisd naar bfwProductFromWSLijn + ;Do gbtResetNMItemsBinnenlade // de oproep is nu verhuisd naar gbtValueToProduct Quit -bfwResetNMItemsBinnenlade +gbtResetNMItemsBinnenlade ; Binnenlade kan NIET gemonteerd worden zonder Reling, dus NMZijReling terug op 0 zetten If ($G(arKenm("TBLadeType"))="B")&&($G(arKenm("TBBoxSide"))'="ZR") Do ; binnenlade met reling/boxside . Set arKenm("NMZijReling")=0 @@ -307,149 +481,16 @@ Set:($G($$$GlobalKLData(0,sDomVERW,KLNrProd,"SR"))?1"V") arKenm("TBStalenRug")=$$$GlobalKLData(0,sDomVERW,KLNrProd,"SR") Set:($G($$$GlobalKLData(0,sDomVERW,KLNrProd,"MATKL1239"))="HA")&&($G(arKenm("TBBodemKleur"))="LGS")&&($G(arKenm("TBLadeDiepte"))?1(1"500")) arKenm("PlaatMat")="HA" ; Bodems Keller gebruiken : "Halux Afgewerkt" i.p.v. "Halux Stroken" Quit -} +]]> + -/// Fill offertelijn (TBX) via params : -/// de Kenmerken-array (+ enkele properties) van oLijn worden ingevuld met de gegevens uit de array Params -Method FillTBX(oLijn As Flow.Offerte.LijnAbstract, Aantal As %Integer, ByRef Params As %String) As %Status -{ - ;New Key - Set oLijn.GenerischType="TBX" - Set oLijn.GenerischProduct="" ; wordt later ingevuld, wanneer het GAData product berekend is. - Set:($D(Aantal)) oLijn.Aantal=Aantal - ; Kenmerken from WSOrder data - For Key="ID","Taal","BonType","KLKorting","KLNummer" Do - . Do oLijn.Kenmerken.SetAt($G(Params("KLT",Key)),Key) - Do oLijn.Kenmerken.SetAt($G(Params("KLT","NietMeeleveren")),"lstNietMee") - ; Kenmerken from WSLijn data - For Key="LIJNNR","AANT","EXCLUDE" Do - . Do oLijn.Kenmerken.SetAt($G(Params("LN",Key)),Key) - For Key="LT","CB","WD","LD","DK","BM","BX","ASM","BGRP","SPZK","SB","OPVL","STDL","VPK","OLP","FB","DWV","FS" Do - . Do oLijn.Kenmerken.SetAt($G(Params("LN",Key)),"Item"_Key) - For Key="KL","KB","RK","KX","KV","DS" Do - . Do oLijn.Kenmerken.SetAt($G(Params("LN","KLR",Key)),"Item"_Key) - Quit $$$OK -} - -/// Voorbereiden van een offertelijn (TBX) voor import in een order -Method GenerateTBX(oLijn As Flow.Offerte.LijnAbstract, NoSa As %String) As %Status -{ - ;New sc,lbProducts - Set sc=oLijn.GetProducts(.lbProducts) - If $$$ISERR(sc) Do - . ; Status is reeds ingevuld in GetProducts() - Else Do - . $$$blFlowOfferte - . Do %blFlowOfferte.InsertSubLijnen(oLijn,lbProducts) - Quit $$$OK -} - -/// Voorbereiden van een offertelijn (TBX) voor prijsberekening en controle -/// Het GAData product wordt gegenereerd, maar NIET opgeslagen. Het KPR product wordt NIET gecreƫerd. -/// De prijs, korttekst, langtekst, ... worden gesimuleerd en ingevuld in de offertelijn. -/// Vult de Status van offertelijn in als er een fout opgetreden is -Method SimulateTBX(oLijn As Flow.Offerte.LijnAbstract, Taal As %String, NoSa As %String) As %Status -{ - ;w "BL.Flow.Offerte.ProductGAData : simulate TBX lijn "_oLijn.GroepKey,! - - ;New GAProd,lbError - Set GAProd=..GAProductFullCalc(oLijn,"TBX",.lbError) - Quit:($$simErrorInFullCalc) $$$ERROR($$$GeneralError,$$$LCVT(lbError)) - - ; Simulate values + set to offertelijn properties - Do ..FillOfferteData(oLijn,GAProd,.Taal) - Quit $$$OK -simErrorInFullCalc() ; Detect error and set to oLijn.Status - Set:('$IsObject(GAProd))&&($G(lbError)="") lbError=$LB($$$errGADataNoProd) ; "GAData Product not created" - If $L($G(lbError)) Do - . $$$blFlowOfferte - . Do %blFlowOfferte.SetStatus(oLijn,$$$OffStatAfgeleidProd,lbError) - Quit ('$IsObject(GAProd)) -} - -/// Controle van een lijn (TBX) op prijs, levertermijn, aantal -/// What : P = Prijzen, L = Levertermijn, A = Aantal -Method ControlesTBX(oLijn As Flow.Offerte.LijnAbstract, What As %String, Taal As %String, NoSa As %String) As %Status -{ - -} - -/// Zie ..GetProducts() -Method GetProductsTBX(oLijn As Flow.Offerte.LijnAbstract, ByRef lbProducts As %List) As %Status -{ - Quit ..GetProducts(oLijn,"TBX",.lbProducts) -} - -/// Genereren van het GAData Product en het KPR Product. -/// Vult de Status van offertelijn in als er een fout opgetreden is -/// Via de list lbProducts wordt ook de vermenigvuldigingsfactor meegegeven. -/// format: $LB($LB(PRNr,Qty),...) vb. $LB($LB(7458,4),$LB(105215,1)) -Method GetProducts(oLijn As Flow.Offerte.LijnAbstract, GenType As String, ByRef lbProducts As %List) As %Status -{ - - Set lbProducts="" - Quit:($G(GenType)'?1(1"TBX")) - ;New GAProd,GAProdID,lbError,PRNr,sc - ;w "BL.Flow.Offerte.ProductGAData : generate "_GenType_" lijn "_oLijn.GroepKey,! - - ; Get GAData Product - Set GAProd=..GAProductFullCalc(oLijn,GenType,.lbError) - Quit:($$gprErrorInFullCalc) $$$ERROR($$$GeneralError,$$$LCVT(lbError)) - - ; Create KPR Product - Set lbError="" - Do GAProd.KPRCreate() ; (GenPRNr,QtyStaffel) - Set PRNr=GAProd.ProductGetObjectId() - Do ..InitProduct(PRNr) ; speciale suboproep om omgevingsvariabelen op te zetten - Do oLijn.Kenmerken.SetAt(PRNr,"PRNr") - If PRNr'>0 Do Quit $$$ERROR($$$GeneralError,$$$LCVT(lbError)) - . Set lbError=$LB($$$errGADataNoKPRProd) ; "KPR Product not created" - . $$$blFlowOfferte - . Do %blFlowOfferte.SetStatus(oLijn,$$$OffStatAfgeleidProd,lbError) - ; Else - Do oLijn.ProductSetObjectId(PRNr) - - ; Save GAData.Product - Set sc=GAProd.SaveClean() - If $$$ISOK(sc) Do - . Set GAProdID=GAProd.%Id() - . Do ##class(Prod.Product).SetPropViaNr(PRNr,"GAProdID",GAProdID) ; ^KPR(PRNr,"G") --> 13e piece - Set lbProducts=$LB($LB(oLijn.ProductGetObjectId(),1)) - Quit $$$OK - - Quit:($$gprErrorInFullCalc) $$$ERROR($$$GeneralError,$$$LCVT(lbError)) -gprErrorInFullCalc() ; Detect error and set to oLijn.Status - Set:('$IsObject(GAProd))&&($G(lbError)="") lbError=$LB($$$errGADataNoProd) ; "GAData Product not created" - If $L($G(lbError)) Do - . $$$blFlowOfferte - . Do %blFlowOfferte.SetStatus(oLijn,$$$OffStatAfgeleidProd,lbError) - Quit ('$IsObject(GAProd)) -} - -Method InitProduct(PRNr) [ ProcedureBlock = 0 ] -{ - Do iprInitializeOld - Do RECALC^PRODUKT2(PRNr) - Do BLDIND^PRODUKT2(PRNr) - If $G(^KLPUTZ("AS")) Do iprCalcSchaduwPrijs - Do ZEND^EWPR(PRNr) - Quit -iprInitializeOld - Set Q="K" - Set D="\",U=";" - S (boot,bootrvg)=$ZU(110),cs=$ZU(5) - S DT=$$EXTDATE^vhDTyp($H,"DKP") - Set QU=$G(%QU) - Quit -iprCalcSchaduwPrijs - Quit:'$D(^PRBS("BS",PRNr)) - Do CALCONE^PRBSC(PRNr,"S","S",1) - Quit -} - -/// De prijs, korttekst, langtekst, ... van het GAProduct worden gesimuleerd en ingevuld in de offertelijn -Method FillOfferteData(oLijn As Flow.Offerte.LijnAbstract, GAProd As Prod.GAData.Product, Taal As %String) As %Status [ Private ] -{ + + +De prijs, korttekst, langtekst, ... van het GAProduct worden gesimuleerd en ingevuld in de offertelijn +oLijn:Flow.Offerte.Lijn,GAProd:Prod.GAData.Product,Taal:%String +1 +%Status + - +]]> + - +