From 04b7def04963e4102c75a4b890fe10ddc71696a6 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Fri, 12 May 2023 11:34:09 +0300 Subject: [PATCH] merge migration/elt --- .env | 4 +- .../Form/ELT/Components/PolicyTable.tsx | 54 ++ .../Form/ELT/Components/ReloadButton.tsx | 26 + .../Form/ELT/Components/Validation.tsx | 23 + .../Calculation/Form/ELT/Components/index.ts | 3 + .../Components/Calculation/Form/ELT/Kasko.tsx | 156 ++++ .../Components/Calculation/Form/ELT/Osago.tsx | 134 ++++ .../Components/Calculation/Form/ELT/index.jsx | 20 + .../Calculation/Form/ELT/lib/config.tsx | 59 ++ .../Calculation/Form/ELT/lib/make-request.ts | 715 ++++++++++++++++++ .../Components/Calculation/Form/ELT/types.ts | 7 + .../Form/Insurance/InsuranceTable/config.tsx | 44 +- .../web/Components/Calculation/Form/index.jsx | 2 + apps/web/Components/Layout/Page.jsx | 5 +- apps/web/api/crm/types.ts | 5 + apps/web/api/elt/query.ts | 22 + apps/web/api/elt/types.ts | 12 + apps/web/config/schema/elt.ts | 288 +++++++ apps/web/config/schema/env.js | 2 + apps/web/config/schema/runtime-config.js | 2 + apps/web/config/ui.js | 2 +- apps/web/config/urls.ts | 6 + apps/web/constants/urls.js | 2 + apps/web/graphql/crm.query.graphql | 22 + apps/web/graphql/crm.types.ts | 52 +- apps/web/mocks/handlers.js | 68 +- apps/web/next.config.js | 8 + apps/web/process/create-kp/action.ts | 6 + apps/web/process/elt/get-kp-data.ts | 66 ++ apps/web/process/elt/index.ts | 2 + apps/web/process/elt/lib/helper.ts | 74 ++ apps/web/process/elt/reactions/common.ts | 82 ++ apps/web/process/elt/reactions/index.ts | 2 + apps/web/process/elt/reactions/validation.ts | 4 + apps/web/process/elt/validation.ts | 182 +++++ apps/web/process/hooks/reactions.ts | 2 + apps/web/process/load-kp/reactions.ts | 24 +- apps/web/process/tools.ts | 10 +- apps/web/server/routers/quote/index.ts | 5 + apps/web/server/routers/quote/types.ts | 21 + apps/web/stores/tables/elt/index.ts | 29 + apps/web/stores/tables/elt/policy.ts | 80 ++ apps/web/stores/tables/index.ts | 3 + 43 files changed, 2286 insertions(+), 49 deletions(-) create mode 100644 apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.tsx create mode 100644 apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.tsx create mode 100644 apps/web/Components/Calculation/Form/ELT/Components/Validation.tsx create mode 100644 apps/web/Components/Calculation/Form/ELT/Components/index.ts create mode 100644 apps/web/Components/Calculation/Form/ELT/Kasko.tsx create mode 100644 apps/web/Components/Calculation/Form/ELT/Osago.tsx create mode 100644 apps/web/Components/Calculation/Form/ELT/index.jsx create mode 100644 apps/web/Components/Calculation/Form/ELT/lib/config.tsx create mode 100644 apps/web/Components/Calculation/Form/ELT/lib/make-request.ts create mode 100644 apps/web/Components/Calculation/Form/ELT/types.ts create mode 100644 apps/web/api/elt/query.ts create mode 100644 apps/web/api/elt/types.ts create mode 100644 apps/web/config/schema/elt.ts create mode 100644 apps/web/process/elt/get-kp-data.ts create mode 100644 apps/web/process/elt/index.ts create mode 100644 apps/web/process/elt/lib/helper.ts create mode 100644 apps/web/process/elt/reactions/common.ts create mode 100644 apps/web/process/elt/reactions/index.ts create mode 100644 apps/web/process/elt/reactions/validation.ts create mode 100644 apps/web/process/elt/validation.ts create mode 100644 apps/web/stores/tables/elt/index.ts create mode 100644 apps/web/stores/tables/elt/policy.ts diff --git a/.env b/.env index bddfbdb..b5b3810 100644 --- a/.env +++ b/.env @@ -9,4 +9,6 @@ URL_CRM_CREATEKP_DIRECT= URL_CRM_DOWNLOADKP_BASE= URL_CORE_FINGAP_DIRECT= URL_CORE_CALCULATE_DIRECT= -URL_1C_TRANSTAX_DIRECT= \ No newline at end of file +URL_1C_TRANSTAX_DIRECT= +URL_ELT_OSAGO_DIRECT= +URL_ELT_KASKO_DIRECT= \ No newline at end of file diff --git a/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.tsx b/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.tsx new file mode 100644 index 0000000..a4b828e --- /dev/null +++ b/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.tsx @@ -0,0 +1,54 @@ +import type { columns } from '../lib/config'; +import type { Row, StoreSelector } from '../types'; +import { useStore } from '@/stores/hooks'; +import { observer } from 'mobx-react-lite'; +import { message, Table } from 'ui/antd'; + +export const PolicyTable = observer( + ({ + storeSelector, + onSelectRow, + ...props + }: { + columns: typeof columns; + onSelectRow: (row: Row) => void; + storeSelector: StoreSelector; + }) => { + const { $tables, $process } = useStore(); + const { getRows, setSelectedKey, getSelectedRow } = storeSelector($tables.elt); + + return ( + ({ + disabled: + !record.sum || record.status !== null || getRows.some((x) => x.status === 'fetching'), + }), + hideSelectAll: true, + onSelect: (record) => { + if (record.sum > 0) { + $process.add('ELT'); + setSelectedKey(record.key); + onSelectRow(record); + message.success({ content: 'Выбранный расчет ЭЛТ применен', key: record.key }); + $process.delete('ELT'); + } + }, + selectedRowKeys: getSelectedRow ? [getSelectedRow.key] : [], + type: 'radio', + }} + expandable={{ + expandedRowRender: (record) => record.message, + rowExpandable: (record) => Boolean(record.message), + }} + {...props} + /> + ); + } +); diff --git a/apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.tsx b/apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.tsx new file mode 100644 index 0000000..c4315fd --- /dev/null +++ b/apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.tsx @@ -0,0 +1,26 @@ +import type { StoreSelector } from '../types'; +import { useStore } from '@/stores/hooks'; +import { observer } from 'mobx-react-lite'; +import { Button } from 'ui/antd'; +import { ReloadOutlined } from 'ui/elements/icons'; +import { Flex } from 'ui/grid'; + +export const ReloadButton = observer( + ({ storeSelector, onClick }: { onClick: () => void; storeSelector: StoreSelector }) => { + const { $tables } = useStore(); + const { validation, getRows: rows } = storeSelector($tables.elt); + + const hasErrors = validation.hasErrors; + + return ( + +