yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
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
Quintiq file version 2.0
#parent: #root
MethodOverride GetQuantityForOptimizer (
  const LibOpt_Scope scope
) const as Real
{
  TextBody:
  [*
    value := 0.0
    if( not isnull( this.AsSalesDemandInPeriodBase() ) )
    {
      unpostponed := this.GetUnPostponedQuantity();
      
      postponed_outofscope := sum(  this, 
                                    DisaggregatedSalesDemandInPeriod, 
                                    dsdip,
                                    not isnull( dsdip.OriginalSalesDemand() )                                                           // postponed dsdip
                                    and ( dsdip.IsManuallyPostponed()                                                                   // manually postponed
                                          or not scope.Contains( dsdip.ProductInStockingPointInPeriodPlanning().PISPIPInOptimizerRun() ) ),    // *NOT* within the opt scope (note dsdip are not added to scope as objects)
                                    dsdip.Quantity() ); 
      value := maxvalue(  unpostponed - postponed_outofscope, 0.0 ); 
    }
    return value;
  *]
}