From 4a70a2c774df49f58d7bf3fd998c6a0c9f387853 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Wed, 29 Nov 2023 17:34:22 +0300 Subject: [PATCH] =?UTF-8?q?3.=20=D0=92=D0=BD=D0=B5=D1=81=D1=82=D0=B8=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2?= =?UTF-8?q?=20=D1=82=D0=B5=D0=BA=D1=83=D1=89=D1=83=D1=8E=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B0=D0=BA=D1=86=D0=B8=D1=8E=20(=D0=BD=D0=B5=20=D0=BD=D0=B0?= =?UTF-8?q?=D1=88=D0=BB=D0=B0=20=D0=BF=D0=BE=20=D1=82=D0=B0=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D1=86=D0=B5).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit На изменение Типа ПЛ и в момент загрузки КП (но не при Пересчете без пересмотра) Если Тип предмета лизинга leaseObjectType = Мотоцикл (evo_id=11), то RquirementTelematic = COMFORT: 100000002 И selectTracker - обнуляется И selectTelematics = evo_addproduct_type, у которого evo_product_type = 100000004 и evo_controls_program = COMFORT 100 000 002 и evo_name содержит Delta Если Тип предмета лизинга leaseObjectType = Прицеп (evo_id=8), то в поле RquirementTelematic фильтруем список и оставляем значения START: 100000000 и START+: 100000001 иначе текущая логика --- apps/web/process/add-product/reactions.ts | 39 +++++++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/apps/web/process/add-product/reactions.ts b/apps/web/process/add-product/reactions.ts index bc61fcc..7af6f15 100644 --- a/apps/web/process/add-product/reactions.ts +++ b/apps/web/process/add-product/reactions.ts @@ -231,8 +231,18 @@ export default function reactions({ store, apolloClient }: ProcessContext) { variables: { leaseObjectTypeId }, }); + if (evo_leasingobject_type?.evo_id === '8') { + $calculation + .element('selectRequirementTelematic') + .setOptions( + selectRequirementTelematic.filter((x) => + [100_000_000, 100_000_001].includes(x.value) + ) + ); + } + if (evo_leasingobject_type?.evo_id === '11') { - $calculation.element('selectRequirementTelematic').setValue(100_000_000).block(); + $calculation.element('selectRequirementTelematic').setValue(100_000_002).block(); } else { $calculation.element('selectRequirementTelematic').unblock(); } @@ -247,8 +257,13 @@ export default function reactions({ store, apolloClient }: ProcessContext) { ); reaction( - () => $calculation.$values.getValues(['requirementTelematic', 'recalcWithRevision']), - async ({ requirementTelematic, recalcWithRevision }) => { + () => + $calculation.$values.getValues([ + 'requirementTelematic', + 'recalcWithRevision', + 'leaseObjectType', + ]), + async ({ requirementTelematic, recalcWithRevision, leaseObjectType: leaseObjectTypeId }) => { const currentDate = dayjs().utc(false).toISOString(); const { data: { evo_addproduct_types: trackerTypes }, @@ -279,6 +294,24 @@ export default function reactions({ store, apolloClient }: ProcessContext) { ); } + if (leaseObjectTypeId) { + const { + data: { evo_leasingobject_type }, + } = await apolloClient.query({ + query: CRMTypes.GetLeaseObjectTypeDocument, + variables: { leaseObjectTypeId }, + }); + + if (evo_leasingobject_type?.evo_id === '11') { + filteredTelematicTypes = telematicTypes?.filter( + (x) => + x?.evo_controls_program?.includes(100_000_002) && + x.label?.toLowerCase().includes('delta') && + !x.label?.toLowerCase().includes('pro') + ); + } + } + $calculation.element('selectTracker').setOptions(normalizeOptions(filteredTrackerTypes)); $calculation.element('selectTelematic').setOptions(normalizeOptions(filteredTelematicTypes)); },