Prod.Bouwsteen 1 TECH.RegisteredObject,DOM.PM.Maatwerk.Calc.HF.HalffabItemVisitor,DOM.PM.Maatwerk.Calc.Kost.IKostItemVisitor right DOM.PM.Maatwerk.Calc.Common.ProductSpecificatie 1 DOM.PM.Maatwerk.Calc.Common.BerekeningsSpecificatie 1 DOM.PM.Maatwerk.Calc.HF.HalffabItemsBoom 1 DOM.PM.Maatwerk.Calc.Kost.SamengesteldKostItem 1 %Integer 1 %Integer 1 %Integer 1 %Integer 1 PRNr:%Integer,ProductSpecificatie:DOM.PM.Maatwerk.Calc.Common.ProductSpecificatie,BerekeningsSpecificatie:DOM.PM.Maatwerk.Calc.Common.BerekeningsSpecificatie,HalffabItemsBoom:DOM.PM.Maatwerk.Calc.HF.HalffabItemsBoom,KostItem:DOM.PM.Maatwerk.Calc.Kost.SamengesteldKostItem 1 1 %Status 1 1 1 Item:DOM.PM.Maatwerk.Calc.HF.StandaardHalffabItem %Status Item:DOM.PM.Maatwerk.Calc.HF.InbegrepenHalffabItem %Status Item:DOM.PM.Maatwerk.Calc.HF.SamengesteldHalffabItem %Status Item:DOM.PM.Maatwerk.Calc.HF.BewerktHalffabItem,SamengesteldeRol:%String="" %Status HalffabItem:DOM.PM.Maatwerk.Calc.HF.ConcreetHalffabItem,IsBewerkt:%Boolean=0,SamengesteldeRol:%String="",RecD:%String="" 1 %String HARDCODED, moet nog correct ingevuld worden Set $P(Rec,"\",11) = "H" //Groep -> HARDCODED, moet nog correct ingevuld worden set $P(Rec,"\",13)=##class(TECH.StringUtils).StripFirstPart(HalffabItem.GeefVolledigeRolNaam(),".") // N.B. Bij een volgende wijziging in dit gebied, kan best overwogen worden of we de logica niet zouden omdraaien: // By default mag een bestaande BSKey NIET hergebruikt worden. Dat lijkt een veiligere default. // Bij een expliciet gemapte label (via DataMBouwsteenLabelInfo) is er uiteraard wél hergebruik indien de mapping dat zo aangeeft. If (SamengesteldeRol '= "") { Set TeZoekenRol = SamengesteldeRol } Else { Set TeZoekenRol = HalffabItem.GeefRol() } &SQL(SELECT Label INTO :Label FROM DOM_PM_impl_DataM.DataMBouwsteenLabelInfo WHERE Rol = :TeZoekenRol AND IsBewerkt = :IsBewerkt) If ('$Data(Label)) { Set Label = ##class(TECH.StringUtils).ToUpper($E(HalffabItem.GeefRol(), 1, 8)) } If (..ProductSpecificatie.GeefFamilie() = ##class(DOM.PM.enu.Familie).Lade() && (";PRBDHO;PRBDHZ;PRRUGHS;PRVPCP;PRVPZW;PRVPOD;PRVULSTUK;PRVULPAL" [ Label)) { Set $P(Rec,"\",16) = 1 } // Iets met sorteren en groeperen //Set GroepAndSort=$$kpcGetDispGroepSort(DItem) // Soms uit fabrtekst, anders uit fabrgroep Set $P(Rec,"\",18) = "FabrGroep1" //$P(GroepAndSort,";",1) ; DItem.EvalTemplAuto("FabrGroep") Set $P(Rec,"\",19) = "FabrPrep" //DItem.EvalTemplAuto("FabrPrep") // -> Deze is zeker nodig Set $P(Rec,"\",21) = "FabrGroep2" //$P(GroepAndSort,";",2) set $P(Rec,"\",$$$IsMeeTeRekenenInPrijs) = $$$Not(HalffabItem.IsMeeTeRekenenInPrijs) set $P(Rec,"\",$$$IsMeeTeRekenenVoorVoorraad) = $$$Not(HalffabItem.IsMeeTeRekenenVoorVoorraad) #dim BSKey As %String = ..GeefBSKey(HalffabItem,Label,Rec,RecD) // Als de bouwsteen al bestond moeten we de aantallen verhogen If ($Data(^PRBS("BS",..PRNr,BSKey))) { Set $P(Rec,"\",2) = Aantal + $P(^PRBS("BS",..PRNr,BSKey),"\",2) Set $P(Rec,"\",13) = $P(^PRBS("BS",..PRNr,BSKey),"\",13)_";"_$P(Rec,"\",13) } Set ^PRBS("BS",..PRNr,BSKey) = Rec Quit BSKey ]]> HalffabItem:DOM.PM.Maatwerk.Calc.HF.ConcreetHalffabItem,Label:%String,Rec:%String,RecD:%String 1 Record1:%String,Record2:%String 1 Record:%String,BSLPrefix:%String %String Item:DOM.PM.Maatwerk.Calc.Kost.ActiviteitKostItem %Status Item:DOM.PM.Maatwerk.Calc.Kost.BewerktHalffabKostItem %Status Item:DOM.PM.Maatwerk.Calc.Kost.StandaardHalffabKostItem %Status Item:DOM.PM.Maatwerk.Calc.Kost.ExtraKostItem %Status Item:DOM.PM.Maatwerk.Calc.Kost.ProcentueelKostItem %Status Item:DOM.PM.Maatwerk.Calc.HF.MaatwerkProductHalffabItem %Status Item:DOM.PM.Maatwerk.Calc.Kost.MaatwerkProductKostItem %Status