From 8c55d7678cfcd4d1218a409577c03d0854b452e3 Mon Sep 17 00:00:00 2001 From: Chika Date: Tue, 28 Jun 2022 17:21:04 +0300 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BA=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=9F=D0=9B=20=D0=91=D0=A3,=20=D0=A1=D1=83?= =?UTF-8?q?=D0=B1=D1=81=D0=B8=D0=B4=D0=B8=D1=8E=20=D0=B8=20=D0=9F=D1=80?= =?UTF-8?q?=D0=BE=D0=B4=D1=83=D0=BA=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit если ПЛ БУ = Да или Субсидия содержит данные или в Продукте БУбезНДС = Да, то поле Срок поставки = 100 000 000 и закрыто для редактирования, иначе открыто для редактирования --- src/client/process/used-pl/reactions.ts | 73 ++++++++++++++++++- .../Effects/reactions/otherReactions.ts | 53 -------------- 2 files changed, 69 insertions(+), 57 deletions(-) diff --git a/src/client/process/used-pl/reactions.ts b/src/client/process/used-pl/reactions.ts index 6ce589a..5bb54a7 100644 --- a/src/client/process/used-pl/reactions.ts +++ b/src/client/process/used-pl/reactions.ts @@ -63,8 +63,6 @@ export default function ($calculation: ICalculationStore) { } else { const { evo_sale_without_nds } = product; if (evo_sale_without_nds) { - $calculation.setStatus('cbxLeaseObjectUsed', ElementStatus.Disabled); - $calculation.setStatus( 'tbxSupplierDiscountRub', ElementStatus.Disabled, @@ -84,8 +82,6 @@ export default function ($calculation: ICalculationStore) { $calculation.setStatus('selectImportProgram', ElementStatus.Disabled); } else { - $calculation.setStatus('cbxLeaseObjectUsed', ElementStatus.Default); - $calculation.setStatus( 'tbxSupplierDiscountRub', ElementStatus.Default, @@ -240,6 +236,7 @@ export default function ($calculation: ICalculationStore) { fireImmediately: true, }, ); + reaction( () => { const { mileage, leaseObjectUsed } = $calculation.values; @@ -258,4 +255,72 @@ export default function ($calculation: ICalculationStore) { } }, ); + + reaction( + () => { + const { leaseObjectUsed } = $calculation.values; + return leaseObjectUsed; + }, + leaseObjectUsed => { + if (leaseObjectUsed === true) { + $calculation.setValues({ + subsidy: null, + }); + $calculation.setStatuses({ + selectSubsidy: ElementStatus.Disabled, + }); + } else { + $calculation.setStatuses({ + selectSubsidy: ElementStatus.Default, + }); + } + }, + { + fireImmediately: true, + }, + ); + + reaction( + () => { + const { leaseObjectUsed } = $calculation.values; + const sudsidy = $calculation.getOption('selectSubsidy'); + const product = $calculation.getOption('selectProduct'); + + return { + leaseObjectUsed, + sudsidy, + product, + }; + }, + ({ leaseObjectUsed, sudsidy, product }) => { + if (leaseObjectUsed || sudsidy || product?.evo_sale_without_nds) { + $calculation.setValue('deliveryTime', 100_000_000); + $calculation.setStatus('radioDeliveryTime', ElementStatus.Disabled); + } else { + $calculation.setStatus('radioDeliveryTime', ElementStatus.Default); + } + }, + ); + + reaction( + () => { + return $calculation.getOption('selectSubsidy'); + }, + subsidy => { + if (subsidy) { + $calculation.setValues({ + leaseObjectCount: 1, + leaseObjectUsed: false, + }); + } + $calculation.setStatuses({ + tbxLeaseObjectCount: subsidy + ? ElementStatus.Disabled + : ElementStatus.Default, + cbxLeaseObjectUsed: subsidy + ? ElementStatus.Disabled + : ElementStatus.Default, + }); + }, + ); } diff --git a/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts b/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts index ebcfe5d..b6538a8 100644 --- a/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts +++ b/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts @@ -920,33 +920,6 @@ const reactionEffects: IReactionEffect[] = [ }, }), - calculationStore => ({ - expression: () => { - const { leaseObjectUsed } = calculationStore.values; - return leaseObjectUsed; - }, - effect: leaseObjectUsed => { - if (leaseObjectUsed === true) { - calculationStore.setValues({ - deliveryTime: 100000000, - subsidy: null, - }); - calculationStore.setStatuses({ - radioDeliveryTime: ElementStatus.Disabled, - selectSubsidy: ElementStatus.Disabled, - }); - } else { - calculationStore.setStatuses({ - radioDeliveryTime: ElementStatus.Default, - selectSubsidy: ElementStatus.Default, - }); - } - }, - options: { - fireImmediately: true, - }, - }), - calculationStore => ({ expression: () => { const { leaseObjectCategory } = calculationStore.values; @@ -1472,32 +1445,6 @@ const reactionEffects: IReactionEffect[] = [ calculationStore.setValue('rate', rates[0].evo_id); }, }), - - calculationStore => ({ - expression: () => { - return calculationStore.getOption('selectSubsidy'); - }, - effect: subsidy => { - if (subsidy) { - calculationStore.setValues({ - leaseObjectCount: 1, - leaseObjectUsed: false, - deliveryTime: 100000000, - }); - } - calculationStore.setStatuses({ - tbxLeaseObjectCount: subsidy - ? ElementStatus.Disabled - : ElementStatus.Default, - cbxLeaseObjectUsed: subsidy - ? ElementStatus.Disabled - : ElementStatus.Default, - radioDeliveryTime: subsidy - ? ElementStatus.Disabled - : ElementStatus.Default, - }); - }, - }), ]; export default reactionEffects;