На изменение параметра Мощность л.с. leaseObjectMotorPower добавить проверку:

если Пересчете без пересмотра recalcWithRevision = True и если в Предложении selectQuote в поле "КП по итогам КК" = Да

и текущее значение Мощность л.с. leaseObjectMotorPower минус Мощность л.с. quote.evo_power из Предложения , которое указано в Предложении selectQuote в поле Одобренное КА quote.evo_accept_quoteid, больше 10 по модулю,

то выводить сообщение "Нельзя корректировать мощность более чем на 10 л.с. после рассмотрения предложения на КК"

На изменение параметра Объем двигателя engineVolume добавить проверку:

если Пересчете без пересмотра recalcWithRevision = True и если в Предложении selectQuote в поле "КП по итогам КК" = Да

и текущее значение Объем двигателя engineVolume  минус Объем двигателя, л quote.evo_engine_volume из Предложения , которое указано в Предложении selectQuote в поле Одобренное КА quote.evo_accept_quoteid, больше 0.1 по модулю,

то выводить сообщение "Нельзя корректировать объем двигателя более чем на 0.1 л после рассмотрения предложения на КК"
This commit is contained in:
vchikalkin 2024-05-08 12:18:01 +03:00
parent af5c9cb061
commit ba22659578
3 changed files with 34 additions and 3 deletions

View File

@ -113,6 +113,8 @@ query GetQuote($quoteId: Uuid!) {
evo_committee_quote
evo_msfo_irr
evo_accept_quoteid
evo_power
evo_engine_volume
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,7 @@
/* eslint-disable sonarjs/cognitive-complexity */
/* eslint-disable complexity */
import type { ValidationContext } from '../types';
import type { Elements } from '@/Components/Calculation/config/map/values';
import ValuesSchema from '@/config/schema/values';
import { MAX_MASS, VEHICLE_SEATS } from '@/constants/values';
import * as CRMTypes from '@/graphql/crm.types';
@ -18,6 +19,8 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
lastPaymentPerc: true,
leaseObjectCategory: true,
leaseObjectCount: true,
engineVolume: true,
leaseObjectMotorPower: true,
leaseObjectPriceWthtVAT: true,
leaseObjectUsed: true,
leaseObjectYear: true,
@ -49,6 +52,8 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
leaseObjectCategory,
partialVAT,
IRR_Perc,
leaseObjectMotorPower,
engineVolume,
},
ctx
) => {
@ -237,8 +242,32 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: 'Нельзя увеличивать IRR после рассмотрения предложения на КК',
path: ['tbxIRR_Perc'],
path: ['tbxIRR_Perc'] as Elements[],
});
if (
accept_quote?.evo_power &&
Math.abs(leaseObjectMotorPower - accept_quote.evo_power) > 10
) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message:
'Нельзя корректировать мощность более чем на 10 л.с. после рассмотрения предложения на КК',
path: ['tbxLeaseObjectMotorPower'] as Elements[],
});
}
if (
accept_quote?.evo_engine_volume &&
Math.abs(engineVolume - accept_quote.evo_engine_volume) > 0.1
) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message:
'Нельзя корректировать объем двигателя более чем на 0.1 л после рассмотрения предложения на КК',
path: ['tbxEngineVolume'] as Elements[],
});
}
}
}
}