From 8b3676bd00b09968bc4a35f0b3274004a2ecb703 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Tue, 7 Feb 2023 11:21:19 +0300 Subject: [PATCH] process/calculate/common: radioCalcType tbxIRR_Perc tbxTotalPayments --- apps/web/config/default-statuses.ts | 2 +- .../web/process/calculate/reactions/common.ts | 28 +++++++++++++++++++ apps/web/process/calculate/reactions/index.js | 1 + .../process/init/inject-reactions/default.js | 1 + 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 apps/web/process/calculate/reactions/common.ts diff --git a/apps/web/config/default-statuses.ts b/apps/web/config/default-statuses.ts index dfa5acd..360fa13 100644 --- a/apps/web/config/default-statuses.ts +++ b/apps/web/config/default-statuses.ts @@ -132,7 +132,7 @@ const defaultStatuses: CalculationStatuses = { tbxSubsidySum: 'Default', tbxSupplierDiscountPerc: 'Default', tbxSupplierDiscountRub: 'Default', - tbxTotalPayments: 'Default', + tbxTotalPayments: 'Disabled', tbxVATInLeaseObjectPrice: 'Default', tbxVehicleTaxInLeasingPeriod: 'Disabled', tbxVehicleTaxInYear: 'Default', diff --git a/apps/web/process/calculate/reactions/common.ts b/apps/web/process/calculate/reactions/common.ts new file mode 100644 index 0000000..c68fa6f --- /dev/null +++ b/apps/web/process/calculate/reactions/common.ts @@ -0,0 +1,28 @@ +import type { ReactionsContext } from '@/process/types'; +import { reaction } from 'mobx'; + +export default function commonReactions({ store }: ReactionsContext) { + const { $calculation } = store; + + reaction( + () => $calculation.element('radioCalcType').getValue(), + (calcType) => { + switch (calcType) { + case 100000001: { + $calculation.element('tbxIRR_Perc').block(); + $calculation.element('tbxTotalPayments').unblock(); + break; + } + case 100000000: + default: { + $calculation.element('tbxIRR_Perc').unblock(); + $calculation.element('tbxTotalPayments').block(); + break; + } + } + }, + { + fireImmediately: true, + } + ); +} diff --git a/apps/web/process/calculate/reactions/index.js b/apps/web/process/calculate/reactions/index.js index 5aaa2fd..cc8d68a 100644 --- a/apps/web/process/calculate/reactions/index.js +++ b/apps/web/process/calculate/reactions/index.js @@ -1 +1,2 @@ +export { default as common } from './common'; export { default as validation } from './validation'; diff --git a/apps/web/process/init/inject-reactions/default.js b/apps/web/process/init/inject-reactions/default.js index 85bc5ba..952d409 100644 --- a/apps/web/process/init/inject-reactions/default.js +++ b/apps/web/process/init/inject-reactions/default.js @@ -18,6 +18,7 @@ export default function injectDefaultReactions(context) { leadOpportunityReactions.urls(context); paymentsReactions(context); calculateReactions.validation(context); + calculateReactions.common(context); supplierReactions.commonReactions(context); supplierReactions.validationReactions(context); agentsReactions.fillReactions(context);