process/agents: add rewardSumm validation :

* Если RewardSumm= 0 И в списке RewardCondition есть запись,
   *  у которой evo_reward_condition.evo_agency_agreementid. Обязательная выплата АВ (evo_required_reward) = True,
   *  то поле RewardSumm обводить красной рамкой
   * и выводить ошибку "Согласно Агентскому договору обязательна выплата АВ. Заложите АВ в расчет"
This commit is contained in:
Chika 2022-11-05 13:30:13 +03:00
parent 96ab658f93
commit 11e60367ab
4 changed files with 28 additions and 13 deletions

View File

@ -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'];

View File

@ -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);
});
}
);
}

View File

@ -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',

View File

@ -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',
});
}