From 9199ad6458afbb86333036d7294e853587e01944 Mon Sep 17 00:00:00 2001 From: Chika Date: Wed, 16 Dec 2020 17:09:49 +0300 Subject: [PATCH] fix firstPaymentPerc null --- .../Effects/reactions/priceReactions/index.ts | 512 +++++++++--------- 1 file changed, 256 insertions(+), 256 deletions(-) diff --git a/src/client/stores/CalculationStore/Effects/reactions/priceReactions/index.ts b/src/client/stores/CalculationStore/Effects/reactions/priceReactions/index.ts index 0ccc53c..10c0016 100644 --- a/src/client/stores/CalculationStore/Effects/reactions/priceReactions/index.ts +++ b/src/client/stores/CalculationStore/Effects/reactions/priceReactions/index.ts @@ -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[];