1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| Quintiq file version 2.0
| #parent: #root
| StaticMethod GetDependentDemandEnd (
| DateTime start,
| const Period_MP period,
| const Process_MP process
| ) const declarative as DateTime
| {
| TextBody:
| [*
| value := Process_MP::GetOperationEnd( period, start );
| gp := period.MacroPlan().GlobalParameters_MP();
|
| if( not gp.IsOperationLeadTimeLogicProportional() )
| {
| //get period of start
| ddstartperiod := select( gp.MacroPlan(), PlanningPeriod, pp, pp.Start() <= start and pp.End() > start );
|
| // Tianma fix 20230920
| if( not isnull( ddstartperiod ) )
| {
| // if not start from middle and leadtime < period task period duration, make sure dependent demand end before period start
| periodstart := ifexpr( not gp.IsOperationLeadTimeLogicFromMiddle() and period.Duration() < process.LeadTime(), period.Start(), DateTime::MaxDateTime() );
|
| value := minvalue( start + process.LeadTime(), start + ddstartperiod.Duration(), periodstart );
| }
| }
|
| return value;
| *]
| }
|
|