Quintiq file version 2.0
|
#parent: #root
|
Method PopulateScenarioComparisonAccountsData (
|
structured[MacroPlan] macroplans,
|
structured[Period_MP] activePeriods,
|
structured[Unit] units,
|
structured[StockingPoint_MP] sps,
|
structured[Product_MP] products
|
) id:Method_ApplicationMacroPlanner_PopulateScenarioComparisonAccountsData
|
{
|
#keys: '[138546.0.68205360]'
|
Body:
|
[*
|
// Populate accounts data for scenario comparison
|
account := DataHolderScenarioComparisonAccount.Data();
|
if( not isnull( account ) )
|
{
|
// Assign data to DataHolderGlobalParameter
|
gp := MacroPlan.GlobalParameters_MP();
|
|
owner := shadow( gp );
|
accountName := account.Name();
|
|
accounts := selectset( macroplans,
|
Elements.Account_MP,
|
acc,
|
acc.Name() = accountName );
|
|
unitIDs := selectvalues( units, Elements, e, true, e.ID() );
|
spIDs := selectvalues( sps, Elements, e, true, e.ID() );
|
productIDs := selectvalues( products, Elements, e, true, e.ID() );
|
|
uas := selectset( accounts,
|
Elements.UnitAccount,
|
ua,
|
ua.Unit().IsInUnitWeb( unitIDs ) );
|
|
spas := selectset( accounts,
|
Elements.StockingPointAccount,
|
spa,
|
spa.StockingPoint_MP().IsInStockingPointWeb( spIDs ) );
|
|
pispas := selectset( accounts, Elements.PISPAccount,
|
pispa,
|
pispa.ProductInStockingPoint_MP().StockingPoint_MP().IsInStockingPointWeb( spIDs )
|
and pispa.ProductInStockingPoint_MP().Product_MP().IsInProductWeb( productIDs ) );
|
|
ApplicationMacroPlanner.CreateShadowAcountAssignmentInPeriodForUnitAccount( owner, uas, activePeriods );
|
ApplicationMacroPlanner.CreateShadowAcountAssignmentInPeriodForStockingPointAccount ( owner, spas, activePeriods );
|
ApplicationMacroPlanner.CreateShadowAcountAssignmentInPeriodForPISPAccount( owner, pispas, activePeriods );
|
|
// Software latest behavior, only set once to dataholder after all manipulation is done
|
// After storing to dataholder, subsequent manipulation will not take effect
|
DataHolderScenarioComparisonGlobalParameters.Data( &owner );
|
}
|
*]
|
}
|