fix firstPaymentPerc null

This commit is contained in:
Chika 2020-12-16 17:09:49 +03:00
parent 747cc19a70
commit 9199ad6458

View File

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