TECH.RegisteredObject %Date %Decimal %Decimal %Decimal %String %Integer %Integer APPS.Halux.Planning.Pitching.dto.ResourcePitched %Boolean d ##class(APPS.Halux.Planning.Capaciteit.impl.WerktijdCalculator).%New().Test() NodeTest=1 1 1 %Status 1 Resource %Date ResourcePitched:APPS.Halux.Planning.Pitching.dto.ResourcePitched ResourcePitched:APPS.Halux.Planning.Pitching.dto.ResourcePitched 0 { Do ..MinSeconden(..ResourcePitched.DuurTijd/..ResourcePitched.StretchFactor) Set ..ResourcePitched.StartTijdstip=..VindVorigTijdstip() Set ..ResourcePitched.CapaciteitStartTijd=..CapStartTijd } Else { Set ..ResourcePitched.StartTijdstip="" } ]]> 0 { Do ..AddSeconden(..ResourcePitched.DuurTijd/..ResourcePitched.StretchFactor) Set ..ResourcePitched.EindTijdstip= ..VindVolgendTijdstip() } Else { Set ..ResourcePitched.EindTijdstip="" } ]]> %Date ..RefTijd) ; valt in een pauze of na einde werkdag { ; niet binnen een tijdslot Set ..CapEindTijd=$O(^Halux.GeplandeCapaciteit(..NodeVroeger,..Resource,..RefDatum,..RefTijd),-1) ; eerst vroegere tijdslot If (..CapEindTijd="") ; er zijn geen latere { w:..Debug 4,"volgende datum",! Set ..RefDatum=$O(^Halux.GeplandeCapaciteit(..NodeVroeger,..Resource,..RefDatum),-1) ; eerst vorige datum Set:..RefDatum ..CapEindTijd=$O(^Halux.GeplandeCapaciteit(..NodeVroeger,..Resource,..RefDatum,""),-1) Set ..RefTijd=..CapEindTijd } Else { w:..Debug 3,"volgend interval",! Set ..RefTijd=..CapEindTijd } } Else { w:..Debug 2,"in interval",! ;Set ..RefTijd=..CapEindTijd } } Set:..RefDatum VorigTijdstip=..BuildTijdstip(..RefDatum,..RefTijd) Quit $G(VorigTijdstip) ]]> %Date 1 %Decimal Tijdstip Datum,Tijd Seconden:%Decimal 1 86399 { Set ..RefDatum=..RefDatum+1 Set ..RefTijd=..RefTijd-86399 } ]]> Tijdstip,Seconden Seconden:%Decimal 1 %Decimal