From dcfa596a7437af65152f7fea10ec6929bc752c5e Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Tue, 11 Apr 2023 10:24:34 +0300 Subject: [PATCH] revert: compute plPriceRub, discountRub on client --- apps/web/process/load-kp/reactions.ts | 2 + apps/web/process/price/get-kp-data.ts | 30 +------ apps/web/process/price/reactions/computed.ts | 87 +++++++++----------- apps/web/process/recalc/validation.ts | 5 +- 4 files changed, 45 insertions(+), 79 deletions(-) diff --git a/apps/web/process/load-kp/reactions.ts b/apps/web/process/load-kp/reactions.ts index 1e4805a..f1100f3 100644 --- a/apps/web/process/load-kp/reactions.ts +++ b/apps/web/process/load-kp/reactions.ts @@ -39,6 +39,8 @@ export function common({ store, trpcClient }: ProcessContext) { 'opportunityUrl', 'quoteUrl', 'recalcWithRevision', + 'plPriceRub', + 'discountRub', ]) ); diff --git a/apps/web/process/price/get-kp-data.ts b/apps/web/process/price/get-kp-data.ts index 584c05f..eb259ac 100644 --- a/apps/web/process/price/get-kp-data.ts +++ b/apps/web/process/price/get-kp-data.ts @@ -2,7 +2,6 @@ import type { GetQuoteInputData, GetQuoteProcessData } from '../load-kp/types'; import initializeApollo from '@/apollo/client'; import defaultValues from '@/config/default-values'; import * as CRMTypes from '@/graphql/crm.types'; -import { createCurrencyUtility } from '@/utils/currency'; import { gql } from '@apollo/client'; // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -40,44 +39,21 @@ export async function getKPData({ }, }); - const { RUB } = createCurrencyUtility({ apolloClient }); - - const supplierCurrency = quote?.evo_transactioncurrencyid; - - const leaseObjectPrice = quote?.evo_supplier_currency_price ?? defaultValues.leaseObjectPrice; - const plPriceRub = supplierCurrency - ? await RUB({ - currencyid: supplierCurrency, - value: leaseObjectPrice, - }) - : defaultValues.plPriceRub; - - const supplierDiscountRub = - quote?.evo_discount_supplier_currency ?? defaultValues.supplierDiscountRub; - const discountRub = supplierCurrency - ? await RUB({ - currencyid: supplierCurrency, - value: supplierDiscountRub, - }) - : defaultValues.discountRub; - return { values: { VATInLeaseObjectPrice: quote?.evo_nds_in_price_supplier_currency ?? defaultValues.VATInLeaseObjectPrice, addEquipmentPrice: quote?.evo_equip_price ?? defaultValues.addEquipmentPrice, comissionPerc: quote?.evo_comission_perc ?? defaultValues.comissionPerc, - // supplierDiscountRub, - discountRub, + // supplierDiscountRub: quote?.evo_discount_supplier_currency ?? defaultValues.supplierDiscountRub, // comissionRub: quote?.evo_comission_rub , firstPaymentPerc: quote?.evo_first_payment_perc ?? defaultValues.firstPaymentPerc, // lastPaymentRub: quote?.evo_last_payment_rub , lastPaymentPerc: quote?.evo_last_payment_perc ?? defaultValues.lastPaymentPerc, lastPaymentRule: quote?.evo_last_payment_calc, - leaseObjectPrice, - plPriceRub, + leaseObjectPrice: quote?.evo_supplier_currency_price ?? defaultValues.leaseObjectPrice, // leaseObjectPriceWthtVAT: quote?.evo_price_without_nds_supplier_currency , - supplierCurrency: quote?.evo_transactioncurrencyid, + supplierCurrency: quote?.evo_transactioncurrencyid ?? defaultValues.supplierCurrency, supplierDiscountPerc: quote?.evo_discount_perc ?? defaultValues.supplierDiscountPerc, }, }; diff --git a/apps/web/process/price/reactions/computed.ts b/apps/web/process/price/reactions/computed.ts index 51668a4..9f883ee 100644 --- a/apps/web/process/price/reactions/computed.ts +++ b/apps/web/process/price/reactions/computed.ts @@ -1,64 +1,55 @@ import type { ProcessContext } from '@/process/types'; import { createCurrencyUtility } from '@/utils/currency'; import { reaction } from 'mobx'; -import { makeDisposable } from 'tools'; export default function reactions({ store, apolloClient }: ProcessContext) { - const { $calculation, $process } = store; + const { $calculation } = store; const { RUB } = createCurrencyUtility({ apolloClient }); - makeDisposable( - () => - reaction( - () => $calculation.$values.getValues(['supplierCurrency', 'leaseObjectPrice']), - async ({ supplierCurrency: supplierCurrencyId, leaseObjectPrice }) => { - if (!supplierCurrencyId) { - $calculation.$values.resetValue('plPriceRub'); + reaction( + () => $calculation.$values.getValues(['supplierCurrency', 'leaseObjectPrice']), + async ({ supplierCurrency: supplierCurrencyId, leaseObjectPrice }) => { + if (!supplierCurrencyId) { + $calculation.$values.resetValue('plPriceRub'); - return; - } + return; + } - $calculation.$values.setValue( - 'plPriceRub', - await RUB({ - currencyid: supplierCurrencyId, - value: leaseObjectPrice, - }) - ); - }, - { - delay: 100, - fireImmediately: true, - } - ), - () => $process.has('LoadKP') + $calculation.$values.setValue( + 'plPriceRub', + await RUB({ + currencyid: supplierCurrencyId, + value: leaseObjectPrice, + }) + ); + }, + { + delay: 100, + fireImmediately: true, + } ); - makeDisposable( - () => - reaction( - () => $calculation.$values.getValues(['supplierCurrency', 'supplierDiscountRub']), - async ({ supplierCurrency: supplierCurrencyId, supplierDiscountRub }) => { - if (!supplierCurrencyId) { - $calculation.$values.resetValue('discountRub'); + reaction( + () => $calculation.$values.getValues(['supplierCurrency', 'supplierDiscountRub']), + async ({ supplierCurrency: supplierCurrencyId, supplierDiscountRub }) => { + if (!supplierCurrencyId) { + $calculation.$values.resetValue('discountRub'); - return; - } + return; + } - $calculation.$values.setValue( - 'discountRub', - await RUB({ - currencyid: supplierCurrencyId, - value: supplierDiscountRub, - }) - ); - }, - { - delay: 100, - fireImmediately: true, - } - ), - () => $process.has('LoadKP') + $calculation.$values.setValue( + 'discountRub', + await RUB({ + currencyid: supplierCurrencyId, + value: supplierDiscountRub, + }) + ); + }, + { + delay: 100, + fireImmediately: true, + } ); } diff --git a/apps/web/process/recalc/validation.ts b/apps/web/process/recalc/validation.ts index 97a6cd6..24762a2 100644 --- a/apps/web/process/recalc/validation.ts +++ b/apps/web/process/recalc/validation.ts @@ -81,8 +81,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) { dealerPerson?.evo_supplier_type !== 100_000_001 && !evo_baseproduct?.evo_sale_without_nds && Boolean( - plPriceRub && - quote?.evo_max_price_change && + quote?.evo_max_price_change && plPriceRub - discountRub + addEquipmentPrice - importProgramSum > quote.evo_max_price_change ); @@ -105,7 +104,6 @@ export function createValidationSchema({ apolloClient }: ValidationContext) { quote.evo_discount_supplier_currency && quote.evo_equip_price && quote.evo_program_import_subsidy_sum && - plPriceRub && plPriceRub - discountRub + addEquipmentPrice - importProgramSum > quote?.evo_supplier_currency_price - quote.evo_discount_supplier_currency + @@ -117,7 +115,6 @@ export function createValidationSchema({ apolloClient }: ValidationContext) { !evo_baseproduct?.evo_sale_without_nds && Boolean( quote?.evo_min_change_price && - plPriceRub && plPriceRub - discountRub + addEquipmentPrice - importProgramSum < quote.evo_min_change_price );