merge branch release/dyn-1068_filter-types-leasing

This commit is contained in:
vchikalkin 2022-04-12 13:50:11 +03:00
parent 24c5514dee
commit 90be89dd50

View File

@ -1562,18 +1562,52 @@ const reactionEffects: IReactionEffect[] = [
},
}),
/**
*
* @description
#1
* DYN-190 При выборе значения в поле selectSubsidy необходимо добавить
* фильтрацию в полях при условии что selectSubsidy не равно null:
Тип предмета лизинга selectLeaseObjectType
если с записью Субсидия нет связанных Типов предмета лизинга,
то указываются все записи согласно текущей фильтрации,
иначе указываются те записи, которые связаны с Субсидией, указанной в поле selectSubsidy
#2
* На изменение поля Продукт selectProduct добавляем фильтрацию списков:
в поле Тип предмета лизинга selectLeaseObjectType - указываются те, которые связаны с продуктом.
Если с Продуктом нет связанных Типов предмета лизинга,
то указывается весь список. Это надо добавить в текущие условия фильтрации данного поля
*/
calculationStore => ({
expression: () => {
return calculationStore.getOption('selectSubsidy');
return {
product: calculationStore.getOption('selectProduct'),
subsidy: calculationStore.getOption('selectSubsidy'),
};
},
effect: subsidy => {
effect: ({ product, subsidy }) => {
calculationStore.setFilter('selectLeaseObjectType', types =>
types.filter(
type =>
!subsidy?.evo_leasingobject_types?.length ||
subsidy.evo_leasingobject_types.filter(
x => x.evo_leasingobject_typeid === type.evo_leasingobject_typeid,
)?.length,
pipe(
type =>
(!product?.evo_leasingobject_types?.length ||
product.evo_leasingobject_types.filter(
x =>
x.evo_leasingobject_typeid ===
type?.evo_leasingobject_typeid,
)?.length) &&
type,
type =>
type &&
(!subsidy?.evo_leasingobject_types?.length ||
subsidy.evo_leasingobject_types.filter(
x =>
x.evo_leasingobject_typeid ===
type.evo_leasingobject_typeid,
)?.length),
),
),
);