Forum Discussion
I figured out how to do this correctly. Note: our fiscal year runs from Nov to Oct. November is the 1st month of our fiscal year. I calculated each of these in a separate flow member:
YTD balance X Closing rate (FX_Activity_Closing_rate)
- Periodic balance X average rate (Cur_Activity_Avg_rate)
- YearSumToDatePrior(Periodic balance X average rate) (FX_Pr_Activity_Avg_rate)
If (api.Cons.IsCurrency() And Not api.Cons.IsLocalCurrencyforEntity()) Then
Dim timeId As Integer = api.Pov.Time.MemberPk.MemberId
Dim rateTypeRev As FxRateType = api.FxRates.GetFxRateTypeForRevenueExp()
Dim rateTypeClo As FxRateType = api.FxRates.GetFxRateTypeForAssetLiability()
Dim closingRate As Decimal = api.FxRates.GetCalculatedFxRate(rateTypeClo,timeId)
Dim averageRate As Decimal = api.FxRates.GetCalculatedFxRate(rateTypeRev,timeId)
'Calculate Balance sheet activity at the Average rate for each month
api.data.calculate("F#FX_Activity_Closing_rate= ( (F#Activity_Calc:C#Local * " & api.Data.DecimalToText(closingRate) & "))", "A#BalSheet.Base")
End If
If (api.Cons.IsCurrency() And Not api.Cons.IsLocalCurrencyforEntity()) Then
Dim timeId As Integer = api.Pov.Time.MemberPk.MemberId
Dim rateTypeRev As FxRateType = api.FxRates.GetFxRateTypeForRevenueExp()
Dim rateTypeClo As FxRateType = api.FxRates.GetFxRateTypeForAssetLiability()
Dim closingRate As Decimal = api.FxRates.GetCalculatedFxRate(rateTypeClo,timeId)
Dim averageRate As Decimal = api.FxRates.GetCalculatedFxRate(rateTypeRev,timeId)
'Calculate Balance sheet activity at the Average rate for each month
api.data.calculate("F#FX_Cur_Activity_Avg_rate= ( (F#Activity_Calc:C#Local:V#Periodic * " & api.Data.DecimalToText(averageRate) & "))", "A#BalSheet.Base")
End If
Dim curTime As String = api.Pov.Time.Name 'Name of time period being processed
Dim timeId As Integer = api.Pov.Time.MemberPk.MemberId 'Member ID of time period being processed
Dim curMonth As Integer = api.Time.GetPeriodNumFromId(api.Pov.Time.MemberId)
Dim RateTypeClo As FxRateType = api.FxRates.GetFxRateTypeForAssetLiability() 'Rate type of Balance Sheet accounts
Dim Closingrate As Decimal = api.FxRates.GetCalculatedFxRate(RateTypeClo,timeId) 'Closing Rate
'Do not run in November
If (api.Cons.IsCurrency() And Not api.Cons.IsLocalCurrencyforEntity()) Then
If (Not curMonth = 1) Then
api.Data.Calculate("F#FX_Pr_Activity_Avg_rate:V#Periodic = F#FX_Cur_Activity_Avg_rate:V#YearSumToDatePrior","A#BalSheet.Base.remove(PLUG_EQIC, 31000, 32000, 37000)")
End If
End If
Related Content
- 2 years ago
- 2 years ago