Lai,Risheng
2023-11-02 30c02e0c981b16be0918483543f4b812956c45d4
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Quintiq file version 2.0
#parent: #root
Method PopulateScenarioComparisonData () id:Method_ApplicationMacroPlanner_PopulateScenarioComparisonData_549
{
  #keys: '[138546.0.75259420]'
  Body:
  [*
    // Populate scenario comparison data
    macroPlans := DataHolderMacroPlansForScenarioComparison.Data();
    
    if( macroPlans.Size() > 0 )
    {
      // Retrive nav panel data
      activePeriods := selectset( DataHolderPeriods.Data(), Elements, p, not p.IsHistorical() );
      products := DataHolderProduct.Data();
      units := DataHolderUnit.Data();
      sps := DataHolderStockingPoint.Data();
      salessegments := DataHolderSalesSegment.Data();
      
      // Cost data 
      traverse( DataHolderOpenedForms.Data(), Elements, webform )
      {
        if( webform.istype( FormScenarioComparisonCosts ) )
        {
          webform.astype( FormScenarioComparisonCosts ).PopulateScenarioComparisonAccountsData( macroPlans, activePeriods, units, sps, products );
        }
        // Sales demands
        if( webform.istype( FormScenarioComparisonDemandFulfillment ) )
        {
          webform.astype( FormScenarioComparisonDemandFulfillment ).PopulatScenarioComparisonSalesDemands( macroPlans, activePeriods, products, sps, salessegments );
        }
        // Unit periods
        if( webform.istype( FormScenarioComparisonUnitCapacity ) )
        {
          webform.astype( FormScenarioComparisonUnitCapacity ).PopulateScenarioComparisonUnitPeriods( macroPlans, activePeriods, units );
        }
        // SPIPs
        if( webform.istype( FormScenarioComparisonStockingPointCapacity ) )
        {
          webform.astype( FormScenarioComparisonStockingPointCapacity ).PopulateScenarioComparisonStockingPointInPeriods( macroPlans, activePeriods, sps );
        }
        // Inventory levels
        if( webform.istype( FormScenarioComparisonInventoryLevels ) )
        {
          webform.astype( FormScenarioComparisonInventoryLevels ).PopulateScenarioComparisonPISPIPs( macroPlans, activePeriods, products, sps )
        }
        // Trips
        if( webform.istype( FormScenarioComparisonTrips ) )
        {
          webform.astype( FormScenarioComparisonTrips ).PopulateScenarioComparisonTrips( macroPlans, activePeriods, units );
        }
        // New supplies
        if( webform.istype( FormScenarioComparisonProductOutput ) )
        {
          webform.astype( FormScenarioComparisonProductOutput ).PopulateScenarioComparisonNewSupplies( macroPlans, activePeriods, units, sps, products );
        }
      }
    }
  *]
}