Реакция на изменения полей Последний платеж, % tbxLastPaymentPerc или Последний платеж, руб. tbxLastPaymentRub (работает при загрузке КП)

ЕСЛИ Пересчет без пересмотра (recalcWthtRevision) = true,

ТО

Если tbxLastPaymentPerc  > quote.evo_last_payment_perc из selectQuote И tbxLastPaymentPerc  > 1 ,

то  поля tbxLastPaymentPerc и tbxLastPaymentRub обводить красной рамкой и выводить сообщение "При пересчете без пересмотра последний платеж можно уменьшать или увеличивать до 1%"

иначе с полей bxLastPaymentPerc и tbxLastPaymentRub убирать красную рамку

ИНАЧЕ ничего не делаем
This commit is contained in:
Chika 2021-12-30 12:09:11 +03:00
parent f39ae19e77
commit 7125ca8288
3 changed files with 61 additions and 36 deletions

View File

@ -21,4 +21,5 @@ link
evo_req_telematic
evo_req_telematic_accept
evo_one_year_insurance
evo_last_payment_perc
`;

View File

@ -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 {

View File

@ -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 = {