fix build

This commit is contained in:
vchikalkin 2023-02-01 12:41:52 +03:00
parent 7b6d8d00b4
commit 6ffc830469
5 changed files with 45 additions and 34 deletions

View File

@ -135,6 +135,7 @@ const defaultStatuses: CalculationStatuses = {
tbxBonusCoefficient: 'Default',
btnCalculate: 'Default',
btnCreateKP: 'Default',
selectLeasingWithoutKasko: 'Default',
};
export default defaultStatuses;

View File

@ -45,7 +45,7 @@ export default async function getFingapDataFromKP({
const keys: Array<string> = [];
quote?.evo_product_risks?.forEach((x) => {
if (x.evo_addproduct_typeid) {
if (x?.evo_addproduct_typeid) {
keys.push(x.evo_addproduct_typeid);
}
});

View File

@ -56,7 +56,7 @@ export default async function getPaymentsDataFromKP({
let paymentsValues: Array<number> = [];
if (quote?.evo_graphs) {
paymentsValues =
sort(quote?.evo_graphs, (evo_graph) => Date.parse(evo_graph?.createdon))
sort(quote?.evo_graphs, (evo_graph) => Date.parse(evo_graph?.createdon ?? '0'))
.at(0)
?.evo_planpayments?.slice(1, -1)
.slice(0, leasingPeriod - 2)

View File

@ -1,5 +1,6 @@
/* eslint-disable implicit-arrow-linebreak */
import type { CalculationValues } from 'stores/calculation/values/types';
import type { Row } from 'stores/tables/payments/types';
import { SEASONS_PERIODS, SEASONS_PERIOD_NUMBER } from './seasons-constants';
type SeasonType = NonNullable<CalculationValues['seasonType']>;
@ -53,3 +54,19 @@ export function generateSeasonsPayments(leasingPeriod: LeasingPeriod, seasons: A
.concat(seasons.slice(0, (leasingPeriod - 2) % SEASONS_PERIOD_NUMBER))
);
}
export function generateSeasonPaymentsRows(
seasonType: number,
shiftNumber: number,
payments: number[]
) {
const shiftedPeriods = new Set(
SEASONS_PERIODS[seasonType].map((position) => (position + shiftNumber) % SEASONS_PERIOD_NUMBER)
);
const rows: Row[] = payments.map((value, i) => ({
value,
status: shiftedPeriods.has(i) ? 'Default' : 'Disabled',
}));
return rows;
}

View File

@ -12,6 +12,22 @@ import * as seasonsConstants from './lib/seasons-constants';
import * as seasonsTools from './lib/seasons-tools';
import validatePaymentsTable from './validation';
const {
generateSeasonPaymentsRows,
generateSeasons,
generateSeasonsPayments,
getPositionIndex,
getSeasonsValues,
} = seasonsTools;
const {
DEFAULT_SEASONS_VALUES,
FORBIDDEN_HIGH_SEASON_START,
SEASONS_PERIODS,
SEASONS_PERIOD_NUMBER,
SEASON_TYPES,
} = seasonsConstants;
export default function paymentsReactions({ store }: ReactionsContext) {
const { $calculation, $tables, $process } = store;
@ -222,7 +238,7 @@ export default function paymentsReactions({ store }: ReactionsContext) {
// }
// if (graphType === 100_000_001 || graphType === 100_000_003) {
// const allowedSeasonTypes = seasonsConstants.SEASON_TYPES[graphType];
// const allowedSeasonTypes = SEASON_TYPES[graphType];
// const selectSeasonTypeOptions = selectSeasonType.filter((option) =>
// allowedSeasonTypes.includes(option.value)
@ -422,27 +438,13 @@ export default function paymentsReactions({ store }: ReactionsContext) {
}
const highSeasonStartOptions = selectHighSeasonStart.filter(
(option) => !seasonsConstants.FORBIDDEN_HIGH_SEASON_START[seasonType].includes(option.label)
(option) => !FORBIDDEN_HIGH_SEASON_START[seasonType].includes(option.label)
);
$calculation.element('selectHighSeasonStart').setOptions(highSeasonStartOptions);
}
);
function generateSeasonPaymentsRows(seasonType: number, shiftNumber: number, payments: number[]) {
const shiftedPeriods = new Set(
seasonsConstants.SEASONS_PERIODS[seasonType].map(
(position) => (position + shiftNumber) % seasonsConstants.SEASONS_PERIOD_NUMBER
)
);
const rows: Row[] = payments.map((value, i) => ({
value,
status: shiftedPeriods.has(i) ? 'Default' : 'Disabled',
}));
return rows;
}
reaction(
() => {
const seasonType = $calculation.element('selectSeasonType').getValue();
@ -465,15 +467,9 @@ export default function paymentsReactions({ store }: ReactionsContext) {
return;
}
const seasons = seasonsTools.generateSeasons(
seasonType,
seasonsConstants.DEFAULT_SEASONS_VALUES
);
const seasons = generateSeasons(seasonType, DEFAULT_SEASONS_VALUES);
const shiftNumber = Number.parseInt(highSeasonStartOption.label, 10) - 2;
const payments = seasonsTools.generateSeasonsPayments(
leasingPeriod,
shift(seasons, shiftNumber)
);
const payments = generateSeasonsPayments(leasingPeriod, shift(seasons, shiftNumber));
const middlePayments: Row[] = generateSeasonPaymentsRows(seasonType, shiftNumber, payments);
const firstPaymentPerc = $calculation.element('tbxFirstPaymentPerc').getValue();
const lastPaymentPerc = $calculation.element('tbxLastPaymentPerc').getValue();
@ -503,7 +499,7 @@ export default function paymentsReactions({ store }: ReactionsContext) {
reaction(
() => {
const payments = toJS($tables.payments.values);
const seasons = payments.slice(1, seasonsConstants.SEASONS_PERIOD_NUMBER + 1);
const seasons = payments.slice(1, SEASONS_PERIOD_NUMBER + 1);
return seasons;
},
@ -523,17 +519,14 @@ export default function paymentsReactions({ store }: ReactionsContext) {
if (changes === null || changes.length > 1) return;
const [changeIndex] = changes;
const positionIndex = seasonsTools.getPositionIndex(seasonType, changeIndex);
const positionIndex = getPositionIndex(seasonType, changeIndex);
const values = seasonsTools.getSeasonsValues(seasonType, unshiftedNextSeasons);
const values = getSeasonsValues(seasonType, unshiftedNextSeasons);
values[positionIndex] = unshiftedNextSeasons[changeIndex];
const seasons = seasonsTools.generateSeasons(seasonType, values);
const seasons = generateSeasons(seasonType, values);
const leasingPeriod = $calculation.element('tbxLeasingPeriod').getValue();
const payments = seasonsTools.generateSeasonsPayments(
leasingPeriod,
shift(seasons, shiftNumber)
);
const payments = generateSeasonsPayments(leasingPeriod, shift(seasons, shiftNumber));
const rows: Row[] = generateSeasonPaymentsRows(seasonType, shiftNumber, payments);
const firstPaymentPerc = $calculation.element('tbxFirstPaymentPerc').getValue();
const lastPaymentPerc = $calculation.element('tbxLastPaymentPerc').getValue();