revert: compute plPriceRub, discountRub on client

This commit is contained in:
vchikalkin 2023-04-11 10:24:34 +03:00
parent 5c72c272b8
commit dcfa596a74
4 changed files with 45 additions and 79 deletions

View File

@ -39,6 +39,8 @@ export function common({ store, trpcClient }: ProcessContext) {
'opportunityUrl',
'quoteUrl',
'recalcWithRevision',
'plPriceRub',
'discountRub',
])
);

View File

@ -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,
},
};

View File

@ -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,
}
);
}

View File

@ -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
);