persistent 1 DOM.PM.Maatwerk.Calc.HF.IHalffabItemBuilder 0 SamengesteldHalffabItemBuilder:DOM.PM.Maatwerk.Calc.HF.ISamengesteldHalffabItemBuilder 1 1 %Status IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken 1 %Boolean 1 DOM.PM.Maatwerk.Calc.HF.IHalffabListToItemProcessor IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken %ArrayOfDataTypes DOM.PM.Maatwerk.Calc.HF.IHalffabItem mm ??? Set LengteBovenOnder=IngegevenKenmerken.Breedte ; Conversie cm --> mm ??? // Sub Items voor Samengesteld HalffabItem opbouwen If IngegevenKenmerken.IsGlasOnly { Set SubHalffabItem=##class(DOM.PM.Maatwerk.Calc.HF.InbegrepenHalffabItem).%New(Context, "?") Set SubHalffabItem.Halffab=Halffab Set SubHalffabItem.Aantal=1 Do HalffabItem.VoegToe(SubHalffabItem) } Else { Set BewerkingsCalculator = Context.GeefBewerkingsInfo(Halffab.UnID).GeefBewerkingsCalculator() Set LinksAantalIndividueel = BewerkingsCalculator.GeefIndividueleBrutoHoeveelheid(2,LengteLinksRechts) Set LinksRechtsAantal = BewerkingsCalculator.GeefTotaalAantalNodig(2*LinksAantalIndividueel) Set BovenAantalIndividueel = BewerkingsCalculator.GeefIndividueleBrutoHoeveelheid(2,LengteBovenOnder) Set BovenOnderAantal = BewerkingsCalculator.GeefTotaalAantalNodig(2*BovenAantalIndividueel) // Sub Items voor Samengesteld HalffabItem opbouwen If IngegevenKenmerken.LosProfiel?1(1"",1"PL") { Set SubHalffabItem=##class(DOM.PM.Maatwerk.Calc.HF.BewerktHalffabItem).%New(Context, "Links") Set SubHalffabItem.Halffab=Halffab Set SubHalffabItem.Aantal = LinksRechtsAantal / 2 Set SubHalffabItem.IndividueleHoeveelheid = LinksAantalIndividueel Set SubHalffabItem.TeBekomenAantal=1 Do SubHalffabItem.ZetAfwijkendKenmerk("Lengte",LengteLinksRechts) Do HalffabItem.VoegToe(SubHalffabItem) } If IngegevenKenmerken.LosProfiel?1(1"",1"PR") { Set SubHalffabItem=##class(DOM.PM.Maatwerk.Calc.HF.BewerktHalffabItem).%New(Context, "Rechts") Set SubHalffabItem.Halffab=Halffab Set SubHalffabItem.Aantal = LinksRechtsAantal / 2 Set SubHalffabItem.IndividueleHoeveelheid = LinksAantalIndividueel Set SubHalffabItem.TeBekomenAantal=1 Do SubHalffabItem.ZetAfwijkendKenmerk("Lengte",LengteLinksRechts) Do HalffabItem.VoegToe(SubHalffabItem) } If IngegevenKenmerken.LosProfiel?1(1"",1"PB") { Set SubHalffabItem=##class(DOM.PM.Maatwerk.Calc.HF.BewerktHalffabItem).%New(Context, "Boven") Set SubHalffabItem.Halffab=Halffab Set SubHalffabItem.Aantal = BovenOnderAantal / 2 Set SubHalffabItem.IndividueleHoeveelheid = BovenAantalIndividueel Set SubHalffabItem.TeBekomenAantal=1 Do SubHalffabItem.ZetAfwijkendKenmerk("Lengte",LengteBovenOnder) Do HalffabItem.VoegToe(SubHalffabItem) } If IngegevenKenmerken.LosProfiel?1(1"",1"PO") { Set SubHalffabItem=##class(DOM.PM.Maatwerk.Calc.HF.BewerktHalffabItem).%New(Context, "Onder") Set SubHalffabItem.Halffab=Halffab Set SubHalffabItem.Aantal = BovenOnderAantal / 2 Set SubHalffabItem.IndividueleHoeveelheid = BovenAantalIndividueel Set SubHalffabItem.TeBekomenAantal=1 Do SubHalffabItem.ZetAfwijkendKenmerk("Lengte",LengteBovenOnder) Do HalffabItem.VoegToe(SubHalffabItem) } } Quit HalffabItem ]]> %Library.CacheStorage