Quintiq file version 2.0
|
#parent: #root
|
StaticMethod GetAlignedStart (
|
DateTime currentstart,
|
DateTime newstartofplanning,
|
String timeunit,
|
Number nroftimeunit
|
) as DateTime
|
{
|
Description: 'Return the new aligned date time with the given date time, time unit, nr of time unit and if it is forward or backward.'
|
TextBody:
|
[*
|
// DWE2 May-11-2016 (created)
|
newdate := currentstart;
|
|
if( currentstart < newstartofplanning )
|
{
|
while( newstartofplanning >= newdate )
|
{
|
newdate := PeriodSpecification_MP::GetStartOfNextPeriod( newdate, timeunit, nroftimeunit );
|
}
|
|
/* Need to move one period a head because the end of next period not always align with the new start date
|
E.g: Weeks vs Month, Start of planning, period alignment 1 Jan 2016
|
when we go through this loop, the loop will exit @ 5 Feb, this is because the start of next from 22 Jan is 29 Jan which is < than the newdate
|
Do not offset the date because we wont know whats the duration we need to offset
|
*/
|
newdate := PeriodSpecification_MP::GetStartOfPreviousPeriod( newdate.Date(), timeunit, nroftimeunit );
|
}
|
else
|
{
|
while( newdate > newstartofplanning )
|
{
|
newdate := PeriodSpecification_MP::GetStartOfPreviousPeriod( newdate.Date(), timeunit, nroftimeunit );
|
}
|
}
|
|
return newdate;
|
*]
|
}
|