добавили новое поле selectLeasingWithoutKasko

This commit is contained in:
vchikalkin 2023-01-18 17:15:17 +03:00
parent d6db50a582
commit 8a6a537590
9 changed files with 152 additions and 139 deletions

View File

@ -9,4 +9,5 @@ export const rows: FormTabRows = [
[['selectLeaseObjectCategory', 'tbxMileage', 'tbxINNForCalc']],
[['tbxLeaseObjectMotorPower', 'cbxWithTrailer', 'selectGPSBrand']],
[['tbxEngineVolume', 'cbxInsDecentral', 'selectGPSModel']],
[['selectLeasingWithoutKasko', 'selectInsNSIB']],
];

View File

@ -0,0 +1,4 @@
export { default as buildAction } from './build-action';
export { default as buildOptions } from './build-options';
export { default as buildReadonly } from './build-readonly';
export { default as buildValue } from './build-value';

View File

@ -1,7 +1,4 @@
import buildAction from '../builders/build-action';
import buildOptions from '../builders/build-options';
import buildReadonly from '../builders/build-readonly';
import buildValue from '../builders/build-value';
import { buildAction, buildOptions, buildReadonly, buildValue } from '../builders';
import type { Elements as ActionElements } from './map/actions';
import type { Elements as ValuesElements } from './map/values';
@ -133,6 +130,7 @@ const builders = wrapElementsBuilders({
radioObjectRegistration: buildOptions,
radioTypePTS: buildOptions,
tbxBonusCoefficient: buildValue,
selectLeasingWithoutKasko: buildOptions,
labelLeaseObjectRisk: buildReadonly,
tbxInsKaskoPriceLeasePeriod: buildReadonly,

View File

@ -1,5 +1,5 @@
import type { ComponentProps } from 'react';
import * as elements from 'ui/elements';
import * as e from 'ui/elements';
import type { Elements as ActionElements } from './map/actions';
import type { Elements as ValuesElements } from './map/values';
@ -8,146 +8,147 @@ function wrapComponentsMap<C, T extends Record<ValuesElements | ActionElements,
}
const components = wrapComponentsMap({
selectProduct: elements.Select,
selectClientRisk: elements.Select,
selectClientType: elements.Select,
selectSupplierCurrency: elements.Select,
tbxLeaseObjectPrice: elements.InputNumber,
tbxLeaseObjectPriceWthtVAT: elements.InputNumber,
tbxVATInLeaseObjectPrice: elements.InputNumber,
tbxSupplierDiscountRub: elements.InputNumber,
tbxSupplierDiscountPerc: elements.InputNumber,
radioBalanceHolder: elements.Radio,
tbxSaleBonus: elements.InputNumber,
tbxFirstPaymentPerc: elements.InputNumber,
tbxFirstPaymentRub: elements.InputNumber,
radioLastPaymentRule: elements.Segmented,
tbxLastPaymentPerc: elements.InputNumber,
tbxLastPaymentRub: elements.InputNumber,
selectImportProgram: elements.Select,
tbxImportProgramSum: elements.InputNumber,
tbxAddEquipmentPrice: elements.InputNumber,
tbxRedemptionPaymentSum: elements.InputNumber,
tbxLeasingPeriod: elements.InputNumber,
radioGraphType: elements.Radio,
tbxParmentsDecreasePercent: elements.InputNumber,
selectSeasonType: elements.Select,
selectHighSeasonStart: elements.Select,
tbxComissionPerc: elements.InputNumber,
tbxComissionRub: elements.InputNumber,
selectLeaseObjectType: elements.Select,
selectBrand: elements.Select,
selectModel: elements.Select,
selectConfiguration: elements.Select,
cbxLeaseObjectUsed: elements.Checkbox,
radioDeliveryTime: elements.Segmented,
tbxLeaseObjectCount: elements.InputNumber,
selectLeaseObjectUseFor: elements.Select,
tbxLeaseObjectYear: elements.InputNumber,
selectLeaseObjectCategory: elements.Select,
selectEngineType: elements.Select,
tbxLeaseObjectMotorPower: elements.InputNumber,
tbxEngineVolume: elements.InputNumber,
tbxMaxMass: elements.InputNumber,
tbxCountSeats: elements.InputNumber,
tbxMaxSpeed: elements.InputNumber,
cbxWithTrailer: elements.Checkbox,
selectDealer: elements.Select,
selectDealerPerson: elements.Select,
selectDealerRewardCondition: elements.Select,
tbxDealerRewardSumm: elements.InputNumber,
selectDealerBroker: elements.Select,
selectDealerBrokerRewardCondition: elements.Select,
tbxDealerBrokerRewardSumm: elements.InputNumber,
selectIndAgent: elements.Select,
selectIndAgentRewardCondition: elements.Select,
tbxIndAgentRewardSumm: elements.InputNumber,
selectCalcDoubleAgent: elements.Select,
selectCalcDoubleAgentRewardCondition: elements.Select,
tbxCalcDoubleAgentRewardSumm: elements.InputNumber,
selectCalcBroker: elements.Select,
selectCalcBrokerRewardCondition: elements.Select,
tbxCalcBrokerRewardSum: elements.InputNumber,
selectCalcFinDepartment: elements.Select,
selectFinDepartmentRewardCondtion: elements.Select,
tbxFinDepartmentRewardSumm: elements.InputNumber,
cbxInsDecentral: elements.Switch,
radioInsKaskoType: elements.Radio,
tbxInsFranchise: elements.InputNumber,
cbxInsUnlimitDrivers: elements.Switch,
tbxInsAgeDrivers: elements.InputNumber,
tbxInsExpDrivers: elements.InputNumber,
tbxINNForCalc: elements.InputNumber,
selectGPSBrand: elements.Select,
selectGPSModel: elements.Select,
selectRegionRegistration: elements.Select,
selectTownRegistration: elements.Select,
radioInfuranceOPF: elements.Radio,
selectRegistration: elements.Select,
selectInsNSIB: elements.Select,
selectRequirementTelematic: elements.Select,
selectTracker: elements.Select,
selectTelematic: elements.Select,
selectTechnicalCard: elements.Select,
cbxLastPaymentRedemption: elements.Switch,
cbxPriceWithDiscount: elements.Switch,
cbxFullPriceWithDiscount: elements.Switch,
cbxCostIncrease: elements.Switch,
cbxInsurance: elements.Switch,
cbxRegistrationQuote: elements.Switch,
cbxTechnicalCardQuote: elements.Switch,
cbxNSIB: elements.Switch,
cbxQuoteRedemptionGraph: elements.Switch,
cbxShowFinGAP: elements.Switch,
tbxQuoteName: elements.Input,
radioQuoteContactGender: elements.Radio,
cbxDisableChecks: elements.Switch,
selectTarif: elements.Select,
tbxCreditRate: elements.InputNumber,
selectRate: elements.Select,
tbxMaxPriceChange: elements.InputNumber,
tbxImporterRewardPerc: elements.InputNumber,
tbxImporterRewardRub: elements.InputNumber,
selectLead: elements.Select,
selectOpportunity: elements.Select,
selectQuote: elements.Select,
cbxRecalcWithRevision: elements.Checkbox,
tbxIRR_Perc: elements.InputNumber,
tbxMileage: elements.InputNumber,
tbxEngineHours: elements.InputNumber,
radioCalcType: elements.Segmented,
tbxTotalPayments: elements.InputNumber,
radioObjectRegistration: elements.Radio,
selectObjectRegionRegistration: elements.Select,
tbxVehicleTaxInYear: elements.InputNumber,
tbxVehicleTaxInLeasingPeriod: elements.InputNumber,
selectObjectCategoryTax: elements.Select,
selectObjectTypeTax: elements.Select,
radioTypePTS: elements.Radio,
selectLegalClientRegion: elements.Select,
selectLegalClientTown: elements.Select,
selectSubsidy: elements.Select,
selectFuelCard: elements.Select,
tbxMinPriceChange: elements.InputNumber,
tbxBonusCoefficient: elements.InputNumber,
selectProduct: e.Select,
selectClientRisk: e.Select,
selectClientType: e.Select,
selectSupplierCurrency: e.Select,
tbxLeaseObjectPrice: e.InputNumber,
tbxLeaseObjectPriceWthtVAT: e.InputNumber,
tbxVATInLeaseObjectPrice: e.InputNumber,
tbxSupplierDiscountRub: e.InputNumber,
tbxSupplierDiscountPerc: e.InputNumber,
radioBalanceHolder: e.Radio,
tbxSaleBonus: e.InputNumber,
tbxFirstPaymentPerc: e.InputNumber,
tbxFirstPaymentRub: e.InputNumber,
radioLastPaymentRule: e.Segmented,
tbxLastPaymentPerc: e.InputNumber,
tbxLastPaymentRub: e.InputNumber,
selectImportProgram: e.Select,
tbxImportProgramSum: e.InputNumber,
tbxAddEquipmentPrice: e.InputNumber,
tbxRedemptionPaymentSum: e.InputNumber,
tbxLeasingPeriod: e.InputNumber,
radioGraphType: e.Radio,
tbxParmentsDecreasePercent: e.InputNumber,
selectSeasonType: e.Select,
selectHighSeasonStart: e.Select,
tbxComissionPerc: e.InputNumber,
tbxComissionRub: e.InputNumber,
selectLeaseObjectType: e.Select,
selectBrand: e.Select,
selectModel: e.Select,
selectConfiguration: e.Select,
cbxLeaseObjectUsed: e.Checkbox,
radioDeliveryTime: e.Segmented,
tbxLeaseObjectCount: e.InputNumber,
selectLeaseObjectUseFor: e.Select,
tbxLeaseObjectYear: e.InputNumber,
selectLeaseObjectCategory: e.Select,
selectEngineType: e.Select,
tbxLeaseObjectMotorPower: e.InputNumber,
tbxEngineVolume: e.InputNumber,
tbxMaxMass: e.InputNumber,
tbxCountSeats: e.InputNumber,
tbxMaxSpeed: e.InputNumber,
cbxWithTrailer: e.Checkbox,
selectDealer: e.Select,
selectDealerPerson: e.Select,
selectDealerRewardCondition: e.Select,
tbxDealerRewardSumm: e.InputNumber,
selectDealerBroker: e.Select,
selectDealerBrokerRewardCondition: e.Select,
tbxDealerBrokerRewardSumm: e.InputNumber,
selectIndAgent: e.Select,
selectIndAgentRewardCondition: e.Select,
tbxIndAgentRewardSumm: e.InputNumber,
selectCalcDoubleAgent: e.Select,
selectCalcDoubleAgentRewardCondition: e.Select,
tbxCalcDoubleAgentRewardSumm: e.InputNumber,
selectCalcBroker: e.Select,
selectCalcBrokerRewardCondition: e.Select,
tbxCalcBrokerRewardSum: e.InputNumber,
selectCalcFinDepartment: e.Select,
selectFinDepartmentRewardCondtion: e.Select,
tbxFinDepartmentRewardSumm: e.InputNumber,
cbxInsDecentral: e.Switch,
radioInsKaskoType: e.Radio,
tbxInsFranchise: e.InputNumber,
cbxInsUnlimitDrivers: e.Switch,
tbxInsAgeDrivers: e.InputNumber,
tbxInsExpDrivers: e.InputNumber,
tbxINNForCalc: e.InputNumber,
selectGPSBrand: e.Select,
selectGPSModel: e.Select,
selectRegionRegistration: e.Select,
selectTownRegistration: e.Select,
radioInfuranceOPF: e.Radio,
selectRegistration: e.Select,
selectInsNSIB: e.Select,
selectRequirementTelematic: e.Select,
selectTracker: e.Select,
selectTelematic: e.Select,
selectTechnicalCard: e.Select,
cbxLastPaymentRedemption: e.Switch,
cbxPriceWithDiscount: e.Switch,
cbxFullPriceWithDiscount: e.Switch,
cbxCostIncrease: e.Switch,
cbxInsurance: e.Switch,
cbxRegistrationQuote: e.Switch,
cbxTechnicalCardQuote: e.Switch,
cbxNSIB: e.Switch,
cbxQuoteRedemptionGraph: e.Switch,
cbxShowFinGAP: e.Switch,
tbxQuoteName: e.Input,
radioQuoteContactGender: e.Radio,
cbxDisableChecks: e.Switch,
selectTarif: e.Select,
tbxCreditRate: e.InputNumber,
selectRate: e.Select,
tbxMaxPriceChange: e.InputNumber,
tbxImporterRewardPerc: e.InputNumber,
tbxImporterRewardRub: e.InputNumber,
selectLead: e.Select,
selectOpportunity: e.Select,
selectQuote: e.Select,
cbxRecalcWithRevision: e.Checkbox,
tbxIRR_Perc: e.InputNumber,
tbxMileage: e.InputNumber,
tbxEngineHours: e.InputNumber,
radioCalcType: e.Segmented,
tbxTotalPayments: e.InputNumber,
radioObjectRegistration: e.Radio,
selectObjectRegionRegistration: e.Select,
tbxVehicleTaxInYear: e.InputNumber,
tbxVehicleTaxInLeasingPeriod: e.InputNumber,
selectObjectCategoryTax: e.Select,
selectObjectTypeTax: e.Select,
radioTypePTS: e.Radio,
selectLegalClientRegion: e.Select,
selectLegalClientTown: e.Select,
selectSubsidy: e.Select,
selectFuelCard: e.Select,
tbxMinPriceChange: e.InputNumber,
tbxBonusCoefficient: e.InputNumber,
selectLeasingWithoutKasko: e.Select,
/** Readonly Elements */
labelLeaseObjectRisk: elements.Text,
tbxInsKaskoPriceLeasePeriod: elements.InputNumber,
labelIrrInfo: elements.Text,
labelRegistrationDescription: elements.Text,
labelDepreciationGroup: elements.Text,
tbxSubsidySum: elements.InputNumber,
labelLeaseObjectRisk: e.Text,
tbxInsKaskoPriceLeasePeriod: e.InputNumber,
labelIrrInfo: e.Text,
labelRegistrationDescription: e.Text,
labelDepreciationGroup: e.Text,
tbxSubsidySum: e.InputNumber,
/** Button Elements */
btnCreateKP: elements.Button,
btnCalculate: elements.Button,
btnCreateKP: e.Button,
btnCalculate: e.Button,
/** Link Elements */
linkDownloadKp: elements.Link,
linkLeadUrl: elements.Link,
linkOpportunityUrl: elements.Link,
linkQuoteUrl: elements.Link,
linkDownloadKp: e.Link,
linkLeadUrl: e.Link,
linkOpportunityUrl: e.Link,
linkQuoteUrl: e.Link,
});
export default components;

View File

@ -124,6 +124,7 @@ const titles: Record<ValuesElements | ActionElements, string> = {
tbxLeaseObjectPriceWthtVAT: 'Стоимость ПЛ без НДС',
tbxVATInLeaseObjectPrice: 'НДС в стоимости ПЛ',
tbxBonusCoefficient: 'Коэффициент снижения бонуса',
selectLeasingWithoutKasko: 'Лизинг без КАСКО',
/** Link Elements */
linkDownloadKp: '',

View File

@ -135,6 +135,7 @@ const elementsToValues = wrapElementsMap({
labelIrrInfo: 'irrInfo',
labelRegistrationDescription: 'registrationDescription',
labelDepreciationGroup: 'depreciationGroup',
selectLeasingWithoutKasko: 'leasingWithoutKasko',
/** Link Elements */
linkDownloadKp: 'kpUrl',

View File

@ -137,6 +137,7 @@ const defaultValues: CalculationValues = {
bonusCoefficient: 1,
plPriceRub: 0,
discountRub: 0,
leasingWithoutKasko: null,
};
export default defaultValues;

View File

@ -123,6 +123,7 @@ const ValuesSchema = z.object({
VATInLeaseObjectPrice: z.number(),
engineHours: z.number(),
bonusCoefficient: z.number(),
leasingWithoutKasko: z.string().nullable(),
/** Link Values */
kpUrl: z.string().nullable(),

View File

@ -182,12 +182,17 @@ function getMainData(query, onCompleted) {
(x) => x?.evo_product_type === 100_000_002
);
const selectLeasingWithoutKasko = data.evo_addproduct_types?.filter(
(x) => x?.evo_product_type === 100_000_007
);
onCompleted({
selectRegistration,
selectTechnicalCard,
selectTelematic,
selectTracker,
selectInsNSIB,
selectLeasingWithoutKasko,
});
});
}