diff --git a/graphql/crm.types.ts b/graphql/crm.types.ts index f16f6c7..6e5c1ec 100644 --- a/graphql/crm.types.ts +++ b/graphql/crm.types.ts @@ -272,7 +272,7 @@ export type GetRewardConditionQueryVariables = Exact<{ }>; -export type GetRewardConditionQuery = { __typename?: 'Query', evo_reward_condition: { __typename?: 'evo_reward_condition', evo_reward_summ: number | null, evo_reduce_reward: boolean | null, evo_min_reward_summ: number | null } | null }; +export type GetRewardConditionQuery = { __typename?: 'Query', evo_reward_condition: { __typename?: 'evo_reward_condition', evo_reward_summ: number | null, evo_reduce_reward: boolean | null, evo_min_reward_summ: number | null, evo_agency_agreementidData: { __typename?: 'evo_agency_agreement', evo_required_reward: boolean | null } | null } | null }; export type GetAgentAccountIdFromLeadQueryVariables = Exact<{ leadid: Scalars['Uuid']; diff --git a/process/supplier-agent/lib/create-reactions.ts b/process/supplier-agent/lib/create-reactions.ts index ad91e31..281676b 100644 --- a/process/supplier-agent/lib/create-reactions.ts +++ b/process/supplier-agent/lib/create-reactions.ts @@ -140,6 +140,9 @@ const QUERY_GET_REWARD_CONDITION = gql` evo_reward_summ evo_reduce_reward evo_min_reward_summ + evo_agency_agreementidData { + evo_required_reward + } } } `; @@ -158,7 +161,7 @@ export function validateAgentRewardSumm( const validationHelper = new ValidationHelper(); reaction( - () => $calculation.element(rewardSummField).getValue() as number, + () => $calculation.element(rewardSummField).getValue(), async (rewardSumm) => { const conditionId = $calculation.element(rewardConditionField).getValue(); if (!conditionId) { @@ -225,6 +228,18 @@ export function validateAgentRewardSumm( validationHelper.add(removeError); }); } + + $calculation + .element(rewardSummField) + .validate({ + invalid: + evo_reward_condition?.evo_agency_agreementidData?.evo_required_reward === true && + rewardSumm === 0, + message: 'Согласно агентскому договору обязательна выплата АВ. Заложите АВ в расчет', + }) + .err((removeError) => { + validationHelper.add(removeError); + }); } ); } diff --git a/process/supplier-agent/reactions/agents.ts b/process/supplier-agent/reactions/agents.ts index 9f01283..b000f47 100644 --- a/process/supplier-agent/reactions/agents.ts +++ b/process/supplier-agent/reactions/agents.ts @@ -480,16 +480,6 @@ export function commonReactions({ store, apolloClient }: ReactionsContext) { } export function validationReactions({ store, apolloClient }: ReactionsContext) { - createReactions.validateAgentRewardSumm(store, apolloClient, { - rewardConditionField: 'selectDealerRewardCondition', - rewardSummField: 'tbxDealerRewardSumm', - }); - - createReactions.validateAgentRewardSumm(store, apolloClient, { - rewardConditionField: 'selectDealerBrokerRewardCondition', - rewardSummField: 'tbxDealerBrokerRewardSumm', - }); - createReactions.validateAgentRewardSumm(store, apolloClient, { rewardConditionField: 'selectIndAgentRewardCondition', rewardSummField: 'tbxIndAgentRewardSumm', diff --git a/process/supplier-agent/reactions/supplier.ts b/process/supplier-agent/reactions/supplier.ts index d541688..435cadb 100644 --- a/process/supplier-agent/reactions/supplier.ts +++ b/process/supplier-agent/reactions/supplier.ts @@ -172,4 +172,14 @@ export function commonReactions({ store, apolloClient }: ReactionsContext) { ); } -export function validationReactions({ store, apolloClient }: ReactionsContext) {} +export function validationReactions({ store, apolloClient }: ReactionsContext) { + createReactions.validateAgentRewardSumm(store, apolloClient, { + rewardConditionField: 'selectDealerRewardCondition', + rewardSummField: 'tbxDealerRewardSumm', + }); + + createReactions.validateAgentRewardSumm(store, apolloClient, { + rewardConditionField: 'selectDealerBrokerRewardCondition', + rewardSummField: 'tbxDealerBrokerRewardSumm', + }); +}