modify createCurrencyUtility.RUB

This commit is contained in:
vchikalkin 2023-04-10 18:03:50 +03:00
parent aaf6146886
commit 2d658208f6
3 changed files with 34 additions and 38 deletions

View File

@ -1,4 +1,3 @@
import * as CRMTypes from '@/graphql/crm.types';
import type { ProcessContext } from '@/process/types';
import { createCurrencyUtility } from '@/utils/currency';
import { reaction } from 'mobx';
@ -9,32 +8,10 @@ export default function reactions({ store, apolloClient }: ProcessContext) {
const { RUB } = createCurrencyUtility({ apolloClient });
reaction(
() =>
$calculation.$values.getValues([
'supplierCurrency',
'leaseObjectPrice',
'supplierDiscountRub',
]),
async ({ supplierCurrency: supplierCurrencyId, supplierDiscountRub, leaseObjectPrice }) => {
() => $calculation.$values.getValues(['supplierCurrency', 'leaseObjectPrice']),
async ({ supplierCurrency: supplierCurrencyId, leaseObjectPrice }) => {
if (!supplierCurrencyId) {
$calculation.$values.resetValue('plPriceRub');
$calculation.$values.resetValue('discountRub');
return;
}
const {
data: { transactioncurrency },
} = await apolloClient.query({
query: CRMTypes.GetTransactionCurrencyDocument,
variables: {
currencyid: supplierCurrencyId,
},
});
if (transactioncurrency?.isocurrencycode === 'RUB') {
$calculation.$values.setValue('plPriceRub', leaseObjectPrice);
$calculation.$values.setValue('discountRub', supplierDiscountRub);
return;
}
@ -46,6 +23,21 @@ export default function reactions({ store, apolloClient }: ProcessContext) {
value: leaseObjectPrice,
})
);
},
{
delay: 100,
fireImmediately: true,
}
);
reaction(
() => $calculation.$values.getValues(['supplierCurrency', 'supplierDiscountRub']),
async ({ supplierCurrency: supplierCurrencyId, supplierDiscountRub }) => {
if (!supplierCurrencyId) {
$calculation.$values.resetValue('discountRub');
return;
}
$calculation.$values.setValue(
'discountRub',

View File

@ -47,15 +47,6 @@ export async function createRequestData({
const currentUTCDate = dayjs().utc(false);
const transactioncurrency = values.supplierCurrency
? (
await apolloClient.query({
query: CRMTypes.GetTransactionCurrencyDocument,
variables: { currencyid: values.supplierCurrency },
})
).data.transactioncurrency
: null;
let systemuser: CRMTypes.GetSystemUserQuery['systemuser'] = null;
if (user?.domainName) {
@ -396,7 +387,7 @@ export async function createRequestData({
},
async discount() {
if (values.supplierCurrency && transactioncurrency?.isocurrencycode !== 'RUB') {
if (values.supplierCurrency) {
return (
((await RUB({
currencyid: values.supplierCurrency,
@ -921,7 +912,7 @@ export async function createRequestData({
},
async plPrice() {
if (values.supplierCurrency && transactioncurrency?.isocurrencycode !== 'RUB') {
if (values.supplierCurrency) {
return (
(await RUB({
currencyid: values.supplierCurrency,
@ -935,7 +926,7 @@ export async function createRequestData({
},
async plPriceVAT() {
if (values.supplierCurrency && transactioncurrency?.isocurrencycode !== 'RUB') {
if (values.supplierCurrency) {
return (
(await RUB({
currencyid: values.supplierCurrency,
@ -952,7 +943,7 @@ export async function createRequestData({
},
async plPriceWithVAT() {
if (values.supplierCurrency && transactioncurrency?.isocurrencycode !== 'RUB') {
if (values.supplierCurrency) {
return (
(await RUB({
currencyid: values.supplierCurrency,

View File

@ -17,6 +17,19 @@ type Input = {
export function createCurrencyUtility({ apolloClient }: Context) {
return {
async RUB({ currencyid, value }: Input) {
const {
data: { transactioncurrency },
} = await apolloClient.query({
query: CRMTypes.GetTransactionCurrencyDocument,
variables: {
currencyid,
},
});
if (transactioncurrency?.isocurrencycode === 'RUB') {
return value;
}
const {
data: { evo_currencychanges },
} = await apolloClient.query({