[ExtensionOf(tableStr(PurchReqLine))] final class PurchReqLine_ADI_Finance_Extension { public display real TotalBudget() { AccountingDistribution AccountingDistribution; BudgetTransactionHeader BudgetTransactionHeader; BudgetTransactionLine BudgetTransactionLine; DimensionAttributeValueCombination ValueCombination, ValueCombinationBudget; select AccountingDistribution where AccountingDistribution.SourceDocumentLine == this.SourceDocumentLine; select ValueCombination where ValueCombination.RecId == AccountingDistribution.LedgerDimension && ValueCombination.LedgerDimensionType == LedgerDimensionType::Account; while select ValueCombinationBudget //where ValueCombinationBudget.DisplayValue == ValueCombination.DisplayValue where ValueCombinationBudget.MainAccount == ValueCombination.MainAccount && ValueCombinationBudget.LedgerDimensionType == LedgerDimensionType::Budget { if(this.getAttr(ValueCombination, 'DEPARTMENT') == this.getAttr(ValueCombinationBudget, 'DEPARTMENT') && this.getAttr(ValueCombination, 'COSTCENTER') == this.getAttr(ValueCombinationBudget, 'COSTCENTER')) break; } real amount; while select BudgetTransactionLine join BudgetTransactionHeader where BudgetTransactionLine.BudgetTransactionHeader == BudgetTransactionHeader.RecId && BudgetTransactionHeader.BudgetModelDataAreaId == curExt() && BudgetTransactionHeader.TransactionStatus == BudgetTransactionStatus::Completed && BudgetTransactionLine.LedgerDimension == ValueCombinationBudget.RecId { if(year(BudgetTransactionLine.Date) == year(this.purchReqTable().TransDate)) amount+=BudgetTransactionLine.TransactionCurrencyAmount; } return amount; } protected RecId getAttr(DimensionAttributeValueCombination _combination, Name _attributeName) { DimensionAttributeLevelValueView valueView; DimensionAttribute attribute = DimensionAttribute::findByName(_attributeName); ; select DisplayValue from valueView where valueView.ValueCombinationRecId == _combination.recId && valueView.DimensionAttribute == attribute.RecId; return valueView.EntityInstance; } }