ObjectCategory x ObjectUseFor reaction
This commit is contained in:
parent
d3829fabe6
commit
3de8d1bb81
@ -1,5 +1,6 @@
|
||||
import eltReactions from './eltReactions';
|
||||
import gibddReactions from './gibddReactions';
|
||||
import insuranceReactions from './insuranceReactions';
|
||||
import loadKpReaction from './loadKpReaction';
|
||||
import otherReactions from './otherReactions';
|
||||
import priceReactions from './priceReactions';
|
||||
@ -17,5 +18,6 @@ export default [
|
||||
...recalcWoRevisionReactions,
|
||||
...gibddReactions,
|
||||
...eltReactions,
|
||||
...insuranceReactions,
|
||||
loadKpReaction,
|
||||
];
|
||||
|
||||
@ -0,0 +1,60 @@
|
||||
import { IReactionEffect } from 'core/types/Calculation/Store/effect';
|
||||
|
||||
const mapObjectCategoryToUseFor = {
|
||||
100000000: [100000000, 100000002],
|
||||
100000001: [
|
||||
100000000,
|
||||
100000001,
|
||||
100000002,
|
||||
100000003,
|
||||
100000004,
|
||||
100000005,
|
||||
100000006,
|
||||
100000007,
|
||||
100000008,
|
||||
100000009,
|
||||
100000010,
|
||||
100000011,
|
||||
100000012,
|
||||
100000013,
|
||||
],
|
||||
100000002: [100000002, 100000004, 100000005, 100000006, 100000009, 100000010],
|
||||
100000003: [
|
||||
100000002,
|
||||
100000004,
|
||||
100000006,
|
||||
100000007,
|
||||
100000008,
|
||||
100000011,
|
||||
100000012,
|
||||
100000013,
|
||||
],
|
||||
100000004: [100000002, 100000009],
|
||||
};
|
||||
|
||||
const insuranceReactions: IReactionEffect[] = [
|
||||
calculationStore => ({
|
||||
expression: () => {
|
||||
return calculationStore.getValue('leaseObjectCategory');
|
||||
},
|
||||
effect: leaseObjectCategory => {
|
||||
if (leaseObjectCategory) {
|
||||
const allowedObjectUseFor: number[] =
|
||||
mapObjectCategoryToUseFor[leaseObjectCategory];
|
||||
calculationStore.setFilter('selectLeaseObjectUseFor', options =>
|
||||
options.filter(
|
||||
option =>
|
||||
option.value &&
|
||||
typeof option.value === 'number' &&
|
||||
allowedObjectUseFor &&
|
||||
allowedObjectUseFor.includes(option.value),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
calculationStore.setFilter('selectLeaseObjectUseFor', undefined);
|
||||
}
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
export default insuranceReactions;
|
||||
@ -1,5 +1,6 @@
|
||||
import { TElements } from 'core/types/Calculation/Store/elements';
|
||||
import { IBaseOption } from 'core/types/Calculation/Store/options';
|
||||
import { orderBy } from 'lodash';
|
||||
|
||||
const initialOptions: TElements<IBaseOption[]> = {
|
||||
selectChannel: [
|
||||
@ -213,65 +214,69 @@ const initialOptions: TElements<IBaseOption[]> = {
|
||||
},
|
||||
],
|
||||
|
||||
selectLeaseObjectUseFor: [
|
||||
{
|
||||
name: 'Для представительских целей',
|
||||
value: 100000000,
|
||||
},
|
||||
{
|
||||
name: 'Для использования в качестве «такси»',
|
||||
value: 100000001,
|
||||
},
|
||||
{
|
||||
name: 'Для передачи третьим лицам (прокат; аренда)',
|
||||
value: 100000002,
|
||||
},
|
||||
{
|
||||
name: 'Каршеринг',
|
||||
value: 100000003,
|
||||
},
|
||||
{
|
||||
name: 'Тест-драйв',
|
||||
value: 100000004,
|
||||
},
|
||||
{
|
||||
name: 'Для доставки продуктов конечному потребителю',
|
||||
value: 100000005,
|
||||
},
|
||||
{
|
||||
name: 'Для обучения вождению',
|
||||
value: 100000006,
|
||||
},
|
||||
{
|
||||
name: 'Маршрутные такси / Рейсовые автобусы',
|
||||
value: 100000007,
|
||||
},
|
||||
{
|
||||
name: 'Междугородние перевозки',
|
||||
value: 100000008,
|
||||
},
|
||||
{
|
||||
name: 'Для перевозки крупногабаритных грузов',
|
||||
value: 100000009,
|
||||
},
|
||||
{
|
||||
name: 'Для перевозки малогабаритных грузов',
|
||||
value: 100000010,
|
||||
},
|
||||
{
|
||||
name: 'Для перевозки сотрудников других организаций (водитель ЛП)',
|
||||
value: 100000011,
|
||||
},
|
||||
{
|
||||
name: 'Для перевозки сотрудников ЛП',
|
||||
value: 100000012,
|
||||
},
|
||||
{
|
||||
name:
|
||||
'Для экскурсионных перевозок в т.ч. на торжества; трансфер в аэропорт и пр.',
|
||||
value: 100000013,
|
||||
},
|
||||
],
|
||||
selectLeaseObjectUseFor: orderBy(
|
||||
[
|
||||
{
|
||||
name: 'Для представительских целей',
|
||||
value: 100000000,
|
||||
},
|
||||
{
|
||||
name: 'Для использования в качестве «такси»',
|
||||
value: 100000001,
|
||||
},
|
||||
{
|
||||
name: 'Для передачи третьим лицам (прокат; аренда)',
|
||||
value: 100000002,
|
||||
},
|
||||
{
|
||||
name: 'Каршеринг',
|
||||
value: 100000003,
|
||||
},
|
||||
{
|
||||
name: 'Тест-драйв',
|
||||
value: 100000004,
|
||||
},
|
||||
{
|
||||
name: 'Для доставки продуктов конечному потребителю',
|
||||
value: 100000005,
|
||||
},
|
||||
{
|
||||
name: 'Для обучения вождению',
|
||||
value: 100000006,
|
||||
},
|
||||
{
|
||||
name: 'Маршрутные такси / Рейсовые автобусы',
|
||||
value: 100000007,
|
||||
},
|
||||
{
|
||||
name: 'Междугородние перевозки',
|
||||
value: 100000008,
|
||||
},
|
||||
{
|
||||
name: 'Для перевозки крупногабаритных грузов',
|
||||
value: 100000009,
|
||||
},
|
||||
{
|
||||
name: 'Для перевозки малогабаритных грузов',
|
||||
value: 100000010,
|
||||
},
|
||||
{
|
||||
name: 'Для перевозки сотрудников других организаций (водитель ЛП)',
|
||||
value: 100000011,
|
||||
},
|
||||
{
|
||||
name: 'Для перевозки сотрудников ЛП',
|
||||
value: 100000012,
|
||||
},
|
||||
{
|
||||
name:
|
||||
'Для экскурсионных перевозок в т.ч. на торжества; трансфер в аэропорт и пр.',
|
||||
value: 100000013,
|
||||
},
|
||||
],
|
||||
objectUseFor => objectUseFor.name.toLowerCase(),
|
||||
['asc'],
|
||||
),
|
||||
|
||||
radioInsuranceOPF: [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user