fix: Согласно агентскому договору обязательна выплата АВ. Заложите АВ в расчет
This commit is contained in:
parent
88aa991f0f
commit
57614ecddc
@ -4,7 +4,7 @@ import { gql } from '@apollo/client';
|
||||
import dayjs from 'dayjs';
|
||||
import utc from 'dayjs/plugin/utc';
|
||||
import type * as CRMTypes from 'graphql/crm.types';
|
||||
import { reaction } from 'mobx';
|
||||
import { autorun, reaction } from 'mobx';
|
||||
import type RootStore from 'stores/root';
|
||||
import ValidationHelper from 'stores/validation/helper';
|
||||
import { normalizeOptions } from 'tools/entity';
|
||||
@ -230,18 +230,38 @@ 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);
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
autorun(() => {
|
||||
const rewardSumm = $calculation.element(rewardSummField).getValue();
|
||||
const rewardConditionOptions = $calculation.$options.getOptions(rewardConditionField);
|
||||
|
||||
const conditionIds = rewardConditionOptions.map((x) => x.value);
|
||||
const requests = conditionIds.map(async (conditionId) => {
|
||||
const {
|
||||
data: { evo_reward_condition },
|
||||
} = await apolloClient.query<
|
||||
CRMTypes.GetRewardConditionQuery,
|
||||
CRMTypes.GetRewardConditionQueryVariables
|
||||
>({
|
||||
query: QUERY_GET_REWARD_CONDITION,
|
||||
variables: {
|
||||
conditionId,
|
||||
},
|
||||
});
|
||||
|
||||
return evo_reward_condition;
|
||||
});
|
||||
|
||||
Promise.all(requests).then((results) => {
|
||||
const required_reward = results.some(
|
||||
(x) => x?.evo_agency_agreementidData?.evo_required_reward === true
|
||||
);
|
||||
$calculation.element(rewardSummField).validate({
|
||||
invalid: rewardSumm === 0 && required_reward,
|
||||
message: 'Согласно агентскому договору обязательна выплата АВ. Заложите АВ в расчет',
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -2,5 +2,5 @@ import type { Elements, ElementsTypes } from 'Components/Calculation/config/map/
|
||||
import type { BaseOption } from 'ui/elements/types';
|
||||
|
||||
export type CalculationOptions = {
|
||||
[ElementName in Elements]: BaseOption<ElementsTypes[ElementName]>[];
|
||||
[ElementName in Elements]: BaseOption<NonNullable<ElementsTypes[ElementName]>>[];
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user