На изменение параметра НСИБ insNSIB добавить проверку:

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

и НСИБ insNSIB содержит значение, а  в Предложении selectQuote, в поле Одобренное КА quote.evo_accept_quoteid указана запись Предложение, у которой в поле НСИБ quote.evo_nsib значение = Нет,

то выводить сообщение "Нельзя включать в график НСИБ после рассмотрения предложения на КК"

На изменение параметра Карта техпомощи technicalCard добавить проверку:

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

и Карта техпомощи technicalCard содержит значение, а  в Предложении selectQuote, в поле Одобренное КА quote.evo_accept_quoteid указана запись Предложение, у которой в связанных Типах доп.продуктов evo_addproduct_type отсутствует запись, у которой Тип продукта evo_product_type = Карта тех.помощи 100 000 000,

то выводить сообщение "Нельзя включать в график карту тех.помощи после рассмотрения предложения на КК"
This commit is contained in:
vchikalkin 2024-05-08 12:27:10 +03:00
parent ba22659578
commit 63462becc5
3 changed files with 31 additions and 3 deletions

View File

@ -115,6 +115,10 @@ query GetQuote($quoteId: Uuid!) {
evo_accept_quoteid
evo_power
evo_engine_volume
evo_nsib
evo_addproduct_types {
evo_product_type
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -14,12 +14,13 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
countSeats: true,
dealerPerson: true,
discountRub: true,
engineVolume: true,
firstPaymentPerc: true,
importProgramSum: true,
insNSIB: true,
lastPaymentPerc: true,
leaseObjectCategory: true,
leaseObjectCount: true,
engineVolume: true,
leaseObjectMotorPower: true,
leaseObjectPriceWthtVAT: true,
leaseObjectUsed: true,
@ -30,6 +31,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
product: true,
quote: true,
recalcWithRevision: true,
technicalCard: true,
}).superRefine(
async (
{
@ -54,6 +56,8 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
IRR_Perc,
leaseObjectMotorPower,
engineVolume,
insNSIB,
technicalCard,
},
ctx
) => {
@ -268,6 +272,26 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
path: ['tbxEngineVolume'] as Elements[],
});
}
if (insNSIB && !accept_quote?.evo_nsib) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: 'Нельзя включать в график НСИБ после рассмотрения предложения на КК',
path: ['selectInsNSIB'] as Elements[],
});
}
if (
technicalCard &&
!accept_quote?.evo_addproduct_types?.some((x) => x?.evo_product_type === 100_000_000)
) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message:
'Нельзя включать в график карту тех.помощи после рассмотрения предложения на КК',
path: ['selectTechnicalCard'] as Elements[],
});
}
}
}
}