Merge branch 'development'

This commit is contained in:
Chika 2022-09-12 14:51:35 +03:00
commit 17718c60b0
15 changed files with 1479 additions and 469 deletions

View File

@ -178,42 +178,42 @@ const elementsProps: Partial<Record<AllElementsNames, ElementProps>> = {
}, },
tbxDealerRewardSumm: { tbxDealerRewardSumm: {
min: '0.00', min: '0.00',
max: '20.00', max: '999999.00',
step: '0.10', step: '0.10',
precision: 2, precision: 2,
formatter: formatNumber, formatter: formatNumber,
}, },
tbxDealerBrokerRewardSumm: { tbxDealerBrokerRewardSumm: {
min: '0.00', min: '0.00',
max: '20.00', max: '999999.00',
step: '0.10', step: '0.10',
precision: 2, precision: 2,
formatter: formatNumber, formatter: formatNumber,
}, },
tbxIndAgentRewardSumm: { tbxIndAgentRewardSumm: {
min: '0.00', min: '0.00',
max: '20.00', max: '999999.00',
step: '0.10', step: '0.10',
precision: 2, precision: 2,
formatter: formatNumber, formatter: formatNumber,
}, },
tbxCalcDoubleAgentRewardSumm: { tbxCalcDoubleAgentRewardSumm: {
min: '0.00', min: '0.00',
max: '20.00', max: '999999.00',
step: '0.10', step: '0.10',
precision: 2, precision: 2,
formatter: formatNumber, formatter: formatNumber,
}, },
tbxCalcBrokerRewardSum: { tbxCalcBrokerRewardSum: {
min: '0.00', min: '0.00',
max: '20.00', max: '999999.00',
step: '0.10', step: '0.10',
precision: 2, precision: 2,
formatter: formatNumber, formatter: formatNumber,
}, },
tbxFinDepartmentRewardSumm: { tbxFinDepartmentRewardSumm: {
min: '0.00', min: '0.00',
max: '20.00', max: '999999.00',
step: '0.10', step: '0.10',
precision: 2, precision: 2,
formatter: formatNumber, formatter: formatNumber,

View File

@ -0,0 +1,114 @@
import CrmService from 'core/services/CrmService';
import { IAccount, ILead } from 'core/services/CrmService/types/entities';
import { ICalculationStore } from 'core/types/Calculation/Store';
import { gql } from 'graphql.macro';
export function fillIndAgent(this: ICalculationStore, lead?: ILead) {
if (lead?.evo_agent_accountid) {
CrmService.getCRMOptions<'accountOptions', IAccount>({
query: gql`
query selectIndAgent($evo_agent_accountid: Uuid!) {
accountOptions: account(accountid: $evo_agent_accountid) {
accountid
name
}
}
`,
variables: {
evo_agent_accountid: lead.evo_agent_accountid,
},
}).then(({ accountOptions }) => {
if (accountOptions && accountOptions.length > 0) {
this.setOptions('selectIndAgent', accountOptions);
this.setValue('indAgent', accountOptions[0].accountid);
} else {
this.setValue('indAgent', null);
this.setOptions('selectIndAgent', []);
}
});
} else {
this.setValue('indAgent', null);
this.setOptions('selectIndAgent', []);
}
}
export function fillCalcDoubleAgent(this: ICalculationStore, lead?: ILead) {
if (lead?.evo_double_agent_accountid) {
CrmService.getCRMOptions<'accountOptions', IAccount>({
query: gql`
query selectCalcDoubleAgent($evo_double_agent_accountid: Uuid!) {
accountOptions: account(accountid: $evo_double_agent_accountid) {
accountid
name
}
}
`,
variables: {
evo_double_agent_accountid: lead.evo_double_agent_accountid,
},
}).then(({ accountOptions }) => {
if (accountOptions && accountOptions.length > 0) {
this.setOptions('selectCalcDoubleAgent', accountOptions);
this.setValue('calcDoubleAgent', accountOptions[0].accountid);
} else {
this.setValue('calcDoubleAgent', null);
this.setOptions('selectCalcDoubleAgent', []);
}
});
} else {
this.setValue('calcDoubleAgent', null);
this.setOptions('selectCalcDoubleAgent', []);
}
}
export function fillCalcBroker(this: ICalculationStore, lead?: ILead) {
if (lead?.evo_broker_accountid) {
CrmService.getCRMOptions<'accountOptions', IAccount>({
query: gql`
query selectCalcBroker($evo_broker_accountid: Uuid!) {
accountOptions: account(accountid: $evo_broker_accountid) {
accountid
name
}
}
`,
variables: {
evo_broker_accountid: lead.evo_broker_accountid,
},
}).then(({ accountOptions }) => {
if (accountOptions && accountOptions.length > 0) {
this.setOptions('selectCalcBroker', accountOptions);
this.setValue('calcBroker', accountOptions[0].accountid);
}
});
} else {
this.setValue('calcBroker', null);
this.setOptions('selectCalcBroker', []);
}
}
export function fillFinDepartment(this: ICalculationStore, lead?: ILead) {
if (lead?.evo_fin_department_accountid) {
CrmService.getCRMOptions<'accountOptions', IAccount>({
query: gql`
query selectCalcFinDepartment($evo_fin_department_accountid: Uuid!) {
accountOptions: account(accountid: $evo_fin_department_accountid) {
accountid
name
}
}
`,
variables: {
evo_fin_department_accountid: lead.evo_fin_department_accountid,
},
}).then(({ accountOptions }) => {
if (accountOptions && accountOptions.length > 0) {
this.setOptions('selectCalcFinDepartment', accountOptions);
this.setValue('calcFinDepartment', accountOptions[0].accountid);
}
});
} else {
this.setValue('calcFinDepartment', null);
this.setOptions('selectCalcFinDepartment', []);
}
}

View File

@ -0,0 +1,672 @@
import { openNotification } from 'client/Elements/Notification';
import { ICalculationStore } from 'core/types/Calculation/Store';
import { reaction } from 'mobx';
import { ElementStatus } from 'types/elements';
import {
fillCalcBroker,
fillCalcDoubleAgent,
fillFinDepartment,
fillIndAgent,
} from './fill-elements';
export default function agentsReactions($calculation: ICalculationStore) {
/**
* @description
* Добавить реакцию на изменение списка в поле selectDealerRewardCondition :
Если в списке selectDealerRewardCondition есть запись,
у которой evo_reward_condition.evo_agency_agreementid. Выплата без других агентов (evo_reward_without_other_agent) = True,
то сбрасывают значение и закрываются для выбора поля:
selectDealerBroker
selectIndAgent
selectCalcDoubleAgent
selectCalcBroker
selectFinDepartment
*/
reaction(
() => {
return $calculation.getOptions(
'selectDealerRewardCondition',
undefined,
true,
);
},
dealerRewardConditionOptions => {
// TODO: отдельный запрос evo_agency_agreement по id
if (
dealerRewardConditionOptions?.some(
x =>
x.evo_agency_agreementidData?.evo_reward_without_other_agent ===
true,
)
) {
$calculation.setValue('dealerBroker', null);
$calculation.setValue('indAgent', null);
$calculation.setValue('calcDoubleAgent', null);
$calculation.setValue('calcBroker', null);
$calculation.setValue('calcFinDepartment', null);
$calculation.setStatus('selectDealerBroker', ElementStatus.Disabled);
$calculation.setStatus('selectIndAgent', ElementStatus.Disabled);
$calculation.setStatus('selectCalcDoubleAgent', ElementStatus.Disabled);
$calculation.setStatus('selectCalcBroker', ElementStatus.Disabled);
$calculation.setStatus(
'selectCalcFinDepartment',
ElementStatus.Disabled,
);
} else {
$calculation.setStatus('selectDealerBroker', ElementStatus.Default);
const lead = $calculation.getOption('selectLead');
fillIndAgent.call($calculation, lead);
fillCalcDoubleAgent.call($calculation, lead);
fillCalcBroker.call($calculation, lead);
fillFinDepartment.call($calculation, lead);
}
},
);
/**
* @description
* Добавить реакцию на изменение списка в поле selectDealerBrokerRewardCondition :
Если в списке selectDealerBrokerRewardCondition есть запись, у которой evo_reward_condition.evo_agency_agreementid. Выплата без других агентов (evo_reward_without_other_agent) = True, то сбрасывают значение и закрываются для выбора поля:
selectDealerPerson (не обнуляем)
selectIndAgent
selectCalcDoubleAgent
selectCalcBroker
selectFinDepartment
иначе
selectDealerPerson открываем для редактирования
selectIndAgent заполняется значением из Интереса
selectCalcDoubleAgent заполняется значением из Интереса
selectCalcBrokerRewardCondition заполняется значением из Интереса
selectFinDepartmentRewardCondtion заполняется значением из Интереса
*/
reaction(
() => {
return $calculation.getOptions(
'selectDealerBrokerRewardCondition',
undefined,
true,
);
},
dealerBrokerRewardConditionOptions => {
// TODO: отдельный запрос evo_agency_agreement по id
if (
dealerBrokerRewardConditionOptions?.some(
x =>
x.evo_agency_agreementidData?.evo_reward_without_other_agent ===
true,
)
) {
$calculation.setValue('indAgent', null);
$calculation.setValue('calcDoubleAgent', null);
$calculation.setValue('calcBroker', null);
$calculation.setValue('calcFinDepartment', null);
$calculation.setStatus('selectDealerPerson', ElementStatus.Disabled);
$calculation.setStatus('selectIndAgent', ElementStatus.Disabled);
$calculation.setStatus('selectCalcDoubleAgent', ElementStatus.Disabled);
$calculation.setStatus('selectCalcBroker', ElementStatus.Disabled);
$calculation.setStatus(
'selectCalcFinDepartment',
ElementStatus.Disabled,
);
} else {
$calculation.setStatus('selectDealerPerson', ElementStatus.Default);
//TODO: сделать отдельный запрос на lead (и возможно на опции)
const lead = $calculation.getOption('selectLead');
fillIndAgent.call($calculation, lead);
fillCalcDoubleAgent.call($calculation, lead);
fillCalcBroker.call($calculation, lead);
fillFinDepartment.call($calculation, lead);
}
},
);
/**
* @description
* Добавить реакцию на изменение списка в поле selectIndAgentRewardCondition :
Если в списке selectIndAgentRewardCondition есть запись, у которой evo_reward_condition.evo_agency_agreementid. Выплата без других агентов (evo_reward_without_other_agent) = True, то сбрасывают значение и закрываются для выбора поля:
selectDealerPerson (не обнуляем)
selectDealerBroker
selectCalcDoubleAgent
selectCalcBroker
selectFinDepartment
иначе
selectDealerPerson открываем для редактирования
selectDealerBroker открываем для редактирования
selectCalcDoubleAgent заполняется значением из Интереса
selectCalcBroker заполняется значением из Интереса
selectCalcFinDepartment заполняется значением из Интереса
*/
reaction(
() => {
return $calculation.getOptions(
'selectIndAgentRewardCondition',
undefined,
true,
);
},
indAgentRewardConditionOptions => {
// TODO: отдельный запрос evo_agency_agreement по id
if (
indAgentRewardConditionOptions?.some(
x =>
x.evo_agency_agreementidData?.evo_reward_without_other_agent ===
true,
)
) {
$calculation.setValue('dealerBroker', null);
$calculation.setValue('calcDoubleAgent', null);
$calculation.setValue('calcBroker', null);
$calculation.setValue('calcFinDepartment', null);
$calculation.setStatus('selectDealerPerson', ElementStatus.Disabled);
$calculation.setStatus('selectDealerBroker', ElementStatus.Disabled);
$calculation.setStatus('selectCalcDoubleAgent', ElementStatus.Disabled);
$calculation.setStatus('selectCalcBroker', ElementStatus.Disabled);
$calculation.setStatus(
'selectCalcFinDepartment',
ElementStatus.Disabled,
);
} else {
$calculation.setStatus('selectDealerPerson', ElementStatus.Default);
$calculation.setStatus('selectDealerBroker', ElementStatus.Default);
//TODO: сделать отдельный запрос на lead (и возможно на опции)
const lead = $calculation.getOption('selectLead');
fillCalcDoubleAgent.call($calculation, lead);
fillCalcBroker.call($calculation, lead);
fillFinDepartment.call($calculation, lead);
}
},
);
/**
* @description
* Добавить реакцию на изменение списка в поле selectCalcDoubleAgentRewardCondition :
Если в списке selectCalcDoubleAgentRewardCondition есть запись, у которой evo_reward_condition.evo_agency_agreementid. Выплата без других агентов (evo_reward_without_other_agent) = True, то сбрасывают значение и закрываются для выбора поля:
selectDealerPerson (не обнуляем)
selectDealerBroker
selectIndAgent
selectCalcBroker
selectCalcFinDepartment
иначе
selectDealerPerson открываем для редактирования
selectDealerBroker открываем для редактирования
selectIndAgent заполняется значением из Интереса
selectCalcBroker заполняется значением из Интереса
selectCalcFinDepartment заполняется значением из Интереса
*/
reaction(
() => {
return $calculation.getOptions(
'selectCalcDoubleAgentRewardCondition',
undefined,
true,
);
},
calcDoubleAgentRewardConditionOptions => {
// TODO: отдельный запрос evo_agency_agreement по id
if (
calcDoubleAgentRewardConditionOptions?.some(
x =>
x.evo_agency_agreementidData?.evo_reward_without_other_agent ===
true,
)
) {
$calculation.setValue('dealerBroker', null);
$calculation.setValue('indAgent', null);
$calculation.setValue('calcBroker', null);
$calculation.setValue('calcFinDepartment', null);
$calculation.setStatus('selectDealerPerson', ElementStatus.Disabled);
$calculation.setStatus('selectDealerBroker', ElementStatus.Disabled);
$calculation.setStatus('selectIndAgent', ElementStatus.Disabled);
$calculation.setStatus('selectCalcBroker', ElementStatus.Disabled);
$calculation.setStatus(
'selectCalcFinDepartment',
ElementStatus.Disabled,
);
} else {
$calculation.setStatus('selectDealerPerson', ElementStatus.Default);
$calculation.setStatus('selectDealerBroker', ElementStatus.Default);
//TODO: сделать отдельный запрос на lead (и возможно на опции)
const lead = $calculation.getOption('selectLead');
fillIndAgent.call($calculation, lead);
fillCalcBroker.call($calculation, lead);
fillFinDepartment.call($calculation, lead);
}
},
);
/**
* @description
* Добавить реакцию на изменение списка в поле selectCalcBrokerRewardCondition:
Если в списке selectCalcBrokerRewardCondition есть запись, у которой evo_reward_condition.evo_agency_agreementid. Выплата без других агентов (evo_reward_without_other_agent) = True, то сбрасывают значение и закрываются для выбора поля:
selectDealerPerson (не обнуляем)
selectDealerBroker
selectIndAgent
selectCalcDoubleAgent
selectCalcFinDepartment
иначе
selectDealerPerson открываем для редактирования
selectDealerBroker открываем для редактирования
selectIndAgent заполняется значением из Интереса
selectCalcDoubleAgent заполняется значением из Интереса
selectCalcFinDepartment заполняется значением из Интереса
*/
reaction(
() => {
return $calculation.getOptions(
'selectCalcBrokerRewardCondition',
undefined,
true,
);
},
calcBrokerRewardConditionOptions => {
// TODO: отдельный запрос evo_agency_agreement по id
if (
calcBrokerRewardConditionOptions?.some(
x =>
x.evo_agency_agreementidData?.evo_reward_without_other_agent ===
true,
)
) {
$calculation.setValue('dealerBroker', null);
$calculation.setValue('indAgent', null);
$calculation.setValue('calcDoubleAgent', null);
$calculation.setValue('calcFinDepartment', null);
$calculation.setStatus('selectDealerPerson', ElementStatus.Disabled);
$calculation.setStatus('selectDealerBroker', ElementStatus.Disabled);
$calculation.setStatus('selectIndAgent', ElementStatus.Disabled);
$calculation.setStatus('selectCalcDoubleAgent', ElementStatus.Disabled);
$calculation.setStatus(
'selectCalcFinDepartment',
ElementStatus.Disabled,
);
} else {
$calculation.setStatus('selectDealerPerson', ElementStatus.Default);
$calculation.setStatus('selectDealerBroker', ElementStatus.Default);
//TODO: сделать отдельный запрос на lead (и возможно на опции)
const lead = $calculation.getOption('selectLead');
fillIndAgent.call($calculation, lead);
fillCalcDoubleAgent.call($calculation, lead);
fillFinDepartment.call($calculation, lead);
}
},
);
/**
* @description
* Добавить реакцию на изменение списка в поле selectFinDepartmentRewardCondtion:
Если в списке selectFinDepartmentRewardCondtion есть запись, у которой evo_reward_condition.evo_agency_agreementid. Выплата без других агентов (evo_reward_without_other_agent) = True, то сбрасывают значение и закрываются для выбора поля:
selectDealerPerson (не обнуляем)
selectDealerBroker
selectIndAgent
selectCalcDoubleAgent
selectCalcBroker
иначе
selectDealerPerson открываем для редактирования
selectDealerBroker открываем для редактирования
selectIndAgent заполняется значением из Интереса
selectCalcDoubleAgent заполняется значением из Интереса
selectCalcBroker заполняется значением из Интереса
*/
reaction(
() => {
return $calculation.getOptions(
'selectFinDepartmentRewardCondtion',
undefined,
true,
);
},
finDepartmentRewardCondtionOptions => {
// TODO: отдельный запрос evo_agency_agreement по id
if (
finDepartmentRewardCondtionOptions?.some(
x =>
x.evo_agency_agreementidData?.evo_reward_without_other_agent ===
true,
)
) {
$calculation.setValue('dealerBroker', null);
$calculation.setValue('indAgent', null);
$calculation.setValue('calcDoubleAgent', null);
$calculation.setValue('calcBroker', null);
$calculation.setStatus('selectDealerPerson', ElementStatus.Disabled);
$calculation.setStatus('selectDealerBroker', ElementStatus.Disabled);
$calculation.setStatus('selectIndAgent', ElementStatus.Disabled);
$calculation.setStatus('selectCalcDoubleAgent', ElementStatus.Disabled);
$calculation.setStatus('selectCalcBroker', ElementStatus.Disabled);
} else {
$calculation.setStatus('selectDealerPerson', ElementStatus.Default);
$calculation.setStatus('selectDealerBroker', ElementStatus.Default);
//TODO: сделать отдельный запрос на lead (и возможно на опции)
const lead = $calculation.getOption('selectLead');
fillIndAgent.call($calculation, lead);
fillCalcDoubleAgent.call($calculation, lead);
fillCalcBroker.call($calculation, lead);
}
},
);
reaction(
() => {
return $calculation.getValue('dealerRewardSumm');
},
dealerRewardSumm => {
const dealerRewardCondition = $calculation.getOption(
'selectDealerRewardCondition',
);
if (
dealerRewardCondition?.evo_reward_summ &&
dealerRewardSumm > dealerRewardCondition.evo_reward_summ
) {
$calculation.setValidation('tbxDealerRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение ЮЛ поставщика указано больше условия по агентскому договору!',
});
} else if (
!dealerRewardCondition?.evo_reduce_reward &&
dealerRewardCondition?.evo_reward_summ &&
dealerRewardSumm < dealerRewardCondition.evo_reward_summ
) {
$calculation.setValidation('tbxDealerRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение ЮЛ поставщика указано меньше условия по агентскому договору!',
});
} else if (
dealerRewardCondition?.evo_min_reward_summ &&
dealerRewardSumm < dealerRewardCondition?.evo_min_reward_summ
) {
$calculation.setValidation('tbxDealerRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение ЮЛ поставщика указано меньше условия по агентскому договору!',
});
} else {
$calculation.setValidation('tbxDealerRewardSumm', true);
}
},
);
reaction(
() => {
return $calculation.getValue('dealerBrokerRewardSumm');
},
dealerBrokerRewardSumm => {
const dealerBrokerRewardCondition = $calculation.getOption(
'selectDealerBrokerRewardCondition',
);
if (
dealerBrokerRewardCondition?.evo_reward_summ &&
dealerBrokerRewardSumm > dealerBrokerRewardCondition.evo_reward_summ
) {
$calculation.setValidation('tbxDealerBrokerRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение брокера поставщика указано больше условия по агентскому договору!',
});
} else if (
!dealerBrokerRewardCondition?.evo_reduce_reward &&
dealerBrokerRewardCondition?.evo_reward_summ &&
dealerBrokerRewardSumm < dealerBrokerRewardCondition.evo_reward_summ
) {
$calculation.setValidation('tbxDealerBrokerRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение брокера поставщика указано меньше условия по агентскому договору!',
});
} else if (
dealerBrokerRewardCondition?.evo_min_reward_summ &&
dealerBrokerRewardSumm < dealerBrokerRewardCondition.evo_min_reward_summ
) {
$calculation.setValidation('tbxDealerBrokerRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение Брокера поставщика указано меньше условия по агентскому договору!',
});
} else {
$calculation.setValidation('tbxDealerBrokerRewardSumm', true);
}
},
);
reaction(
() => {
return $calculation.getValue('indAgentRewardSumm');
},
indAgentRewardSumm => {
const indAgentRewardCondition = $calculation.getOption(
'selectIndAgentRewardCondition',
);
if (
indAgentRewardCondition?.evo_reward_summ &&
indAgentRewardSumm > indAgentRewardCondition.evo_reward_summ
) {
$calculation.setValidation('tbxIndAgentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение агента ФЛ указано больше условия по агентскому договору!',
});
} else if (
!indAgentRewardCondition?.evo_reduce_reward &&
indAgentRewardCondition?.evo_reward_summ &&
indAgentRewardSumm < indAgentRewardCondition.evo_reward_summ
) {
$calculation.setValidation('tbxIndAgentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение агента ФЛ указано меньше условия по агентскому договору!',
});
} else if (
indAgentRewardCondition?.evo_min_reward_summ &&
indAgentRewardSumm > indAgentRewardCondition.evo_min_reward_summ
) {
$calculation.setValidation('tbxIndAgentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение агента ФЛ указано меньше условия по агентскому договору!',
});
} else {
$calculation.setValidation('tbxIndAgentRewardSumm', true);
}
},
);
reaction(
() => {
return $calculation.getValue('calcDoubleAgentRewardSumm');
},
calcDoubleAgentRewardSumm => {
const selectCalcDoubleAgentRewardCondition = $calculation.getOption(
'selectCalcDoubleAgentRewardCondition',
);
if (
selectCalcDoubleAgentRewardCondition?.evo_reward_summ &&
calcDoubleAgentRewardSumm >
selectCalcDoubleAgentRewardCondition.evo_reward_summ
) {
$calculation.setValidation('tbxCalcDoubleAgentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение двойного агента указано больше условия по агентскому договору!',
});
} else if (
!selectCalcDoubleAgentRewardCondition?.evo_reduce_reward &&
selectCalcDoubleAgentRewardCondition?.evo_reward_summ &&
calcDoubleAgentRewardSumm <
selectCalcDoubleAgentRewardCondition.evo_reward_summ
) {
$calculation.setValidation('tbxCalcDoubleAgentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение двойного агента указано меньше условия по агентскому договору!',
});
} else if (
selectCalcDoubleAgentRewardCondition?.evo_min_reward_summ &&
calcDoubleAgentRewardSumm >
selectCalcDoubleAgentRewardCondition.evo_min_reward_summ
) {
$calculation.setValidation('tbxCalcDoubleAgentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение двойного агента указано меньше условия по агентскому договору!',
});
} else {
$calculation.setValidation('tbxCalcDoubleAgentRewardSumm', true);
}
},
);
reaction(
() => {
return $calculation.getValue('calcBrokerRewardSum');
},
calcBrokerRewardSum => {
const selectCalcBrokerRewardCondition = $calculation.getOption(
'selectCalcBrokerRewardCondition',
);
if (
selectCalcBrokerRewardCondition?.evo_reward_summ &&
calcBrokerRewardSum > selectCalcBrokerRewardCondition.evo_reward_summ
) {
$calculation.setValidation('tbxCalcBrokerRewardSum', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение брокера указано больше условия по агентскому договору!',
});
} else if (
!selectCalcBrokerRewardCondition?.evo_reduce_reward &&
selectCalcBrokerRewardCondition?.evo_reward_summ &&
calcBrokerRewardSum < selectCalcBrokerRewardCondition.evo_reward_summ
) {
$calculation.setValidation('tbxCalcBrokerRewardSum', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение брокера указано меньше условия по агентскому договору!',
});
} else if (
selectCalcBrokerRewardCondition?.evo_min_reward_summ &&
calcBrokerRewardSum <
selectCalcBrokerRewardCondition?.evo_min_reward_summ
) {
$calculation.setValidation('tbxCalcBrokerRewardSum', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение брокера указано меньше условия по агентскому договору!',
});
} else {
$calculation.setValidation('tbxCalcBrokerRewardSum', true);
}
},
);
reaction(
() => {
return $calculation.getValue('finDepartmentRewardSumm');
},
finDepartmentRewardSumm => {
const selectFinDepartmentRewardCondtion = $calculation.getOption(
'selectFinDepartmentRewardCondtion',
);
if (
selectFinDepartmentRewardCondtion?.evo_reward_summ &&
finDepartmentRewardSumm >
selectFinDepartmentRewardCondtion?.evo_reward_summ
) {
$calculation.setValidation('tbxFinDepartmentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение финотдела указано больше условия по агентскому договору!',
});
} else if (
selectFinDepartmentRewardCondtion?.evo_reward_summ &&
!selectFinDepartmentRewardCondtion.evo_reduce_reward &&
finDepartmentRewardSumm <
selectFinDepartmentRewardCondtion.evo_reward_summ
) {
$calculation.setValidation('tbxFinDepartmentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение финотдела указано меньше условия по агентскому договору!',
});
} else if (
selectFinDepartmentRewardCondtion?.evo_min_reward_summ &&
finDepartmentRewardSumm <
selectFinDepartmentRewardCondtion?.evo_min_reward_summ
) {
$calculation.setValidation('tbxFinDepartmentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение финотдела указано меньше условия по агентскому договору!',
});
} else {
$calculation.setValidation('tbxFinDepartmentRewardSumm', true);
}
},
);
}

View File

@ -306,27 +306,186 @@ export default function (this: ICalculationStore): PreparedData {
(preparedValues.firstPayment || 0) * (preparedValues.firstPayment || 0) *
((preparedValues.plPrice || 0) - (preparedValues.importProgramSum || 0)); ((preparedValues.plPrice || 0) - (preparedValues.importProgramSum || 0));
preparedValues.agentsSum = /**
(values.indAgentRewardSumm / 100) * * @description
preparedValues.acceptSum * * если в selectIndAgentRewardCondition значение evo_reward_condition.Расчет вознаграждения от (evo_calc_reward_rules) = 100 000 001 (от суммы),
valuesConstants.ESN; то AgentsSum = Размер АВ агента ФЛ (tbxIndAgentRewardSumm) * ЕСН [ESN]
иначе
если в selectIndAgentRewardCondition указана запись, у которой evo_reward_condition.evo_agency_agreementid. Стоимость ПЛ (evo_leasingobject_price) = 100 000 001 (с НДС),
то AgentsSum = (Размер АВ агента ФЛ (tbxIndAgentRewardSumm) /100 * (PreparedValues.PlPriceWithVAT - Discount*(1+VAT)) * ЕСН [ESN],
иначе AgentsSum = (значение поля Размер АВ агента ФЛ (tbxIndAgentRewardSumm) /100 * Стоимость ПЛ с учетом скидки [AcceptSum] ) * ЕСН [ESN]
*/
const selectIndAgentRewardConditionOption = this.getOption(
'selectIndAgentRewardCondition',
);
if (
selectIndAgentRewardConditionOption?.evo_calc_reward_rules === 100_000_001
) {
preparedValues.agentsSum = values.indAgentRewardSumm * valuesConstants.ESN;
} else if (
selectIndAgentRewardConditionOption?.evo_agency_agreementidData
?.evo_leasingobject_price === 100_000_001
) {
preparedValues.agentsSum =
(values.indAgentRewardSumm / 100) *
((preparedValues.plPriceWithVAT || 0) -
(preparedValues.discount || 0) * (1 + valuesConstants.VAT)) *
valuesConstants.ESN;
} else {
preparedValues.agentsSum =
(values.indAgentRewardSumm / 100) *
preparedValues.acceptSum *
valuesConstants.ESN;
}
preparedValues.doubleAgentsSum = /**
(values.calcDoubleAgentRewardSumm / 100) * * @description
preparedValues.acceptSum * * если в selectCalcDoubleAgentRewardCondition значение evo_reward_condition.Расчет вознаграждения от (evo_calc_reward_rules) = 100 000 001 (от суммы),
valuesConstants.ESN; то DoubleAgentsSum= Размер АВ двойного агента (tbxCalcDoubleAgentRewardSumm) * ЕСН [ESN]
иначе
если в selectCalcDoubleAgentRewardCondition указана запись, у которой evo_reward_condition.evo_agency_agreementid. Стоимость ПЛ (evo_leasingobject_price) = 100 000 001 (с НДС),
то DoubleAgentsSum= (Размер АВ двойного агента (tbxCalcDoubleAgentRewardSumm) /100 * (PreparedValues.PlPriceWithVAT - Discount*(1+VAT)) * ЕСН [ESN],
иначе DoubleAgentsSum= (значение поля Размер АВ двойного агента (tbxCalcDoubleAgentRewardSumm) /100 * Стоимость ПЛ с учетом скидки [AcceptSum] ) * ЕСН [ESN]
*/
const selectCalcDoubleAgentRewardCondition = this.getOption(
'selectCalcDoubleAgentRewardCondition',
);
if (
selectCalcDoubleAgentRewardCondition?.evo_calc_reward_rules === 100_000_001
) {
preparedValues.doubleAgentsSum =
values.calcDoubleAgentRewardSumm * valuesConstants.ESN;
} else if (
selectCalcDoubleAgentRewardCondition?.evo_agency_agreementidData
?.evo_leasingobject_price === 100_000_001
) {
preparedValues.doubleAgentsSum =
(values.calcDoubleAgentRewardSumm / 100) *
((preparedValues.plPriceWithVAT || 0) -
(preparedValues.discount || 0) * (1 + valuesConstants.VAT)) *
valuesConstants.ESN;
} else {
preparedValues.doubleAgentsSum =
(values.calcDoubleAgentRewardSumm / 100) *
preparedValues.acceptSum *
valuesConstants.ESN;
}
preparedValues.deliverySum = /**
(values.dealerRewardSumm / 100) * preparedValues.acceptSum; * @description
* если в selectDealerRewardCondition значение evo_reward_condition.Расчет вознаграждения от (evo_calc_reward_rules) = 100 000 001 (от суммы),
то DeliverySum= Размер АВ ЮЛ поставщика (tbxDealerRewardSumm) / (1+VAT)
иначе
если в selectDealerRewardCondition указана запись, у которой evo_reward_condition.evo_agency_agreementid. Стоимость ПЛ (evo_leasingobject_price) = 100 000 001 (с НДС),
то DeliverySum= Размер АВ ЮЛ поставщика (tbxDealerRewardSumm) /100 * (PreparedValues.PlPriceWithVAT - Discount*(1+VAT)),
иначе DeliverySum=значение поля Размер АВ ЮЛ поставщика (tbxDealerRewardSumm) /100 * Стоимость ПЛ с учетом скидки [AcceptSum]
*/
const selectDealerRewardCondition = this.getOption(
'selectDealerRewardCondition',
);
if (selectDealerRewardCondition?.evo_calc_reward_rules === 100_000_001) {
preparedValues.deliverySum =
values.dealerRewardSumm / (1 + valuesConstants.VAT);
} else if (
selectDealerRewardCondition?.evo_agency_agreementidData
?.evo_leasingobject_price === 100_000_001
) {
preparedValues.deliverySum =
(values.dealerRewardSumm / 100) *
((preparedValues.plPriceWithVAT || 0) -
(preparedValues.discount || 0) * (1 + valuesConstants.VAT));
} else {
preparedValues.deliverySum =
(values.dealerRewardSumm / 100) * preparedValues.acceptSum;
}
preparedValues.brokerSum = /**
(values.calcBrokerRewardSum / 100) * preparedValues.acceptSum; * @description
* если в selectCalcBrokerRewardCondition значение evo_reward_condition.Расчет вознаграждения от (evo_calc_reward_rules) = 100 000 001 (от суммы),
то BrokerSum= Размер АВ брокера (tbxCalcBrokerRewardSum) / (1+VAT)
иначе
если в selectCalcBrokerRewardCondition указана запись, у которой evo_reward_condition.evo_agency_agreementid. Стоимость ПЛ (evo_leasingobject_price) = 100 000 001 (с НДС),
то BrokerSum= Размер АВ брокера (tbxCalcBrokerRewardSum) /100 * (PreparedValues.PlPriceWithVAT - Discount*(1+VAT)) ,
иначе BrokerSum= значение поля Размер АВ брокера (tbxCalcBrokerRewardSum)/100 * Стоимость ПЛ с учетом скидки [AcceptSum]
*/
const selectCalcBrokerRewardCondition = this.getOption(
'selectCalcBrokerRewardCondition',
);
if (selectCalcBrokerRewardCondition?.evo_calc_reward_rules === 100_000_001) {
preparedValues.brokerSum =
values.calcBrokerRewardSum / (1 + valuesConstants.VAT);
} else if (
selectCalcBrokerRewardCondition?.evo_agency_agreementidData
?.evo_leasingobject_price === 100_000_001
) {
preparedValues.brokerSum =
(values.calcBrokerRewardSum / 100) *
((preparedValues.plPriceWithVAT || 0) -
(preparedValues.discount || 0) * (1 + valuesConstants.VAT));
} else {
preparedValues.brokerSum =
(values.calcBrokerRewardSum / 100) * preparedValues.acceptSum;
}
preparedValues.brokerOfDeliverySum = /**
(values.dealerBrokerRewardSumm / 100) * preparedValues.acceptSum; * @description
* если в selectDealerBrokerRewardCondition значение evo_reward_condition.Расчет вознаграждения от (evo_calc_reward_rules) = 100 000 001 (от суммы),
то BrokerOfDeliverySum= Размер АВ брокера поставщика (tbxDealerBrokerRewardSumm) / (1+VAT)
иначе
если в selectDealerBrokerRewardCondition указана запись, у которой evo_reward_condition.evo_agency_agreementid. Стоимость ПЛ (evo_leasingobject_price) = 100 000 001 (с НДС),
то BrokerOfDeliverySum= Размер АВ брокера поставщика (tbxDealerBrokerRewardSumm) /100 * (PreparedValues.PlPriceWithVAT - Discount*(1+VAT)),
иначе BrokerOfDeliverySum= значение поля Размер АВ брокера поставщика (tbxDealerBrokerRewardSumm)/100 * Стоимость ПЛ с учетом скидки [AcceptSum]
*/
const selectDealerBrokerRewardCondition = this.getOption(
'selectDealerBrokerRewardCondition',
);
if (
selectDealerBrokerRewardCondition?.evo_calc_reward_rules === 100_000_001
) {
preparedValues.brokerOfDeliverySum =
values.dealerBrokerRewardSumm / (1 + valuesConstants.VAT);
} else if (
selectDealerBrokerRewardCondition?.evo_agency_agreementidData
?.evo_leasingobject_price === 100_000_001
) {
preparedValues.brokerOfDeliverySum =
(values.dealerBrokerRewardSumm / 100) *
((preparedValues.plPriceWithVAT || 0) -
(preparedValues.discount || 0) * (1 + valuesConstants.VAT));
} else {
preparedValues.brokerOfDeliverySum =
(values.dealerBrokerRewardSumm / 100) * preparedValues.acceptSum;
}
preparedValues.financialDeptOfDeliverySum = /**
(values.finDepartmentRewardSumm / 100) * preparedValues.acceptSum; * @description
* если в selectFinDepartmentRewardCondtion значение evo_reward_condition.Расчет вознаграждения от (evo_calc_reward_rules) = 100 000 001 (от суммы),
то FinancialDeptOfDeliverySum= Размер АВ финотдела (tbxFinDepartmentRewardSumm) / (1+VAT)
иначе
если в selectFinDepartmentRewardCondtion указана запись, у которой evo_reward_condition.evo_agency_agreementid. Стоимость ПЛ (evo_leasingobject_price) = 100 000 001 (с НДС),
то FinancialDeptOfDeliverySum= Размер АВ финотдела (tbxFinDepartmentRewardSumm) /100 * (PreparedValues.PlPriceWithVAT - Discount*(1+VAT)),
иначе FinancialDeptOfDeliverySum= значение поля Размер АВ финотдела (tbxFinDepartmentRewardSumm)/100 * Стоимость ПЛ с учетом скидки [PreparedValue.AcceptSum]
*/
const selectFinDepartmentRewardCondtion = this.getOption(
'selectFinDepartmentRewardCondtion',
);
if (
selectFinDepartmentRewardCondtion?.evo_calc_reward_rules === 100_000_001
) {
preparedValues.financialDeptOfDeliverySum =
values.finDepartmentRewardSumm / (1 + valuesConstants.VAT);
} else if (
selectFinDepartmentRewardCondtion?.evo_agency_agreementidData
?.evo_leasingobject_price === 100_000_001
) {
preparedValues.financialDeptOfDeliverySum =
(values.finDepartmentRewardSumm / 100) *
((preparedValues.plPriceWithVAT || 0) -
(preparedValues.discount || 0) * (1 + valuesConstants.VAT));
} else {
preparedValues.financialDeptOfDeliverySum =
(values.finDepartmentRewardSumm / 100) * preparedValues.acceptSum;
}
if (values.importerRewardRub > 0) { if (values.importerRewardRub > 0) {
preparedValues.importerSum = values.importerRewardRub; preparedValues.importerSum = values.importerRewardRub;

View File

@ -132,6 +132,179 @@ const customConditions: Partial<Record<ElementsNames, ValidationCondition>> = {
'Срок лизинга не соответствует таблице платежей. Необходимо изменить срок лизинга', 'Срок лизинга не соответствует таблице платежей. Необходимо изменить срок лизинга',
}; };
}, },
//TODO: перенести в process/agents/validation
/**
* @description
* Валидация:
* Если tbxDealerRewardSumm= 0 И в списке selectDealerRewardCondition есть запись,
* у которой evo_reward_condition.evo_agency_agreementid. Обязательная выплата АВ (evo_required_reward) = True,
* то поле tbxDealerRewardSumm обводить красной рамкой
* и выводить ошибку "Согласно Агентскому договору с данным ЮЛ поставщика обязательна выплата АВ. Заложите АВ в расчет"
*/
tbxDealerRewardSumm: calculationStore => {
const dealerRewardConditionOptions = calculationStore.getOptions(
'selectDealerRewardCondition',
);
const dealerRewardSumm = calculationStore.getValue('dealerRewardSumm');
const isValid = !(
dealerRewardSumm === 0 &&
dealerRewardConditionOptions?.some(
x => x.evo_agency_agreementidData?.evo_required_reward,
)
);
return {
isValid,
message:
'Согласно Агентскому договору с данным ЮЛ поставщика обязательна выплата АВ. Заложите АВ в расчет',
};
},
/**
* @description
* Валидация
* Если tbxDealerBrokerRewardSumm= 0 И в списке selectDealerBrokerRewardCondition есть запись,
* у которой evo_reward_condition.evo_agency_agreementid. Обязательная выплата АВ (evo_required_reward) = True,
* то поле tbxDealerBrokerRewardSumm обводить красной рамкой
* и выводить ошибку "Согласно Агентскому договору с данным Брокером поставщика обязательна выплата АВ. Заложите АВ в расчет"
*/
tbxDealerBrokerRewardSumm: calculationStore => {
const dealerBrokerRewardConditionOptions = calculationStore.getOptions(
'selectDealerBrokerRewardCondition',
);
const dealerBrokerRewardSumm = calculationStore.getValue(
'dealerBrokerRewardSumm',
);
const isValid = !(
dealerBrokerRewardSumm === 0 &&
dealerBrokerRewardConditionOptions?.some(
x => x.evo_agency_agreementidData?.evo_required_reward,
)
);
return {
isValid,
message:
'Согласно Агентскому договору с данным Брокером поставщика обязательна выплата АВ. Заложите АВ в расчет',
};
},
/**
* @description
* Если tbxIndAgentRewardSumm= 0 И в списке selectIndAgentRewardCondition есть запись,
* у которой evo_reward_condition.evo_agency_agreementid. Обязательная выплата АВ (evo_required_reward) = True,
* то поле tbxIndAgentRewardSumm обводить красной рамкой
* и выводить ошибку "Согласно Агентскому договору с данным Агентом ФЛ обязательна выплата АВ. Заложите АВ в расчет"
*/
tbxIndAgentRewardSumm: calculationStore => {
const indAgentRewardConditionOptions = calculationStore.getOptions(
'selectIndAgentRewardCondition',
);
const indAgentRewardSumm = calculationStore.getValue('indAgentRewardSumm');
const isValid = !(
indAgentRewardSumm === 0 &&
indAgentRewardConditionOptions?.some(
x => x.evo_agency_agreementidData?.evo_required_reward,
)
);
return {
isValid,
message:
'Согласно Агентскому договору с данным Агентом ФЛ обязательна выплата АВ. Заложите АВ в расчет',
};
},
/**
* @description
* Если tbxCalcDoubleAgentRewardSumm = 0 И в списке selectCalcDoubleAgentRewardCondition есть запись,
* у которой evo_reward_condition.evo_agency_agreementid. Обязательная выплата АВ (evo_required_reward) = True,
* то поле tbxCalcDoubleAgentRewardSumm обводить красной рамкой
* и выводить ошибку "Согласно Агентскому договору с данным Двойным агентом обязательна выплата АВ. Заложите АВ в расчет"
*/
tbxCalcDoubleAgentRewardSumm: calculationStore => {
const calcDoubleAgentRewardConditionOptions = calculationStore.getOptions(
'selectCalcDoubleAgentRewardCondition',
);
const calcDoubleAgentRewardSumm = calculationStore.getValue(
'calcDoubleAgentRewardSumm',
);
const isValid = !(
calcDoubleAgentRewardSumm === 0 &&
calcDoubleAgentRewardConditionOptions?.some(
x => x.evo_agency_agreementidData?.evo_required_reward,
)
);
return {
isValid,
message:
'Согласно Агентскому договору с данным Двойным агентом обязательна выплата АВ. Заложите АВ в расчет',
};
},
/**
* @description
* Если tbxCalcBrokerRewardSum = 0 И в списке selectCalcBrokerRewardCondition есть запись,
* у которой evo_reward_condition.evo_agency_agreementid. Обязательная выплата АВ (evo_required_reward) = True,
* то поле tbxCalcBrokerRewardSum обводить красной рамкой
* и выводить ошибку "Согласно Агентскому договору с данным Брокером обязательна выплата АВ. Заложите АВ в расчет"
*/
tbxCalcBrokerRewardSum: calculationStore => {
const calcBrokerRewardConditionOptions = calculationStore.getOptions(
'selectCalcBrokerRewardCondition',
);
const calcBrokerRewardSum = calculationStore.getValue(
'calcBrokerRewardSum',
);
const isValid = !(
calcBrokerRewardSum === 0 &&
calcBrokerRewardConditionOptions?.some(
x => x.evo_agency_agreementidData?.evo_required_reward,
)
);
return {
isValid,
message:
'Согласно Агентскому договору с данным Брокером обязательна выплата АВ. Заложите АВ в расчет',
};
},
/**
* @description
* Если tbxFinDepartmentRewardSumm = 0 И в списке selectFinDepartmentRewardCondtion есть запись,
* у которой evo_reward_condition.evo_agency_agreementid. Обязательная выплата АВ (evo_required_reward) = True,
* то поле tbxFinDepartmentRewardSumm обводить красной рамкой
* и выводить ошибку "Согласно Агентскому договору с данным Финотделом обязательна выплата АВ. Заложите АВ в расчет"
*/
tbxFinDepartmentRewardSumm: calculationStore => {
const finDepartmentRewardCondtionOptions = calculationStore.getOptions(
'selectFinDepartmentRewardCondtion',
);
const finDepartmentRewardSumm = calculationStore.getValue(
'finDepartmentRewardSumm',
);
const isValid = !(
finDepartmentRewardSumm === 0 &&
finDepartmentRewardCondtionOptions?.some(
x => x.evo_agency_agreementidData?.evo_required_reward,
)
);
return {
isValid,
message:
'Согласно Агентскому договору с данным Финотделом обязательна выплата АВ. Заложите АВ в расчет',
};
},
}; };
const elementsValidations: Partial< const elementsValidations: Partial<

View File

@ -21,6 +21,7 @@ import {
CRMEntity, CRMEntity,
IAccount, IAccount,
IEvoGraph, IEvoGraph,
IEvoRewardCondition,
IEvoTown, IEvoTown,
IQuote, IQuote,
} from 'core/services/CrmService/types/entities'; } from 'core/services/CrmService/types/entities';
@ -72,6 +73,39 @@ function getObjectRegistration(recalcWithRevision: boolean, quote: IQuote) {
: quote.evo_object_registration; : quote.evo_object_registration;
} }
async function getRewardSumm(
reward_conditionid: string,
quote: IQuote,
quoteRewardSummName: string,
quoteRewardTotalName: string,
) {
if (reward_conditionid) {
const { evo_reward_condition } = await CrmService.getCRMEntities<
'evo_reward_condition',
IEvoRewardCondition
>({
query: gql`
query ($id: Uuid!) {
evo_reward_condition(evo_reward_conditionid: $id) {
evo_calc_reward_rules
}
}
`,
variables: {
id: reward_conditionid,
},
});
if (evo_reward_condition?.evo_calc_reward_rules === 100_000_001) {
return quote[quoteRewardSummName];
} else {
return quote[quoteRewardTotalName];
}
} else {
return quote[quoteRewardTotalName];
}
}
const loadKpReaction: IReactionEffect = calculationStore => ({ const loadKpReaction: IReactionEffect = calculationStore => ({
expression: () => { expression: () => {
const { quote } = calculationStore.values; const { quote } = calculationStore.values;
@ -164,8 +198,6 @@ const loadKpReaction: IReactionEffect = calculationStore => ({
// agents // agents
//TODO: refactor //TODO: refactor
const { indAgent, calcBroker, calcFinDepartment } =
calculationStore.values;
let { let {
indAgentRewardCondition, indAgentRewardCondition,
@ -175,22 +207,72 @@ const loadKpReaction: IReactionEffect = calculationStore => ({
finDepartmentRewardCondtion, finDepartmentRewardCondtion,
finDepartmentRewardSumm, finDepartmentRewardSumm,
} = calculationStore.values; } = calculationStore.values;
const indAgent = calculationStore.getValue('indAgent');
if (indAgent === quote.evo_agent_accountid) { if (indAgent === quote.evo_agent_accountid) {
indAgentRewardCondition = quote.evo_agent_reward_conditionid; indAgentRewardCondition = quote.evo_agent_reward_conditionid;
indAgentRewardSumm = quote.evo_agent_reward_total;
indAgentRewardSumm = await getRewardSumm(
//@ts-ignore
quote.evo_agent_reward_conditionid,
quote,
'evo_agent_reward_summ',
'evo_agent_reward_total',
);
} }
const calcBroker = calculationStore.getValue('calcBroker');
if (calcBroker === quote.evo_broker_accountid) { if (calcBroker === quote.evo_broker_accountid) {
calcBrokerRewardCondition = quote.evo_broker_reward_conditionid; calcBrokerRewardCondition = quote.evo_broker_reward_conditionid;
calcBrokerRewardSum = quote.evo_broker_reward_total;
calcBrokerRewardSum = await getRewardSumm(
//@ts-ignore
quote.evo_broker_reward_conditionid,
quote,
'evo_broker_reward_summ',
'evo_broker_reward_total',
);
} }
const calcFinDepartment =
calculationStore.getValue('calcFinDepartment');
if (calcFinDepartment === quote.evo_fin_department_accountid) { if (calcFinDepartment === quote.evo_fin_department_accountid) {
finDepartmentRewardCondtion = finDepartmentRewardCondtion =
quote.evo_fin_department_reward_conditionid; quote.evo_fin_department_reward_conditionid;
finDepartmentRewardSumm = quote.evo_fin_department_reward_total;
finDepartmentRewardSumm = await getRewardSumm(
//@ts-ignore
quote.evo_fin_department_reward_conditionid,
quote,
'evo_fin_department_reward_summ',
'evo_fin_department_reward_total',
);
} }
const dealerRewardSumm = await getRewardSumm(
//@ts-ignore
quote.evo_dealer_reward_conditionid,
quote,
'evo_dealer_reward_summ',
'evo_dealer_reward_total',
);
const dealerBrokerRewardSumm = await getRewardSumm(
//@ts-ignore
quote.evo_dealer_broker_reward_conditionid,
quote,
'evo_dealer_broker_reward_summ',
'evo_dealer_broker_reward_total',
);
const calcDoubleRewardSumm = await getRewardSumm(
//@ts-ignore
quote.evo_double_agent_reward_conditionid,
quote,
'evo_double_agent_reward_summ',
'evo_double_agent_reward_total',
);
const agentsValues = { const agentsValues = {
indAgentRewardCondition, indAgentRewardCondition,
indAgentRewardSumm, indAgentRewardSumm,
@ -198,6 +280,9 @@ const loadKpReaction: IReactionEffect = calculationStore => ({
calcBrokerRewardSum, calcBrokerRewardSum,
finDepartmentRewardCondtion, finDepartmentRewardCondtion,
finDepartmentRewardSumm, finDepartmentRewardSumm,
dealerRewardSumm,
dealerBrokerRewardSumm,
calcDoubleRewardSumm,
}; };
// agents // agents

View File

@ -46,16 +46,16 @@ const mapKPtoValues: Partial<Record<keyof IQuote | string, ValuesNames>> = {
evo_supplier_accountid: 'dealer', evo_supplier_accountid: 'dealer',
// evo_dealer_person_accountid: 'dealerPerson', // evo_dealer_person_accountid: 'dealerPerson',
evo_dealer_reward_conditionid: 'dealerRewardCondition', evo_dealer_reward_conditionid: 'dealerRewardCondition',
evo_dealer_reward_total: 'dealerRewardSumm', // evo_dealer_reward_total: 'dealerRewardSumm',
evo_dealer_broker_accountid: 'dealerBroker', evo_dealer_broker_accountid: 'dealerBroker',
evo_dealer_broker_reward_conditionid: 'dealerBrokerRewardCondition', evo_dealer_broker_reward_conditionid: 'dealerBrokerRewardCondition',
evo_dealer_broker_reward_total: 'dealerBrokerRewardSumm', // evo_dealer_broker_reward_total: 'dealerBrokerRewardSumm',
// evo_agent_accountid: indAgent, // evo_agent_accountid: indAgent,
// evo_agent_reward_conditionid: 'indAgentRewardCondition', // evo_agent_reward_conditionid: 'indAgentRewardCondition',
// evo_agent_reward_total: indAgentRewardSumm, // evo_agent_reward_total: indAgentRewardSumm,
evo_double_agent_accountid: 'calcDoubleAgent', evo_double_agent_accountid: 'calcDoubleAgent',
evo_double_agent_reward_conditionid: 'calcDoubleAgentRewardCondition', evo_double_agent_reward_conditionid: 'calcDoubleAgentRewardCondition',
evo_double_agent_reward_total: 'calcDoubleAgentRewardSumm', // evo_double_agent_reward_total: 'calcDoubleAgentRewardSumm',
// evo_broker_accountid: 'calcBroker', // evo_broker_accountid: 'calcBroker',
// evo_broker_reward_conditionid: 'calcBrokerRewardCondition', // evo_broker_reward_conditionid: 'calcBrokerRewardCondition',
// evo_broker_reward_total: 'calcBrokerRewardSum', // evo_broker_reward_total: 'calcBrokerRewardSum',

View File

@ -220,201 +220,6 @@ const reactionEffects: IReactionEffect[] = [
}, },
}), }),
calculationStore => ({
expression: () => {
const { indAgentRewardSumm } = calculationStore.values;
return indAgentRewardSumm;
},
effect: indAgentRewardSumm => {
const indAgentRewardCondition = calculationStore.getOption(
'selectIndAgentRewardCondition',
);
if (indAgentRewardCondition) {
if (indAgentRewardCondition.evo_reward_summ) {
if (
parseFloat(indAgentRewardSumm) >
indAgentRewardCondition.evo_reward_summ
) {
calculationStore.setValidation('tbxIndAgentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение агента ФЛ указано больше условия по агентскому договору! \nЗначение установлено по условию договора.',
});
return;
} else if (
!indAgentRewardCondition.evo_reduce_reward &&
indAgentRewardCondition.evo_reward_summ
) {
if (
parseFloat(indAgentRewardSumm) <
indAgentRewardCondition.evo_reward_summ
) {
calculationStore.setValidation('tbxIndAgentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение агента ФЛ указано меньше условия по агентскому договору! \nЗначение установлено по условию договора.',
});
return;
}
}
calculationStore.setValidation('tbxIndAgentRewardSumm', true);
}
}
},
}),
calculationStore => ({
expression: () => {
const { calcDoubleAgentRewardSumm } = calculationStore.values;
return calcDoubleAgentRewardSumm;
},
effect: calcDoubleAgentRewardSumm => {
const selectCalcDoubleAgentRewardCondition = calculationStore.getOption(
'selectCalcDoubleAgentRewardCondition',
);
if (selectCalcDoubleAgentRewardCondition) {
if (selectCalcDoubleAgentRewardCondition.evo_reward_summ) {
if (
parseFloat(calcDoubleAgentRewardSumm) >
selectCalcDoubleAgentRewardCondition.evo_reward_summ
) {
calculationStore.setValidation(
'tbxCalcDoubleAgentRewardSumm',
false,
);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение двойного агента указано больше условия по агентскому договору! \nЗначение установлено по условию договора.',
});
return;
} else if (
!selectCalcDoubleAgentRewardCondition.evo_reduce_reward &&
selectCalcDoubleAgentRewardCondition.evo_reward_summ
) {
if (
parseFloat(calcDoubleAgentRewardSumm) <
selectCalcDoubleAgentRewardCondition.evo_reward_summ
) {
calculationStore.setValidation(
'tbxCalcDoubleAgentRewardSumm',
false,
);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение двойного агента указано меньше условия по агентскому договору! \nЗначение установлено по условию договора.',
});
return;
}
}
calculationStore.setValidation('tbxCalcDoubleAgentRewardSumm', true);
}
}
},
}),
calculationStore => ({
expression: () => {
const { calcBrokerRewardSum } = calculationStore.values;
return calcBrokerRewardSum;
},
effect: calcBrokerRewardSum => {
const selectCalcBrokerRewardCondition = calculationStore.getOption(
'selectCalcBrokerRewardCondition',
);
if (selectCalcBrokerRewardCondition) {
if (selectCalcBrokerRewardCondition.evo_reward_summ) {
if (
parseFloat(calcBrokerRewardSum) >
selectCalcBrokerRewardCondition.evo_reward_summ
) {
calculationStore.setValidation('tbxCalcBrokerRewardSum', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение брокера указано больше условия по агентскому договору! \nЗначение установлено по условию договора.',
});
return;
} else if (
!selectCalcBrokerRewardCondition.evo_reduce_reward &&
selectCalcBrokerRewardCondition.evo_reward_summ
) {
if (
parseFloat(calcBrokerRewardSum) <
selectCalcBrokerRewardCondition.evo_reward_summ
) {
calculationStore.setValidation('tbxCalcBrokerRewardSum', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение брокера указано меньше условия по агентскому договору! \nЗначение установлено по условию договора.',
});
return;
}
}
calculationStore.setValidation('tbxCalcBrokerRewardSum', true);
}
}
},
}),
calculationStore => ({
expression: () => {
const { finDepartmentRewardSumm } = calculationStore.values;
return finDepartmentRewardSumm;
},
effect: finDepartmentRewardSumm => {
const selectFinDepartmentRewardCondtion = calculationStore.getOption(
'selectFinDepartmentRewardCondtion',
);
if (
selectFinDepartmentRewardCondtion &&
selectFinDepartmentRewardCondtion.evo_reward_summ
) {
if (
parseFloat(finDepartmentRewardSumm) >
selectFinDepartmentRewardCondtion.evo_reward_summ
) {
calculationStore.setValidation('tbxFinDepartmentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение финотдела указано больше условия по агентскому договору! \nЗначение установлено по условию договора.',
});
return;
} else if (
!selectFinDepartmentRewardCondtion.evo_reduce_reward &&
selectFinDepartmentRewardCondtion.evo_reward_summ
) {
if (
parseFloat(finDepartmentRewardSumm) <
selectFinDepartmentRewardCondtion.evo_reward_summ
) {
calculationStore.setValidation('tbxFinDepartmentRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение финотдела указано меньше условия по агентскому договору! \nЗначение установлено по условию договора.',
});
return;
}
}
calculationStore.setValidation('tbxFinDepartmentRewardSumm', true);
}
},
}),
calculationStore => ({ calculationStore => ({
expression: () => { expression: () => {
const { leaseObjectUsed } = calculationStore.values; const { leaseObjectUsed } = calculationStore.values;
@ -807,54 +612,6 @@ const reactionEffects: IReactionEffect[] = [
}, },
}), }),
calculationStore => ({
expression: () => {
const { dealerBrokerRewardSumm } = calculationStore.values;
return dealerBrokerRewardSumm;
},
effect: dealerBrokerRewardSumm => {
const dealerBrokerRewardCondition = calculationStore.getOption(
'selectDealerBrokerRewardCondition',
);
if (dealerBrokerRewardCondition) {
if (dealerBrokerRewardCondition.evo_reward_summ) {
if (
parseFloat(dealerBrokerRewardSumm) >
dealerBrokerRewardCondition.evo_reward_summ
) {
calculationStore.setValidation('tbxDealerBrokerRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение брокера поставщика указано больше условия по агентскому договору! \nЗначение установлено по условию договора.',
});
return;
}
}
if (
!dealerBrokerRewardCondition.evo_reduce_reward &&
dealerBrokerRewardCondition.evo_reward_summ
) {
if (
parseFloat(dealerBrokerRewardSumm) <
dealerBrokerRewardCondition.evo_reward_summ
) {
calculationStore.setValidation('tbxDealerBrokerRewardSumm', false);
openNotification({
type: 'error',
message: 'Ошибка',
description:
'Вознаграждение брокера поставщика указано меньше условия по агентскому договору! \nЗначение установлено по условию договора.',
});
return;
}
}
calculationStore.setValidation('tbxDealerBrokerRewardSumm', true);
}
},
}),
calculationStore => ({ calculationStore => ({
expression: () => { expression: () => {
const { configuration } = calculationStore.values; const { configuration } = calculationStore.values;

View File

@ -1,4 +1,10 @@
import { gql } from '@apollo/client'; import { gql } from '@apollo/client';
import {
fillCalcBroker,
fillCalcDoubleAgent,
fillFinDepartment,
fillIndAgent,
} from 'client/process/agents/fill-elements';
import CrmService from 'core/services/CrmService'; import CrmService from 'core/services/CrmService';
import { quotesByLeadQuery } from 'core/services/CrmService/graphql/query/quote'; import { quotesByLeadQuery } from 'core/services/CrmService/graphql/query/quote';
import { import {
@ -28,14 +34,6 @@ export default [
calculationStore.setFilter('selectOpportunity', undefined); calculationStore.setFilter('selectOpportunity', undefined);
calculationStore.setValue('quote', null); calculationStore.setValue('quote', null);
calculationStore.setOptions('selectQuote', []); calculationStore.setOptions('selectQuote', []);
calculationStore.setOptions('selectIndAgent', []);
calculationStore.setValue('indAgent', null);
calculationStore.setOptions('selectCalcDoubleAgent', []);
calculationStore.setValue('calcDoubleAgent', null);
calculationStore.setOptions('selectCalcBroker', []);
calculationStore.setValue('calcBroker', null);
calculationStore.setOptions('selectCalcFinDepartment', []);
calculationStore.setValue('calcFinDepartment', null);
return; return;
} }
@ -69,126 +67,10 @@ export default [
calculationStore.setValue('quote', null); calculationStore.setValue('quote', null);
} }
if (lead?.evo_agent_accountid) { fillIndAgent.call(calculationStore, lead);
CrmService.getCRMOptions<'accountOptions', IAccount>({ fillCalcDoubleAgent.call(calculationStore, lead);
query: gql` fillCalcBroker.call(calculationStore, lead);
query selectIndAgent($evo_agent_accountid: Uuid!) { fillFinDepartment.call(calculationStore, lead);
accountOptions: account(accountid: $evo_agent_accountid) {
accountid
name
}
}
`,
variables: {
evo_agent_accountid: lead.evo_agent_accountid,
},
}).then(({ accountOptions }) => {
if (accountOptions && accountOptions.length > 0) {
calculationStore.setOptions('selectIndAgent', accountOptions);
calculationStore.setValue('indAgent', accountOptions[0].accountid);
} else {
calculationStore.setValue('indAgent', null);
calculationStore.setOptions('selectIndAgent', []);
}
});
} else {
calculationStore.setValue('indAgent', null);
calculationStore.setOptions('selectIndAgent', []);
}
if (lead?.evo_double_agent_accountid) {
CrmService.getCRMOptions<'accountOptions', IAccount>({
query: gql`
query selectCalcDoubleAgent($evo_double_agent_accountid: Uuid!) {
accountOptions: account(accountid: $evo_double_agent_accountid) {
accountid
name
}
}
`,
variables: {
evo_double_agent_accountid: lead.evo_double_agent_accountid,
},
}).then(({ accountOptions }) => {
if (accountOptions && accountOptions.length > 0) {
calculationStore.setOptions(
'selectCalcDoubleAgent',
accountOptions,
);
calculationStore.setValue(
'calcDoubleAgent',
accountOptions[0].accountid,
);
} else {
calculationStore.setValue('calcDoubleAgent', null);
calculationStore.setOptions('selectCalcDoubleAgent', []);
}
});
} else {
calculationStore.setValue('calcDoubleAgent', null);
calculationStore.setOptions('selectCalcDoubleAgent', []);
}
if (lead?.evo_broker_accountid) {
CrmService.getCRMOptions<'accountOptions', IAccount>({
query: gql`
query selectCalcBroker($evo_broker_accountid: Uuid!) {
accountOptions: account(accountid: $evo_broker_accountid) {
accountid
name
}
}
`,
variables: {
evo_broker_accountid: lead.evo_broker_accountid,
},
}).then(({ accountOptions }) => {
if (accountOptions && accountOptions.length > 0) {
calculationStore.setOptions('selectCalcBroker', accountOptions);
calculationStore.setValue(
'calcBroker',
accountOptions[0].accountid,
);
}
});
} else {
calculationStore.setValue('calcBroker', null);
calculationStore.setOptions('selectCalcBroker', []);
}
if (lead?.evo_fin_department_accountid) {
CrmService.getCRMOptions<'accountOptions', IAccount>({
query: gql`
query selectCalcFinDepartment(
$evo_fin_department_accountid: Uuid!
) {
accountOptions: account(
accountid: $evo_fin_department_accountid
) {
accountid
name
}
}
`,
variables: {
evo_fin_department_accountid: lead.evo_fin_department_accountid,
},
}).then(({ accountOptions }) => {
if (accountOptions && accountOptions.length > 0) {
calculationStore.setOptions(
'selectCalcFinDepartment',
accountOptions,
);
calculationStore.setValue(
'calcFinDepartment',
accountOptions[0].accountid,
);
}
});
} else {
calculationStore.setValue('calcFinDepartment', null);
calculationStore.setOptions('selectCalcFinDepartment', []);
}
}, },
}), }),
@ -303,6 +185,13 @@ export default [
evo_reward_summ evo_reward_summ
evo_reduce_reward evo_reduce_reward
evo_agency_agreementid evo_agency_agreementid
evo_agency_agreementidData {
evo_reward_without_other_agent
evo_required_reward
evo_leasingobject_price
}
evo_min_reward_summ
evo_calc_reward_rules
} }
} }
`, `,
@ -369,6 +258,13 @@ export default [
evo_reward_summ evo_reward_summ
evo_reduce_reward evo_reduce_reward
evo_agency_agreementid evo_agency_agreementid
evo_agency_agreementidData {
evo_reward_without_other_agent
evo_required_reward
evo_leasingobject_price
}
evo_min_reward_summ
evo_calc_reward_rules
} }
} }
`, `,
@ -437,6 +333,13 @@ export default [
evo_reward_summ evo_reward_summ
evo_reduce_reward evo_reduce_reward
evo_agency_agreementid evo_agency_agreementid
evo_agency_agreementidData {
evo_reward_without_other_agent
evo_required_reward
evo_leasingobject_price
}
evo_min_reward_summ
evo_calc_reward_rules
} }
} }
`, `,
@ -503,6 +406,13 @@ export default [
evo_reward_summ evo_reward_summ
evo_reduce_reward evo_reduce_reward
evo_agency_agreementid evo_agency_agreementid
evo_agency_agreementidData {
evo_reward_without_other_agent
evo_required_reward
evo_leasingobject_price
}
evo_min_reward_summ
evo_calc_reward_rules
} }
} }
`, `,
@ -681,6 +591,13 @@ export default [
evo_reward_summ evo_reward_summ
evo_reduce_reward evo_reduce_reward
evo_agency_agreementid evo_agency_agreementid
evo_agency_agreementidData {
evo_reward_without_other_agent
evo_required_reward
evo_leasingobject_price
}
evo_min_reward_summ
evo_calc_reward_rules
} }
} }
`, `,
@ -704,6 +621,7 @@ export default [
'selectDealerBrokerRewardCondition', 'selectDealerBrokerRewardCondition',
ElementStatus.Disabled, ElementStatus.Disabled,
); );
calculationStore.setOptions('selectDealerBrokerRewardCondition', []);
} }
}, },
options: { options: {
@ -746,6 +664,13 @@ export default [
evo_reward_summ evo_reward_summ
evo_reduce_reward evo_reduce_reward
evo_agency_agreementid evo_agency_agreementid
evo_agency_agreementidData {
evo_reward_without_other_agent
evo_required_reward
evo_leasingobject_price
}
evo_min_reward_summ
evo_calc_reward_rules
} }
} }
`, `,
@ -770,6 +695,7 @@ export default [
'selectDealerRewardCondition', 'selectDealerRewardCondition',
ElementStatus.Disabled, ElementStatus.Disabled,
); );
calculationStore.setOptions('selectDealerRewardCondition', []);
} }
}, },
options: { options: {

View File

@ -1,4 +1,5 @@
import leasebackReactions from 'client/process/agents/leaseback'; import leasebackReactions from 'client/process/agents/leaseback';
import agentsReactions from 'client/process/agents/reactions';
import injectBonusesReaction from 'client/process/bonuses/reactions'; import injectBonusesReaction from 'client/process/bonuses/reactions';
import { injectConfiguratorReactions } from 'client/process/configurator/reactions'; import { injectConfiguratorReactions } from 'client/process/configurator/reactions';
import { injectFinGapReactions } from 'client/process/fingap/reactions'; import { injectFinGapReactions } from 'client/process/fingap/reactions';
@ -44,6 +45,7 @@ injectUsedWhthVATReactions(CalculationStore);
injectConfiguratorReactions(CalculationStore); injectConfiguratorReactions(CalculationStore);
injectSubsidyReactions(CalculationStore); injectSubsidyReactions(CalculationStore);
injectBonusesReaction(CalculationStore); injectBonusesReaction(CalculationStore);
agentsReactions(CalculationStore);
leasebackReactions(CalculationStore); leasebackReactions(CalculationStore);
whenEffects.map(whenEffectBuilder => { whenEffects.map(whenEffectBuilder => {

View File

@ -1,3 +1,3 @@
export const MAX_FRANCHISE = 75000; export const MAX_FRANCHISE = 75000;
export const MAX_INSURANCE = 2500000; export const MAX_INSURANCE = 3000000;
export const MIN_INSURANCE = 3000; export const MIN_INSURANCE = 3000;

View File

@ -43,16 +43,22 @@ fragment quoteFields on quote {
evo_double_agent_accountid evo_double_agent_accountid
evo_dealer_reward_conditionid evo_dealer_reward_conditionid
evo_dealer_reward_total evo_dealer_reward_total
evo_dealer_reward_summ
evo_dealer_broker_reward_conditionid evo_dealer_broker_reward_conditionid
evo_dealer_broker_reward_total evo_dealer_broker_reward_total
evo_dealer_broker_reward_summ
evo_agent_reward_conditionid evo_agent_reward_conditionid
evo_agent_reward_total evo_agent_reward_total
evo_agent_reward_summ
evo_double_agent_reward_conditionid evo_double_agent_reward_conditionid
evo_double_agent_reward_total evo_double_agent_reward_total
evo_double_agent_reward_summ
evo_broker_reward_conditionid evo_broker_reward_conditionid
evo_broker_reward_total evo_broker_reward_total
evo_broker_reward_summ
evo_fin_department_reward_conditionid evo_fin_department_reward_conditionid
evo_fin_department_reward_total evo_fin_department_reward_total
evo_fin_department_reward_summ
evo_broker_accountid evo_broker_accountid
evo_fin_department_accountid evo_fin_department_accountid

View File

@ -59,6 +59,13 @@ query GetMainOptionsForKP(
evo_name evo_name
evo_reward_summ evo_reward_summ
evo_reduce_reward evo_reduce_reward
evo_agency_agreementidData {
evo_reward_without_other_agent
evo_required_reward
evo_leasingobject_price
}
evo_min_reward_summ
evo_calc_reward_rules
} }
selectDealerBrokerRewardCondition: evo_reward_conditions( selectDealerBrokerRewardCondition: evo_reward_conditions(
evo_agent_accountid: $dealer_broker_accountid evo_agent_accountid: $dealer_broker_accountid
@ -71,6 +78,13 @@ query GetMainOptionsForKP(
evo_name evo_name
evo_reward_summ evo_reward_summ
evo_reduce_reward evo_reduce_reward
evo_agency_agreementidData {
evo_reward_without_other_agent
evo_required_reward
evo_leasingobject_price
}
evo_min_reward_summ
evo_calc_reward_rules
} }
# selectIndAgentRewardCondition: evo_reward_conditions( # selectIndAgentRewardCondition: evo_reward_conditions(
# evo_agent_accountid: $ind_agent_accountid # evo_agent_accountid: $ind_agent_accountid
@ -96,6 +110,13 @@ query GetMainOptionsForKP(
evo_name evo_name
evo_reward_summ evo_reward_summ
evo_reduce_reward evo_reduce_reward
evo_agency_agreementidData {
evo_reward_without_other_agent
evo_required_reward
evo_leasingobject_price
}
evo_min_reward_summ
evo_calc_reward_rules
} }
# calcBrokerRewardCondition: evo_reward_conditions( # calcBrokerRewardCondition: evo_reward_conditions(
# evo_agent_accountid: $broker_accountid # evo_agent_accountid: $broker_accountid

View File

@ -74,7 +74,7 @@ type Query {
evo_client_types(statecode: Int): [evo_client_type] evo_client_types(statecode: Int): [evo_client_type]
evo_coefficients(evo_client_riskid: Uuid, evo_client_typeid: Uuid, evo_corfficient_type: Int, evo_datefrom_param: DateParamInput, evo_dateto_param: DateParamInput, evo_job_titleid: Uuid, evo_max_period_param: DecimalParamInput, evo_min_period_param: DecimalParamInput, statecode: Int): [evo_coefficient] evo_coefficients(evo_client_riskid: Uuid, evo_client_typeid: Uuid, evo_corfficient_type: Int, evo_datefrom_param: DateParamInput, evo_dateto_param: DateParamInput, evo_job_titleid: Uuid, evo_max_period_param: DecimalParamInput, evo_min_period_param: DecimalParamInput, statecode: Int): [evo_coefficient]
evo_contract(evo_contractid: Uuid!): evo_contract evo_contract(evo_contractid: Uuid!): evo_contract
evo_contracts(evo_accountid: Uuid, evo_name: String, statecode: Int): [evo_contract] evo_contracts(evo_accountid: Uuid, evo_name: String, orderby: OrderByInput, statecode: Int): [evo_contract]
evo_countries(evo_code_numeric: String): [evo_countryGraphQL] evo_countries(evo_code_numeric: String): [evo_countryGraphQL]
evo_country(evo_countryid: Uuid!): evo_countryGraphQL evo_country(evo_countryid: Uuid!): evo_countryGraphQL
evo_currencychanges(evo_coursedate_param: DateParamInput, evo_ref_transactioncurrency: Uuid, statecode: Int): [evo_currencychange] evo_currencychanges(evo_coursedate_param: DateParamInput, evo_ref_transactioncurrency: Uuid, statecode: Int): [evo_currencychange]
@ -108,6 +108,7 @@ type Query {
"""Регион. statecode по умолчанию 0""" """Регион. statecode по умолчанию 0"""
evo_regions(evo_businessunit_evolution: Boolean, evo_creditregistry_id: Int, statecode: Int): [evo_region] evo_regions(evo_businessunit_evolution: Boolean, evo_creditregistry_id: Int, statecode: Int): [evo_region]
evo_request_client(evo_request_clientid: Uuid!): evo_request_client
evo_request_payment(evo_request_paymentid: Uuid!): evo_request_payment evo_request_payment(evo_request_paymentid: Uuid!): evo_request_payment
evo_request_payments(evo_id: String, evo_name: String, statecode: Int): [evo_request_payment] evo_request_payments(evo_id: String, evo_name: String, statecode: Int): [evo_request_payment]
evo_reward_condition(evo_reward_conditionid: Uuid!): evo_reward_condition evo_reward_condition(evo_reward_conditionid: Uuid!): evo_reward_condition
@ -168,15 +169,24 @@ type Mutation {
by(systemuserid: Uuid): MutationBy by(systemuserid: Uuid): MutationBy
} }
type evo_subject_incident { type evo_request_client {
createdon: DateTime createdon: DateTime
evo_group: Int evo_accountid: Uuid
evo_groupname: String evo_accountidData: account
evo_name: String evo_caseorigincode: Int
evo_subjectid: Uuid evo_caseorigincodename: String
evo_subject_incidentid: Uuid evo_client_request_text: String
evo_type_incident: Int evo_comment: String
evo_type_incidentname: String evo_documents: [evo_document]
evo_number: String
evo_owner_systemuserid: Uuid
evo_owner_systemuseridData: systemuser
evo_phonecallid: Uuid
evo_request_clientid: Uuid
evo_statuscodeid: Uuid
evo_statuscodeidData: evo_statuscode
evo_storage: String
incidents: [incidentGraphQL]
link: String link: String
modifiedon: DateTime modifiedon: DateTime
toObjectString: String toObjectString: String
@ -224,12 +234,30 @@ input GuidParamInput {
"""The built-in `Decimal` scalar type.""" """The built-in `Decimal` scalar type."""
scalar Decimal scalar Decimal
type evo_subject_incident {
createdon: DateTime
evo_group: Int
evo_groupname: String
evo_name: String
evo_subjectid: Uuid
evo_subject_incidentid: Uuid
evo_type_incident: Int
evo_type_incidentname: String
link: String
modifiedon: DateTime
toObjectString: String
}
type incidentGraphQL { type incidentGraphQL {
caseorigincode: Int
createdon: DateTime createdon: DateTime
customerid: Uuid customerid: Uuid
customerid_account: Uuid customerid_account: Uuid
customerid_contact: Uuid customerid_contact: Uuid
description: String description: String
evo_accountid_new: Uuid
evo_cession_opportunityid: Uuid
evo_contracts: [evo_contract]
evo_fast_advice: Boolean evo_fast_advice: Boolean
evo_plan_execut_date: DateTime evo_plan_execut_date: DateTime
evo_statuscodeid: Uuid evo_statuscodeid: Uuid
@ -244,7 +272,10 @@ type incidentGraphQL {
modifiedon: DateTime modifiedon: DateTime
ownerid: Uuid ownerid: Uuid
owneridData: systemuser owneridData: systemuser
ownerid_systemuser: Uuid
ownerid_team: Uuid
subjectid: Uuid subjectid: Uuid
subjectidData: subjectGraphQL
ticketnumber: String ticketnumber: String
title: String title: String
toObjectString: String toObjectString: String
@ -404,9 +435,11 @@ type account {
evo_orglegalformid: Uuid evo_orglegalformid: Uuid
evo_orglegalformidData: evo_orglegalform evo_orglegalformidData: evo_orglegalform
evo_osago_with_kasko: Boolean evo_osago_with_kasko: Boolean
evo_request_clients: [evo_request_client]
evo_return_leasing_dealer: Boolean evo_return_leasing_dealer: Boolean
evo_smb_category: Int evo_smb_category: Int
evo_smb_issue_date: DateTime evo_smb_issue_date: DateTime
evo_special_accounting: Int
evo_state_actuality_date: DateTime evo_state_actuality_date: DateTime
evo_state_liquidation_date: DateTime evo_state_liquidation_date: DateTime
evo_state_registration_date: DateTime evo_state_registration_date: DateTime
@ -417,6 +450,7 @@ type account {
evo_tax_system: Int evo_tax_system: Int
evo_type_ins_policy: [Int!] evo_type_ins_policy: [Int!]
evo_unscrupulous_supplier: Boolean evo_unscrupulous_supplier: Boolean
incidents: [incidentGraphQL]
link: String link: String
modifiedon: DateTime modifiedon: DateTime
name: String name: String
@ -508,6 +542,7 @@ type evo_addproduct_type {
evo_datefrom: DateTime evo_datefrom: DateTime
evo_dateto: DateTime evo_dateto: DateTime
evo_description: String evo_description: String
evo_equipment_1_name: String
evo_equip_cost: Decimal evo_equip_cost: Decimal
evo_gibdd_region: Boolean evo_gibdd_region: Boolean
evo_graph_price: Decimal evo_graph_price: Decimal
@ -591,6 +626,7 @@ type evo_insurance_period {
evo_age_drivers: Int evo_age_drivers: Int
evo_base_reward_factor: Decimal evo_base_reward_factor: Decimal
evo_base_reward_rub: Decimal evo_base_reward_rub: Decimal
evo_calc_dateend: DateTime
evo_change_insurer_accountid: Uuid evo_change_insurer_accountid: Uuid
evo_close: Boolean evo_close: Boolean
evo_comment: String evo_comment: String
@ -666,17 +702,30 @@ type evo_addproduct {
evo_addproductnumberidData: evo_addproductnumber evo_addproductnumberidData: evo_addproductnumber
evo_addproduct_typeid: Uuid evo_addproduct_typeid: Uuid
evo_addproduct_typeidData: evo_addproduct_type evo_addproduct_typeidData: evo_addproduct_type
evo_contractid: Uuid
evo_cs_actualdate: DateTime
evo_date_instal: DateTime
evo_date_instal_cancel: DateTime
evo_deactivation_date: DateTime evo_deactivation_date: DateTime
evo_fuel_card_currency_limit_check: Boolean evo_fuel_card_currency_limit_check: Boolean
evo_fuel_card_limit_check: Boolean evo_fuel_card_limit_check: Boolean
evo_fuel_card_limit_used: Decimal evo_fuel_card_limit_used: Decimal
evo_id_request_instal: String
evo_issue_date_plan: DateTime
evo_issue_owner_salon: String
evo_issue_tel_salon: String
evo_leasingobjectid: Uuid evo_leasingobjectid: Uuid
evo_name: String evo_name: String
evo_provider_accountid: Uuid evo_provider_accountid: Uuid
evo_provider_accountidData: account evo_provider_accountidData: account
evo_provider_contact_info: String
evo_provider_phone_number: String
evo_request_instal_message: String evo_request_instal_message: String
evo_request_instal_path: String
evo_service_contactid: Uuid evo_service_contactid: Uuid
evo_setting_date: DateTime
evo_telematics_number: String evo_telematics_number: String
evo_telematics_pin: String
evo_validity_from: DateTime evo_validity_from: DateTime
modifiedon: DateTime modifiedon: DateTime
toObjectString: String toObjectString: String
@ -862,6 +911,7 @@ type lead {
evo_new_client: String evo_new_client: String
evo_opportunityid: Uuid evo_opportunityid: Uuid
evo_opportunityidData: opportunity evo_opportunityidData: opportunity
evo_scheduled_callid: Uuid
evo_statuscodeid: Uuid evo_statuscodeid: Uuid
evo_supplier_accountid: Uuid evo_supplier_accountid: Uuid
evo_utm_campaign: String evo_utm_campaign: String
@ -870,6 +920,7 @@ type lead {
evo_utm_source: String evo_utm_source: String
evo_utm_term: String evo_utm_term: String
fullname: String fullname: String
jobtitle: String
leadid: Uuid leadid: Uuid
leadsourcecode: Int leadsourcecode: Int
link: String link: String
@ -896,6 +947,7 @@ type opportunity {
evo_all_credit_evoprofi: Decimal evo_all_credit_evoprofi: Decimal
evo_all_credit_evosmart: Decimal evo_all_credit_evosmart: Decimal
evo_approvallogs: [evo_approvallog] evo_approvallogs: [evo_approvallog]
evo_assignor_accountid: Uuid
evo_businessunitid: Uuid evo_businessunitid: Uuid
evo_businessunitidData: businessunit evo_businessunitidData: businessunit
evo_check_type: [Int!] evo_check_type: [Int!]
@ -1416,10 +1468,13 @@ type evo_scheduled_call {
createdon: DateTime createdon: DateTime
evo_accountid: Uuid evo_accountid: Uuid
evo_channel: String evo_channel: String
evo_comment: String
evo_company_name: String evo_company_name: String
evo_contact_jobtitle: String
evo_contact_lastname: String evo_contact_lastname: String
evo_contact_name: String evo_contact_name: String
evo_inn: String evo_inn: String
evo_leadid: Uuid
evo_name: String evo_name: String
evo_note: String evo_note: String
evo_scheduled_callid: Uuid evo_scheduled_callid: Uuid
@ -1576,6 +1631,7 @@ type evo_contract {
evo_contract_status_1cname: String evo_contract_status_1cname: String
evo_contract_status_change_date_in_crm: DateTime evo_contract_status_change_date_in_crm: DateTime
evo_contract_status_date_1c: DateTime evo_contract_status_date_1c: DateTime
evo_cre_uuid: String
evo_dateend: DateTime evo_dateend: DateTime
evo_date_of_pledge_claim: DateTime evo_date_of_pledge_claim: DateTime
evo_date_of_pledge_leasobject: DateTime evo_date_of_pledge_leasobject: DateTime
@ -1608,6 +1664,7 @@ type evo_contract {
evo_discount_supplier_currency: Decimal evo_discount_supplier_currency: Decimal
evo_docdate: DateTime evo_docdate: DateTime
evo_docdate_dkp: DateTime evo_docdate_dkp: DateTime
evo_documents: [evo_document]
evo_dogovortype: Int evo_dogovortype: Int
evo_dog_credit: Decimal evo_dog_credit: Decimal
evo_double_agent_accountid: Uuid evo_double_agent_accountid: Uuid
@ -1642,6 +1699,7 @@ type evo_contract {
evo_first_payment_rub: Decimal evo_first_payment_rub: Decimal
evo_first_payment_rub_without_subsidy: Decimal evo_first_payment_rub_without_subsidy: Decimal
evo_forwarder_contactid: Uuid evo_forwarder_contactid: Uuid
evo_for_export_cre: Boolean
evo_fuel_card_addproductid: Uuid evo_fuel_card_addproductid: Uuid
evo_fuel_card_addproduct_typeid: Uuid evo_fuel_card_addproduct_typeid: Uuid
evo_graphs(statecode: Int): [evo_graph] evo_graphs(statecode: Int): [evo_graph]
@ -1659,6 +1717,9 @@ type evo_contract {
evo_issue_date_buh: DateTime evo_issue_date_buh: DateTime
evo_issue_place_addressid: Uuid evo_issue_place_addressid: Uuid
evo_issue_without_pay: Boolean evo_issue_without_pay: Boolean
evo_issue_without_pay_comm: String
evo_last_formation_cre_date: DateTime
evo_last_formation_cre_status: Int
evo_last_payment_redemption: Boolean evo_last_payment_redemption: Boolean
evo_leasingobjectid: Uuid evo_leasingobjectid: Uuid
evo_leasingobjectidData: evo_leasingobject evo_leasingobjectidData: evo_leasingobject
@ -1994,6 +2055,7 @@ type evo_address {
evo_federal_district: String evo_federal_district: String
evo_fias: Boolean evo_fias: Boolean
evo_fias_code: String evo_fias_code: String
evo_fias_id: String
evo_fias_level: Int evo_fias_level: Int
evo_flat: String evo_flat: String
evo_flat_type: String evo_flat_type: String
@ -2004,6 +2066,8 @@ type evo_address {
evo_house_fias_id: String evo_house_fias_id: String
evo_house_type: String evo_house_type: String
evo_house_type_full: String evo_house_type_full: String
evo_okato: String
evo_oktmo: String
evo_postal_box: String evo_postal_box: String
evo_postal_code: String evo_postal_code: String
evo_region: String evo_region: String
@ -2031,9 +2095,12 @@ type systemuser {
businessunitid: Uuid businessunitid: Uuid
businessunitidData: businessunit businessunitidData: businessunit
createdon: DateTime createdon: DateTime
defaultmailbox: Uuid
domainname: String domainname: String
evo_available_assignment_director: Boolean
evo_baseproducts(statecode: Int): [evo_baseproduct] evo_baseproducts(statecode: Int): [evo_baseproduct]
evo_callrecords_access: Boolean evo_callrecords_access: Boolean
evo_can_export_cre: Boolean
evo_can_import_sheduled_calls: Boolean evo_can_import_sheduled_calls: Boolean
evo_datebirth: DateTime evo_datebirth: DateTime
evo_employee_id: String evo_employee_id: String
@ -2122,6 +2189,7 @@ type evo_agency_agreement {
evo_agent_accountid: Uuid evo_agent_accountid: Uuid
evo_agent_accountidData: account evo_agent_accountidData: account
evo_agent_type: Int evo_agent_type: Int
evo_agreement_date: DateTime
evo_bank_detailsid: Uuid evo_bank_detailsid: Uuid
evo_boss_comment: String evo_boss_comment: String
evo_boss_decision: Int evo_boss_decision: Int
@ -2139,12 +2207,14 @@ type evo_agency_agreement {
evo_name: String evo_name: String
evo_new_version: Boolean evo_new_version: Boolean
evo_number: Int evo_number: Int
evo_pay_period: Int
evo_region_director_comment: String evo_region_director_comment: String
evo_region_director_decision: Int evo_region_director_decision: Int
evo_required_reward: Boolean evo_required_reward: Boolean
evo_reward_without_other_agent: Boolean evo_reward_without_other_agent: Boolean
evo_select_lp: Boolean evo_select_lp: Boolean
evo_select_vin: Boolean evo_select_vin: Boolean
evo_service_period: Int
evo_signer_systemuserid: Uuid evo_signer_systemuserid: Uuid
evo_statuscodeid: Uuid evo_statuscodeid: Uuid
evo_storage: String evo_storage: String
@ -2178,6 +2248,7 @@ type evo_addcontract {
evo_add_bonus_summ: Decimal evo_add_bonus_summ: Decimal
evo_add_director_bonus: Decimal evo_add_director_bonus: Decimal
evo_add_region_director_bonus: Decimal evo_add_region_director_bonus: Decimal
evo_agent_reward: Decimal
evo_agent_reward_summ: Decimal evo_agent_reward_summ: Decimal
evo_age_drivers: Int evo_age_drivers: Int
evo_age_drivers_new: Int evo_age_drivers_new: Int
@ -2192,6 +2263,7 @@ type evo_addcontract {
evo_base_bonus: Decimal evo_base_bonus: Decimal
evo_base_calc_pay: Decimal evo_base_calc_pay: Decimal
evo_base_new: String evo_base_new: String
evo_broker_reward: Decimal
evo_broker_reward_summ: Decimal evo_broker_reward_summ: Decimal
evo_businessunitid: Uuid evo_businessunitid: Uuid
evo_calculation_method: Int evo_calculation_method: Int
@ -2221,6 +2293,7 @@ type evo_addcontract {
evo_date_addcontract: DateTime evo_date_addcontract: DateTime
evo_date_calculation_done: DateTime evo_date_calculation_done: DateTime
evo_date_offset_change: Boolean evo_date_offset_change: Boolean
evo_date_offset_type: Int
evo_deadline_date: DateTime evo_deadline_date: DateTime
evo_dealer_broker_accountid: Uuid evo_dealer_broker_accountid: Uuid
evo_dealer_broker_accountid_new: Uuid evo_dealer_broker_accountid_new: Uuid
@ -2240,6 +2313,7 @@ type evo_addcontract {
evo_dealer_person_reward_summ_new: Decimal evo_dealer_person_reward_summ_new: Decimal
evo_deviation_investments_withoutnds: Decimal evo_deviation_investments_withoutnds: Decimal
evo_deviation_irr: Decimal evo_deviation_irr: Decimal
evo_deviation_irr_change: Boolean
evo_dgo_price: Decimal evo_dgo_price: Decimal
evo_dgo_price_new: Decimal evo_dgo_price_new: Decimal
evo_director_bonus: Decimal evo_director_bonus: Decimal
@ -2249,6 +2323,7 @@ type evo_addcontract {
evo_discount_supplier_currency_new: Decimal evo_discount_supplier_currency_new: Decimal
evo_dog_credit: Decimal evo_dog_credit: Decimal
evo_dog_credit_new: Decimal evo_dog_credit_new: Decimal
evo_double_agent_reward: Decimal
evo_double_agent_reward_summ: Decimal evo_double_agent_reward_summ: Decimal
evo_driving_axle: String evo_driving_axle: String
evo_driving_axle_new: String evo_driving_axle_new: String
@ -2276,8 +2351,10 @@ type evo_addcontract {
evo_equip_price_new: Decimal evo_equip_price_new: Decimal
evo_exp_drivers: Int evo_exp_drivers: Int
evo_exp_drivers_new: Int evo_exp_drivers_new: Int
evo_fin_department_reward: Decimal
evo_fin_department_reward_conditionid: Uuid evo_fin_department_reward_conditionid: Uuid
evo_fin_department_reward_conditionid_new: Uuid evo_fin_department_reward_conditionid_new: Uuid
evo_fin_department_reward_new: Decimal
evo_fin_department_reward_summ: Decimal evo_fin_department_reward_summ: Decimal
evo_fin_department_reward_summ_new: Decimal evo_fin_department_reward_summ_new: Decimal
evo_fix_last_payment: Boolean evo_fix_last_payment: Boolean
@ -2288,6 +2365,7 @@ type evo_addcontract {
evo_graph_irr: Decimal evo_graph_irr: Decimal
evo_importer_reward_rub: Decimal evo_importer_reward_rub: Decimal
evo_insurance_change: Boolean evo_insurance_change: Boolean
evo_insurance_checking: Boolean
evo_insurance_period: Int evo_insurance_period: Int
evo_insurance_period_new: Int evo_insurance_period_new: Int
evo_insurance_price_result: Decimal evo_insurance_price_result: Decimal
@ -2536,6 +2614,7 @@ type evo_typedocpackage {
evo_name: String evo_name: String
evo_opportunity: Boolean evo_opportunity: Boolean
evo_programsolution: [Int!] evo_programsolution: [Int!]
evo_request_client: Boolean
evo_request_payment: Boolean evo_request_payment: Boolean
evo_typedocpackageid: Uuid evo_typedocpackageid: Uuid
modifiedon: DateTime modifiedon: DateTime
@ -2551,45 +2630,6 @@ type MutationBy {
updateEntity(data: EntityDataInput): Boolean! updateEntity(data: EntityDataInput): Boolean!
} }
"""The `DateTime` scalar represents an ISO-8601 compliant date time type."""
scalar DateTime
enum SortingType {
DESC
ASC
}
input FilterInput {
fieldname: String
guidvalues: [Uuid]
intvalues: [Int!]
operation: FilterOperation!
stringvalues: [String]
}
enum LogicOperation {
AND
OR
}
type picklist {
name: String
values: [picklist_value]
}
type businessunit {
businessunitid: Uuid
createdon: DateTime
evo_addressid: Uuid
evo_boss_systemuserid: Uuid
evo_director_systemuserid: Uuid
evo_region_director_systgemuserid: Uuid
evo_region_director_systgemuseridname: String
modifiedon: DateTime
name: String
toObjectString: String
}
type evo_document { type evo_document {
createdon: DateTime createdon: DateTime
evo_accountid: Uuid evo_accountid: Uuid
@ -2617,6 +2657,53 @@ type evo_document {
toObjectString: String toObjectString: String
} }
"""The `DateTime` scalar represents an ISO-8601 compliant date time type."""
scalar DateTime
enum SortingType {
DESC
ASC
}
input FilterInput {
fieldname: String
guidvalues: [Uuid]
intvalues: [Int!]
operation: FilterOperation!
stringvalues: [String]
}
enum LogicOperation {
AND
OR
}
type subjectGraphQL {
createdon: DateTime
modifiedon: DateTime
subjectid: Uuid
title: String
toObjectString: String
}
type picklist {
name: String
values: [picklist_value]
}
type businessunit {
businessunitid: Uuid
createdon: DateTime
evo_addressid: Uuid
evo_boss_systemuserid: Uuid
evo_director_systemuserid: Uuid
evo_region_director_systgemuserid: Uuid
evo_region_director_systgemuseridname: String
modifiedon: DateTime
name: String
toObjectString: String
}
type team { type team {
createdon: DateTime createdon: DateTime
evo_baseproducts(statecode: Int): [evo_baseproduct] evo_baseproducts(statecode: Int): [evo_baseproduct]
@ -2731,24 +2818,6 @@ type Entity {
logical_name: String logical_name: String
} }
enum FilterOperation {
ISNULL
EQUAL
CONTAINS
NOTCONTAINS
MORETHEN
MOREOREQUALTHEN
LESSTHEN
LESSOREQUALTHEN
}
type picklist_value {
color: String
label: String
order: Int!
value: Int!
}
type evo_documenttype { type evo_documenttype {
createdon: DateTime createdon: DateTime
evo_comment: String evo_comment: String
@ -2767,6 +2836,24 @@ type evo_documenttype {
toObjectString: String toObjectString: String
} }
enum FilterOperation {
ISNULL
EQUAL
CONTAINS
NOTCONTAINS
MORETHEN
MOREOREQUALTHEN
LESSTHEN
LESSOREQUALTHEN
}
type picklist_value {
color: String
label: String
order: Int!
value: Int!
}
input EntityFieldInput { input EntityFieldInput {
activitypartiesvalue: [activitypartyInput] activitypartiesvalue: [activitypartyInput]
boolvalue: Boolean boolvalue: Boolean

View File

@ -104,7 +104,7 @@ export interface IOpportunity extends BaseEntity {
} }
export interface IQuote extends BaseEntity { export interface IQuote extends BaseEntity {
evo_vin: string; evo_vin?: string;
evo_seasons_type?: number; evo_seasons_type?: number;
evo_engine_hours?: number; evo_engine_hours?: number;
evo_client_riskid?: string; evo_client_riskid?: string;
@ -166,6 +166,7 @@ export interface IQuote extends BaseEntity {
evo_agent_accountid?: string; evo_agent_accountid?: string;
evo_agent_reward_conditionid?: string; evo_agent_reward_conditionid?: string;
evo_agent_reward_total?: number; evo_agent_reward_total?: number;
evo_agent_reward_summ?: number;
evo_broker_accountid?: string; evo_broker_accountid?: string;
evo_fin_department_reward_total?: number; evo_fin_department_reward_total?: number;
evo_fin_department_reward_conditionid?: string; evo_fin_department_reward_conditionid?: string;
@ -278,6 +279,13 @@ export interface IEvoRewardCondition extends BaseEntity {
evo_reward_summ?: number; evo_reward_summ?: number;
evo_reduce_reward?: boolean; evo_reduce_reward?: boolean;
evo_agency_agreementid?: string; evo_agency_agreementid?: string;
evo_agency_agreementidData?: {
evo_reward_without_other_agent?: boolean;
evo_required_reward?: boolean;
evo_leasingobject_price?: number;
};
evo_min_reward_summ?: number;
evo_calc_reward_rules?: number;
} }
export interface IEvoGPSBrand extends BaseEntity { export interface IEvoGPSBrand extends BaseEntity {