chenqinghong
2024-05-07 3ec06a830367465068963156dcc1d8e522571c13
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
Quintiq file version 2.0
#parent: #root
MethodOverride CollectData () as owning structured_Object
{
  TextBody:
  [*
    // Retrieve all the PlanningSalesDemandInPeriod, exclude demand in higher level
    data := selectsortedset( this.GetMacroPlan(), SalesDemand.PlanningSalesDemandInPeriod, sdip,
                             not sdip.MasterSalesDemand().IsSoftDeleted() 
                             and sdip.ProductInStockingPoint_MP().IsLeaf() 
                             and sdip.FulfilledQuantity() >0.0,// only interested on fulfilled sdip
                             sdip.SalesSegmentName(), sdip.StockingPointID(), sdip.ProductID() );
    
    
    
    // pass only unique BaseSalesDemandInPeriod
    uniqueData := construct( BaseSalesDemandInPeriods );
    
    // initialize pointers
    pointerSalesSegment  := '';
    pointerStockingPoint := '';
    pointerProduct       := '';
    
    traverse( data, Elements, sdip )
    {
      if( pointerSalesSegment  <> sdip.SalesSegmentName() or
          pointerStockingPoint <> sdip.StockingPointID()  or
          pointerProduct       <> sdip.ProductID() )
      {
        uniqueData.Add( sdip );
    
        // update pointers
        pointerSalesSegment  := sdip.SalesSegmentName();
        pointerStockingPoint := sdip.StockingPointID();
        pointerProduct       := sdip.ProductID();
      }
    }
    
    return &uniqueData;
  *]
}