Total Budget
Tue Feb 25 2025 14:18:27 GMT+0000 (Coordinated Universal Time)
Saved by @MinaTimo
[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;
}
}



Comments