effects: with modal

This commit is contained in:
Владислав Чикалкин 2020-09-25 14:39:24 +03:00
parent 12f8e93fc2
commit 86817d4928
4 changed files with 240 additions and 72 deletions

View File

@ -3,7 +3,7 @@ const modalData = { modal: { isModalVisible: false, modalText: undefined } };
const modalActions = {
showModal(text) {
this.modal.modalText = text;
this.modal.isModalVisible = false;
this.modal.isModalVisible = true;
},
closeModal() {
this.modal.isModalVisible = false;

View File

@ -170,10 +170,15 @@ const reactionEffects: IReactionEffect[] = [
entityName: 'account',
where: { accountid: opportunity.evo_accountid },
}).then(accounts => {
calculationStore.setValue(
'clientRisk',
accounts[0].evo_client_riskid || null,
);
if (
accounts &&
accounts.length > 0 &&
accounts[0].evo_client_riskid
)
calculationStore.setValue(
'clientRisk',
accounts[0].evo_client_riskid || null,
);
});
}
}
@ -215,6 +220,75 @@ const reactionEffects: IReactionEffect[] = [
},
}),
calculationStore => ({
expression: () => {
const { channel } = calculationStore.values;
return channel;
},
effect: channel => {
switch (channel) {
case 100000000:
calculationStore.setStatus('selectSupplier', Status.Default);
calculationStore.setStatus('selectAgent', Status.Default);
calculationStore.setStatus('selectFinDepartment', Status.Disabled);
calculationStore.setValue('finDepartment', undefined);
calculationStore.setStatus('selectBroker', Status.Disabled);
calculationStore.setValue('broker', undefined);
break;
case 100000001:
calculationStore.setStatus('selectSupplier', Status.Default);
calculationStore.setStatus('selectAgent', Status.Default);
calculationStore.setStatus('selectFinDepartment', Status.Default);
calculationStore.setStatus('selectBroker', Status.Disabled);
calculationStore.setValue('broker', undefined);
break;
case 100000002:
calculationStore.setStatus('selectSupplier', Status.Disabled);
calculationStore.setValue('supplier', undefined);
calculationStore.setStatus('selectAgent', Status.Default);
calculationStore.setStatus('selectFinDepartment', Status.Disabled);
calculationStore.setValue('finDepartment', undefined);
calculationStore.setStatus('selectBroker', Status.Disabled);
calculationStore.setValue('broker', undefined);
break;
case 100000003:
calculationStore.setStatus('selectSupplier', Status.Disabled);
calculationStore.setValue('supplier', undefined);
calculationStore.setStatus('selectAgent', Status.Default);
calculationStore.setValue('agent', undefined);
calculationStore.setStatus('selectFinDepartment', Status.Disabled);
calculationStore.setValue('finDepartment', undefined);
calculationStore.setStatus('selectBroker', Status.Default);
break;
case 100000004:
default:
calculationStore.setStatus('selectSupplier', Status.Disabled);
calculationStore.setValue('supplier', undefined);
calculationStore.setStatus('selectAgent', Status.Disabled);
calculationStore.setValue('agent', undefined);
calculationStore.setStatus('selectFinDepartment', Status.Disabled);
calculationStore.setValue('finDepartment', undefined);
calculationStore.setStatus('selectBroker', Status.Disabled);
calculationStore.setValue('broker', undefined);
break;
}
},
}),
calculationStore => ({
expression: () => {
const { newClient } = calculationStore.values;
@ -566,69 +640,158 @@ const reactionEffects: IReactionEffect[] = [
calculationStore => ({
expression: () => {
const { channel } = calculationStore.values;
return channel;
const { indAgentRewardSumm } = calculationStore.values;
return indAgentRewardSumm;
},
effect: channel => {
switch (channel) {
case 100000000:
calculationStore.setStatus('selectSupplier', Status.Default);
calculationStore.setStatus('selectAgent', Status.Default);
effect: indAgentRewardSumm => {
const indAgentRewardConditionId =
calculationStore.values.indAgentRewardCondition;
if (indAgentRewardConditionId) {
const indAgentRewardCondition = calculationStore.options.selectIndAgentRewardCondition?.find(
x => x.evo_reward_conditionid === indAgentRewardConditionId,
);
if (indAgentRewardCondition) {
if (
!indAgentRewardCondition.evo_reduce_reward &&
indAgentRewardCondition.evo_reward_summ
) {
if (indAgentRewardSumm < indAgentRewardCondition.evo_reward_summ) {
calculationStore.showModal(
'Вознаграждение агента ФЛ указано меньше условия по агентскому договору! \nЗначение установлено по условию договора.',
);
}
}
if (indAgentRewardCondition.evo_reward_summ) {
if (indAgentRewardSumm > indAgentRewardCondition.evo_reward_summ) {
calculationStore.showModal(
'Вознаграждение агента ФЛ указано больше условия по агентскому договору! \nЗначение установлено по условию договора.',
);
}
}
}
}
},
}),
calculationStore.setStatus('selectFinDepartment', Status.Disabled);
calculationStore.setValue('finDepartment', undefined);
calculationStore => ({
expression: () => {
const { calcDoubleAgentRewardSumm } = calculationStore.values;
return calcDoubleAgentRewardSumm;
},
effect: calcDoubleAgentRewardSumm => {
const calcDoubleAgentRewardConditionId =
calculationStore.values.calcDoubleAgentRewardCondition;
if (calcDoubleAgentRewardConditionId) {
const selectCalcDoubleAgentRewardCondition = calculationStore.options.selectCalcDoubleAgentRewardCondition?.find(
x => x.evo_reward_conditionid === calcDoubleAgentRewardConditionId,
);
if (selectCalcDoubleAgentRewardCondition) {
if (
!selectCalcDoubleAgentRewardCondition.evo_reduce_reward &&
selectCalcDoubleAgentRewardCondition.evo_reward_summ
) {
if (
calcDoubleAgentRewardSumm <
selectCalcDoubleAgentRewardCondition.evo_reward_summ
) {
calculationStore.showModal(
'Вознаграждение двойного агента указано меньше условия по агентскому договору! \nЗначение установлено по условию договора.',
);
}
}
if (selectCalcDoubleAgentRewardCondition.evo_reward_summ) {
if (
calcDoubleAgentRewardSumm >
selectCalcDoubleAgentRewardCondition.evo_reward_summ
) {
calculationStore.showModal(
'Вознаграждение двойного агента указано больше условия по агентскому договору! \nЗначение установлено по условию договора.',
);
}
}
}
}
},
}),
calculationStore.setStatus('selectBroker', Status.Disabled);
calculationStore.setValue('broker', undefined);
break;
calculationStore => ({
expression: () => {
const { calcBrokerRewardSum } = calculationStore.values;
return calcBrokerRewardSum;
},
effect: calcBrokerRewardSum => {
const calcBrokerRewardConditionId =
calculationStore.values.calcBrokerRewardCondition;
if (calcBrokerRewardConditionId) {
const selectCalcBrokerRewardCondition = calculationStore.options.selectCalcBrokerRewardCondition?.find(
x => x.evo_reward_conditionid === calcBrokerRewardConditionId,
);
if (selectCalcBrokerRewardCondition) {
if (
!selectCalcBrokerRewardCondition.evo_reduce_reward &&
selectCalcBrokerRewardCondition.evo_reward_summ
) {
if (
calcBrokerRewardSum <
selectCalcBrokerRewardCondition.evo_reward_summ
) {
calculationStore.showModal(
'Вознаграждение брокера указано меньше условия по агентскому договору! \nЗначение установлено по условию договора.',
);
}
}
if (selectCalcBrokerRewardCondition.evo_reward_summ) {
if (
calcBrokerRewardSum >
selectCalcBrokerRewardCondition.evo_reward_summ
) {
calculationStore.showModal(
'Вознаграждение брокера указано больше условия по агентскому договору! \nЗначение установлено по условию договора.',
);
}
}
}
}
},
}),
case 100000001:
calculationStore.setStatus('selectSupplier', Status.Default);
calculationStore.setStatus('selectAgent', Status.Default);
calculationStore.setStatus('selectFinDepartment', Status.Default);
calculationStore.setStatus('selectBroker', Status.Disabled);
calculationStore.setValue('broker', undefined);
break;
case 100000002:
calculationStore.setStatus('selectSupplier', Status.Disabled);
calculationStore.setValue('supplier', undefined);
calculationStore.setStatus('selectAgent', Status.Default);
calculationStore.setStatus('selectFinDepartment', Status.Disabled);
calculationStore.setValue('finDepartment', undefined);
calculationStore.setStatus('selectBroker', Status.Disabled);
calculationStore.setValue('broker', undefined);
break;
case 100000003:
calculationStore.setStatus('selectSupplier', Status.Disabled);
calculationStore.setValue('supplier', undefined);
calculationStore.setStatus('selectAgent', Status.Default);
calculationStore.setValue('agent', undefined);
calculationStore.setStatus('selectFinDepartment', Status.Disabled);
calculationStore.setValue('finDepartment', undefined);
calculationStore.setStatus('selectBroker', Status.Default);
break;
case 100000004:
default:
calculationStore.setStatus('selectSupplier', Status.Disabled);
calculationStore.setValue('supplier', undefined);
calculationStore.setStatus('selectAgent', Status.Disabled);
calculationStore.setValue('agent', undefined);
calculationStore.setStatus('selectFinDepartment', Status.Disabled);
calculationStore.setValue('finDepartment', undefined);
calculationStore.setStatus('selectBroker', Status.Disabled);
calculationStore.setValue('broker', undefined);
break;
calculationStore => ({
expression: () => {
const { finDepartmentRewardSumm } = calculationStore.values;
return finDepartmentRewardSumm;
},
effect: finDepartmentRewardSumm => {
const finDepartmentRewardCondtionid =
calculationStore.values.finDepartmentRewardCondtion;
if (finDepartmentRewardCondtionid) {
const selectFinDepartmentRewardCondtion = calculationStore.options.selectFinDepartmentRewardCondtion?.find(
x => x.evo_reward_conditionid === finDepartmentRewardCondtionid,
);
if (selectFinDepartmentRewardCondtion) {
if (
!selectFinDepartmentRewardCondtion.evo_reduce_reward &&
selectFinDepartmentRewardCondtion.evo_reward_summ
) {
if (
finDepartmentRewardSumm <
selectFinDepartmentRewardCondtion.evo_reward_summ
) {
calculationStore.showModal(
'Вознаграждение финотдела указано меньше условия по агентскому договору! \nЗначение установлено по условию договора.',
);
}
}
if (selectFinDepartmentRewardCondtion.evo_reward_summ) {
if (
finDepartmentRewardSumm >
selectFinDepartmentRewardCondtion.evo_reward_summ
) {
calculationStore.showModal(
'Вознаграждение финотдела указано больше условия по агентскому договору! \nЗначение установлено по условию договора.',
);
}
}
}
}
},
}),

View File

@ -353,6 +353,7 @@ const entityFakeData: {
evo_reward_conditionid: REWARD_CONDITION_2_ID,
evo_name: 'Не более 2%',
evo_reward_summ: 2,
evo_reduce_reward: true,
},
{
statecode: 0,
@ -367,34 +368,37 @@ const entityFakeData: {
evo_reward_conditionid: REWARD_CONDITION_4_ID,
evo_name: 'Не более 10%',
evo_reward_summ: 10,
evo_reduce_reward: true,
},
{
statecode: 0,
evo_agent_accountid: ACCOUNT_5_ID,
evo_reward_conditionid: REWARD_CONDITION_5_ID,
evo_name: 'Не более 15%',
evo_reward_summ: 15,
evo_name: 'Не более 7%',
evo_reward_summ: 7,
},
{
statecode: 0,
evo_agent_accountid: ACCOUNT_5_ID,
evo_reward_conditionid: REWARD_CONDITION_6_ID,
evo_name: 'Не более 20%',
evo_reward_summ: 20,
evo_name: 'Не более 8%',
evo_reward_summ: 8,
evo_reduce_reward: true,
},
{
statecode: 0,
evo_agent_accountid: ACCOUNT_4_ID,
evo_reward_conditionid: REWARD_CONDITION_7_ID,
evo_name: 'Не более 30%',
evo_reward_summ: 30,
evo_name: 'Не более 3%',
evo_reward_summ: 3,
},
{
statecode: 0,
evo_agent_accountid: ACCOUNT_4_ID,
evo_reward_conditionid: REWARD_CONDITION_8_ID,
evo_name: 'Не более 40%',
evo_reward_summ: 40,
evo_name: 'Не более 4%',
evo_reward_summ: 4,
evo_reduce_reward: true,
},
],
};

View File

@ -91,6 +91,7 @@ export interface IEvoRewardCondition extends IBaseOption {
evo_double_agent_accountid?: string;
evo_reward_summ?: number;
statecode?: number;
evo_reduce_reward?: boolean;
}
export interface IEvoGPSBrand extends IBaseOption {