From 7125ca8288f567c03e0a51555919b052f670628f Mon Sep 17 00:00:00 2001 From: Chika Date: Thu, 30 Dec 2021 12:09:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BA=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D0=BB=D0=B5=D0=B9=20=20=D0=9F=D0=BE=D1=81?= =?UTF-8?q?=D0=BB=D0=B5=D0=B4=D0=BD=D0=B8=D0=B9=20=D0=BF=D0=BB=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=B6,=20%=20tbxLastPaymentPerc=20=D0=B8=D0=BB=D0=B8=20?= =?UTF-8?q?=D0=9F=D0=BE=D1=81=D0=BB=D0=B5=D0=B4=D0=BD=D0=B8=D0=B9=20=D0=BF?= =?UTF-8?q?=D0=BB=D0=B0=D1=82=D0=B5=D0=B6,=20=D1=80=D1=83=D0=B1.=20tbxLast?= =?UTF-8?q?PaymentRub=20(=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=B5=D1=82?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B8=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D0=B5=20=D0=9A=D0=9F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ЕСЛИ Пересчет без пересмотра (recalcWthtRevision) = true, ТО Если tbxLastPaymentPerc > quote.evo_last_payment_perc из selectQuote И tbxLastPaymentPerc > 1 , то поля tbxLastPaymentPerc и tbxLastPaymentRub обводить красной рамкой и выводить сообщение "При пересчете без пересмотра последний платеж можно уменьшать или увеличивать до 1%" иначе с полей bxLastPaymentPerc и tbxLastPaymentRub убирать красную рамку ИНАЧЕ ничего не делаем --- .../CalculationStore/Effects/lib/queries.js | 1 + .../Effects/reactions/otherReactions.ts | 36 ----------- .../reactions/recalcWoRevisionReactions.ts | 60 +++++++++++++++++++ 3 files changed, 61 insertions(+), 36 deletions(-) diff --git a/src/client/stores/CalculationStore/Effects/lib/queries.js b/src/client/stores/CalculationStore/Effects/lib/queries.js index 2afc5b0..9b34d81 100644 --- a/src/client/stores/CalculationStore/Effects/lib/queries.js +++ b/src/client/stores/CalculationStore/Effects/lib/queries.js @@ -21,4 +21,5 @@ link evo_req_telematic evo_req_telematic_accept evo_one_year_insurance +evo_last_payment_perc `; diff --git a/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts b/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts index 21c0437..c09e4cb 100644 --- a/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts +++ b/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts @@ -655,42 +655,6 @@ const reactionEffects: IReactionEffect[] = [ }, }), - calculationStore => ({ - expression: () => { - const { lastPaymentPerc, balanceHolder } = calculationStore.values; - return { - lastPaymentPerc, - balanceHolder, - }; - }, - effect: ({ lastPaymentPerc, balanceHolder }) => { - if (balanceHolder && balanceHolder === 100000001) { - if (!lastPaymentPerc || parseFloat(lastPaymentPerc) < 1) { - calculationStore.setValidation('tbxLastPaymentPerc', false); - openNotification({ - type: 'error', - title: 'Ошибка', - description: - 'При балансе лизингодатель последний платеж не может быть меньше 1%! Увеличьте значение.', - })(); - return; - } - } else { - if (parseFloat(lastPaymentPerc) === 0) { - calculationStore.setValidation('tbxLastPaymentPerc', false); - openNotification({ - type: 'error', - title: 'Ошибка', - description: - 'Последний платеж не может быть равен 0. Увеличьте значение', - })(); - return; - } - } - calculationStore.setValidation('tbxLastPaymentPerc', true); - }, - }), - calculationStore => ({ expression: () => { const { diff --git a/src/client/stores/CalculationStore/Effects/reactions/recalcWoRevisionReactions.ts b/src/client/stores/CalculationStore/Effects/reactions/recalcWoRevisionReactions.ts index c0fd2ef..e5c670d 100644 --- a/src/client/stores/CalculationStore/Effects/reactions/recalcWoRevisionReactions.ts +++ b/src/client/stores/CalculationStore/Effects/reactions/recalcWoRevisionReactions.ts @@ -460,6 +460,66 @@ const reactionEffects: IReactionEffect[] = [ fireImmediately: true, }, }), + + calculationStore => ({ + expression: () => calculationStore.getValues(['lastPaymentPerc']), + effect: ({ lastPaymentPerc }) => { + if (!calculationStore.getValue('recalcWithRevision')) { + calculationStore.setValidation('tbxLastPaymentPerc', undefined); + return; + } + + const quote = calculationStore.getOption('selectQuote'); + if ( + quote && + quote.evo_last_payment_perc && + lastPaymentPerc > 1 && + lastPaymentPerc > quote.evo_last_payment_perc + ) { + openNotification({ + type: 'error', + title: 'Ошибка', + description: + 'При пересчете без пересмотра последний платеж можно уменьшать или увеличивать до 1%', + })(); + calculationStore.setValidation('tbxLastPaymentPerc', false); + } else { + calculationStore.setValidation('tbxLastPaymentPerc', undefined); + } + }, + }), + + calculationStore => ({ + expression: () => + calculationStore.getValues(['lastPaymentPerc', 'balanceHolder']), + effect: ({ lastPaymentPerc, balanceHolder }) => { + if (balanceHolder && balanceHolder === 100000001) { + if (!lastPaymentPerc || parseFloat(lastPaymentPerc) < 1) { + calculationStore.setValidation('tbxLastPaymentPerc', false); + openNotification({ + type: 'error', + title: 'Ошибка', + description: + 'При балансе лизингодатель последний платеж не может быть меньше 1%! Увеличьте значение.', + })(); + return; + } + } else { + if (parseFloat(lastPaymentPerc) === 0) { + calculationStore.setValidation('tbxLastPaymentPerc', false); + openNotification({ + type: 'error', + title: 'Ошибка', + description: + 'Последний платеж не может быть равен 0. Увеличьте значение', + })(); + return; + } + } + if (!calculationStore.getValue('recalcWithRevision')) + calculationStore.setValidation('tbxLastPaymentPerc', true); + }, + }), ]; const map_add_product_types_to_values = {