3. Внести изменение в текущую реакцию (не нашла по таблице).

На изменение Типа ПЛ и в момент загрузки КП (но не при Пересчете без пересмотра)

Если Тип предмета лизинга leaseObjectType = Мотоцикл (evo_id=11),
то  RquirementTelematic = COMFORT: 100000002 И selectTracker - обнуляется И selectTelematics = evo_addproduct_type, у которого  evo_product_type = 100000004 и evo_controls_program = COMFORT 100 000 002 и evo_name содержит Delta

Если Тип предмета лизинга leaseObjectType = Прицеп (evo_id=8),
то в поле RquirementTelematic фильтруем список и оставляем значения START: 100000000 и START+: 100000001

иначе текущая логика
This commit is contained in:
vchikalkin 2023-11-29 17:34:22 +03:00
parent 8dc2e86b2d
commit 4a70a2c774

View File

@ -231,8 +231,18 @@ export default function reactions({ store, apolloClient }: ProcessContext) {
variables: { leaseObjectTypeId }, variables: { leaseObjectTypeId },
}); });
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') { if (evo_leasingobject_type?.evo_id === '11') {
$calculation.element('selectRequirementTelematic').setValue(100_000_000).block(); $calculation.element('selectRequirementTelematic').setValue(100_000_002).block();
} else { } else {
$calculation.element('selectRequirementTelematic').unblock(); $calculation.element('selectRequirementTelematic').unblock();
} }
@ -247,8 +257,13 @@ export default function reactions({ store, apolloClient }: ProcessContext) {
); );
reaction( reaction(
() => $calculation.$values.getValues(['requirementTelematic', 'recalcWithRevision']), () =>
async ({ requirementTelematic, recalcWithRevision }) => { $calculation.$values.getValues([
'requirementTelematic',
'recalcWithRevision',
'leaseObjectType',
]),
async ({ requirementTelematic, recalcWithRevision, leaseObjectType: leaseObjectTypeId }) => {
const currentDate = dayjs().utc(false).toISOString(); const currentDate = dayjs().utc(false).toISOString();
const { const {
data: { evo_addproduct_types: trackerTypes }, data: { evo_addproduct_types: trackerTypes },
@ -279,6 +294,24 @@ export default function reactions({ store, apolloClient }: ProcessContext) {
); );
} }
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')
);
}
}
$calculation.element('selectTracker').setOptions(normalizeOptions(filteredTrackerTypes)); $calculation.element('selectTracker').setOptions(normalizeOptions(filteredTrackerTypes));
$calculation.element('selectTelematic').setOptions(normalizeOptions(filteredTelematicTypes)); $calculation.element('selectTelematic').setOptions(normalizeOptions(filteredTelematicTypes));
}, },