diff --git a/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts b/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts index 06687aa..67ded24 100644 --- a/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts +++ b/src/client/stores/CalculationStore/Effects/reactions/otherReactions.ts @@ -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), + ), ), );