Compare commits
12 Commits
dev
...
fix/migrat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9454d9e2b2 | ||
|
|
862e1293d3 | ||
|
|
d13beca5ed | ||
|
|
be48adbded | ||
|
|
a065e49249 | ||
|
|
3e774ab327 | ||
|
|
4b3f62ccbe | ||
|
|
c24e5885bd | ||
|
|
dd7394f221 | ||
|
|
3087bc7d34 | ||
|
|
9bc1ffd093 | ||
|
|
06f5863e2b |
@ -6,28 +6,42 @@ import type { Row, StoreSelector } from './types';
|
|||||||
import { getEltKasko } from '@/api/elt/query';
|
import { getEltKasko } from '@/api/elt/query';
|
||||||
import { STALE_TIME } from '@/constants/request';
|
import { STALE_TIME } from '@/constants/request';
|
||||||
import { MAX_FRANCHISE, MAX_INSURANCE, MIN_INSURANCE } from '@/constants/values';
|
import { MAX_FRANCHISE, MAX_INSURANCE, MIN_INSURANCE } from '@/constants/values';
|
||||||
|
import helper from '@/process/elt/lib/helper';
|
||||||
import { useStore } from '@/stores/hooks';
|
import { useStore } from '@/stores/hooks';
|
||||||
import { useApolloClient } from '@apollo/client';
|
import { useApolloClient } from '@apollo/client';
|
||||||
import type { QueryFunctionContext } from '@tanstack/react-query';
|
import type { QueryFunctionContext } from '@tanstack/react-query';
|
||||||
import { useQueries } from '@tanstack/react-query';
|
import { useQueries } from '@tanstack/react-query';
|
||||||
|
import { observer } from 'mobx-react-lite';
|
||||||
import { Flex } from 'ui/grid';
|
import { Flex } from 'ui/grid';
|
||||||
|
|
||||||
const storeSelector: StoreSelector = ({ kasko }) => kasko;
|
const storeSelector: StoreSelector = ({ kasko }) => kasko;
|
||||||
|
|
||||||
export function Kasko() {
|
export const Kasko = observer(() => {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const { $tables, $calculation } = store;
|
const { $tables, $calculation } = store;
|
||||||
const rows = $tables.elt.kasko.getRows;
|
|
||||||
|
|
||||||
const apolloClient = useApolloClient();
|
const apolloClient = useApolloClient();
|
||||||
|
|
||||||
|
const { init } = helper({ apolloClient, store });
|
||||||
|
|
||||||
const queries = useQueries({
|
const queries = useQueries({
|
||||||
queries: rows.map((row) => {
|
queries: $tables.elt.kasko.getRows.map((row) => {
|
||||||
const { id, key } = row;
|
const { id, key } = row;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
cacheTime: 0,
|
||||||
enabled: false,
|
enabled: false,
|
||||||
initialData: { ...row, error: '', kaskoSum: 0, sum: 0 },
|
initialData: {
|
||||||
|
...row,
|
||||||
|
error: '',
|
||||||
|
kaskoSum: 0,
|
||||||
|
paymentPeriods: [
|
||||||
|
{
|
||||||
|
kaskoSum: 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
sum: 0,
|
||||||
|
},
|
||||||
queryFn: async (context: QueryFunctionContext) => {
|
queryFn: async (context: QueryFunctionContext) => {
|
||||||
const payload = await makeEltKaskoRequest({ apolloClient, store }, row);
|
const payload = await makeEltKaskoRequest({ apolloClient, store }, row);
|
||||||
const res = await getEltKasko(payload, context);
|
const res = await getEltKasko(payload, context);
|
||||||
@ -43,79 +57,90 @@ export function Kasko() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
async function handleOnClick() {
|
async function handleOnClick() {
|
||||||
const fetchingRows = rows.map((x) => ({ ...x, status: 'fetching', sum: 0 }));
|
const { kasko } = await init();
|
||||||
$tables.elt.kasko.setRows(fetchingRows);
|
$tables.elt.kasko.setRows(kasko);
|
||||||
|
|
||||||
queries.forEach(({ refetch, data }) => {
|
const kaskoCompanyIds = $tables.insurance
|
||||||
refetch()
|
.row('kasko')
|
||||||
.then((res) => {
|
.getOptions('insuranceCompany')
|
||||||
if (res.data) {
|
.map((x) => x.value);
|
||||||
const {
|
const values = $calculation.$values.getValues();
|
||||||
key,
|
|
||||||
kaskoSum = 0,
|
|
||||||
message,
|
|
||||||
skCalcId,
|
|
||||||
totalFranchise = 0,
|
|
||||||
requestId,
|
|
||||||
} = res.data;
|
|
||||||
let { error } = res.data;
|
|
||||||
|
|
||||||
if (totalFranchise > MAX_FRANCHISE) {
|
queries
|
||||||
error ||= `Франшиза по страховке превышает максимально допустимое значение: ${Intl.NumberFormat(
|
.filter(({ data }) => data?.key && kaskoCompanyIds.includes(data.key))
|
||||||
'ru',
|
.forEach(({ refetch, data }) => {
|
||||||
{
|
if (data?.key) $tables.elt.kasko.setRow({ key: data?.key, status: 'fetching' });
|
||||||
currency: 'RUB',
|
|
||||||
style: 'currency',
|
refetch()
|
||||||
}
|
.then((res) => {
|
||||||
).format(MAX_FRANCHISE)}`;
|
if (res.data) {
|
||||||
|
const {
|
||||||
|
key,
|
||||||
|
kaskoSum = 0,
|
||||||
|
message,
|
||||||
|
skCalcId,
|
||||||
|
totalFranchise = 0,
|
||||||
|
requestId,
|
||||||
|
paymentPeriods,
|
||||||
|
} = res.data;
|
||||||
|
let { error } = res.data;
|
||||||
|
|
||||||
|
if (totalFranchise > MAX_FRANCHISE) {
|
||||||
|
error ||= `Франшиза по страховке превышает максимально допустимое значение: ${Intl.NumberFormat(
|
||||||
|
'ru',
|
||||||
|
{
|
||||||
|
currency: 'RUB',
|
||||||
|
style: 'currency',
|
||||||
|
}
|
||||||
|
).format(MAX_FRANCHISE)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (kaskoSum > MAX_INSURANCE) {
|
||||||
|
error ||= `Сумма по страховке превышает максимально допустимое значение по стоимости КАСКО: ${Intl.NumberFormat(
|
||||||
|
'ru',
|
||||||
|
{
|
||||||
|
currency: 'RUB',
|
||||||
|
style: 'currency',
|
||||||
|
}
|
||||||
|
).format(MAX_INSURANCE)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (kaskoSum < MIN_INSURANCE) {
|
||||||
|
error ||= `Сумма по страховке не должна быть меньше допустимого значения по стоимости КАСКО: ${Intl.NumberFormat(
|
||||||
|
'ru',
|
||||||
|
{
|
||||||
|
currency: 'RUB',
|
||||||
|
style: 'currency',
|
||||||
|
}
|
||||||
|
).format(MIN_INSURANCE)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tables.elt.kasko.setRow({
|
||||||
|
key,
|
||||||
|
message: error || message,
|
||||||
|
numCalc: 0,
|
||||||
|
requestId,
|
||||||
|
skCalcId,
|
||||||
|
status: error ? 'error' : null,
|
||||||
|
sum: values.leasingPeriod <= 16 ? kaskoSum : paymentPeriods.at(0)?.kaskoSum || 0,
|
||||||
|
totalFranchise,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
})
|
||||||
if (kaskoSum > MAX_INSURANCE) {
|
.catch((error) => {
|
||||||
error ||= `Сумма по страховке превышает максимально допустимое значение по стоимости КАСКО: ${Intl.NumberFormat(
|
if (data?.key)
|
||||||
'ru',
|
$tables.elt.kasko.setRow({
|
||||||
{
|
key: data?.key,
|
||||||
currency: 'RUB',
|
message: error,
|
||||||
style: 'currency',
|
numCalc: 0,
|
||||||
}
|
requestId: '',
|
||||||
).format(MAX_INSURANCE)}`;
|
skCalcId: '',
|
||||||
}
|
status: 'error',
|
||||||
|
sum: 0,
|
||||||
if (kaskoSum < MIN_INSURANCE) {
|
totalFranchise: 0,
|
||||||
error ||= `Сумма по страховке не должна быть меньше допустимого значения по стоимости КАСКО: ${Intl.NumberFormat(
|
});
|
||||||
'ru',
|
});
|
||||||
{
|
});
|
||||||
currency: 'RUB',
|
|
||||||
style: 'currency',
|
|
||||||
}
|
|
||||||
).format(MIN_INSURANCE)}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
$tables.elt.kasko.setRow({
|
|
||||||
key,
|
|
||||||
message: error || message,
|
|
||||||
numCalc: 0,
|
|
||||||
requestId,
|
|
||||||
skCalcId,
|
|
||||||
status: error ? 'error' : null,
|
|
||||||
sum: kaskoSum,
|
|
||||||
totalFranchise,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
if (data?.key)
|
|
||||||
$tables.elt.kasko.setRow({
|
|
||||||
key: data?.key,
|
|
||||||
message: error,
|
|
||||||
numCalc: 0,
|
|
||||||
requestId: '',
|
|
||||||
skCalcId: '',
|
|
||||||
status: 'error',
|
|
||||||
sum: 0,
|
|
||||||
totalFranchise: 0,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleOnSelectRow(row: Row) {
|
function handleOnSelectRow(row: Row) {
|
||||||
@ -153,4 +178,4 @@ export function Kasko() {
|
|||||||
/>
|
/>
|
||||||
</Flex>
|
</Flex>
|
||||||
);
|
);
|
||||||
}
|
});
|
||||||
|
|||||||
@ -6,26 +6,30 @@ import type { Row, StoreSelector } from './types';
|
|||||||
import { getEltOsago } from '@/api/elt/query';
|
import { getEltOsago } from '@/api/elt/query';
|
||||||
import { STALE_TIME } from '@/constants/request';
|
import { STALE_TIME } from '@/constants/request';
|
||||||
import { MAX_INSURANCE, MIN_INSURANCE } from '@/constants/values';
|
import { MAX_INSURANCE, MIN_INSURANCE } from '@/constants/values';
|
||||||
|
import helper from '@/process/elt/lib/helper';
|
||||||
import { useStore } from '@/stores/hooks';
|
import { useStore } from '@/stores/hooks';
|
||||||
import { useApolloClient } from '@apollo/client';
|
import { useApolloClient } from '@apollo/client';
|
||||||
import type { QueryFunctionContext } from '@tanstack/react-query';
|
import type { QueryFunctionContext } from '@tanstack/react-query';
|
||||||
import { useQueries } from '@tanstack/react-query';
|
import { useQueries } from '@tanstack/react-query';
|
||||||
|
import { observer } from 'mobx-react-lite';
|
||||||
import { Flex } from 'ui/grid';
|
import { Flex } from 'ui/grid';
|
||||||
|
|
||||||
const storeSelector: StoreSelector = ({ osago }) => osago;
|
const storeSelector: StoreSelector = ({ osago }) => osago;
|
||||||
|
|
||||||
export function Osago() {
|
export const Osago = observer(() => {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const { $tables } = store;
|
const { $tables } = store;
|
||||||
const rows = $tables.elt.osago.getRows;
|
|
||||||
|
|
||||||
const apolloClient = useApolloClient();
|
const apolloClient = useApolloClient();
|
||||||
|
|
||||||
|
const { init } = helper({ apolloClient, store });
|
||||||
|
|
||||||
const queries = useQueries({
|
const queries = useQueries({
|
||||||
queries: rows.map((row) => {
|
queries: $tables.elt.osago.getRows.map((row) => {
|
||||||
const { id, key } = row;
|
const { id, key } = row;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
cacheTime: 0,
|
||||||
enabled: false,
|
enabled: false,
|
||||||
initialData: { ...row, error: '', premiumSum: 0 },
|
initialData: { ...row, error: '', premiumSum: 0 },
|
||||||
queryFn: async (context: QueryFunctionContext) => {
|
queryFn: async (context: QueryFunctionContext) => {
|
||||||
@ -43,58 +47,67 @@ export function Osago() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
async function handleOnClick() {
|
async function handleOnClick() {
|
||||||
const fetchingRows = rows.map((x) => ({ ...x, status: 'fetching', sum: 0 }));
|
const { osago } = await init();
|
||||||
$tables.elt.osago.setRows(fetchingRows);
|
$tables.elt.osago.setRows(osago);
|
||||||
|
|
||||||
queries.forEach(({ refetch, data }) => {
|
const osagoCompanyIds = $tables.insurance
|
||||||
refetch()
|
.row('osago')
|
||||||
.then((res) => {
|
.getOptions('insuranceCompany')
|
||||||
if (res.data) {
|
.map((x) => x.value);
|
||||||
const { key, numCalc, premiumSum = 0, message, skCalcId } = res.data;
|
|
||||||
let { error } = res.data;
|
|
||||||
|
|
||||||
if (premiumSum > MAX_INSURANCE) {
|
queries
|
||||||
error ||= `Сумма по страховке превышает максимально допустимое значение по стоимости ОСАГО: ${Intl.NumberFormat(
|
.filter(({ data }) => data?.key && osagoCompanyIds.includes(data.key))
|
||||||
'ru',
|
.forEach(({ refetch, data }) => {
|
||||||
{
|
if (data?.key) $tables.elt.osago.setRow({ key: data?.key, status: 'fetching' });
|
||||||
currency: 'RUB',
|
|
||||||
style: 'currency',
|
refetch()
|
||||||
}
|
.then((res) => {
|
||||||
).format(MAX_INSURANCE)}`;
|
if (res.data) {
|
||||||
|
const { key, numCalc, premiumSum = 0, message, skCalcId } = res.data;
|
||||||
|
let { error } = res.data;
|
||||||
|
|
||||||
|
if (premiumSum > MAX_INSURANCE) {
|
||||||
|
error ||= `Сумма по страховке превышает максимально допустимое значение по стоимости ОСАГО: ${Intl.NumberFormat(
|
||||||
|
'ru',
|
||||||
|
{
|
||||||
|
currency: 'RUB',
|
||||||
|
style: 'currency',
|
||||||
|
}
|
||||||
|
).format(MAX_INSURANCE)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (premiumSum < MIN_INSURANCE) {
|
||||||
|
error ||= `Сумма по страховке не должна быть меньше допустимого значения по стоимости ОСАГО: ${Intl.NumberFormat(
|
||||||
|
'ru',
|
||||||
|
{
|
||||||
|
currency: 'RUB',
|
||||||
|
style: 'currency',
|
||||||
|
}
|
||||||
|
).format(MIN_INSURANCE)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tables.elt.osago.setRow({
|
||||||
|
key,
|
||||||
|
message: error || message,
|
||||||
|
numCalc,
|
||||||
|
skCalcId,
|
||||||
|
status: error ? 'error' : null,
|
||||||
|
sum: premiumSum,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
})
|
||||||
if (premiumSum < MIN_INSURANCE) {
|
.catch((error) => {
|
||||||
error ||= `Сумма по страховке не должна быть меньше допустимого значения по стоимости ОСАГО: ${Intl.NumberFormat(
|
if (data?.key)
|
||||||
'ru',
|
$tables.elt.osago.setRow({
|
||||||
{
|
key: data?.key,
|
||||||
currency: 'RUB',
|
message: error,
|
||||||
style: 'currency',
|
numCalc: 0,
|
||||||
}
|
skCalcId: '',
|
||||||
).format(MIN_INSURANCE)}`;
|
status: 'error',
|
||||||
}
|
sum: 0,
|
||||||
|
});
|
||||||
$tables.elt.osago.setRow({
|
});
|
||||||
key,
|
});
|
||||||
message: error || message,
|
|
||||||
numCalc,
|
|
||||||
skCalcId,
|
|
||||||
status: error ? 'error' : null,
|
|
||||||
sum: premiumSum,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
if (data?.key)
|
|
||||||
$tables.elt.osago.setRow({
|
|
||||||
key: data?.key,
|
|
||||||
message: error,
|
|
||||||
numCalc: 0,
|
|
||||||
skCalcId: '',
|
|
||||||
status: 'error',
|
|
||||||
sum: 0,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleOnSelectRow(row: Row) {
|
function handleOnSelectRow(row: Row) {
|
||||||
@ -118,6 +131,13 @@ export function Osago() {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (column.key === 'totalFranchise') {
|
||||||
|
return {
|
||||||
|
...column,
|
||||||
|
render: () => 'Не требуется',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
return column;
|
return column;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -131,4 +151,4 @@ export function Osago() {
|
|||||||
/>
|
/>
|
||||||
</Flex>
|
</Flex>
|
||||||
);
|
);
|
||||||
}
|
});
|
||||||
|
|||||||
@ -439,7 +439,7 @@ export async function makeEltKaskoRequest(
|
|||||||
outsideRoadsSpecified = true;
|
outsideRoadsSpecified = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const franchise = row.totalFranchise;
|
const franchise = $calculation.element('tbxInsFranchise').getValue();
|
||||||
const franchiseSpecified = getSpecified(franchise);
|
const franchiseSpecified = getSpecified(franchise);
|
||||||
|
|
||||||
let puuMark = '';
|
let puuMark = '';
|
||||||
|
|||||||
@ -41,7 +41,7 @@ export async function getKPData({
|
|||||||
quote?.evo_id_elt_kasko &&
|
quote?.evo_id_elt_kasko &&
|
||||||
quote?.evo_id_kasko_calc &&
|
quote?.evo_id_kasko_calc &&
|
||||||
quote?.evo_kasko_price &&
|
quote?.evo_kasko_price &&
|
||||||
quote?.evo_franchise
|
quote?.evo_franchise !== null
|
||||||
) {
|
) {
|
||||||
elt.kasko = {
|
elt.kasko = {
|
||||||
key: quote?.evo_kasko_accountid,
|
key: quote?.evo_kasko_accountid,
|
||||||
|
|||||||
@ -13,30 +13,83 @@ export default function reactions(context: ProcessContext) {
|
|||||||
() => $process.has('ELT') || $process.has('LoadKP'),
|
() => $process.has('ELT') || $process.has('LoadKP'),
|
||||||
() => ({
|
() => ({
|
||||||
values: $calculation.$values.getValues([
|
values: $calculation.$values.getValues([
|
||||||
'leaseObjectType',
|
|
||||||
// osago
|
|
||||||
'townRegistration',
|
|
||||||
'legalClientTown',
|
|
||||||
'legalClientRegion',
|
|
||||||
'objectRegistration',
|
'objectRegistration',
|
||||||
'townRegistration',
|
'townRegistration',
|
||||||
// kasko
|
'legalClientRegion',
|
||||||
|
'legalClientTown',
|
||||||
|
'brand',
|
||||||
|
'model',
|
||||||
|
'GPSBrand',
|
||||||
|
'GPSModel',
|
||||||
|
'leaseObjectYear',
|
||||||
|
'leaseObjectCategory',
|
||||||
|
'leaseObjectMotorPower',
|
||||||
|
'leaseObjectUseFor',
|
||||||
|
'maxMass',
|
||||||
|
'countSeats',
|
||||||
|
'withTrailer',
|
||||||
'lead',
|
'lead',
|
||||||
'opportunity',
|
'opportunity',
|
||||||
'leaseObjectUseFor',
|
|
||||||
'leaseObjectCategory',
|
|
||||||
'insDecentral',
|
'insDecentral',
|
||||||
'leasingWithoutKasko',
|
'leaseObjectType',
|
||||||
'insAgeDrivers',
|
'insAgeDrivers',
|
||||||
'insExpDrivers',
|
'insExpDrivers',
|
||||||
'vin',
|
'vin',
|
||||||
|
'leaseObjectUsed',
|
||||||
|
'leasingPeriod',
|
||||||
|
'leaseObjectPrice',
|
||||||
|
]),
|
||||||
|
}),
|
||||||
|
async () => {
|
||||||
|
const initialValues = await init();
|
||||||
|
|
||||||
|
if (initialValues) {
|
||||||
|
$tables.elt.osago.setRows(initialValues.osago);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
delay: 10,
|
||||||
|
equals: comparer.shallow,
|
||||||
|
fireImmediately: true,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
disposableReaction(
|
||||||
|
() => $process.has('ELT') || $process.has('LoadKP'),
|
||||||
|
() => ({
|
||||||
|
values: $calculation.$values.getValues([
|
||||||
|
'legalClientRegion',
|
||||||
|
'legalClientTown',
|
||||||
|
'leaseObjectType',
|
||||||
|
'leaseObjectCategory',
|
||||||
'brand',
|
'brand',
|
||||||
'model',
|
'model',
|
||||||
'leaseObjectMotorPower',
|
'leaseObjectUsed',
|
||||||
'leaseObjectPrice',
|
'product',
|
||||||
'supplierDiscountRub',
|
|
||||||
'leaseObjectYear',
|
'leaseObjectYear',
|
||||||
|
'leaseObjectMotorPower',
|
||||||
|
'engineType',
|
||||||
'leasingPeriod',
|
'leasingPeriod',
|
||||||
|
'plPriceRub',
|
||||||
|
'discountRub',
|
||||||
|
'importProgramSum',
|
||||||
|
'addEquipmentPrice',
|
||||||
|
'insFranchise',
|
||||||
|
'GPSBrand',
|
||||||
|
'GPSModel',
|
||||||
|
'insAgeDrivers',
|
||||||
|
'insExpDrivers',
|
||||||
|
'insUnlimitDrivers',
|
||||||
|
'maxMass',
|
||||||
|
'mileage',
|
||||||
|
'vin',
|
||||||
|
'leaseObjectUseFor',
|
||||||
|
'countSeats',
|
||||||
|
'lead',
|
||||||
|
'opportunity',
|
||||||
|
'withTrailer',
|
||||||
|
'insDecentral',
|
||||||
|
'leasingWithoutKasko',
|
||||||
]),
|
]),
|
||||||
}),
|
}),
|
||||||
async () => {
|
async () => {
|
||||||
@ -44,7 +97,6 @@ export default function reactions(context: ProcessContext) {
|
|||||||
|
|
||||||
if (initialValues) {
|
if (initialValues) {
|
||||||
$tables.elt.kasko.setRows(initialValues.kasko);
|
$tables.elt.kasko.setRows(initialValues.kasko);
|
||||||
$tables.elt.osago.setRows(initialValues.osago);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -88,14 +88,6 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!leaseObjectMotorPower) {
|
|
||||||
ctx.addIssue({
|
|
||||||
code: z.ZodIssueCode.custom,
|
|
||||||
message: 'Не заполнено поле ' + titles.tbxLeaseObjectMotorPower,
|
|
||||||
path: ['eltKasko', 'eltOsago'],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!leaseObjectUseFor) {
|
if (!leaseObjectUseFor) {
|
||||||
ctx.addIssue({
|
ctx.addIssue({
|
||||||
code: z.ZodIssueCode.custom,
|
code: z.ZodIssueCode.custom,
|
||||||
@ -114,6 +106,14 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (evo_leasingobject_type?.evo_id !== '8' && !leaseObjectMotorPower) {
|
||||||
|
ctx.addIssue({
|
||||||
|
code: z.ZodIssueCode.custom,
|
||||||
|
message: 'Не заполнено поле ' + titles.tbxLeaseObjectMotorPower,
|
||||||
|
path: ['eltKasko', 'eltOsago'],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Проверяем на мотоцикл
|
// Проверяем на мотоцикл
|
||||||
if (evo_leasingobject_type?.evo_id && ['11'].includes(evo_leasingobject_type?.evo_id)) {
|
if (evo_leasingobject_type?.evo_id && ['11'].includes(evo_leasingobject_type?.evo_id)) {
|
||||||
ctx.addIssue({
|
ctx.addIssue({
|
||||||
@ -124,6 +124,17 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
evo_leasingobject_type?.evo_id &&
|
||||||
|
!['1', '2', '3', '6', '7', '9', '10'].includes(evo_leasingobject_type?.evo_id)
|
||||||
|
) {
|
||||||
|
ctx.addIssue({
|
||||||
|
code: z.ZodIssueCode.custom,
|
||||||
|
message: 'Для выбранной категории ТС расчет в ЭЛТ недоступен',
|
||||||
|
path: ['eltOsago'],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
evo_leasingobject_type?.evo_id &&
|
evo_leasingobject_type?.evo_id &&
|
||||||
!['1', '2', '3', '6', '7', '8', '9', '10'].includes(evo_leasingobject_type?.evo_id)
|
!['1', '2', '3', '6', '7', '8', '9', '10'].includes(evo_leasingobject_type?.evo_id)
|
||||||
@ -131,7 +142,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
|
|||||||
ctx.addIssue({
|
ctx.addIssue({
|
||||||
code: z.ZodIssueCode.custom,
|
code: z.ZodIssueCode.custom,
|
||||||
message: 'Для выбранной категории ТС расчет в ЭЛТ недоступен',
|
message: 'Для выбранной категории ТС расчет в ЭЛТ недоступен',
|
||||||
path: ['eltKasko', 'eltOsago'],
|
path: ['eltKasko'],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -146,7 +157,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
|
|||||||
code: z.ZodIssueCode.custom,
|
code: z.ZodIssueCode.custom,
|
||||||
message:
|
message:
|
||||||
'По данной цели использования возможен только индивидуальный запрос тарифов КАСКО и ОСАГО. Просьба обратиться на адрес strakhovka@evoleasing.ru',
|
'По данной цели использования возможен только индивидуальный запрос тарифов КАСКО и ОСАГО. Просьба обратиться на адрес strakhovka@evoleasing.ru',
|
||||||
path: ['eltKasko'],
|
path: ['eltKasko', 'eltOsago'],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,7 +165,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
|
|||||||
ctx.addIssue({
|
ctx.addIssue({
|
||||||
code: z.ZodIssueCode.custom,
|
code: z.ZodIssueCode.custom,
|
||||||
message: 'Не указан Регион по юр.адресу клиента',
|
message: 'Не указан Регион по юр.адресу клиента',
|
||||||
path: ['eltKasko'],
|
path: ['eltKasko', 'eltOsago'],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,7 +193,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
|
|||||||
ctx.addIssue({
|
ctx.addIssue({
|
||||||
code: z.ZodIssueCode.custom,
|
code: z.ZodIssueCode.custom,
|
||||||
message: 'Не указана категория ТС',
|
message: 'Не указана категория ТС',
|
||||||
path: ['eltKasko'],
|
path: ['eltKasko', 'eltOsago'],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -191,7 +202,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
|
|||||||
ctx.addIssue({
|
ctx.addIssue({
|
||||||
code: z.ZodIssueCode.custom,
|
code: z.ZodIssueCode.custom,
|
||||||
message: 'Децентрализованное страхование не может быть расчитано в ЭЛТ',
|
message: 'Децентрализованное страхование не может быть расчитано в ЭЛТ',
|
||||||
path: ['eltKasko'],
|
path: ['eltKasko', 'eltOsago'],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,7 +256,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
|
|||||||
code: z.ZodIssueCode.custom,
|
code: z.ZodIssueCode.custom,
|
||||||
message:
|
message:
|
||||||
'По данному ОКВЭД Контрагента возможен только индивидуальный запрос тарифов КАСКО/ОСАГО. Просьба обратиться на адрес strakhovka@evoleasing.ru',
|
'По данному ОКВЭД Контрагента возможен только индивидуальный запрос тарифов КАСКО/ОСАГО. Просьба обратиться на адрес strakhovka@evoleasing.ru',
|
||||||
path: ['eltKasko'],
|
path: ['eltKasko', 'eltOsago'],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,7 +35,7 @@ export default class PolicyStore {
|
|||||||
(selectedKey) => {
|
(selectedKey) => {
|
||||||
if (!selectedKey) {
|
if (!selectedKey) {
|
||||||
notification.open({
|
notification.open({
|
||||||
description: 'Расчеты ЭЛТ были сброшены',
|
description: 'Выбранный расчет ЭЛТ был сброшен',
|
||||||
key: validationConfig.err_key,
|
key: validationConfig.err_key,
|
||||||
message: validationConfig.err_title,
|
message: validationConfig.err_title,
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user