Compare commits

...

2 Commits

Author SHA1 Message Date
vchikalkin
267c669975 process/add-product: fixes 2024-02-07 13:57:10 +03:00
Ольга Барыкина
5291e9ff2e dyn-3965 2024-02-06 16:45:43 +03:00

View File

@ -1,3 +1,4 @@
/* eslint-disable sonarjs/cognitive-complexity */
import { createValidationReaction } from '../tools';
import type { ProcessContext } from '../types';
import { createValidationSchema } from './validation';
@ -212,8 +213,8 @@ export default function reactions({ store, apolloClient }: ProcessContext) {
);
reaction(
() => $calculation.$values.getValues(['recalcWithRevision', 'leaseObjectType']),
async ({ recalcWithRevision, leaseObjectType: leaseObjectTypeId }) => {
() => $calculation.$values.getValues(['recalcWithRevision', 'leaseObjectType', 'engineType']),
async ({ recalcWithRevision, leaseObjectType: leaseObjectTypeId, engineType }) => {
if (recalcWithRevision === false) {
$calculation
.element('selectRequirementTelematic')
@ -223,28 +224,34 @@ export default function reactions({ store, apolloClient }: ProcessContext) {
)
);
if (leaseObjectTypeId) {
const {
data: { evo_leasingobject_type },
} = await apolloClient.query({
query: CRMTypes.GetLeaseObjectTypeDocument,
variables: { leaseObjectTypeId },
});
if (engineType === 100_000_003) {
$calculation.element('selectRequirementTelematic').setValue(100_000_003).block();
} else {
$calculation.element('selectRequirementTelematic').unblock();
if (evo_leasingobject_type?.evo_id === '8') {
$calculation
.element('selectRequirementTelematic')
.setOptions(
selectRequirementTelematic.filter((x) =>
[100_000_000, 100_000_001].includes(x.value)
)
);
}
if (leaseObjectTypeId) {
const {
data: { evo_leasingobject_type },
} = await apolloClient.query({
query: CRMTypes.GetLeaseObjectTypeDocument,
variables: { leaseObjectTypeId },
});
if (evo_leasingobject_type?.evo_id === '11') {
$calculation.element('selectRequirementTelematic').setValue(100_000_002).block();
} else {
$calculation.element('selectRequirementTelematic').unblock();
if (evo_leasingobject_type?.evo_id === '8') {
$calculation
.element('selectRequirementTelematic')
.setOptions(
selectRequirementTelematic.filter((x) =>
[100_000_000, 100_000_001].includes(x.value)
)
);
}
if (evo_leasingobject_type?.evo_id === '11') {
$calculation.element('selectRequirementTelematic').setValue(100_000_002).block();
} else {
$calculation.element('selectRequirementTelematic').unblock();
}
}
}
} else {
@ -262,8 +269,14 @@ export default function reactions({ store, apolloClient }: ProcessContext) {
'requirementTelematic',
'recalcWithRevision',
'leaseObjectType',
'engineType',
]),
async ({ requirementTelematic, recalcWithRevision, leaseObjectType: leaseObjectTypeId }) => {
async ({
requirementTelematic,
recalcWithRevision,
leaseObjectType: leaseObjectTypeId,
engineType,
}) => {
const currentDate = dayjs().utc(false).toISOString();
const {
data: { evo_addproduct_types: trackerTypes },
@ -294,21 +307,36 @@ export default function reactions({ store, apolloClient }: ProcessContext) {
);
}
if (leaseObjectTypeId) {
const {
data: { evo_leasingobject_type },
} = await apolloClient.query({
query: CRMTypes.GetLeaseObjectTypeDocument,
variables: { leaseObjectTypeId },
});
if (engineType === 100_000_003) {
filteredTelematicTypes = telematicTypes?.filter(
(x) =>
x?.evo_controls_program?.includes(100_000_003) &&
x.label?.toLowerCase().includes('аво') &&
!x.label?.toLowerCase().includes('pro')
);
if (evo_leasingobject_type?.evo_id === '11') {
filteredTelematicTypes = telematicTypes?.filter(
(x) =>
x?.evo_controls_program?.includes(100_000_002) &&
x.label?.toLowerCase().includes('delta') &&
!x.label?.toLowerCase().includes('pro')
);
$calculation.element('selectTracker').resetValue().block();
$calculation.element('selectTelematic').block();
} else {
$calculation.element('selectTracker').unblock();
$calculation.element('selectTelematic').unblock();
if (leaseObjectTypeId) {
const {
data: { evo_leasingobject_type },
} = await apolloClient.query({
query: CRMTypes.GetLeaseObjectTypeDocument,
variables: { leaseObjectTypeId },
});
if (evo_leasingobject_type?.evo_id === '11') {
filteredTelematicTypes = telematicTypes?.filter(
(x) =>
x?.evo_controls_program?.includes(100_000_002) &&
x.label?.toLowerCase().includes('delta') &&
!x.label?.toLowerCase().includes('pro')
);
}
}
}