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 576e20d..2cd0102 100644 --- a/src/client/Containers/Calculation/Components/ELT/Kasko/lib/validation.ts +++ b/src/client/Containers/Calculation/Components/ELT/Kasko/lib/validation.ts @@ -109,6 +109,19 @@ export const conditions: Partial> = { isValid: true, }; }, + + selectLeasingWithoutKasko: calculationStore => { + if (calculationStore.getValue('leasingWithoutKasko')) { + return { + isValid: false, + message: + 'Вы осуществляете расчет с Лизинг без КАСКО, расчет ЭЛТ в данном случае не требуется', + }; + } + return { + isValid: true, + }; + }, }; export const resetFields: ElementsNames[] = [ @@ -119,6 +132,7 @@ export const resetFields: ElementsNames[] = [ 'selectLegalClientTown', 'selectLegalClientRegion', 'tbxVIN', + 'selectLeasingWithoutKasko', ]; export default { diff --git a/src/client/Containers/Calculation/Components/ELT/Osago/lib/validation.ts b/src/client/Containers/Calculation/Components/ELT/Osago/lib/validation.ts index a86565d..246bccc 100644 --- a/src/client/Containers/Calculation/Components/ELT/Osago/lib/validation.ts +++ b/src/client/Containers/Calculation/Components/ELT/Osago/lib/validation.ts @@ -20,6 +20,29 @@ export const requiredFields: ElementsNames[] = [ ]; const osagoConditions: Partial> = { + selectLeaseObjectType: calculationStore => { + const leaseObjectType = calculationStore.getOption('selectLeaseObjectType'); + // Проверяем на мотоцикл + if (leaseObjectType?.evo_id && ['11'].includes(leaseObjectType?.evo_id)) { + return { + isValid: false, + message: `По данному Типу предмета лизинга возможен только индивидуальный запрос тарифов КАСКО и ОСАГО. Просьба обратиться на адрес strakhovka@evoleasing.ru`, + }; + } + + if ( + leaseObjectType?.evo_id && + !['1', '2', '3', '6', '7', '9', '10'].includes(leaseObjectType?.evo_id) + ) { + return { + isValid: false, + message: `Для выбранной категории ТС расчет в ЭЛТ недоступен`, + }; + } + return { + isValid: true, + }; + }, selectTownRegistration: calculationStore => { const objectRegistration = calculationStore.getValue('objectRegistration'); if (objectRegistration === 100000001) { @@ -39,7 +62,11 @@ const osagoConditions: Partial> = { const conditions = Object.assign( osagoConditions, - omit(kaskoConditions, ['selectEngineType']), + omit(kaskoConditions, [ + 'selectEngineType', + 'selectLeaseObjectType', + 'selectLeasingWithoutKasko', + ]), ); export const resetFields: ElementsNames[] = [ diff --git a/src/client/Containers/Calculation/Components/Sections/sectionsList.ts b/src/client/Containers/Calculation/Components/Sections/sectionsList.ts index 36bb55b..c11507c 100644 --- a/src/client/Containers/Calculation/Components/Sections/sectionsList.ts +++ b/src/client/Containers/Calculation/Components/Sections/sectionsList.ts @@ -284,6 +284,7 @@ const sections: ISection[] = [ 'selectLeaseObjectCategory', 'tbxLeaseObjectMotorPower', 'tbxEngineVolume', + 'selectLeasingWithoutKasko', ], }, { diff --git a/src/client/Containers/Calculation/Elements/components.ts b/src/client/Containers/Calculation/Elements/components.ts index 27da392..27e9f9e 100644 --- a/src/client/Containers/Calculation/Elements/components.ts +++ b/src/client/Containers/Calculation/Elements/components.ts @@ -144,6 +144,7 @@ export default { labelIrrInfo: Label, labelRegistrationDescription: Label, labelImportProgramSum: Label, + selectLeasingWithoutKasko: Select, /** Result Elements */ labelResultTotalGraphwithNDS: Label, diff --git a/src/client/Containers/Calculation/Elements/titles.ts b/src/client/Containers/Calculation/Elements/titles.ts index 6e0a107..8367d67 100644 --- a/src/client/Containers/Calculation/Elements/titles.ts +++ b/src/client/Containers/Calculation/Elements/titles.ts @@ -130,6 +130,7 @@ export const elementsTitles: Partial> = { labelImportProgramSum: 'Скидка от производителя, руб., с НДС', tbxAddEquipmentPrice: 'Стоимость доп.оборудования', tbxVIN: 'VIN', + selectLeasingWithoutKasko: 'Лизинг без КАСКО', /** Result Elements */ labelResultTotalGraphwithNDS: 'Итого по графику, с НДС', diff --git a/src/client/Containers/Calculation/Elements/values.ts b/src/client/Containers/Calculation/Elements/values.ts index d1a63f0..3eda07c 100644 --- a/src/client/Containers/Calculation/Elements/values.ts +++ b/src/client/Containers/Calculation/Elements/values.ts @@ -136,6 +136,7 @@ const elementsValues: Record = { selectImportProgram: 'importProgram', tbxAddEquipmentPrice: 'addEquipmentPrice', tbxVIN: 'vin', + selectLeasingWithoutKasko: 'leasingWithoutKasko', /** Result Elements */ labelResultTotalGraphwithNDS: 'resultTotalGraphwithNDS', diff --git a/src/client/Containers/Calculation/types/elements.ts b/src/client/Containers/Calculation/types/elements.ts index 598a760..7259059 100644 --- a/src/client/Containers/Calculation/types/elements.ts +++ b/src/client/Containers/Calculation/types/elements.ts @@ -123,6 +123,7 @@ export type ElementsNames = | 'tbxVATInLeaseObjectPrice' | 'tbxAddEquipmentPrice' | 'tbxVIN' + | 'selectLeasingWithoutKasko' /** Result Elements */ | 'labelResultTotalGraphwithNDS' | 'labelResultPlPrice' diff --git a/src/client/stores/CalculationStore/Effects/actions/calculate/prepareData.ts b/src/client/stores/CalculationStore/Effects/actions/calculate/prepareData.ts index 845b5d6..a20dd85 100644 --- a/src/client/stores/CalculationStore/Effects/actions/calculate/prepareData.ts +++ b/src/client/stores/CalculationStore/Effects/actions/calculate/prepareData.ts @@ -186,6 +186,51 @@ export default function (this: ICalculationStore): PreparedData { ? values.leasingPeriod : 12; + //@ts-ignore + const importProgramSum: number = this.importProgramSum(); + //@ts-ignore + const plPriceRub: number = this.plPriceRub(); + //@ts-ignore + const discountRub: number = this.discountRub(); + + preparedValues.insuranceEvoKasko = 0; + const selectLeasingWithoutKasko = this.getOption('selectLeasingWithoutKasko'); + + if (selectLeasingWithoutKasko?.evo_evokasko_calc_type === 100_000_001) { + preparedValues.insuranceEvoKasko = + (selectLeasingWithoutKasko?.evo_cost_service_provider_withoutnds || 0) * + (plPriceRub - + discountRub - + importProgramSum + + values.addEquipmentPrice - + values.firstPaymentRub); + } else { + preparedValues.insuranceEvoKasko = + (selectLeasingWithoutKasko?.evo_cost_service_provider_withoutnds || 0) * + (plPriceRub - discountRub - importProgramSum + values.addEquipmentPrice); + } + + preparedValues.insuranceBonusLoss = 0; + + if (selectLeasingWithoutKasko?.evo_evokasko_calc_type === 100_000_001) { + preparedValues.insuranceBonusLoss = + ((selectLeasingWithoutKasko?.evo_loss_kv || 0) * + (plPriceRub - + discountRub - + importProgramSum + + values.addEquipmentPrice - + values.firstPaymentRub)) / + 100; + } else { + preparedValues.insuranceBonusLoss = + ((selectLeasingWithoutKasko?.evo_loss_kv || 0) * + (plPriceRub - + discountRub - + importProgramSum + + values.addEquipmentPrice)) / + 100; + } + preparedValues.insuranceKaskoNmper = (preparedValues.nmperInsurance || 0) >= 16 ? ((preparedValues.insuranceKasko || 0) * @@ -230,8 +275,6 @@ export default function (this: ICalculationStore): PreparedData { evo_currencychange?.evo_currencychange || 1, ); - //@ts-ignore - const importProgramSum = this.importProgramSum(); preparedValues.importProgramSum = importProgramSum / (1 + valuesConstants.VAT); diff --git a/src/client/stores/CalculationStore/Effects/actions/calculate/results.ts b/src/client/stores/CalculationStore/Effects/actions/calculate/results.ts index 0e13dc8..4fb23e4 100644 --- a/src/client/stores/CalculationStore/Effects/actions/calculate/results.ts +++ b/src/client/stores/CalculationStore/Effects/actions/calculate/results.ts @@ -61,7 +61,7 @@ export default { ); this.setValue( 'resultIRRGraphPerc', - (res?.columns?.cashflowColumn?.irr || 0) * 100, + (res?.columns?.sumColumn?.irr || 0) * 100, ); this.setValue( 'resultIRRNominalPerc', diff --git a/src/client/stores/CalculationStore/Effects/actions/calculate/validate/tables.ts b/src/client/stores/CalculationStore/Effects/actions/calculate/validate/tables.ts index 4dba0dd..63c7d8d 100644 --- a/src/client/stores/CalculationStore/Effects/actions/calculate/validate/tables.ts +++ b/src/client/stores/CalculationStore/Effects/actions/calculate/validate/tables.ts @@ -122,6 +122,49 @@ function validateInsuranceTable(this: ICalculationStore) { }, }); } + + /** + * Самый откровенный костыль в истории калькулятора, + * потому что мне сейчас лень добавлять проверку текущего значения + * в отфильтрованном списке опций в таблице, + * да и это не имеет смысла + * (связано с самой жуткой реакцией по страховке) + * + * TODO: Для нового калькулятора: + * вместо костыля сбрасывать значение КАСКО на дефолтное, если текущего значения нет в списке опций + * + */ + const leasingWithoutKasko = this.getValue('leasingWithoutKasko'); + const otherInsuranceCompany = + this.tables.tableInsurance.options?.insuranceCompany?.find(x => + x.name?.includes('ПРОЧИЕ'), + ); + if ( + !leasingWithoutKasko && + kaskoRow.insuranceCompany === otherInsuranceCompany?.value + ) { + this.setTableRow('tableInsurance', rows => + rows.findIndex(x => x?.key === 'kasko'), + )({ + insuranceCompany: { + validation: false, + }, + }); + + openNotification({ + type: 'error', + message: 'Ошибка', + description: 'Укажите страховую компанию КАСКО из списка', + }); + } else { + this.setTableRow('tableInsurance', rows => + rows.findIndex(x => x?.key === 'kasko'), + )({ + insuranceCompany: { + validation: undefined, + }, + }); + } } function validatePaymentsTable(this: ICalculationStore) { diff --git a/src/client/stores/CalculationStore/Effects/reactions/loadKpReaction/index.ts b/src/client/stores/CalculationStore/Effects/reactions/loadKpReaction/index.ts index c1953ff..37448af 100644 --- a/src/client/stores/CalculationStore/Effects/reactions/loadKpReaction/index.ts +++ b/src/client/stores/CalculationStore/Effects/reactions/loadKpReaction/index.ts @@ -40,6 +40,7 @@ const map_add_product_types_to_values = { tracker: 100000003, telematic: 100000004, fuelCard: 100000005, + leasingWithoutKasko: 100000007, }; const tablePaymentsStatuses = (graphType, seasonType, leasingPeriod) => { @@ -600,9 +601,24 @@ const loadKpReaction: IReactionEffect = calculationStore => ({ // regionRegistration if (objectRegistration === 100000001) { regionRegistration = quote.evo_regionid; - calculationStore.setFilter('selectRegionRegistration', regions => - regions.filter(x => x.evo_businessunit_evolution === true), - ); + + const filter = regions => + regions.filter(x => x.evo_businessunit_evolution === true); + + calculationStore.setFilter('selectRegionRegistration', filter); + + /** + * TODO: Для нового калькулятора: + * костыль: скидываем значение поля selectRegionRegistration + * после фильтрации чтобы не ставилось значение из КП которого нет в отфильтрованном списке + */ + if ( + !calculationStore + .getOptions('selectRegionRegistration', undefined, true) + ?.find(x => x.value === regionRegistration) + ) { + regionRegistration = null; + } calculationStore.setStatus( 'selectRegionRegistration', ElementStatus.Default, diff --git a/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts b/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts index a1529e7..1c62666 100644 --- a/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts +++ b/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts @@ -822,6 +822,100 @@ const reactionEffects: IReactionEffect[] = [ }, }), + /** + * сделали здесь для экономии времени + * перенести в отдельный процесс leasingWithoutKasko + */ + + calculationStore => ({ + expression: () => { + //@ts-ignore + const plPriceRub = calculationStore.plPriceRub(); + //@ts-ignore + const discountRub = calculationStore.discountRub(); + //@ts-ignore + const importProgramSum: number = calculationStore.importProgramSum(); + + const { + leasingPeriod, + leaseObjectType, + addEquipmentPrice, + firstPaymentPerc, + model, + } = calculationStore.values; + return { + leasingPeriod, + leaseObjectType, + plPriceRub, + discountRub, + addEquipmentPrice, + importProgramSum, + firstPaymentPerc, + modelId: model, + }; + }, + effect: ({ + leasingPeriod = 0, + leaseObjectType, + plPriceRub = 0, + discountRub = 0, + addEquipmentPrice = 0, + importProgramSum = 0, + firstPaymentPerc = 0, + modelId, + }) => { + calculationStore.setFilter('selectLeasingWithoutKasko', options => + options.filter( + x => + x?.evo_max_period !== undefined && + x?.evo_min_period !== undefined && + x.evo_max_period >= leasingPeriod && + x.evo_min_period <= leasingPeriod && + x?.evo_max_price !== undefined && + x?.evo_min_price !== undefined && + x.evo_max_price >= + plPriceRub - discountRub - importProgramSum + addEquipmentPrice && + x.evo_min_price <= + plPriceRub - discountRub - importProgramSum + addEquipmentPrice && + x.evo_leasingobject_types?.find( + x => x.evo_leasingobject_typeid === leaseObjectType, + ) && + x.evo_visible_calc && + x.evo_min_first_payment_perc !== undefined && + x.evo_min_first_payment_perc <= firstPaymentPerc && + x.evo_max_first_payment_perc !== undefined && + x.evo_max_first_payment_perc >= firstPaymentPerc && + !x.evo_models?.map(x => x.evo_modelid).includes(modelId), + ), + ); + }, + options: { + fireImmediately: true, + }, + }), + + calculationStore => ({ + expression: () => { + return { + options: calculationStore.getOptions( + 'selectLeasingWithoutKasko', + undefined, + true, + ), + value: calculationStore.getValue('leasingWithoutKasko'), + }; + }, + effect: (nextValues, prevValues) => { + if (prevValues.value && !nextValues.value) { + openNotification({ + type: 'warning', + message: 'Внимание', + description: 'Лизинг без КАСКО был сброшен', + }); + } + }, + }), + calculationStore => ({ expression: () => { const { leasingPeriod, leaseObjectType } = calculationStore.values; diff --git a/src/client/stores/CalculationStore/Effects/reactions/tablesReactions.ts b/src/client/stores/CalculationStore/Effects/reactions/tablesReactions.ts index 2e82ec9..01df5b8 100644 --- a/src/client/stores/CalculationStore/Effects/reactions/tablesReactions.ts +++ b/src/client/stores/CalculationStore/Effects/reactions/tablesReactions.ts @@ -147,13 +147,109 @@ export default [ }, }), + // самая жуткая реакция по страховке (calculationStore, calculationProcess) => ({ expression: () => { - const { leasingPeriod } = calculationStore.values; - return leasingPeriod; + const { leasingPeriod, leasingWithoutKasko } = calculationStore.values; + return { leasingPeriod, leasingWithoutKasko }; }, - effect: leasingPeriod => { - if (leasingPeriod) { + effect: ({ leasingPeriod, leasingWithoutKasko }) => { + if (leasingWithoutKasko) { + const otherInsuranceCompany = + calculationStore.tables.tableInsurance.options?.insuranceCompany?.find( + x => x.name?.includes('ПРОЧИЕ'), + ); + const insuranceOtherFilter = singleValueFilter( + otherInsuranceCompany?.value, + ); + calculationStore.setTableRow('tableInsurance', rows => + rows.findIndex(x => x?.key === 'kasko'), + )({ + insuranceCompany: { + value: otherInsuranceCompany?.value, + status: ElementStatus.Disabled, + filter: insuranceOtherFilter, + }, + insCost: { + value: 0, + status: ElementStatus.Disabled, + }, + insTerm: { + value: 100_000_000, + status: ElementStatus.Disabled, + }, + insured: { + value: 100_000_000, + status: ElementStatus.Disabled, + }, + }); + + calculationStore.setTableRow('tableInsurance', rows => + rows.findIndex(x => x?.key === 'dgo'), + )({ + insuranceCompany: { + value: otherInsuranceCompany?.value, + status: ElementStatus.Disabled, + filter: insuranceOtherFilter, + }, + insCost: { + value: 0, + status: ElementStatus.Disabled, + }, + insTerm: { + value: 100_000_000, + status: ElementStatus.Disabled, + }, + insured: { + value: 100_000_000, + status: ElementStatus.Disabled, + }, + }); + + calculationStore.setTableRow('tableInsurance', rows => + rows.findIndex(x => x?.key === 'ns'), + )({ + insuranceCompany: { + value: otherInsuranceCompany?.value, + status: ElementStatus.Disabled, + filter: insuranceOtherFilter, + }, + insCost: { + value: 0, + status: ElementStatus.Disabled, + }, + insTerm: { + value: 100_000_000, + status: ElementStatus.Disabled, + }, + insured: { + value: 100_000_000, + status: ElementStatus.Disabled, + }, + }); + } else if (leasingPeriod) { + calculationStore.setTableRow('tableInsurance', rows => + rows.findIndex(x => x?.key === 'kasko'), + )({ + insuranceCompany: { + filter: insuranceKaskoDefaultFilter, + status: ElementStatus.Default, + }, + insCost: { status: ElementStatus.Default }, + }); + + calculationStore.setTableRow('tableInsurance', rows => + rows.findIndex(x => x?.key === 'dgo'), + )({ + insuranceCompany: { filter: insuranceKaskoDefaultFilter }, + }); + + calculationStore.setTableRow('tableInsurance', rows => + rows.findIndex(x => x?.key === 'ns'), + )({ + insuranceCompany: { filter: insuranceKaskoDefaultFilter }, + }); + if (leasingPeriod < 12) { calculationStore.setTableRow('tableInsurance', rows => rows.findIndex(x => x?.key === 'osago'), diff --git a/src/client/stores/CalculationStore/config/initialValues.ts b/src/client/stores/CalculationStore/config/initialValues.ts index 209452c..7085736 100644 --- a/src/client/stores/CalculationStore/config/initialValues.ts +++ b/src/client/stores/CalculationStore/config/initialValues.ts @@ -94,5 +94,6 @@ const initialValues: Partial> = { legalClientTown: null, infuranceOPF: null, addEquipmentPrice: 0, + leasingWithoutKasko: null, }; export default initialValues; diff --git a/src/client/stores/CalculationStore/init/variables.ts b/src/client/stores/CalculationStore/init/variables.ts index b2a26ec..59bb579 100644 --- a/src/client/stores/CalculationStore/init/variables.ts +++ b/src/client/stores/CalculationStore/init/variables.ts @@ -15,6 +15,7 @@ export const mainOptionsVariables: telematic_product_type: 100000004, techcard_product_type: 100000000, fuelcard_product_type: 100000005, + leasing_without_kasko_product_type: 100000007, }; export const insuranceVariables: Partial> = { diff --git a/src/core/services/CoreService/types/Calculation/prepared.ts b/src/core/services/CoreService/types/Calculation/prepared.ts index c2cadaa..fcbea32 100644 --- a/src/core/services/CoreService/types/Calculation/prepared.ts +++ b/src/core/services/CoreService/types/Calculation/prepared.ts @@ -1,4 +1,6 @@ export interface PreparedValues { + insuranceBonusLoss?: number; + insuranceEvoKasko?: number; extraBonusSumColumn?: number; importProgramSum?: number; calcDate?: Date; diff --git a/src/core/services/CrmService/graphql/query/options/main_options.graphql b/src/core/services/CrmService/graphql/query/options/main_options.graphql index c99ee71..533014f 100644 --- a/src/core/services/CrmService/graphql/query/options/main_options.graphql +++ b/src/core/services/CrmService/graphql/query/options/main_options.graphql @@ -13,6 +13,7 @@ query GetMainOptions( $telematic_product_type: Int $fuelcard_product_type: Int $techcard_product_type: Int + $leasing_without_kasko_product_type: Int ) { selectSupplierCurrency: transactioncurrencies(statecode: $statecode) { transactioncurrencyid @@ -296,4 +297,25 @@ query GetMainOptions( } evo_subsidy_type } + selectLeasingWithoutKasko: evo_addproduct_types( + statecode: $statecode + evo_product_type: $leasing_without_kasko_product_type + evo_datefrom_param: { lte: $currentDate } + evo_dateto_param: { gte: $currentDate } + ) { + ...evo_addproduct_types_fields + evo_leasingobject_types { + evo_leasingobject_typeid + } + evo_visible_calc + evo_min_price + evo_max_price + evo_loss_kv + evo_min_first_payment_perc + evo_max_first_payment_perc + evo_models { + evo_modelid + } + evo_evokasko_calc_type + } } diff --git a/src/core/services/CrmService/graphql/schema.graphql b/src/core/services/CrmService/graphql/schema.graphql index c310c4b..a9da930 100644 --- a/src/core/services/CrmService/graphql/schema.graphql +++ b/src/core/services/CrmService/graphql/schema.graphql @@ -50,7 +50,7 @@ type Query { account(accountid: Uuid!): account """Контрагенты. statecode по умолчанию 0""" - accounts(evo_accnumber: String, evo_account_type: [Int!], evo_agency_agreementid: Uuid, evo_broker_accountid: Uuid, evo_fin_department_accountid: Uuid, evo_id_elt: String, evo_inn: String, evo_inn_param: StringParamInput, evo_kpp: String, evo_kpp_param: StringParamInput, evo_legal_form: Int, evo_type_ins_policy: [Int!], name: String, ownerid: Uuid, owner_domainname: String, statecode: Int): [account] + accounts(evo_accnumber: String, evo_account_type: [Int!], evo_agency_agreementid: Uuid, evo_broker_accountid: Uuid, evo_fin_department_accountid: Uuid, evo_id_elt: String, evo_inn: String, evo_inn_param: StringParamInput, evo_kpp: String, evo_kpp_param: StringParamInput, evo_legal_form: Int, evo_type_ins_policy: [Int!], ownerid: Uuid, owner_domainname: String, statecode: Int): [account] """Брокер. statecode по умолчанию 0""" broker_agents(ownnerid: Uuid!, statecode: Int): [account] @@ -68,7 +68,7 @@ type Query { evo_baseproduct(evo_baseproductid: Uuid!): evo_baseproduct evo_baseproducts(evo_datefrom_param: DateParamInput, evo_dateto_param: DateParamInput, evo_relation: [Int!], statecode: Int): [evo_baseproduct] evo_brand(evo_brandid: Uuid!): evo_brand - evo_brands(evo_name: String, evo_vehicle_type: [Int!], statecode: Int): [evo_brand] + evo_brands(evo_vehicle_type: [Int!], statecode: Int): [evo_brand] evo_businessunits(statecode: Int): [evo_businessunit] evo_client_risks(statecode: Int): [evo_client_risk] evo_client_types(statecode: Int): [evo_client_type] @@ -96,7 +96,7 @@ type Query { evo_leasingobject_type(evo_leasingobject_typeid: Uuid!): evo_leasingobject_type evo_leasingobject_types(statecode: Int): [evo_leasingobject_type] evo_model(evo_modelid: Uuid!): evo_model - evo_models(evo_brandid: Uuid, evo_name: String, evo_vehicle_type: Int, statecode: Int): [evo_model] + evo_models(evo_brandid: Uuid, evo_vehicle_type: Int, statecode: Int): [evo_model] evo_orglegalform(evo_orglegalformid: Uuid!): evo_orglegalform evo_orglegalforms(statecode: Int = 0): [evo_orglegalform] evo_paymentorders(evo_dds_1c: String, evo_name: String, evo_paydate_param: DateParamInput, evo_payment_number_1c: String, evo_paysum: Decimal, statecode: Int, statuscode: Int): [evo_paymentorder] @@ -183,6 +183,10 @@ type evo_request_client { evo_owner_systemuseridData: systemuser evo_phonecallid: Uuid evo_request_clientid: Uuid + evo_site_email: String + evo_site_name: String + evo_site_telephone: String + evo_site_text: String evo_statuscodeid: Uuid evo_statuscodeidData: evo_statuscode evo_storage: String @@ -258,6 +262,7 @@ type incidentGraphQL { evo_accountid_new: Uuid evo_cession_opportunityid: Uuid evo_contracts: [evo_contract] + evo_creat_request_client: Uuid evo_fast_advice: Boolean evo_plan_execut_date: DateTime evo_statuscodeid: Uuid @@ -337,6 +342,7 @@ type evo_debtwork_contract { evo_termination_com_lawyer: String evo_termination_lawyer_systemuserid: Uuid evo_termination_lawyer_systemuseridData: systemuser + evo_termination_notice_date: DateTime evo_termination_reason_terms: Int evo_termination_reason_terms_doc: String evo_termination_reason_terms_text: String @@ -399,6 +405,7 @@ type account { evo_div_12month: Boolean evo_documents(evo_documenttypeid_param: GuidParamInput, latestversion: Boolean = true): [evo_document] evo_economic_security_systemuserid: Uuid + evo_edos: [evo_edo] evo_employee_count: Int evo_fingap_number_rules: Int evo_fin_department_accountid: Uuid @@ -415,7 +422,6 @@ type account { evo_ifns_code_branch: String evo_ifns_name: String evo_inn: String - evo_insurance_agent_accountid: Uuid evo_invoice_number_fix: String evo_invoice_number_rules: Int evo_kpp: String @@ -444,7 +450,6 @@ type account { evo_state_liquidation_date: DateTime evo_state_registration_date: DateTime evo_state_status: Int - evo_storage: String evo_subsidies(statecode: Int): [evo_subsidy] evo_supplier_type: Int evo_tax_system: Int @@ -544,16 +549,23 @@ type evo_addproduct_type { evo_description: String evo_equipment_1_name: String evo_equip_cost: Decimal + evo_evokasko_calc_type: Int evo_gibdd_region: Boolean evo_graph_price: Decimal evo_graph_price_withoutnds: Decimal evo_helpcard_type: Int evo_id: String evo_leasingobject_types(statecode: Int): [evo_leasingobject_type] + evo_loss_kv: Decimal evo_max_age: Int + evo_max_first_payment_perc: Decimal evo_max_period: Decimal + evo_max_price: Decimal evo_min_age: Int + evo_min_first_payment_perc: Decimal evo_min_period: Decimal + evo_min_price: Decimal + evo_models: [evo_model] evo_name: String evo_nsib_limit: Decimal evo_planpayments(statecode: Int): [evo_planpayment] @@ -635,6 +647,7 @@ type evo_insurance_period { evo_dateto: DateTime evo_dgo_price: Decimal evo_elt_id: String + evo_evokasko_price: Decimal evo_exp_drivers: Int evo_franchise: Decimal evo_id: String @@ -656,6 +669,7 @@ type evo_insurance_period { evo_invoice_date: DateTime evo_kasko_price: Decimal evo_leasingobjectid: Uuid + evo_loss_kv: Decimal evo_mobile_discount: Boolean evo_mobile_discount_factor: Decimal evo_mobile_discount_rub: Decimal @@ -702,6 +716,9 @@ type evo_addproduct { evo_addproductnumberidData: evo_addproductnumber evo_addproduct_typeid: Uuid evo_addproduct_typeidData: evo_addproduct_type + evo_beacon1_imei: String + evo_beacon2_imei: String + evo_connect_telematics_evo_addproductid: Uuid evo_contractid: Uuid evo_cs_actualdate: DateTime evo_date_instal: DateTime @@ -950,6 +967,7 @@ type opportunity { evo_assignor_accountid: Uuid evo_businessunitid: Uuid evo_businessunitidData: businessunit + evo_cession_incidentid: Uuid evo_check_type: [Int!] evo_check_type_fact: [Int!] evo_client_riskid: Uuid @@ -1035,6 +1053,7 @@ type quote { evo_agent_accountid: Uuid evo_agent_reward_conditionid: Uuid evo_agent_reward_summ: Decimal + evo_agent_reward_tech: Decimal evo_agent_reward_total: Decimal evo_age_drivers: Int evo_another_payments: Decimal @@ -1048,6 +1067,7 @@ type quote { evo_broker_accountid: Uuid evo_broker_reward_conditionid: Uuid evo_broker_reward_summ: Decimal + evo_broker_reward_tech: Decimal evo_broker_reward_total: Decimal evo_calc_irr: Decimal evo_calc_profit: Decimal @@ -1070,8 +1090,10 @@ type quote { evo_dealer_broker_accountid: Uuid evo_dealer_broker_reward_conditionid: Uuid evo_dealer_broker_reward_summ: Decimal + evo_dealer_broker_reward_tech: Decimal evo_dealer_broker_reward_total: Decimal evo_dealer_person_accountid: Uuid + evo_dealer_person_reward_tech: Decimal evo_dealer_reward_conditionid: Uuid evo_dealer_reward_summ: Decimal evo_dealer_reward_total: Decimal @@ -1093,6 +1115,7 @@ type quote { evo_double_agent_accountid: Uuid evo_double_agent_reward_conditionid: Uuid evo_double_agent_reward_summ: Decimal + evo_double_agent_reward_tech: Decimal evo_double_agent_reward_total: Decimal evo_economic: Decimal evo_economic_with_nds: Decimal @@ -1102,6 +1125,9 @@ type quote { evo_equipmentid: Uuid evo_equip_price: Decimal evo_equity_capital: Decimal + evo_evokasko_insurer_accountid: Uuid + evo_evokasko_insurer_accountidData: account + evo_evokasko_price: Decimal evo_exp_drivers: Int evo_fingap_accountid: Uuid evo_fingap_bonus_sum: Decimal @@ -1112,6 +1138,7 @@ type quote { evo_fin_department_accountid: Uuid evo_fin_department_reward_conditionid: Uuid evo_fin_department_reward_summ: Decimal + evo_fin_department_reward_tech: Decimal evo_fin_department_reward_total: Decimal evo_first_dgo_price: Decimal evo_first_kasko_accountid: Uuid @@ -1185,6 +1212,7 @@ type quote { evo_lessor_bank_detailsid: Uuid evo_loan_appraisalid: Uuid evo_logid: Uuid + evo_loss_kv: Decimal evo_max_mass: Decimal evo_max_price_change: Decimal evo_max_speed: Decimal @@ -1543,7 +1571,6 @@ type evo_request_payment { evo_finegibddidData: evo_finegibdd evo_id: String evo_inn: String - evo_insurance_addcontractid: Uuid evo_insurance_periodid: Uuid evo_insurance_policyid: Uuid evo_insurance_policyidData: evo_insurance_policy @@ -1603,6 +1630,7 @@ type evo_contract { evo_agent_reward: Decimal evo_agent_reward_conditionid: Uuid evo_agent_reward_summ: Decimal + evo_agent_reward_tech: Decimal evo_agent_service_list: [Int!] evo_approvallogs: [evo_approvallog] evo_balance_holder: Int @@ -1615,6 +1643,7 @@ type evo_contract { evo_broker_reward: Decimal evo_broker_reward_conditionid: Uuid evo_broker_reward_summ: Decimal + evo_broker_reward_tech: Decimal evo_broker_service_list: [Int!] evo_businessunitid: Uuid evo_calc_irr: Decimal @@ -1641,6 +1670,7 @@ type evo_contract { evo_dealer_broker_reward: Decimal evo_dealer_broker_reward_conditionid: Uuid evo_dealer_broker_reward_summ: Decimal + evo_dealer_broker_reward_tech: Decimal evo_dealer_broker_service_list: [Int!] evo_dealer_person_accountid: Uuid evo_dealer_person_accountidData: account @@ -1648,6 +1678,7 @@ type evo_contract { evo_dealer_person_reward: Decimal evo_dealer_person_reward_conditionid: Uuid evo_dealer_person_reward_summ: Decimal + evo_dealer_person_reward_tech: Decimal evo_dealer_person_service_list: [Int!] evo_debtwork_contractid: Uuid evo_debtwork_contractidData: evo_debtwork_contract @@ -1656,7 +1687,6 @@ type evo_contract { evo_debt_penalty_fee: Decimal evo_debt_total: Decimal evo_delay_days_count: Int - evo_delay_period: DateTime evo_director_bonus: Decimal evo_director_fingap_bonus: Decimal evo_director_nsib_bonus: Decimal @@ -1672,6 +1702,7 @@ type evo_contract { evo_double_agent_reward: Decimal evo_double_agent_reward_conditionid: Uuid evo_double_agent_reward_summ: Decimal + evo_double_agent_reward_tech: Decimal evo_double_agent_service_list: [Int!] evo_economic: Decimal evo_economic_actual: Decimal @@ -1691,6 +1722,7 @@ type evo_contract { evo_fin_department_reward: Decimal evo_fin_department_reward_conditionid: Uuid evo_fin_department_reward_summ: Decimal + evo_fin_department_reward_tech: Decimal evo_fin_department_service_list: [Int!] evo_first_payment_fact: Decimal evo_first_payment_fact_date: DateTime @@ -1732,7 +1764,6 @@ type evo_contract { evo_name: String evo_nds_in_price_supplier_currency: Decimal evo_nds_perc: Decimal - evo_nearest_payment_num: String evo_net_irr: Decimal evo_niatinception_msfo: Decimal evo_niatinception_msfo_actual: Decimal @@ -1760,7 +1791,6 @@ type evo_contract { evo_rate: Decimal evo_rateid: Uuid evo_reason_change_account: Int - evo_redemption_archive_date: DateTime evo_ref_opportunityid: Uuid evo_region_director_bonus: Decimal evo_region_director_fingap_bonus: Decimal @@ -2250,6 +2280,7 @@ type evo_addcontract { evo_add_region_director_bonus: Decimal evo_agent_reward: Decimal evo_agent_reward_summ: Decimal + evo_agent_reward_tech: Decimal evo_age_drivers: Int evo_age_drivers_new: Int evo_approv_business_analyst: Boolean @@ -2265,6 +2296,7 @@ type evo_addcontract { evo_base_new: String evo_broker_reward: Decimal evo_broker_reward_summ: Decimal + evo_broker_reward_tech: Decimal evo_businessunitid: Uuid evo_calculation_method: Int evo_calculator_type: Int @@ -2293,7 +2325,6 @@ type evo_addcontract { evo_date_addcontract: DateTime evo_date_calculation_done: DateTime evo_date_offset_change: Boolean - evo_date_offset_type: Int evo_deadline_date: DateTime evo_dealer_broker_accountid: Uuid evo_dealer_broker_accountid_new: Uuid @@ -2303,6 +2334,7 @@ type evo_addcontract { evo_dealer_broker_reward_new: Decimal evo_dealer_broker_reward_summ: Decimal evo_dealer_broker_reward_summ_new: Decimal + evo_dealer_broker_reward_tech: Decimal evo_dealer_person_accountid: Uuid evo_dealer_person_accountid_new: Uuid evo_dealer_person_reward: Decimal @@ -2311,9 +2343,9 @@ type evo_addcontract { evo_dealer_person_reward_new: Decimal evo_dealer_person_reward_summ: Decimal evo_dealer_person_reward_summ_new: Decimal + evo_dealer_person_reward_tech: Decimal evo_deviation_investments_withoutnds: Decimal evo_deviation_irr: Decimal - evo_deviation_irr_change: Boolean evo_dgo_price: Decimal evo_dgo_price_new: Decimal evo_director_bonus: Decimal @@ -2325,6 +2357,7 @@ type evo_addcontract { evo_dog_credit_new: Decimal evo_double_agent_reward: Decimal evo_double_agent_reward_summ: Decimal + evo_double_agent_reward_tech: Decimal evo_driving_axle: String evo_driving_axle_new: String evo_early_change_discount: Boolean @@ -2357,6 +2390,7 @@ type evo_addcontract { evo_fin_department_reward_new: Decimal evo_fin_department_reward_summ: Decimal evo_fin_department_reward_summ_new: Decimal + evo_fin_department_reward_tech: Decimal evo_fix_last_payment: Boolean evo_franchise: Decimal evo_franchise_new: Decimal @@ -2550,13 +2584,14 @@ type email { evo_accountid: Uuid modifiedon: DateTime regardingobjectid_account: Uuid - regardingobjectid_evo_addcontract: Uuid regardingobjectid_evo_contract: Uuid regardingobjectid_evo_insurance_period: Uuid regardingobjectid_evo_insurance_policy: Uuid regardingobjectid_evo_insurance_policyData: evo_insurance_policy regardingobjectid_evo_list: Uuid + regardingobjectid_incident: Uuid regardingobjectid_opportunity: Uuid + statecode: Int statuscode: Int subject: String templateid: Uuid @@ -2714,6 +2749,31 @@ type team { toObjectString: String } +type evo_edo { + createdon: DateTime + evo_accountid: Uuid + evo_accountidData: account + evo_activation_status: Int + evo_activation_statusname: String + evo_box_edoid: Uuid + evo_box_edoidData: evo_edo + evo_box_id: String + evo_box_name: String + evo_documentid: Uuid + evo_edoid: Uuid + evo_edo_status: Int + evo_edo_statusname: String + evo_edo_type: Int + evo_edo_typeename: String + evo_invite_crm_status: Int + evo_invite_crm_statusname: String + evo_name: String + evo_statuscodeid: Uuid + evo_statuscodeidData: evo_statuscode + modifiedon: DateTime + toObjectString: String +} + type evo_insurance_policy { createdon: DateTime evo_accountid: Uuid diff --git a/src/core/services/CrmService/types/entities.ts b/src/core/services/CrmService/types/entities.ts index 89a8b15..df372ed 100644 --- a/src/core/services/CrmService/types/entities.ts +++ b/src/core/services/CrmService/types/entities.ts @@ -402,6 +402,13 @@ export interface IEvoAddproductType extends BaseEntity { evo_gibdd_region?: boolean; evo_type_calc_cerebellum?: number; evo_addproduct_types?: IEvoAddproductType[]; + evo_evokasko_calc_type?: number; + evo_min_price?: number; + evo_max_price?: number; + evo_loss_kv?: number; + evo_min_first_payment_perc?: number; + evo_max_first_payment_perc?: number; + evo_models?: IEvoModel; } export interface IEvoTarif extends BaseEntity { diff --git a/src/core/types/Calculation/Store/values.ts b/src/core/types/Calculation/Store/values.ts index a330754..d9f967e 100644 --- a/src/core/types/Calculation/Store/values.ts +++ b/src/core/types/Calculation/Store/values.ts @@ -119,6 +119,7 @@ export type ValuesNames = | 'fuelCard' | 'minPriceChange' | 'vin' + | 'leasingWithoutKasko' | 'resultTotalGraphwithNDS' | 'resultPlPrice' | 'resultPriceUpPr'