fix firstPaymentPerc null
This commit is contained in:
parent
747cc19a70
commit
9199ad6458
@ -3,262 +3,262 @@ import { IReactionEffect } from 'core/types/Calculation/Store/effect';
|
||||
import { calculatePerc, calculateRub } from './calculate';
|
||||
|
||||
export default [
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const { leaseObjectPrice, supplierDiscountRub } = calculationStore.values;
|
||||
return [leaseObjectPrice, supplierDiscountRub];
|
||||
},
|
||||
effect: ([leaseObjectPrice, supplierDiscountRub = 0]) => {
|
||||
calculationStore.setValue(
|
||||
'supplierDiscountPerc',
|
||||
leaseObjectPrice ? (supplierDiscountRub / leaseObjectPrice) * 100 : 0,
|
||||
);
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const {
|
||||
leaseObjectPrice,
|
||||
supplierDiscountPerc,
|
||||
} = calculationStore.values;
|
||||
return [leaseObjectPrice, supplierDiscountPerc];
|
||||
},
|
||||
effect: ([leaseObjectPrice = 0, supplierDiscountPerc = 0]) => {
|
||||
calculationStore.setValue(
|
||||
'supplierDiscountRub',
|
||||
(supplierDiscountPerc * leaseObjectPrice) / 100,
|
||||
);
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const { firstPaymentRub } = calculationStore.values;
|
||||
return firstPaymentRub;
|
||||
},
|
||||
effect: firstPaymentRub => {
|
||||
const { supplierCurrency, leaseObjectPrice } = calculationStore.values;
|
||||
if (leaseObjectPrice) {
|
||||
const perc = calculatePerc(calculationStore)(
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
firstPaymentRub,
|
||||
);
|
||||
calculationStore.setValue('firstPaymentPerc', perc);
|
||||
} else {
|
||||
calculationStore.setValue('firstPaymentPerc', 0);
|
||||
}
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const {
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
firstPaymentPerc,
|
||||
} = calculationStore.values;
|
||||
return [supplierCurrency, leaseObjectPrice, firstPaymentPerc];
|
||||
},
|
||||
effect: ([
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice = 0,
|
||||
firstPaymentPerc = 0,
|
||||
]) => {
|
||||
if (!firstPaymentPerc) {
|
||||
return;
|
||||
}
|
||||
const rub = calculateRub(calculationStore)(
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
firstPaymentPerc,
|
||||
);
|
||||
|
||||
calculationStore.setValue('firstPaymentRub', rub);
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const {
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
comissionPerc,
|
||||
} = calculationStore.values;
|
||||
return [supplierCurrency, leaseObjectPrice, comissionPerc];
|
||||
},
|
||||
effect: ([supplierCurrencyId, leaseObjectPrice = 0, comissionPerc = 0]) => {
|
||||
const rub = calculateRub(calculationStore)(
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
comissionPerc,
|
||||
);
|
||||
calculationStore.setValue('comissionRub', rub);
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const { comissionRub } = calculationStore.values;
|
||||
return comissionRub;
|
||||
},
|
||||
effect: comissionRub => {
|
||||
const { supplierCurrency, leaseObjectPrice } = calculationStore.values;
|
||||
if (leaseObjectPrice) {
|
||||
const perc = calculatePerc(calculationStore)(
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
comissionRub,
|
||||
);
|
||||
calculationStore.setValue('comissionPerc', perc);
|
||||
} else {
|
||||
calculationStore.setValue('comissionPerc', 0);
|
||||
}
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const {
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
lastPaymentPerc,
|
||||
lastPaymentRule,
|
||||
} = calculationStore.values;
|
||||
return [
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
lastPaymentPerc,
|
||||
lastPaymentRule,
|
||||
];
|
||||
},
|
||||
effect: ([
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const { leaseObjectPrice, supplierDiscountRub } = calculationStore.values;
|
||||
return [leaseObjectPrice, supplierDiscountRub];
|
||||
},
|
||||
effect: ([leaseObjectPrice, supplierDiscountRub = 0]) => {
|
||||
calculationStore.setValue(
|
||||
'supplierDiscountPerc',
|
||||
leaseObjectPrice ? (supplierDiscountRub / leaseObjectPrice) * 100 : 0,
|
||||
);
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const {
|
||||
leaseObjectPrice,
|
||||
supplierDiscountPerc,
|
||||
} = calculationStore.values;
|
||||
return [leaseObjectPrice, supplierDiscountPerc];
|
||||
},
|
||||
effect: ([leaseObjectPrice = 0, supplierDiscountPerc = 0]) => {
|
||||
calculationStore.setValue(
|
||||
'supplierDiscountRub',
|
||||
(supplierDiscountPerc * leaseObjectPrice) / 100,
|
||||
);
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const { firstPaymentRub } = calculationStore.values;
|
||||
return firstPaymentRub;
|
||||
},
|
||||
effect: (firstPaymentRub = 0) => {
|
||||
const { supplierCurrency, leaseObjectPrice } = calculationStore.values;
|
||||
if (leaseObjectPrice) {
|
||||
const perc = calculatePerc(calculationStore)(
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
firstPaymentRub,
|
||||
);
|
||||
calculationStore.setValue('firstPaymentPerc', perc);
|
||||
} else {
|
||||
calculationStore.setValue('firstPaymentPerc', 0);
|
||||
}
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const {
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
firstPaymentPerc,
|
||||
} = calculationStore.values;
|
||||
return [supplierCurrency, leaseObjectPrice, firstPaymentPerc];
|
||||
},
|
||||
effect: ([
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice = 0,
|
||||
firstPaymentPerc = 0,
|
||||
]) => {
|
||||
if (!firstPaymentPerc) {
|
||||
return;
|
||||
}
|
||||
const rub = calculateRub(calculationStore)(
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
firstPaymentPerc,
|
||||
);
|
||||
|
||||
calculationStore.setValue('firstPaymentRub', rub);
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const {
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
comissionPerc,
|
||||
} = calculationStore.values;
|
||||
return [supplierCurrency, leaseObjectPrice, comissionPerc];
|
||||
},
|
||||
effect: ([supplierCurrencyId, leaseObjectPrice = 0, comissionPerc = 0]) => {
|
||||
const rub = calculateRub(calculationStore)(
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
comissionPerc,
|
||||
);
|
||||
calculationStore.setValue('comissionRub', rub);
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const { comissionRub } = calculationStore.values;
|
||||
return comissionRub;
|
||||
},
|
||||
effect: comissionRub => {
|
||||
const { supplierCurrency, leaseObjectPrice } = calculationStore.values;
|
||||
if (leaseObjectPrice) {
|
||||
const perc = calculatePerc(calculationStore)(
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
comissionRub,
|
||||
);
|
||||
calculationStore.setValue('comissionPerc', perc);
|
||||
} else {
|
||||
calculationStore.setValue('comissionPerc', 0);
|
||||
}
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const {
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
lastPaymentPerc,
|
||||
lastPaymentRule,
|
||||
} = calculationStore.values;
|
||||
return [
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
lastPaymentPerc,
|
||||
lastPaymentRule,
|
||||
];
|
||||
},
|
||||
effect: ([
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
lastPaymentPerc = 0,
|
||||
lastPaymentRule,
|
||||
]) => {
|
||||
if (lastPaymentRule !== 100000001) {
|
||||
return;
|
||||
}
|
||||
|
||||
const rub = calculateRub(calculationStore)(
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
lastPaymentPerc,
|
||||
);
|
||||
calculationStore.setValue('lastPaymentRub', rub);
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const {
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
lastPaymentRub,
|
||||
lastPaymentRule,
|
||||
} = calculationStore.values;
|
||||
return [
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
lastPaymentRub,
|
||||
lastPaymentRule,
|
||||
];
|
||||
},
|
||||
effect: ([
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
lastPaymentRub = 0,
|
||||
lastPaymentRule,
|
||||
]) => {
|
||||
if (lastPaymentRule !== 100000000) {
|
||||
return;
|
||||
}
|
||||
if (leaseObjectPrice) {
|
||||
const perc = calculatePerc(calculationStore)(
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
lastPaymentPerc = 0,
|
||||
lastPaymentRule,
|
||||
]) => {
|
||||
if (lastPaymentRule !== 100000001) {
|
||||
return;
|
||||
}
|
||||
|
||||
const rub = calculateRub(calculationStore)(
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
lastPaymentPerc,
|
||||
);
|
||||
calculationStore.setValue('lastPaymentRub', rub);
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const {
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
lastPaymentRub,
|
||||
lastPaymentRule,
|
||||
} = calculationStore.values;
|
||||
return [
|
||||
supplierCurrency,
|
||||
leaseObjectPrice,
|
||||
lastPaymentRub,
|
||||
lastPaymentRule,
|
||||
];
|
||||
},
|
||||
effect: ([
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
lastPaymentRub = 0,
|
||||
lastPaymentRule,
|
||||
]) => {
|
||||
if (lastPaymentRule !== 100000000) {
|
||||
return;
|
||||
}
|
||||
if (leaseObjectPrice) {
|
||||
const perc = calculatePerc(calculationStore)(
|
||||
supplierCurrencyId,
|
||||
leaseObjectPrice,
|
||||
lastPaymentRub,
|
||||
);
|
||||
calculationStore.setValue('lastPaymentPerc', perc);
|
||||
} else {
|
||||
calculationStore.setValue('lastPaymentPerc', 0);
|
||||
}
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const { supplierDiscountRub } = calculationStore.values;
|
||||
return supplierDiscountRub;
|
||||
},
|
||||
effect: supplierDiscountRub => {
|
||||
const { leaseObjectPrice } = calculationStore.values;
|
||||
if (
|
||||
leaseObjectPrice &&
|
||||
leaseObjectPrice > 0 &&
|
||||
supplierDiscountRub >= leaseObjectPrice
|
||||
) {
|
||||
calculationStore.setValidation('tbxSupplierDiscountRub', false);
|
||||
openNotification({
|
||||
type: 'error',
|
||||
title: 'Ошибка',
|
||||
description:
|
||||
'Скидка от поставщика не может быть больше или равна стоимости ПЛ.',
|
||||
})();
|
||||
} else {
|
||||
calculationStore.setValidation('tbxSupplierDiscountRub', undefined);
|
||||
}
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const { firstPaymentRub } = calculationStore.values;
|
||||
return firstPaymentRub;
|
||||
},
|
||||
effect: firstPaymentRub => {
|
||||
const { leaseObjectPrice } = calculationStore.values;
|
||||
if (
|
||||
leaseObjectPrice &&
|
||||
leaseObjectPrice > 0 &&
|
||||
firstPaymentRub >= leaseObjectPrice
|
||||
) {
|
||||
calculationStore.setValidation('tbxFirstPaymentRub', false);
|
||||
openNotification({
|
||||
type: 'error',
|
||||
title: 'Ошибка',
|
||||
description:
|
||||
'Первый платеж не может быть больше или равен стоимости ПЛ.',
|
||||
})();
|
||||
} else {
|
||||
calculationStore.setValidation('tbxFirstPaymentRub', undefined);
|
||||
}
|
||||
},
|
||||
}),
|
||||
lastPaymentRub,
|
||||
);
|
||||
calculationStore.setValue('lastPaymentPerc', perc);
|
||||
} else {
|
||||
calculationStore.setValue('lastPaymentPerc', 0);
|
||||
}
|
||||
},
|
||||
options: {
|
||||
fireImmediately: true,
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const { supplierDiscountRub } = calculationStore.values;
|
||||
return supplierDiscountRub;
|
||||
},
|
||||
effect: supplierDiscountRub => {
|
||||
const { leaseObjectPrice } = calculationStore.values;
|
||||
if (
|
||||
leaseObjectPrice &&
|
||||
leaseObjectPrice > 0 &&
|
||||
supplierDiscountRub >= leaseObjectPrice
|
||||
) {
|
||||
calculationStore.setValidation('tbxSupplierDiscountRub', false);
|
||||
openNotification({
|
||||
type: 'error',
|
||||
title: 'Ошибка',
|
||||
description:
|
||||
'Скидка от поставщика не может быть больше или равна стоимости ПЛ.',
|
||||
})();
|
||||
} else {
|
||||
calculationStore.setValidation('tbxSupplierDiscountRub', undefined);
|
||||
}
|
||||
},
|
||||
}),
|
||||
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
const { firstPaymentRub } = calculationStore.values;
|
||||
return firstPaymentRub;
|
||||
},
|
||||
effect: firstPaymentRub => {
|
||||
const { leaseObjectPrice } = calculationStore.values;
|
||||
if (
|
||||
leaseObjectPrice &&
|
||||
leaseObjectPrice > 0 &&
|
||||
firstPaymentRub >= leaseObjectPrice
|
||||
) {
|
||||
calculationStore.setValidation('tbxFirstPaymentRub', false);
|
||||
openNotification({
|
||||
type: 'error',
|
||||
title: 'Ошибка',
|
||||
description:
|
||||
'Первый платеж не может быть больше или равен стоимости ПЛ.',
|
||||
})();
|
||||
} else {
|
||||
calculationStore.setValidation('tbxFirstPaymentRub', undefined);
|
||||
}
|
||||
},
|
||||
}),
|
||||
] as IReactionEffect[];
|
||||
|
||||
Reference in New Issue
Block a user