Quintiq file version 2.0
|
#parent: #root
|
Method GetFinancialKPI (
|
Number level,
|
output Real minweightused,
|
output Real maxweightused,
|
output Real financialpos,
|
output String financialdescr
|
) as Real
|
{
|
TextBody:
|
[*
|
// Storing of goal value to instances
|
|
// Account kpis
|
|
total := 0.0;
|
financialpos := 0.0;
|
financialdescr := '';
|
traverse( this, Suboptimizer.astype( CapacityPlanningSuboptimizer ).MacroPlan.Account_MP, account, account.IsUsedByOptimizer() and account.Level() = level )
|
{
|
term := ifexpr( account.IsMaximize(), 1.0, -1.0 ) * account.Value() * this.AdjustMinMax( minweightused, maxweightused, account.Weight() );
|
total := total + term;
|
financialdescr := financialdescr + account.Name() + '[' +[String] term + ']';
|
if ( account.IsMaximize() )
|
{
|
financialpos := financialpos + term;
|
}
|
}
|
total := ifexpr( this.RoundPuzzleScoreDecimal() >= 0, total.Round( this.RoundPuzzleScoreDecimal() ), total ); // negative means no round
|
return total;
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|