diff --git a/process/agents/lib/__generated__/GetBroker.ts b/process/agents/lib/__generated__/GetBroker.ts new file mode 100644 index 0000000..d14e58a --- /dev/null +++ b/process/agents/lib/__generated__/GetBroker.ts @@ -0,0 +1,22 @@ +/* tslint:disable */ +/* eslint-disable */ +// @generated +// This file was automatically generated and should not be edited. + +// ==================================================== +// GraphQL query operation: GetBroker +// ==================================================== + +export interface GetBroker_agent { + __typename: "account"; + label: string | null; + value: any | null; +} + +export interface GetBroker { + agent: GetBroker_agent | null; +} + +export interface GetBrokerVariables { + agentid: any; +} diff --git a/process/agents/lib/__generated__/GetBrokerAccountId.ts b/process/agents/lib/__generated__/GetBrokerAccountId.ts new file mode 100644 index 0000000..7908513 --- /dev/null +++ b/process/agents/lib/__generated__/GetBrokerAccountId.ts @@ -0,0 +1,24 @@ +/* tslint:disable */ +/* eslint-disable */ +// @generated +// This file was automatically generated and should not be edited. + +// ==================================================== +// GraphQL query operation: GetBrokerAccountId +// ==================================================== + +export interface GetBrokerAccountId_lead { + __typename: "lead"; + agentid: any | null; +} + +export interface GetBrokerAccountId { + /** + * Лизинговые сделки. statecode по умолчанию 0, можно отфильтровать по ownerid и/или domainName + */ + lead: GetBrokerAccountId_lead | null; +} + +export interface GetBrokerAccountIdVariables { + leadid: any; +} diff --git a/process/agents/lib/__generated__/GetFinDepartment.ts b/process/agents/lib/__generated__/GetFinDepartment.ts new file mode 100644 index 0000000..df3db72 --- /dev/null +++ b/process/agents/lib/__generated__/GetFinDepartment.ts @@ -0,0 +1,22 @@ +/* tslint:disable */ +/* eslint-disable */ +// @generated +// This file was automatically generated and should not be edited. + +// ==================================================== +// GraphQL query operation: GetFinDepartment +// ==================================================== + +export interface GetFinDepartment_agent { + __typename: "account"; + label: string | null; + value: any | null; +} + +export interface GetFinDepartment { + agent: GetFinDepartment_agent | null; +} + +export interface GetFinDepartmentVariables { + agentid: any; +} diff --git a/process/agents/lib/__generated__/GetFinDepartmentAccountId.ts b/process/agents/lib/__generated__/GetFinDepartmentAccountId.ts new file mode 100644 index 0000000..02bda50 --- /dev/null +++ b/process/agents/lib/__generated__/GetFinDepartmentAccountId.ts @@ -0,0 +1,24 @@ +/* tslint:disable */ +/* eslint-disable */ +// @generated +// This file was automatically generated and should not be edited. + +// ==================================================== +// GraphQL query operation: GetFinDepartmentAccountId +// ==================================================== + +export interface GetFinDepartmentAccountId_lead { + __typename: "lead"; + agentid: any | null; +} + +export interface GetFinDepartmentAccountId { + /** + * Лизинговые сделки. statecode по умолчанию 0, можно отфильтровать по ownerid и/или domainName + */ + lead: GetFinDepartmentAccountId_lead | null; +} + +export interface GetFinDepartmentAccountIdVariables { + leadid: any; +} diff --git a/process/agents/lib/fill-agents-from-lead.ts b/process/agents/lib/fill-agents-from-lead.ts index 35f4693..488e8dd 100644 --- a/process/agents/lib/fill-agents-from-lead.ts +++ b/process/agents/lib/fill-agents-from-lead.ts @@ -104,3 +104,62 @@ export const fillCalcDoubleAgent = fillAgent( QUERY_GET_DOUBLE_AGENT_ACCOUNTID, QUERY_GET_DOUBLE_AGENT ); + +/** + * Если lead содержит данные, то calcBroker заполняется ссылкой на карточку Контрагент (account), + * записанную в поле Интереса "Брокер" (lead.evo_broker_accountid → account) + * иначе очищать поле калькулятора calcBroker + */ + +const QUERY_GET_BROKER_ACCOUNTID = gql` + query GetBrokerAccountId($leadid: Uuid!) { + lead(leadid: $leadid) { + agentid: evo_broker_accountid + } + } +`; + +const QUERY_GET_BROKER = gql` + query GetBroker($agentid: Uuid!) { + agent: account(accountid: $agentid) { + label: name + value: accountid + } + } +`; + +export const fillCalcBroker = fillAgent( + 'selectCalcBroker', + QUERY_GET_BROKER_ACCOUNTID, + QUERY_GET_BROKER +); + +/** + * если lead содержит данные, то calcFinDepartment заполняется ссылкой + * на карточку Контрагент (account), + * записанную в поле Интереса "Финотдел" (lead.evo_fin_department_accountid → account) + * иначе очищать поле калькулятора calcFinDepartment + */ + +const QUERY_GET_FIN_DEPARTMENT_ACCOUNTID = gql` + query GetFinDepartmentAccountId($leadid: Uuid!) { + lead(leadid: $leadid) { + agentid: evo_fin_department_accountid + } + } +`; + +const QUERY_GET_FIN_DEPARTMENT = gql` + query GetFinDepartment($agentid: Uuid!) { + agent: account(accountid: $agentid) { + label: name + value: accountid + } + } +`; + +export const fillFinDepartment = fillAgent( + 'selectCalcFinDepartment', + QUERY_GET_FIN_DEPARTMENT_ACCOUNTID, + QUERY_GET_FIN_DEPARTMENT +); diff --git a/process/agents/reactions/common.ts b/process/agents/reactions/common.ts index 0a81f5d..a2daa7e 100644 --- a/process/agents/reactions/common.ts +++ b/process/agents/reactions/common.ts @@ -1,15 +1,17 @@ import type { ApolloClient } from '@apollo/client'; import { reaction } from 'mobx'; import type RootStore from 'stores/root'; -import { fillCalcDoubleAgent, fillIndAgent } from '../lib/fill-agents-from-lead'; +import * as fillAgentsFromLead from '../lib/fill-agents-from-lead'; export default function commonReactions(store: RootStore, apolloClient: ApolloClient) { const { $calculation } = store; reaction( () => $calculation.getElementValue('selectLead'), (leadid) => { - fillIndAgent(store, apolloClient, leadid); - fillCalcDoubleAgent(store, apolloClient, leadid); + fillAgentsFromLead.fillIndAgent(store, apolloClient, leadid); + fillAgentsFromLead.fillCalcDoubleAgent(store, apolloClient, leadid); + fillAgentsFromLead.fillCalcBroker(store, apolloClient, leadid); + fillAgentsFromLead.fillFinDepartment(store, apolloClient, leadid); } ); }