disable reactions while loadKP

This commit is contained in:
Chika 2020-12-16 19:13:30 +03:00
parent 9199ad6458
commit 4ed5a69121

View File

@ -1,14 +1,18 @@
import { openNotification } from 'client/Elements/Notification';
import { IReactionEffect } from 'core/types/Calculation/Store/effect';
import { Process } from 'core/types/Calculation/Store/process';
import { calculatePerc, calculateRub } from './calculate';
export default [
calculationStore => ({
(calculationStore, calculationProcess) => ({
expression: () => {
const { leaseObjectPrice, supplierDiscountRub } = calculationStore.values;
return [leaseObjectPrice, supplierDiscountRub];
},
effect: ([leaseObjectPrice, supplierDiscountRub = 0]) => {
if (calculationProcess.process !== Process.Default) {
return;
}
calculationStore.setValue(
'supplierDiscountPerc',
leaseObjectPrice ? (supplierDiscountRub / leaseObjectPrice) * 100 : 0,
@ -19,7 +23,7 @@ export default [
},
}),
calculationStore => ({
(calculationStore, calculationProcess) => ({
expression: () => {
const {
leaseObjectPrice,
@ -28,6 +32,9 @@ export default [
return [leaseObjectPrice, supplierDiscountPerc];
},
effect: ([leaseObjectPrice = 0, supplierDiscountPerc = 0]) => {
if (calculationProcess.process !== Process.Default) {
return;
}
calculationStore.setValue(
'supplierDiscountRub',
(supplierDiscountPerc * leaseObjectPrice) / 100,
@ -38,12 +45,15 @@ export default [
},
}),
calculationStore => ({
(calculationStore, calculationProcess) => ({
expression: () => {
const { firstPaymentRub } = calculationStore.values;
return firstPaymentRub;
},
effect: (firstPaymentRub = 0) => {
if (calculationProcess.process !== Process.Default) {
return;
}
const { supplierCurrency, leaseObjectPrice } = calculationStore.values;
if (leaseObjectPrice) {
const perc = calculatePerc(calculationStore)(
@ -75,9 +85,6 @@ export default [
leaseObjectPrice = 0,
firstPaymentPerc = 0,
]) => {
if (!firstPaymentPerc) {
return;
}
const rub = calculateRub(calculationStore)(
supplierCurrencyId,
leaseObjectPrice,
@ -88,10 +95,11 @@ export default [
},
options: {
fireImmediately: true,
equals: () => false,
},
}),
calculationStore => ({
(calculationStore, calculationProcess) => ({
expression: () => {
const {
supplierCurrency,
@ -101,6 +109,9 @@ export default [
return [supplierCurrency, leaseObjectPrice, comissionPerc];
},
effect: ([supplierCurrencyId, leaseObjectPrice = 0, comissionPerc = 0]) => {
if (calculationProcess.process !== Process.Default) {
return;
}
const rub = calculateRub(calculationStore)(
supplierCurrencyId,
leaseObjectPrice,
@ -113,12 +124,15 @@ export default [
},
}),
calculationStore => ({
(calculationStore, calculationProcess) => ({
expression: () => {
const { comissionRub } = calculationStore.values;
return comissionRub;
},
effect: comissionRub => {
if (calculationProcess.process !== Process.Default) {
return;
}
const { supplierCurrency, leaseObjectPrice } = calculationStore.values;
if (leaseObjectPrice) {
const perc = calculatePerc(calculationStore)(
@ -136,7 +150,7 @@ export default [
},
}),
calculationStore => ({
(calculationStore, calculationProcess) => ({
expression: () => {
const {
supplierCurrency,
@ -157,7 +171,10 @@ export default [
lastPaymentPerc = 0,
lastPaymentRule,
]) => {
if (lastPaymentRule !== 100000001) {
if (
lastPaymentRule !== 100000001 ||
calculationProcess.process !== Process.Default
) {
return;
}
@ -172,7 +189,7 @@ export default [
fireImmediately: true,
},
}),
calculationStore => ({
(calculationStore, calculationProcess) => ({
expression: () => {
const {
supplierCurrency,
@ -193,7 +210,10 @@ export default [
lastPaymentRub = 0,
lastPaymentRule,
]) => {
if (lastPaymentRule !== 100000000) {
if (
lastPaymentRule !== 100000000 ||
calculationProcess.process !== Process.Default
) {
return;
}
if (leaseObjectPrice) {
@ -212,7 +232,7 @@ export default [
},
}),
calculationStore => ({
(calculationStore, calculationProcess) => ({
expression: () => {
const { supplierDiscountRub } = calculationStore.values;
return supplierDiscountRub;
@ -237,7 +257,7 @@ export default [
},
}),
calculationStore => ({
(calculationStore, calculationProcess) => ({
expression: () => {
const { firstPaymentRub } = calculationStore.values;
return firstPaymentRub;