1 DOM.PM.Maatwerk.Calc.HF.IHalffabItemBuilder 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, "?", Halffab) Set SubHalffabItem.Aantal=1 Do HalffabItem.VoegToe(SubHalffabItem) } Else { #dim BewerkingsCalculator As DOM.PM.Maatwerk.Calc.HF.IBewerkingsCalculator = Context.GeefBewerkingsInfo(Halffab.GeefProductID(),"Lengte").GeefBewerkingsCalculator() #dim LinksRechtsAfmetingAangerekend As %Decimal = BewerkingsCalculator.GeefAfmetingAangerekendPerStuk(2,LengteLinksRechts) #dim LinksRechtsAantal As %Integer = BewerkingsCalculator.GeefAantalTePicken(LengteLinksRechts,2,LinksRechtsAfmetingAangerekend) #dim LinksRechtsMetBewerkingVerlies As %Decimal = BewerkingsCalculator.GeefAfmetingMetBewerkingVerlies(LengteLinksRechts,2) #dim BovenAantalAfmetingAangerekend As %Decimal = BewerkingsCalculator.GeefAfmetingAangerekendPerStuk(2,LengteBovenOnder) #dim BovenOnderAantal As %Integer = BewerkingsCalculator.GeefAantalTePicken(LengteBovenOnder,2,BovenAantalAfmetingAangerekend) #dim BovenOnderMetBewerkingVerlies As %Decimal = BewerkingsCalculator.GeefAfmetingMetBewerkingVerlies(LengteBovenOnder,2) // 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", Halffab) Set SubHalffabItem.Aantal = LinksRechtsAantal / 2 Set SubHalffabItem.AfmetingAangerekendPerStuk = LinksRechtsAfmetingAangerekend Set SubHalffabItem.AfmetingMetBewerkingVerlies = LinksRechtsMetBewerkingVerlies Set SubHalffabItem.TeBekomenAantal=1 Do SubHalffabItem.ZetBewerkteDimensie("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", Halffab) Set SubHalffabItem.Aantal = LinksRechtsAantal / 2 Set SubHalffabItem.AfmetingAangerekendPerStuk = LinksRechtsAfmetingAangerekend Set SubHalffabItem.AfmetingMetBewerkingVerlies = LinksRechtsMetBewerkingVerlies Set SubHalffabItem.TeBekomenAantal=1 Do SubHalffabItem.ZetBewerkteDimensie("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", Halffab) Set SubHalffabItem.Aantal = BovenOnderAantal / 2 Set SubHalffabItem.AfmetingAangerekendPerStuk = BovenAantalAfmetingAangerekend Set SubHalffabItem.AfmetingMetBewerkingVerlies = BovenOnderMetBewerkingVerlies Set SubHalffabItem.TeBekomenAantal=1 Do SubHalffabItem.ZetBewerkteDimensie("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", Halffab) Set SubHalffabItem.Aantal = BovenOnderAantal / 2 Set SubHalffabItem.AfmetingAangerekendPerStuk = BovenAantalAfmetingAangerekend Set SubHalffabItem.AfmetingMetBewerkingVerlies = BovenOnderMetBewerkingVerlies Set SubHalffabItem.TeBekomenAantal=1 Do SubHalffabItem.ZetBewerkteDimensie("Lengte",LengteBovenOnder) Do HalffabItem.VoegToe(SubHalffabItem) } } Quit HalffabItem ]]> %Library.CacheStorage