From 47b57c0c73b8d468438fe1da8fba5f8316fd2f5f Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Thu, 8 Feb 2024 10:56:30 +0300 Subject: [PATCH] apps/web: get selectTarif options on load-kp --- apps/web/process/configurator/get-kp-data.ts | 14 +++++++++++--- apps/web/process/load-kp/reactions.ts | 9 ++++++++- apps/web/server/routers/quote/index.ts | 2 ++ apps/web/server/routers/quote/types.ts | 5 +++++ 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/apps/web/process/configurator/get-kp-data.ts b/apps/web/process/configurator/get-kp-data.ts index 63546bf..bd41930 100644 --- a/apps/web/process/configurator/get-kp-data.ts +++ b/apps/web/process/configurator/get-kp-data.ts @@ -8,6 +8,7 @@ import * as CRMTypes from '@/graphql/crm.types'; import { getKPData as getKPDataPrice } from '@/process/price/get-kp-data'; import { getKPData as getKPDataSubsidy } from '@/process/subsidy/get-kp-data'; import { createCurrencyUtility } from '@/utils/currency'; +import { normalizeOptions } from '@/utils/entity'; import { gql } from '@apollo/client'; // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -53,6 +54,8 @@ export async function getKPData({ values }: GetQuoteInputData): Promise { + .then(({ values, payments, insurance, fingap, elt, options }) => { + if (options?.selectTarif) { + $calculation.element('selectTarif').setOptions(normalizeOptions(options.selectTarif)); + } else { + $calculation.element('selectTarif').resetOptions(); + } + $calculation.$values.setValues( omit(values, [ 'lead', diff --git a/apps/web/server/routers/quote/index.ts b/apps/web/server/routers/quote/index.ts index 348baa3..a731a01 100644 --- a/apps/web/server/routers/quote/index.ts +++ b/apps/web/server/routers/quote/index.ts @@ -81,6 +81,7 @@ export const quoteRouter = router({ const insurance = processData.find((x) => x.insurance)?.insurance ?? defaultInsurance; const fingap = processData.find((x) => x.fingap)?.fingap ?? defaultFingap; const elt = processData.find((x) => x.elt)?.elt; + const options = processData[0].options; return { values, @@ -88,6 +89,7 @@ export const quoteRouter = router({ insurance, fingap, elt, + options, }; }), diff --git a/apps/web/server/routers/quote/types.ts b/apps/web/server/routers/quote/types.ts index be860f7..e01cc5b 100644 --- a/apps/web/server/routers/quote/types.ts +++ b/apps/web/server/routers/quote/types.ts @@ -51,6 +51,11 @@ export const GetQuoteOutputDataSchema = z .optional(), fingap: FinGAPSchema, insurance: InsuranceSchema, + options: z + .object({ + selectTarif: z.unknown().array(), + }) + .optional(), payments: PaymentsSchema, values: ValuesSchema, })