From 6f804f15ccd56b3e16c0a09711a4fb2a03df677d Mon Sep 17 00:00:00 2001 From: Chika Date: Thu, 21 Apr 2022 12:17:24 +0300 Subject: [PATCH] =?UTF-8?q?reactions:=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BC=D0=B8=D0=BD=20=D0=B8=20=D0=BC=D0=B0=D0=BA=D1=81=20=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reactions/recalcWoRevisionReactions.ts | 66 +++++++++++-------- .../services/CrmService/types/entities.ts | 1 + 2 files changed, 38 insertions(+), 29 deletions(-) diff --git a/src/client/stores/CalculationStore/Effects/reactions/recalcWoRevisionReactions.ts b/src/client/stores/CalculationStore/Effects/reactions/recalcWoRevisionReactions.ts index ed38c34..eb9a8b4 100644 --- a/src/client/stores/CalculationStore/Effects/reactions/recalcWoRevisionReactions.ts +++ b/src/client/stores/CalculationStore/Effects/reactions/recalcWoRevisionReactions.ts @@ -8,7 +8,6 @@ import { IReactionEffect } from 'core/types/Calculation/Store/effect'; import { Process } from 'core/types/Calculation/Store/process'; import { ValuesNames } from 'core/types/Calculation/Store/values'; import { ElementStatus } from 'types/elements'; -import { convertPrice } from '../lib/tools'; import { getPrice } from './priceReactions/calculate'; const reactionEffects: IReactionEffect[] = [ @@ -91,21 +90,23 @@ const reactionEffects: IReactionEffect[] = [ expression: () => { const { supplierDiscountRub, - leaseObjectPrice, - supplierCurrency, + leaseObjectPriceWthtVAT, recalcWithRevision, } = calculationStore.values; + + //@ts-ignore + const price = calculationStore.plPriceRub(); return [ supplierDiscountRub, - leaseObjectPrice, - supplierCurrency, + price, + leaseObjectPriceWthtVAT, recalcWithRevision, ]; }, effect: ([ supplierDiscountRub, - leaseObjectPrice, - supplierCurrencyId, + price, + leaseObjectPriceWthtVAT, recalcWithRevision, ]) => { if (!recalcWithRevision) { @@ -113,43 +114,50 @@ const reactionEffects: IReactionEffect[] = [ return; } - const supplierCurrency = calculationStore - .getOptions('selectSupplierCurrency') - ?.find(x => x.transactioncurrencyid === supplierCurrencyId); - const evo_currencychange = calculationStore - .getStaticData('evo_currencychange') - ?.find(x => x.evo_ref_transactioncurrency === supplierCurrencyId); - const evo_currencychangeValue = - (evo_currencychange && evo_currencychange.evo_currencychange) || 0; - const price = convertPrice( - supplierCurrency?.isocurrencycode, - leaseObjectPrice, - evo_currencychangeValue, - ); + const product = calculationStore.getOption('selectProduct'); const quote = calculationStore.getOption('selectQuote'); - if ( + + const maxCondition1 = quote?.evo_max_price_change && - price - supplierDiscountRub > quote.evo_max_price_change - ) { + !product?.evo_sale_without_nds && + price - supplierDiscountRub > quote.evo_max_price_change; + + const maxCondition2 = + quote?.evo_max_price_change && + product?.evo_sale_without_nds && + leaseObjectPriceWthtVAT > + quote.evo_max_price_change - + (quote.evo_nds_in_price_supplier_currency || 0); + + const minCondition1 = + quote?.evo_min_change_price && + !product?.evo_sale_without_nds && + price - supplierDiscountRub < quote.evo_min_change_price; + + const minCondition2 = + quote?.evo_min_change_price && + product?.evo_sale_without_nds && + leaseObjectPriceWthtVAT < + quote.evo_min_change_price - + (quote.evo_nds_in_price_supplier_currency || 0); + + if (maxCondition1 || maxCondition2) { calculationStore.setValidation('tbxLeaseObjectPrice', false); openNotification({ type: 'error', message: 'Ошибка', description: - 'Указанная стоимость предмета лизинга больше возмножного изменения стоимости предмета лизинга при пересчете без пересмотра. ' + + 'Указанная стоимость предмета лизинга больше возможного изменения стоимости предмета лизинга при пересчете без пересмотра. ' + 'Уменьшите стоимость предмета лизинга', }); - } else if ( - quote?.evo_min_change_price && - price - supplierDiscountRub < quote.evo_min_change_price - ) { + } else if (minCondition1 || minCondition2) { calculationStore.setValidation('tbxLeaseObjectPrice', false); openNotification({ type: 'error', message: 'Ошибка', description: - 'Указанная стоимость предмета лизинга меньше возмножного изменения стоимости предмета лизинга при пересчете без пересмотра. ' + + 'Указанная стоимость предмета лизинга меньше возможного изменения стоимости предмета лизинга при пересчете без пересмотра. ' + 'Увеличьте стоимость предмета лизинга', }); } else { diff --git a/src/core/services/CrmService/types/entities.ts b/src/core/services/CrmService/types/entities.ts index a630834..cf8ebcc 100644 --- a/src/core/services/CrmService/types/entities.ts +++ b/src/core/services/CrmService/types/entities.ts @@ -141,6 +141,7 @@ export interface IQuote extends BaseEntity { evo_last_payment_perc?: number; evo_min_change_price?: number; evo_max_price_change?: number; + evo_nds_in_price_supplier_currency?: number; evo_max_mass?: number; evo_seats?: number; evo_year?: number;