From 96f61d446dfd315042d235f39de0f16392e9fdab Mon Sep 17 00:00:00 2001 From: Chika Date: Thu, 7 Jul 2022 10:05:36 +0300 Subject: [PATCH] merge branch release/calc-94_trailer --- .../ELT/Kasko/lib/composeRequest.ts | 42 +++++++++++++++---- .../Components/ELT/Kasko/lib/validation.ts | 22 ++-------- 2 files changed, 39 insertions(+), 25 deletions(-) diff --git a/src/client/Containers/Calculation/Components/ELT/Kasko/lib/composeRequest.ts b/src/client/Containers/Calculation/Components/ELT/Kasko/lib/composeRequest.ts index 9d97afb..592b665 100644 --- a/src/client/Containers/Calculation/Components/ELT/Kasko/lib/composeRequest.ts +++ b/src/client/Containers/Calculation/Components/ELT/Kasko/lib/composeRequest.ts @@ -62,10 +62,27 @@ export default function (this: ICalculationStore) { const model = this.getOption('selectModel'); let modelId = model?.evo_id; - const isNew = !this.getValue('leaseObjectUsed'); + const leaseObjectUsed = this.getValue('leaseObjectUsed'); + const product = this.getOption('selectProduct'); + const leaseObjectYear = this.getValue('leaseObjectYear'); + let isNew = true; + if ( + leaseObjectUsed === true || + (leaseObjectUsed === false && + product?.evo_sale_without_nds === true && + leaseObjectYear !== currentDate.getFullYear()) + ) { + isNew = false; + } + const vehicleYear = this.getValue('leaseObjectYear'); let vehicleDate; - if (this.getValue('leaseObjectUsed')) { + if ( + leaseObjectUsed === true || + (leaseObjectUsed === false && + product?.evo_sale_without_nds === true && + leaseObjectYear !== currentDate.getFullYear()) + ) { vehicleDate = new Date(`${vehicleYear}-01-01`); } let vehicleDateSpecified = getSpecified(vehicleDate); @@ -78,7 +95,7 @@ export default function (this: ICalculationStore) { if ( leaseObjectCategory === 100000002 || (leaseObjectType?.evo_id && - ['6', '9', '10'].includes(leaseObjectType?.evo_id)) + ['6', '9', '10', '8'].includes(leaseObjectType?.evo_id)) ) if (brand?.evo_brand_owner === 100000001) { country = 1; @@ -96,10 +113,12 @@ export default function (this: ICalculationStore) { duration = 12; } const cost = - this.getValue('leaseObjectPrice') - - this.getValue('supplierDiscountRub') - //@ts-ignore - this.importProgramSum(); + (this.plPriceRub() || 0) - + (this.getValue('supplierDiscountRub') || 0) - + //@ts-ignore + (this.importProgramSum() || 0) + + (this.getValue('addEquipmentPrice') || 0); let notConfirmedGlassesDamages, notConfirmedGlassesDamagesSpecified = false, @@ -155,9 +174,18 @@ export default function (this: ICalculationStore) { const maxAllowedMassSpecified = getSpecified(maxAllowedMass); let mileage = 0; - if (this.getValue('leaseObjectUsed')) { + if (leaseObjectUsed === true) { mileage = this.getValue('mileage'); } + + if ( + leaseObjectUsed === false && + product?.evo_sale_without_nds === true && + leaseObjectYear !== currentDate.getFullYear() + ) { + mileage = 0; + } + const mileageSpecified = getSpecified(mileage); let vehicleUsage = 0; diff --git a/src/client/Containers/Calculation/Components/ELT/Kasko/lib/validation.ts b/src/client/Containers/Calculation/Components/ELT/Kasko/lib/validation.ts index 4817af2..46f0cf1 100644 --- a/src/client/Containers/Calculation/Components/ELT/Kasko/lib/validation.ts +++ b/src/client/Containers/Calculation/Components/ELT/Kasko/lib/validation.ts @@ -19,6 +19,7 @@ export const requiredFields: ElementsNames[] = [ export const conditions: Partial> = { selectLeaseObjectType: calculationStore => { const leaseObjectType = calculationStore.getOption('selectLeaseObjectType'); + // Проверяем на мотоцикл if (leaseObjectType?.evo_id && ['11'].includes(leaseObjectType?.evo_id)) { return { isValid: false, @@ -28,7 +29,9 @@ export const conditions: Partial> = { if ( leaseObjectType?.evo_id && - !['1', '2', '3', '6', '7', '9', '10'].includes(leaseObjectType?.evo_id) + !['1', '2', '3', '6', '7', '8', '9', '10'].includes( + leaseObjectType?.evo_id, + ) ) { return { isValid: false, @@ -93,24 +96,7 @@ export const conditions: Partial> = { isValid: true, }; }, - selectEngineType: calculationStore => { - const engineType = calculationStore.getValue('engineType'); - if (!engineType) { - if (['8'].includes(engineType?.evo_id || '')) - return { - isValid: true, - }; - else - return { - isValid: false, - message: 'Не указан тип двигателя', - }; - } - return { - isValid: true, - }; - }, cbxInsDecentral: calculationStore => { const insDecentral = calculationStore.getValue('insDecentral'); if (insDecentral) {