effect: recalcWithRevision

This commit is contained in:
Chika 2020-09-29 17:50:05 +03:00
parent 231331a5bd
commit 6eb64b6bfc

View File

@ -1775,6 +1775,68 @@ const reactionEffects: IReactionEffect[] = [
calculationStore.setValue('maxPriceChange', maxPriceChange);
},
}),
calculationStore => ({
expression: () => {
const { recalcWithRevision } = calculationStore.values;
return recalcWithRevision;
},
effect: recalcWithRevision => {
if (recalcWithRevision === true) {
calculationStore.setStatus('selectLead', Status.Disabled);
calculationStore.setStatus('selectOpportunity', Status.Disabled);
calculationStore.setStatus('selectQuote', Status.Disabled);
} else {
calculationStore.setStatus('selectLead', Status.Default);
calculationStore.setStatus('selectOpportunity', Status.Default);
calculationStore.setStatus('selectQuote', Status.Default);
}
},
}),
calculationStore => ({
expression: () => {
const {
supplierDiscountRub,
leaseObjectPrice,
supplierCurrency,
} = calculationStore.values;
return [supplierDiscountRub, leaseObjectPrice, supplierCurrency];
},
effect: ([supplierDiscountRub, leaseObjectPrice, supplierCurrencyId]) => {
const { recalcWithRevision, maxPriceChange } = calculationStore.values;
if (recalcWithRevision === false) {
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;
let price = calcPrice(
supplierCurrency?.isocurrencycode,
leaseObjectPrice,
evo_currencychangeValue,
);
if (price - supplierDiscountRub > maxPriceChange) {
calculationStore.setValidation('tbxLeaseObjectPrice', false);
openNotification({
type: 'error',
title: 'Ошибка',
description:
'Указанная стоимость предмета лизинга больше возмножного изменения стоимости предмета лизинга при пересчете без пересмотра.' +
'Уменьшите стоимость предмета лизинга',
})();
} else {
calculationStore.setValidation('tbxLeaseObjectPrice', true);
}
},
}),
];
export default reactionEffects;