Quintiq file version 2.0
|
#parent: #root
|
Method GenerateMatrixData () id:Method_FormCostManagement_GenerateMatrixData
|
{
|
#keys: '[127710.1.439019647]'
|
Body:
|
[*
|
// Generate account cost in period shadow instances
|
// Clear data holder
|
DataHolderShadowGlobalParameters.Data( null( shadow[GlobalParameters_MP], owning ) );
|
|
//Ownership on GP so that it is possible to show multi rows when multiple accounts are selected.
|
owner := shadow( MacroPlan.GlobalParameters_MP() );
|
|
DataHolderShadowGlobalParameters.Data( &owner );
|
|
traverse( DataHolderMatrixEditorRows.Data(), Elements, rowheadercost ) // For each ROW
|
{
|
traverse ( DataHolderMatrixEditorColumns.Data(), Elements, p )
|
{
|
maxcost := maxselect( rowheadercost, AccountAssignment.AccountCost, ac,
|
ac.OwnerID() = rowheadercost.OwnerID()
|
and ac.Account_MP() = rowheadercost.Account_MP()
|
and ac.CostDriver() = rowheadercost.CostDriver()
|
and ac.Start() <= p.StartDate(),
|
ac.Start() );
|
|
if( rowheadercost.istype( ProductValueAndCost ) )
|
{
|
maxcost := maxselect( rowheadercost.astype( ProductValueAndCost ),
|
Product_MP.ProductValueAndCost,
|
pc,
|
pc.OwnerID() = rowheadercost.OwnerID()
|
and pc.Account_MP() = rowheadercost.Account_MP()
|
and pc.CostDriver() = rowheadercost.CostDriver()
|
and pc.Start() <= p.StartDate(),
|
pc.Start() );
|
}
|
|
if( not isnull( maxcost ) )
|
{
|
this.CreateShadowAccountCostInPeriod( p,
|
maxcost,
|
rowheadercost );
|
}
|
}
|
}
|
*]
|
}
|