From 2090056b8133647a2866da36378fa5b9abe8745c Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Mon, 5 Jun 2023 10:09:58 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=BF=D1=80=D0=B8=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B5=20=D0=9A=D0=9F=20=D0=BE?= =?UTF-8?q?=D1=82=D1=80=D0=B0=D0=B1=D0=B0=D1=82=D1=8B=D0=B2=D0=B0=D0=B5?= =?UTF-8?q?=D1=82=20=D1=80=D0=B5=D0=B0=D0=BA=D1=86=D0=B8=D1=8F=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=B4=D1=83=D0=BA=D1=82=D0=B0=20=D0=B8=20?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D1=8C=20=D0=BF=D1=80=D0=BE=D0=B4=D1=83=D0=BA?= =?UTF-8?q?=D1=82=20=D1=81=20=D1=87=D0=B0=D1=81=D1=82=D0=B8=D1=87=D0=BD?= =?UTF-8?q?=D1=8B=D0=BC=20=D0=9D=D0=94=D0=A1=20=D1=82=D0=BE=20=D0=91=D0=A3?= =?UTF-8?q?=20=D1=81=D1=82=D0=B0=D0=B2=D0=B8=D1=82=D1=81=D1=8F=20=D0=B0?= =?UTF-8?q?=D0=B2=D1=82=D0=BE=D0=BC=D0=B0=D1=82=D0=BE=D0=BC=20=D0=94=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/process/used-pl/reactions.ts | 53 ++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/apps/web/process/used-pl/reactions.ts b/apps/web/process/used-pl/reactions.ts index 4224db4..71bd82d 100644 --- a/apps/web/process/used-pl/reactions.ts +++ b/apps/web/process/used-pl/reactions.ts @@ -2,10 +2,11 @@ import type { ProcessContext } from '../types'; import { createValidationSchema } from './validation'; import * as CRMTypes from '@/graphql/crm.types'; import { createValidationReaction } from '@/process/tools'; +import { disposableReaction } from '@/utils/mobx'; import { reaction } from 'mobx'; export function common({ store, apolloClient }: ProcessContext) { - const { $calculation } = store; + const { $calculation, $process } = store; /** * Создаем реакцию на выбор Продукта selectProduct: @@ -40,11 +41,11 @@ export function common({ store, apolloClient }: ProcessContext) { () => $calculation.$values.getValues(['product', 'recalcWithRevision']), async ({ product: productId }) => { if (!productId) { - $calculation.element('tbxSupplierDiscountRub').block().resetValue(); - $calculation.element('tbxSupplierDiscountPerc').block().resetValue(); - $calculation.element('tbxLeaseObjectPrice').block().resetValue(); - $calculation.element('tbxVATInLeaseObjectPrice').block().resetValue(); - $calculation.element('selectImportProgram').unblock().resetValue(); + $calculation.element('tbxSupplierDiscountRub').block(); + $calculation.element('tbxSupplierDiscountPerc').block(); + $calculation.element('tbxLeaseObjectPrice').block(); + $calculation.element('tbxVATInLeaseObjectPrice').block(); + $calculation.element('selectImportProgram').unblock(); return; } @@ -59,12 +60,11 @@ export function common({ store, apolloClient }: ProcessContext) { }); if (evo_baseproduct?.evo_sale_without_nds) { - $calculation.element('tbxSupplierDiscountRub').block().resetValue(); - $calculation.element('tbxSupplierDiscountPerc').block().resetValue(); + $calculation.element('tbxSupplierDiscountRub').block(); + $calculation.element('tbxSupplierDiscountPerc').block(); $calculation.element('tbxLeaseObjectPrice').unblock(); $calculation.element('tbxVATInLeaseObjectPrice').unblock(); - $calculation.element('selectImportProgram').block().resetValue(); - $calculation.element('cbxLeaseObjectUsed').setValue(true); + $calculation.element('selectImportProgram').block(); } else { $calculation.element('tbxSupplierDiscountRub').unblock(); $calculation.element('tbxSupplierDiscountPerc').unblock(); @@ -78,6 +78,39 @@ export function common({ store, apolloClient }: ProcessContext) { } ); + disposableReaction( + () => $process.has('LoadKP'), + () => $calculation.$values.getValues(['product']), + async ({ product: productId }) => { + if (!productId) { + $calculation.element('tbxSupplierDiscountRub').resetValue(); + $calculation.element('tbxSupplierDiscountPerc').resetValue(); + $calculation.element('tbxLeaseObjectPrice').resetValue(); + $calculation.element('tbxLeaseObjectPriceWthtVAT').resetValue(); + $calculation.element('tbxVATInLeaseObjectPrice').resetValue(); + $calculation.element('selectImportProgram').resetValue(); + + return; + } + + const { + data: { evo_baseproduct }, + } = await apolloClient.query({ + query: CRMTypes.GetProductDocument, + variables: { + productId, + }, + }); + + if (evo_baseproduct?.evo_sale_without_nds) { + $calculation.element('cbxLeaseObjectUsed').setValue(true); + $calculation.element('tbxSupplierDiscountRub').resetValue(); + $calculation.element('tbxSupplierDiscountPerc').resetValue(); + $calculation.element('selectImportProgram').resetValue(); + } + } + ); + /** * Добавить реакцию на изменение поля Пересчет без пересмотра cbxRecalcWithRevision и загрузку КП: * ЕСЛИ в поле Продукт selectProduct выбрана запись и поле БУбезНДС evo_sale_without_nds = True