Er is een nieuwe calculator 'DiscreetHalf' die de helft aanrekent als de nodige afmeting kleiner of gelijk is aan de helft van het halffabrikaat. Indien vlot te doen mag er ook voor discreet flow rekening gehouden worden met 'uitval vast' (momenteel is dat niet het geval maar zeker als we met halve latten werken is dat eigenlijk wel nodig). persistent 1 DOM.PM.Maatwerk.Calc.HF.impl.BewerkingsCalculator %Integer 1 BrutoAfmetingHalffabrikaat:%Decimal,BrutoPercentage:%Float,BrutoVast:%Float,UitvalPercentage:%Float,UitvalVast:%Float,AantalGedeeltes:%Integer 1 1 %Status Visitor:DOM.PM.Maatwerk.Calc.HF.BewerkingsCalculatorVisitor AantalNodig:%Decimal,AfmetingNodig:%Decimal %Decimal NettoAfmetingHalffabrikaat) Do ##class(TECH.ExceptionHandler).Throw(##class(DOM.PM.Maatwerk.Calc.HF.impl.CalculatorException).%New("Afmeting nodig ("_AfmetingNodig_") is groter dan lengte van het halffabrikaat ("_NettoAfmetingHalffabrikaat_")")) #dim AfmetingMetBewerkingsVerlies As %Decimal = ..GeefAfmetingMetBewerkingVerlies(AfmetingNodig,AantalNodig) #dim AfmetingAangerekend As %Decimal If (AfmetingMetBewerkingsVerlies > NettoAfmetingHalffabrikaat){ Set AfmetingAangerekend = NettoAfmetingHalffabrikaat }Else{ #dim NettoAfmetingGedeelte As %Double = ( NettoAfmetingHalffabrikaat / ..AantalGedeeltes ) #dim AantalGedeeltesNodig As %Decimal= ##class(TECH.Math).Ceil((AfmetingMetBewerkingsVerlies/NettoAfmetingGedeelte)) Set AfmetingAangerekend = (AantalGedeeltesNodig*NettoAfmetingGedeelte) } Quit AfmetingAangerekend ]]> AfmetingNodig:%Decimal,AantalNodig:%Decimal,AfmetingAangerekendPerStuk:%Decimal %Decimal AfmetingPerGedeelte:%Decimal,AantalNodig:%Decimal 1 %Decimal NettoAfmetingHalffabrikaat { Set AfmetingPerGedeelte = NettoAfmetingHalffabrikaat } #dim AantalGedeeltesUitEenHalffab As %Integer = ..GeefAantalGedeeltesUitEenHalffab(NettoAfmetingHalffabrikaat,AfmetingPerGedeelte) Quit (AantalNodig / AantalGedeeltesUitEenHalffab) ]]> AfmetingHalffabrikaat:%Decimal,AfmetingPerGedeelte:%Decimal 1 %Integer AfmetingNodig:%Decimal,TotaalNodig:%Decimal %Decimal %Integer AfmetingNodig:%Decimal,AfmetingMetBewerkingsVerlies:%Decimal,NettoAfmetingHalffabrikaat:%Decimal 1 %Boolean %Library.CacheStorage DiscreetGedeelteCalculatorDefaultData listnode "DiscreetGedeelteCalculator" AantalGedeeltes