From 17c8787668e2f50b80f2e8242bd7589186dbce7e Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Wed, 22 Feb 2023 16:04:53 +0300 Subject: [PATCH] process: disable 1c request when load-kp --- apps/web/process/gibdd/reactions.ts | 205 ++++++++++++++-------------- 1 file changed, 101 insertions(+), 104 deletions(-) diff --git a/apps/web/process/gibdd/reactions.ts b/apps/web/process/gibdd/reactions.ts index 3496d17..8e504b9 100644 --- a/apps/web/process/gibdd/reactions.ts +++ b/apps/web/process/gibdd/reactions.ts @@ -109,52 +109,45 @@ export function common({ store, apolloClient, queryClient }: ProcessContext) { () => $process.has('LoadKP') ); - makeDisposable( + reaction( () => - reaction( - () => - $calculation.$values.getValues([ - 'leaseObjectType', - 'leaseObjectCategory', - 'typePTS', - 'objectRegistration', - ]), - async ({ - leaseObjectType: leaseObjectTypeId, - leaseObjectCategory, - typePTS, - objectRegistration, - }) => { - if (objectRegistration === 100_000_001 && typePTS === 100_000_001) { - $calculation.element('selectObjectCategoryTax').unblock(); - if (leaseObjectTypeId) { - const { - data: { evo_leasingobject_type }, - } = await apolloClient.query({ - query: CRMTypes.GetLeaseObjectTypeDocument, - variables: { leaseObjectTypeId }, - }); - if ( - leaseObjectCategory && - leaseObjectCategory === evo_leasingobject_type?.evo_category - ) { - $calculation - .element('selectObjectCategoryTax') - .setOptions( - selectObjectCategoryTax.filter((option) => - evo_leasingobject_type?.evo_category_tr?.includes(option.value) - ) - ); - } else { - $calculation.element('selectObjectCategoryTax').resetOptions(); - } - } + $calculation.$values.getValues([ + 'leaseObjectType', + 'leaseObjectCategory', + 'typePTS', + 'objectRegistration', + ]), + async ({ + leaseObjectType: leaseObjectTypeId, + leaseObjectCategory, + typePTS, + objectRegistration, + }) => { + if (objectRegistration === 100_000_001 && typePTS === 100_000_001) { + $calculation.element('selectObjectCategoryTax').unblock(); + if (leaseObjectTypeId) { + const { + data: { evo_leasingobject_type }, + } = await apolloClient.query({ + query: CRMTypes.GetLeaseObjectTypeDocument, + variables: { leaseObjectTypeId }, + }); + if (leaseObjectCategory && leaseObjectCategory === evo_leasingobject_type?.evo_category) { + $calculation + .element('selectObjectCategoryTax') + .setOptions( + selectObjectCategoryTax.filter((option) => + evo_leasingobject_type?.evo_category_tr?.includes(option.value) + ) + ); } else { - $calculation.element('selectObjectCategoryTax').resetValue().block(); + $calculation.element('selectObjectCategoryTax').resetOptions(); } } - ), - () => $process.has('LoadKP') + } else { + $calculation.element('selectObjectCategoryTax').resetValue().block(); + } + } ); reaction( @@ -182,74 +175,78 @@ export function common({ store, apolloClient, queryClient }: ProcessContext) { return mapObjectTypeTaxToCategory[objectTypeTax as keyof typeof mapObjectTypeTaxToCategory]; } - reaction( + makeDisposable( () => - $calculation.$values.getValues([ - 'objectRegistration', - 'objectTypeTax', - 'regionRegistration', - 'leaseObjectYear', - 'leaseObjectMotorPower', - ]), - async ({ - objectRegistration, - objectTypeTax, - regionRegistration, - leaseObjectYear, - leaseObjectMotorPower, - }) => { - if ( - objectRegistration === null || - objectRegistration !== 100_000_001 || - objectTypeTax === null || - regionRegistration === null || - leaseObjectYear === 0 || - leaseObjectMotorPower === 0 - ) { - $calculation.element('tbxVehicleTaxInYear').resetValue(); + reaction( + () => + $calculation.$values.getValues([ + 'objectRegistration', + 'objectTypeTax', + 'regionRegistration', + 'leaseObjectYear', + 'leaseObjectMotorPower', + ]), + async ({ + objectRegistration, + objectTypeTax, + regionRegistration, + leaseObjectYear, + leaseObjectMotorPower, + }) => { + if ( + objectRegistration === null || + objectRegistration !== 100_000_001 || + objectTypeTax === null || + regionRegistration === null || + leaseObjectYear === 0 || + leaseObjectMotorPower === 0 + ) { + $calculation.element('tbxVehicleTaxInYear').resetValue(); - return; - } + return; + } - const { - data: { evo_region }, - } = await apolloClient.query({ - query: CRMTypes.GetRegionDocument, - variables: { - regionId: regionRegistration, - }, - }); - - const OKTMO = evo_region?.evo_oktmo; - const carCategory = getCarCategory(objectTypeTax); - - if (OKTMO) { - const currentDate = dayjs().utc(false).toDate(); - - const request = (context: QueryFunctionContext) => - getTransTax( - { - OKTMO, - calcDate: currentDate, - carCategory, - power: leaseObjectMotorPower, - year: leaseObjectYear, + const { + data: { evo_region }, + } = await apolloClient.query({ + query: CRMTypes.GetRegionDocument, + variables: { + regionId: regionRegistration, }, - context - ); - const { tax, error } = await queryClient.fetchQuery(['1c', 'trans-tax'], request, { - staleTime: STALE_TIME, - }); + }); - if (!error && tax) { - $calculation.element('tbxVehicleTaxInYear').setValue(tax); - } else { - $calculation.element('tbxVehicleTaxInYear').resetValue(); + const OKTMO = evo_region?.evo_oktmo; + const carCategory = getCarCategory(objectTypeTax); + + if (OKTMO) { + const currentDate = dayjs().utc(false).toDate(); + + const request = (context: QueryFunctionContext) => + getTransTax( + { + OKTMO, + calcDate: currentDate, + carCategory, + power: leaseObjectMotorPower, + year: leaseObjectYear, + }, + context + ); + const { tax, error } = await queryClient.fetchQuery(['1c', 'trans-tax'], request, { + staleTime: STALE_TIME, + }); + + if (!error && tax) { + $calculation.element('tbxVehicleTaxInYear').setValue(tax); + } else { + $calculation.element('tbxVehicleTaxInYear').resetValue(); + } + } else { + $calculation.element('tbxVehicleTaxInYear').resetValue(); + } } - } else { - $calculation.element('tbxVehicleTaxInYear').resetValue(); - } - } + ), + () => $process.has('LoadKP') ); }