From 54429059664b08a180538d87519a09d1f88616d0 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Tue, 28 Mar 2023 09:33:17 +0300 Subject: [PATCH] merge migration/random-4 --- .env | 2 + .../Components/Calculation/Settings/config.ts | 7 +- .../Calculation/builders/build-action.tsx | 6 +- .../Calculation/config/elements-components.ts | 1 + .../Calculation/config/elements-props.tsx | 18 +- .../Calculation/config/elements-titles.ts | 1 + .../Calculation/config/elements-types.ts | 1 + .../Calculation/config/map/actions.ts | 1 + apps/web/Components/Common/Error.jsx | 21 + apps/web/Components/Layout/Auth.jsx | 5 +- .../Components/Output/PaymentsTable/config.ts | 4 +- .../Components/Output/PaymentsTable/types.ts | 7 - apps/web/Components/Output/Results/config.ts | 69 +- apps/web/api/core/query.ts | 11 +- apps/web/api/core/types/calculate.ts | 426 ++++++ .../api/core/{types.ts => types/fingap.ts} | 0 apps/web/api/core/types/index.ts | 2 + apps/web/api/crm/query.ts | 12 + apps/web/api/crm/types.ts | 41 + apps/web/config/default-statuses.ts | 1 + apps/web/config/schema/env.js | 2 + apps/web/config/schema/fingap.ts | 22 +- apps/web/config/schema/insurance.ts | 26 +- apps/web/config/schema/payments.ts | 8 +- apps/web/config/schema/results.ts | 33 + apps/web/config/schema/runtime-config.js | 2 + apps/web/config/schema/values.ts | 284 ++-- apps/web/config/urls.ts | 6 + apps/web/constants/request.js | 11 +- apps/web/constants/urls.js | 2 + apps/web/constants/values.js | 3 + apps/web/graphql/crm.query.graphql | 45 + apps/web/graphql/crm.types.ts | 44 +- apps/web/mocks/index.js | 4 +- apps/web/pages/api/trpc/[trpc].ts | 34 +- apps/web/pages/index.jsx | 35 +- apps/web/process/bonuses/index.ts | 1 + apps/web/process/bonuses/lib/helper.ts | 22 +- apps/web/process/bonuses/validation.ts | 2 +- apps/web/process/calculate/action.ts | 64 +- apps/web/process/calculate/lib/helper.ts | 52 + .../web/process/calculate/reactions/common.ts | 36 +- .../process/calculate/reactions/validation.ts | 2 + apps/web/process/configurator/index.ts | 1 + apps/web/process/create-kp/action.ts | 70 +- apps/web/process/create-kp/reactions.ts | 10 +- apps/web/process/gibdd/index.ts | 1 + apps/web/process/hooks.ts | 33 +- apps/web/process/insurance/index.ts | 1 + apps/web/process/insurance/reactions.ts | 8 +- apps/web/process/insurance/validation.ts | 25 +- .../lead-opportunity/reactions/common.ts | 65 +- .../web/process/leasing-object/get-kp-data.ts | 2 +- apps/web/process/leasing-object/index.ts | 1 + apps/web/process/load-kp/reactions.ts | 2 +- apps/web/process/load-kp/types.ts | 55 +- apps/web/process/payments/get-kp-data.ts | 2 +- apps/web/process/payments/index.ts | 1 + apps/web/process/price/index.ts | 1 + apps/web/process/price/reactions/common.ts | 8 +- apps/web/process/price/reactions/computed.ts | 48 +- apps/web/process/recalc/index.ts | 1 + apps/web/process/supplier-agent/index.ts | 1 + apps/web/process/types.ts | 6 +- apps/web/process/used-pl/index.ts | 1 + apps/web/server/context.ts | 19 + apps/web/server/middleware.ts | 21 + apps/web/server/procedure.ts | 12 + apps/web/server/routers/_app.ts | 7 + apps/web/server/routers/calculate/index.ts | 65 + .../server/routers/calculate/lib/request.ts | 1238 +++++++++++++++++ .../server/routers/calculate/lib/transform.ts | 95 ++ .../routers/calculate/lib/validation.ts | 58 + apps/web/server/routers/calculate/types.ts | 43 + apps/web/server/routers/quote/index.ts | 190 +++ apps/web/server/routers/quote/types.ts | 59 + apps/web/server/trpc.ts | 40 + apps/web/stores/calculation/values/index.ts | 10 +- apps/web/stores/results/default-values.ts | 5 +- apps/web/stores/results/index.ts | 13 +- apps/web/stores/results/types.ts | 32 +- apps/web/stores/tables/fingap/index.ts | 6 +- apps/web/trpc/client.ts | 109 +- apps/web/trpc/routers/index.ts | 10 - apps/web/trpc/routers/quote.ts | 71 - apps/web/trpc/server.ts | 6 - apps/web/trpc/types.ts | 5 - apps/web/utils/currency.ts | 37 + package.json | 2 +- packages/tools/number.ts | 11 + packages/ui/elements/Button.tsx | 2 +- yarn.lock | 68 +- 92 files changed, 3311 insertions(+), 642 deletions(-) delete mode 100644 apps/web/Components/Output/PaymentsTable/types.ts create mode 100644 apps/web/api/core/types/calculate.ts rename apps/web/api/core/{types.ts => types/fingap.ts} (100%) create mode 100644 apps/web/api/core/types/index.ts create mode 100644 apps/web/api/crm/query.ts create mode 100644 apps/web/api/crm/types.ts create mode 100644 apps/web/config/schema/results.ts create mode 100644 apps/web/process/calculate/lib/helper.ts create mode 100644 apps/web/server/context.ts create mode 100644 apps/web/server/middleware.ts create mode 100644 apps/web/server/procedure.ts create mode 100644 apps/web/server/routers/_app.ts create mode 100644 apps/web/server/routers/calculate/index.ts create mode 100644 apps/web/server/routers/calculate/lib/request.ts create mode 100644 apps/web/server/routers/calculate/lib/transform.ts create mode 100644 apps/web/server/routers/calculate/lib/validation.ts create mode 100644 apps/web/server/routers/calculate/types.ts create mode 100644 apps/web/server/routers/quote/index.ts create mode 100644 apps/web/server/routers/quote/types.ts create mode 100644 apps/web/server/trpc.ts delete mode 100644 apps/web/trpc/routers/index.ts delete mode 100644 apps/web/trpc/routers/quote.ts delete mode 100644 apps/web/trpc/server.ts delete mode 100644 apps/web/trpc/types.ts create mode 100644 apps/web/utils/currency.ts diff --git a/.env b/.env index d630622..eb78342 100644 --- a/.env +++ b/.env @@ -8,5 +8,7 @@ USERS_SUPER=["akalinina","vchikalkin"] ####### URLS ######## URL_GET_USER_DIRECT= URL_CRM_GRAPHQL_DIRECT= +URL_CRM_CREATEKP_DIRECT= URL_CORE_FINGAP_DIRECT= +URL_CORE_CALCULATE_DIRECT= URL_1C_TRANSTAX_DIRECT= \ No newline at end of file diff --git a/apps/web/Components/Calculation/Settings/config.ts b/apps/web/Components/Calculation/Settings/config.ts index 8af3868..6684545 100644 --- a/apps/web/Components/Calculation/Settings/config.ts +++ b/apps/web/Components/Calculation/Settings/config.ts @@ -8,7 +8,12 @@ export const rows: FormTabRows = [ [['selectOpportunity'], defaultRowStyle], [['cbxRecalcWithRevision'], defaultRowStyle], [['selectQuote'], defaultRowStyle], - [['btnCalculate'], defaultRowStyle], + [ + ['btnCalculate', 'btnCreateKPMini'], + { + gridTemplateColumns: ['1fr 0.15fr'], + }, + ], { title: 'Параметры расчета' }, [['labelIrrInfo'], defaultRowStyle], diff --git a/apps/web/Components/Calculation/builders/build-action.tsx b/apps/web/Components/Calculation/builders/build-action.tsx index 37df9e1..5b165b3 100644 --- a/apps/web/Components/Calculation/builders/build-action.tsx +++ b/apps/web/Components/Calculation/builders/build-action.tsx @@ -1,4 +1,5 @@ import type { Elements } from '../config/map/actions'; +import { useProcessContext } from '@/process/hooks'; import { useStatus } from '@/stores/calculation/statuses/hooks'; import { observer } from 'mobx-react-lite'; import type { ComponentType } from 'react'; @@ -15,9 +16,12 @@ export default function buildAction( return observer((props: T) => { const status = useStatus(elementName); + const context = useProcessContext(); + return ( import(`process/${processName}/action`).then((module) => module.action())} + action={() => + import(`process/${processName}/action`).then((module) => module.action(context))} status={status} {...props} /> diff --git a/apps/web/Components/Calculation/config/elements-components.ts b/apps/web/Components/Calculation/config/elements-components.ts index b74ebc2..56d946a 100644 --- a/apps/web/Components/Calculation/config/elements-components.ts +++ b/apps/web/Components/Calculation/config/elements-components.ts @@ -142,6 +142,7 @@ const components = wrapComponentsMap({ /** Button Elements */ btnCreateKP: e.Button, + btnCreateKPMini: e.Button, btnCalculate: e.Button, /** Link Elements */ diff --git a/apps/web/Components/Calculation/config/elements-props.tsx b/apps/web/Components/Calculation/config/elements-props.tsx index 9c80f93..95c1a7c 100644 --- a/apps/web/Components/Calculation/config/elements-props.tsx +++ b/apps/web/Components/Calculation/config/elements-props.tsx @@ -5,7 +5,7 @@ import type { ElementsProps } from './elements-components'; import { MAX_FRANCHISE, MAX_LEASING_PERIOD } from '@/constants/values'; import dayjs from 'dayjs'; import { formatter, formatterExtra, parser } from 'tools/number'; -import { DownloadOutlined } from 'ui/elements/icons'; +import { DownloadOutlined, PlusOutlined } from 'ui/elements/icons'; const props: Partial = { tbxLeaseObjectPrice: { @@ -296,9 +296,21 @@ const props: Partial = { optionType: 'button', buttonStyle: 'solid', }, + btnCalculate: { + text: 'Рассчитать график', + type: 'primary', + block: true, + }, btnCreateKP: { type: 'primary', text: 'Создать КП', + icon: , + }, + btnCreateKPMini: { + text: '', + type: 'primary', + icon: , + block: true, }, tbxCreditRate: { min: 0, @@ -345,10 +357,6 @@ const props: Partial = { showSearch: true, optionFilterProp: 'label', }, - btnCalculate: { - text: 'Рассчитать график', - type: 'primary', - }, tbxIRR_Perc: { min: 0, max: 500, diff --git a/apps/web/Components/Calculation/config/elements-titles.ts b/apps/web/Components/Calculation/config/elements-titles.ts index c65b33a..ba37e87 100644 --- a/apps/web/Components/Calculation/config/elements-titles.ts +++ b/apps/web/Components/Calculation/config/elements-titles.ts @@ -143,6 +143,7 @@ const titles: Record = { /** Action Elements */ btnCalculate: '', btnCreateKP: '', + btnCreateKPMini: '', }; export default titles; diff --git a/apps/web/Components/Calculation/config/elements-types.ts b/apps/web/Components/Calculation/config/elements-types.ts index fe954b1..8142aa5 100644 --- a/apps/web/Components/Calculation/config/elements-types.ts +++ b/apps/web/Components/Calculation/config/elements-types.ts @@ -171,6 +171,7 @@ const types = wrapElementsTypes({ tbxSubsidySum: t.Readonly, btnCreateKP: t.Action, + btnCreateKPMini: t.Action, btnCalculate: t.Action, linkDownloadKp: t.Readonly, diff --git a/apps/web/Components/Calculation/config/map/actions.ts b/apps/web/Components/Calculation/config/map/actions.ts index 24b9adf..843b2e0 100644 --- a/apps/web/Components/Calculation/config/map/actions.ts +++ b/apps/web/Components/Calculation/config/map/actions.ts @@ -5,6 +5,7 @@ function wrapElementsMap>(arg: T) { const elementsToActions = wrapElementsMap({ btnCalculate: 'calculate', btnCreateKP: 'create-kp', + btnCreateKPMini: 'create-kp', }); export default elementsToActions; diff --git a/apps/web/Components/Common/Error.jsx b/apps/web/Components/Common/Error.jsx index fc7d6cf..04362df 100644 --- a/apps/web/Components/Common/Error.jsx +++ b/apps/web/Components/Common/Error.jsx @@ -1,3 +1,4 @@ +/* eslint-disable sonarjs/no-small-switch */ import Button from 'ui/elements/Button'; import Result from 'ui/elements/Result'; @@ -5,7 +6,12 @@ function handleRetry() { window.location.reload(); } +function openSupport() { + window.open('https://support.evoleasing.ru', '_blank').focus(); +} + const RetryButton =