Currency Conversion
One easy join.
Prerequisite: Dataload DS ccy -> CP ccy.
Code
def qapi = api.queryApi()
def t1 = qapi.tables().productExtensionRows("Costs")
def t2 = qapi.tables().companyParameterRows("Currencies")
def today = new Date()
def currency = "USD"
return qapi.source(t1, [t1.sku(), t1.Cost, t1.Currency])
.leftOuterJoin(t2,
{ cols -> [t2.ExchangeRate, cols.Cost.multiply(t2.ExchangeRate).as("CostUSD")] },
{ cols -> qapi.exprs().and(t2.CcyFrom.equal(cols.Currency),
t2.CcyTo.equal(currency),
t2.CcyValidFrom.lessOrEqual(today),
t2.CcyValidTo.greaterOrEqual(today),) })
.take(10)
.stream { it.collect { it } }Result
sku | Cost | Currency | ExchangeRate | CostUSD |
|---|---|---|---|---|
10000001 | 69 | GBP | 1.26 | 86.94 |
10000001 | 64 | CHF | 1.12 | 71.68 |
10000001 | 73 | GBP | 1.26 | 91.98 |
10000001 | 87 | CHF | 1.12 | 97.44 |
10000001 | 37 | DKK | 0.14 | 5.18 |
10000001 | 3 | USD |
|
|
10000002 | 4 | USD |
|
|
10000002 | 53 | USD |
|
|
10000002 | 28 | EUR | 1.05 | 29.4 |
10000002 | 85 | USD |
|
|
See Also
Found an issue in documentation? Write to us.