mirror of
https://github.com/we-promise/sure.git
synced 2026-04-10 15:54:48 +00:00
61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
import ExchangeRateFormController from "controllers/exchange_rate_form_controller";
|
|
|
|
// Connects to data-controller="transaction-form"
|
|
export default class extends ExchangeRateFormController {
|
|
static targets = [
|
|
...ExchangeRateFormController.targets,
|
|
"account",
|
|
"currency"
|
|
];
|
|
|
|
hasRequiredExchangeRateTargets() {
|
|
if (!this.hasAccountTarget || !this.hasCurrencyTarget || !this.hasDateTarget) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
getExchangeRateContext() {
|
|
if (!this.hasRequiredExchangeRateTargets()) {
|
|
return null;
|
|
}
|
|
|
|
const accountId = this.accountTarget.value;
|
|
const currency = this.currencyTarget.value;
|
|
const date = this.dateTarget.value;
|
|
|
|
if (!accountId || !currency) {
|
|
return null;
|
|
}
|
|
|
|
const accountCurrency = this.accountCurrenciesValue[accountId];
|
|
if (!accountCurrency) {
|
|
return null;
|
|
}
|
|
|
|
return {
|
|
fromCurrency: currency,
|
|
toCurrency: accountCurrency,
|
|
date
|
|
};
|
|
}
|
|
|
|
isCurrentExchangeRateState(fromCurrency, toCurrency, date) {
|
|
if (!this.hasRequiredExchangeRateTargets()) {
|
|
return false;
|
|
}
|
|
|
|
const currentAccountId = this.accountTarget.value;
|
|
const currentCurrency = this.currencyTarget.value;
|
|
const currentDate = this.dateTarget.value;
|
|
const currentAccountCurrency = this.accountCurrenciesValue[currentAccountId];
|
|
|
|
return fromCurrency === currentCurrency && toCurrency === currentAccountCurrency && date === currentDate;
|
|
}
|
|
|
|
onCurrencyChange() {
|
|
this.checkCurrencyDifference();
|
|
}
|
|
}
|