lihongji
2024-07-09 5ed2c2076e3b8a907ac2d271ea627cc9f9c9b3f4
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;
  *]
}