reactions: правки проверки мин и макс стоимости

This commit is contained in:
Chika 2022-04-21 12:17:24 +03:00
parent f725d48fb9
commit 6f804f15cc
2 changed files with 38 additions and 29 deletions

View File

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

View File

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