haorenhui
2023-10-30 6d6cc10d9e8e242661da7fd655dec155a09d676c
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Quintiq file version 2.0
#parent: #root
Method ResetPeriodTaskCampaign (
  const RunContextForCapacityPlanning runcontext,
  LibOpt_Scope scope
)
{
  Description: 'Reset period task quantity, return period task has user quantity'
  TextBody:
  [*
    isoverridemanualplanning := runcontext.HasOverwrittenManualPlanning(); 
    algorithmusecampaign := runcontext.UseCampaign(); 
    
    if( ( not algorithmusecampaign 
          and not runcontext.IsFrozenRun() )
          or isoverridemanualplanning )
    {
      regularoptimizerrun := not runcontext.IsSmartPlan() and not runcontext.IsMetaIteration(); 
      ismetafullrun := runcontext.IsMetaIteration() and not this.GetPeriodsFromPeriodTaskOperation();   
      checkfor_pto_inscope := not regularoptimizerrun 
                              and not ismetafullrun;
      if ( checkfor_pto_inscope ) 
      {
        traverse( scope.GetPeriodTaskOperationInOptimizerRun(), Elements, pt ) 
        {
          pt.PeriodTaskInCampaign( relflush ); 
          pt.PeriodTaskInTransition( relflush ); 
        }
      }
      else
      {
        traverse( scope.GetOperationInOptimizerRun(), 
                  Elements.PeriodTaskOperation, 
                  pt,
                  not pt.UnitPeriod().IsPeriodFrozen() 
                  and scope.Contains( pt.UnitPeriod().Period_MP().PeriodInOptimizerRun() )  )
        {
          pt.PeriodTaskInCampaign( relflush ); 
          pt.PeriodTaskInTransition( relflush ); 
        }
      }
    }
  *]
  InterfaceProperties { Accessibility: 'Module' }
}