Demo

CurrencyExchangeService

Exchange rates between currencies — update a pair (and its inverse), read the latest rate, or list rates from a source currency.

Inject

TSXinject
1import { 2 ContainerRegistryManager, 3 CurrencyExchangeService, 4 Inject, 5 Service, 6} from "@quan-erp/shared-backend-core"; 7 8@Service() 9export class MyPluginService { 10 @Inject(CurrencyExchangeService, ContainerRegistryManager.BUILTIN_PLUGIN) 11 private currencyExchangeService: CurrencyExchangeService; 12}

Methods

  • updateRate(fromCurrencyId: number, toCurrencyId: number, rate: number) — upsert the from→to rate and maintain the inverse
  • getRate(fromCurrencyId: number, toCurrencyId: number): Promise<CurrencyExchangeRateEnity | null> — latest rate for the pair (entity name spelling matches source)
  • getLatestRates(fromCurrencyId: number) — latest rates from one source currency to others
TSXrates
1import { 2 ContainerRegistryManager, 3 CurrencyExchangeService, 4 Inject, 5 Service, 6} from "@quan-erp/shared-backend-core"; 7 8@Service() 9export class FxService { 10 @Inject(CurrencyExchangeService, ContainerRegistryManager.BUILTIN_PLUGIN) 11 private fx: CurrencyExchangeService; 12 13 async setUsdToMmk(usdId: number, mmkId: number, rate: number) { 14 await this.fx.updateRate(usdId, mmkId, rate); 15 } 16 17 async convertHint(fromId: number, toId: number) { 18 const row = await this.fx.getRate(fromId, toId); 19 return row?.rate ?? null; 20 } 21 22 async board(fromId: number) { 23 return this.fx.getLatestRates(fromId); 24 } 25}