diff --git a/apps/web/graphql/crm.query.graphql b/apps/web/graphql/crm.query.graphql index a9a4c70..b65f8c2 100644 --- a/apps/web/graphql/crm.query.graphql +++ b/apps/web/graphql/crm.query.graphql @@ -718,6 +718,8 @@ query GetDealerPerson($dealerPersonId: UUID!) { evo_return_leasing_dealer evo_broker_accountid evo_supplier_financing_accept + evo_legal_form + evo_inn } } @@ -725,6 +727,7 @@ query GetAgent($agentid: UUID!) { agent(accountid: $agentid) { label: name value: accountid + evo_inn } } diff --git a/apps/web/graphql/crm.types.ts b/apps/web/graphql/crm.types.ts index 2dcf765..586dfbd 100644 --- a/apps/web/graphql/crm.types.ts +++ b/apps/web/graphql/crm.types.ts @@ -2101,14 +2101,14 @@ export type GetDealerPersonQueryVariables = Exact<{ }>; -export type GetDealerPersonQuery = { __typename?: 'Query', dealer_person: { __typename?: 'account', evo_supplier_type: number | null, evo_supplier_financing_accept: boolean | null, evo_return_leasing_dealer: boolean | null, evo_broker_accountid: string | null } | null }; +export type GetDealerPersonQuery = { __typename?: 'Query', dealer_person: { __typename?: 'account', evo_supplier_type: number | null, evo_supplier_financing_accept: boolean | null, evo_return_leasing_dealer: boolean | null, evo_broker_accountid: string | null, evo_legal_form: number | null, evo_inn: string | null } | null }; export type GetAgentQueryVariables = Exact<{ agentid: Scalars['UUID']['input']; }>; -export type GetAgentQuery = { __typename?: 'Query', agent: { __typename?: 'account', label: string | null, value: string | null } | null }; +export type GetAgentQuery = { __typename?: 'Query', agent: { __typename?: 'account', evo_inn: string | null, label: string | null, value: string | null } | null }; export type GetRewardConditionsQueryVariables = Exact<{ agentid: Scalars['UUID']['input']; @@ -2281,8 +2281,8 @@ export const GetConfigurationDocument = {"kind":"Document","definitions":[{"kind export const GetDealersDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetDealers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"dealers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"accountid"}},{"kind":"Field","name":{"kind":"Name","value":"accountid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_financing_accept"}}]}}]}}]} as unknown as DocumentNode; export const GetDealerDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetDealer"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"dealerId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"dealer"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"accountid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"dealerId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_return_leasing_dealer"}},{"kind":"Field","name":{"kind":"Name","value":"evo_broker_accountid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_financing_accept"}}]}}]}}]} as unknown as DocumentNode; export const GetDealerPersonsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetDealerPersons"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"dealerId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"dealerPersons"},"name":{"kind":"Name","value":"dealer_persons"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"salonaccountid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"dealerId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"accountid"}},{"kind":"Field","name":{"kind":"Name","value":"accountid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_inn"}},{"kind":"Field","name":{"kind":"Name","value":"evo_kpp"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_financing_accept"}}]}}]}}]} as unknown as DocumentNode; -export const GetDealerPersonDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetDealerPerson"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"dealerPersonId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"dealer_person"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"accountid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"dealerPersonId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_type"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_financing_accept"}},{"kind":"Field","name":{"kind":"Name","value":"evo_return_leasing_dealer"}},{"kind":"Field","name":{"kind":"Name","value":"evo_broker_accountid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_financing_accept"}}]}}]}}]} as unknown as DocumentNode; -export const GetAgentDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetAgent"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"agentid"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"agent"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"accountid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"agentid"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"accountid"}}]}}]}}]} as unknown as DocumentNode; +export const GetDealerPersonDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetDealerPerson"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"dealerPersonId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"dealer_person"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"accountid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"dealerPersonId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_type"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_financing_accept"}},{"kind":"Field","name":{"kind":"Name","value":"evo_return_leasing_dealer"}},{"kind":"Field","name":{"kind":"Name","value":"evo_broker_accountid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_financing_accept"}},{"kind":"Field","name":{"kind":"Name","value":"evo_legal_form"}},{"kind":"Field","name":{"kind":"Name","value":"evo_inn"}}]}}]}}]} as unknown as DocumentNode; +export const GetAgentDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetAgent"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"agentid"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"agent"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"accountid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"agentid"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"accountid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_inn"}}]}}]}}]} as unknown as DocumentNode; export const GetRewardConditionsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetRewardConditions"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"agentid"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"DateTime"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_reward_conditions"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"filterConditionGroup"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"andFilterConditionGroup"},"value":{"kind":"ListValue","values":[{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"orFilterConditions"},"value":{"kind":"ListValue","values":[{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"filterConditionDateTime"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldName"},"value":{"kind":"StringValue","value":"evo_dateto","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}}]},{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"filterConditionDateTime"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldName"},"value":{"kind":"StringValue","value":"evo_dateto","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"eq"},"value":{"kind":"NullValue"}}]}}]}]}}]},{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"andFilterConditions"},"value":{"kind":"ListValue","values":[{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"filterConditionGuid"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldName"},"value":{"kind":"StringValue","value":"evo_agent_accountid","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"eq"},"value":{"kind":"Variable","name":{"kind":"Name","value":"agentid"}}}]}}]},{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"filterConditionDateTime"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldName"},"value":{"kind":"StringValue","value":"evo_datefrom","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}}]},{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"filterConditionInt"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldName"},"value":{"kind":"StringValue","value":"statecode","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"eq"},"value":{"kind":"IntValue","value":"0"}}]}}]},{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"filterConditionGuid"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldName"},"value":{"kind":"StringValue","value":"evo_agency_agreementid","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"neq"},"value":{"kind":"NullValue"}}]}}]}]}}]}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_reward_conditionid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_reward_summ"}},{"kind":"Field","name":{"kind":"Name","value":"evo_pl_type"}}]}}]}}]} as unknown as DocumentNode; export const GetRewardConditionDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetRewardCondition"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"conditionId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_reward_condition"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_reward_conditionid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"conditionId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_reward_summ"}},{"kind":"Field","name":{"kind":"Name","value":"evo_reduce_reward"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_reward_summ"}},{"kind":"Field","name":{"kind":"Name","value":"evo_agency_agreementidData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_required_reward"}},{"kind":"Field","name":{"kind":"Name","value":"evo_reward_without_other_agent"}},{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_price"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_calc_reward_rules"}}]}}]}}]} as unknown as DocumentNode; export const GetSotCoefficientTypeDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetSotCoefficientType"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"evo_id"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_sot_coefficient_types"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"filterConditionGroup"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"andFilterConditions"},"value":{"kind":"ListValue","values":[{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"filterConditionString"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldName"},"value":{"kind":"StringValue","value":"evo_id","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"eq"},"value":{"kind":"Variable","name":{"kind":"Name","value":"evo_id"}}}]}}]},{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"filterConditionInt"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldName"},"value":{"kind":"StringValue","value":"statecode","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"eq"},"value":{"kind":"IntValue","value":"0"}}]}}]}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_sot_coefficient_typeid"}}]}}]}}]} as unknown as DocumentNode; diff --git a/apps/web/process/supplier-agent/reactions/supplier.ts b/apps/web/process/supplier-agent/reactions/supplier.ts index 6bcd811..3632809 100644 --- a/apps/web/process/supplier-agent/reactions/supplier.ts +++ b/apps/web/process/supplier-agent/reactions/supplier.ts @@ -167,4 +167,48 @@ export function common({ store, apolloClient }: ProcessContext) { .setValue(Boolean(evo_baseproduct?.evo_supplier_financing_accept)); } ); + + { + // eslint-disable-next-line no-inner-declarations + function unblock() { + $calculation.element('cbxPartialVAT').unblock(); + $calculation.element('tbxVATInLeaseObjectPrice').unblock(); + $calculation.element('cbxInsDecentral').unblock(); + $calculation.element('selectDealerPerson').unblock(); + $calculation.element('selectDealerRewardCondition').unblock(); + $calculation.element('selectDealerBroker').unblock(); + $calculation.element('selectDealerBrokerRewardCondition').unblock(); + } + + reaction( + () => $calculation.element('selectDealerPerson').getValue(), + async (dealerPersonId) => { + if (!dealerPersonId) { + unblock(); + + return; + } + + const { data } = await apolloClient.query({ + query: CRMTypes.GetDealerPersonDocument, + variables: { + dealerPersonId, + }, + }); + + if (data?.dealer_person?.evo_legal_form === 100_000_004) { + $calculation.element('cbxPartialVAT').setValue(true).block(); + $calculation.element('tbxVATInLeaseObjectPrice').resetValue().block(); + $calculation.element('cbxInsDecentral').setValue(false).block(); + $calculation.element('selectDealerRewardCondition').block(); + $calculation.element('tbxDealerRewardSumm').resetValue().block(); + $calculation.element('selectDealerBroker').resetValue().block(); + $calculation.element('selectDealerBrokerRewardCondition').resetValue().block(); + $calculation.element('tbxDealerBrokerRewardSumm').resetValue().block(); + } else { + unblock(); + } + } + ); + } } diff --git a/apps/web/process/supplier-agent/validation.ts b/apps/web/process/supplier-agent/validation.ts index 2d2ff3e..92cc088 100644 --- a/apps/web/process/supplier-agent/validation.ts +++ b/apps/web/process/supplier-agent/validation.ts @@ -190,7 +190,7 @@ export function createValidationSchema(context: ValidationContext) { dealerBroker, dealerBrokerRewardCondition, dealerBrokerRewardSumm, - dealerPerson, + dealerPerson: dealerPersonId, dealerRewardCondition, dealerRewardSumm, finDepartmentRewardCondtion, @@ -248,12 +248,12 @@ export function createValidationSchema(context: ValidationContext) { if ( dealerRewardSumm > 0 && - Boolean(dealerPerson) && - ((dealerPerson === dealerBroker && dealerBrokerRewardSumm > 0) || - (dealerPerson === indAgent && indAgentRewardSumm > 0) || - (dealerPerson === calcDoubleAgent && calcDoubleAgentRewardSumm > 0) || - (dealerPerson === calcBroker && calcBrokerRewardSum > 0) || - (dealerPerson === calcFinDepartment && finDepartmentRewardSumm > 0)) + Boolean(dealerPersonId) && + ((dealerPersonId === dealerBroker && dealerBrokerRewardSumm > 0) || + (dealerPersonId === indAgent && indAgentRewardSumm > 0) || + (dealerPersonId === calcDoubleAgent && calcDoubleAgentRewardSumm > 0) || + (dealerPersonId === calcBroker && calcBrokerRewardSum > 0) || + (dealerPersonId === calcFinDepartment && finDepartmentRewardSumm > 0)) ) { ctx.addIssue({ code: z.ZodIssueCode.custom, @@ -265,7 +265,7 @@ export function createValidationSchema(context: ValidationContext) { if ( dealerBrokerRewardSumm > 0 && Boolean(dealerBroker) && - ((dealerBroker === dealerPerson && dealerRewardSumm > 0) || + ((dealerBroker === dealerPersonId && dealerRewardSumm > 0) || (dealerBroker === indAgent && indAgentRewardSumm > 0) || (dealerBroker === calcDoubleAgent && calcDoubleAgentRewardSumm > 0) || (dealerBroker === calcBroker && calcBrokerRewardSum > 0) || @@ -281,7 +281,7 @@ export function createValidationSchema(context: ValidationContext) { if ( indAgentRewardSumm > 0 && Boolean(indAgent) && - ((indAgent === dealerPerson && dealerRewardSumm > 0) || + ((indAgent === dealerPersonId && dealerRewardSumm > 0) || (indAgent === dealerBroker && dealerBrokerRewardSumm > 0) || (indAgent === calcDoubleAgent && calcDoubleAgentRewardSumm > 0) || (indAgent === calcBroker && calcBrokerRewardSum > 0) || @@ -297,7 +297,7 @@ export function createValidationSchema(context: ValidationContext) { if ( calcDoubleAgentRewardSumm > 0 && Boolean(calcDoubleAgent) && - ((calcDoubleAgent === dealerPerson && dealerRewardSumm > 0) || + ((calcDoubleAgent === dealerPersonId && dealerRewardSumm > 0) || (calcDoubleAgent === dealerBroker && dealerBrokerRewardSumm > 0) || (calcDoubleAgent === indAgent && indAgentRewardSumm > 0) || (calcDoubleAgent === calcBroker && calcBrokerRewardSum > 0) || @@ -313,7 +313,7 @@ export function createValidationSchema(context: ValidationContext) { if ( calcBrokerRewardSum > 0 && Boolean(calcBroker) && - ((calcBroker === dealerPerson && dealerRewardSumm > 0) || + ((calcBroker === dealerPersonId && dealerRewardSumm > 0) || (calcBroker === dealerBroker && dealerBrokerRewardSumm > 0) || (calcBroker === indAgent && indAgentRewardSumm > 0) || (calcBroker === calcDoubleAgent && calcDoubleAgentRewardSumm > 0) || @@ -329,7 +329,7 @@ export function createValidationSchema(context: ValidationContext) { if ( finDepartmentRewardSumm > 0 && Boolean(calcFinDepartment) && - ((calcFinDepartment === dealerPerson && dealerRewardSumm > 0) || + ((calcFinDepartment === dealerPersonId && dealerRewardSumm > 0) || (calcFinDepartment === dealerBroker && dealerBrokerRewardSumm > 0) || (calcFinDepartment === indAgent && indAgentRewardSumm > 0) || (calcFinDepartment === calcDoubleAgent && calcDoubleAgentRewardSumm > 0) || @@ -360,7 +360,7 @@ export function createValidationSchema(context: ValidationContext) { }, }); - if (!dealerPerson && !dealer?.evo_return_leasing_dealer) + if (!dealerPersonId && !dealer?.evo_return_leasing_dealer) ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'Не заполнено поле', @@ -377,7 +377,7 @@ export function createValidationSchema(context: ValidationContext) { const { validateRewardSum, validateRewardWithoutOtherAgent } = helper({ ...context, ctx }); await validateRewardSum({ - agentid: dealerPerson, + agentid: dealerPersonId, conditionId: dealerRewardCondition, sum: dealerRewardSumm, sumFieldName: 'tbxDealerRewardSumm', @@ -385,13 +385,13 @@ export function createValidationSchema(context: ValidationContext) { let evo_broker_accountid: string | null = null; - if (dealerPerson) { + if (dealerPersonId) { const { data: { dealer_person }, } = await apolloClient.query({ query: CRMTypes.GetDealerPersonDocument, variables: { - dealerPersonId: dealerPerson, + dealerPersonId, }, }); @@ -482,6 +482,46 @@ export function createValidationSchema(context: ValidationContext) { }); } + if (dealerPersonId) { + const { + data: { dealer_person }, + } = await apolloClient.query({ + query: CRMTypes.GetDealerPersonDocument, + variables: { + dealerPersonId, + }, + }); + + // eslint-disable-next-line no-inner-declarations + async function isAgentEqualsToDealerPerson(agentid: string | null) { + if (!agentid) return false; + if (agentid === dealerPersonId) return true; + + const { data } = await apolloClient.query({ + query: CRMTypes.GetAgentDocument, + variables: { + agentid, + }, + }); + + return data?.agent?.evo_inn === dealer_person?.evo_inn; + } + + if ( + (dealer_person?.evo_legal_form === 100_000_004 && + ((await isAgentEqualsToDealerPerson(indAgent)) || + (await isAgentEqualsToDealerPerson(calcDoubleAgent)))) || + (await isAgentEqualsToDealerPerson(calcBroker)) || + (await isAgentEqualsToDealerPerson(calcFinDepartment)) + ) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: 'Нельзя закладывать АВ поставщику-ФЛ', + path: ['selectDealerPerson'], + }); + } + } + if (brandId) { const { data: { evo_brand }, diff --git a/apps/web/process/used-pl/reactions.ts b/apps/web/process/used-pl/reactions.ts index 64c660f..647f6cb 100644 --- a/apps/web/process/used-pl/reactions.ts +++ b/apps/web/process/used-pl/reactions.ts @@ -90,13 +90,13 @@ export function common({ store, apolloClient }: ProcessContext) { $calculation.element('selectImportProgram').resetValue(); } - if ( - productId && - partialVAT && - $calculation.element('cbxRecalcWithRevision').getValue() === false - ) { - $calculation.element('cbxLeaseObjectUsed').setValue(true); - } + // if ( + // productId && + // partialVAT && + // $calculation.element('cbxRecalcWithRevision').getValue() === false + // ) { + // $calculation.element('cbxLeaseObjectUsed').setValue(true); + // } } );