merge branch migrate/dyn-899_finGAP

This commit is contained in:
Chika 2022-09-30 14:26:18 +03:00
parent f23577913d
commit caaf09fee7
25 changed files with 845 additions and 164 deletions

View File

@ -1,16 +1,39 @@
import Alert from 'Elements/Alert';
import Table from 'Elements/Table'; import Table from 'Elements/Table';
import { toJS } from 'mobx';
import { observer } from 'mobx-react-lite'; import { observer } from 'mobx-react-lite';
import { useStore } from 'stores/hooks'; import { useStore } from 'stores/hooks';
import styled from 'styled-components';
import { Flex } from 'UIKit/grid';
import { columns } from './config'; import { columns } from './config';
const Grid = styled(Flex)`
flex-direction: column;
`;
const Validation = observer(() => {
const store = useStore();
const messages = store.$tables.fingap.validation.getMessages();
if (messages?.length) {
return <Alert type="error" banner message={messages[0]} />;
}
return null;
});
const FinGAPTable = observer(() => { const FinGAPTable = observer(() => {
const { $tables } = useStore(); const { $tables } = useStore();
const { fingap } = $tables; const { fingap } = $tables;
const dataSource = toJS(fingap.risks);
const selectedRowKeys = [...toJS(fingap.selectedKeys)];
return ( return (
<Table <Table
columns={columns} columns={columns}
dataSource={fingap.risks} dataSource={dataSource}
rowSelection={{ rowSelection={{
type: 'checkbox', type: 'checkbox',
onChange: (_, selectedRows) => { onChange: (_, selectedRows) => {
@ -23,6 +46,7 @@ const FinGAPTable = observer(() => {
fingap.setSelectedKeys(selectedKeys); fingap.setSelectedKeys(selectedKeys);
}, },
selectedRowKeys,
}} }}
pagination={false} pagination={false}
size="small" size="small"
@ -33,4 +57,11 @@ const FinGAPTable = observer(() => {
); );
}); });
export default FinGAPTable; export default function () {
return (
<Grid>
<Validation />
<FinGAPTable />
</Grid>
);
}

View File

@ -1,7 +1,6 @@
import { gql, useApolloClient } from '@apollo/client'; import { gql, useQuery } from '@apollo/client';
import type * as CRMTypes from 'graphql/crm.types'; import type * as CRMTypes from 'graphql/crm.types';
import { observer } from 'mobx-react-lite'; import { observer } from 'mobx-react-lite';
import { useState } from 'react';
import { useStore } from 'stores/hooks'; import { useStore } from 'stores/hooks';
const QUERY_GET_CURRENCY_SYMBOL = gql` const QUERY_GET_CURRENCY_SYMBOL = gql`
@ -17,26 +16,17 @@ const CurrencyAddon = observer(() => {
const currencyid = $calculation.$values.getValue('supplierCurrency'); const currencyid = $calculation.$values.getValue('supplierCurrency');
const [currencySymbol, setCurrencySymbol] = useState<string | null | undefined>(null); const { data } = useQuery<
CRMTypes.GetCurrencySymbolQuery,
const { query } = useApolloClient(); CRMTypes.GetCurrencySymbolQueryVariables
>(QUERY_GET_CURRENCY_SYMBOL, {
if (!currencyid) return null;
query<CRMTypes.GetCurrencySymbolQuery, CRMTypes.GetCurrencySymbolQueryVariables>({
query: QUERY_GET_CURRENCY_SYMBOL,
variables: { variables: {
currencyid, currencyid,
}, },
}) skip: !currencyid,
.then(({ data }) => {
setCurrencySymbol(data?.transactioncurrency?.currencysymbol);
})
.catch(() => {
setCurrencySymbol(null);
}); });
return <span>{currencySymbol}</span>; return <span>{data?.transactioncurrency?.currencysymbol}</span>;
}); });
export default <CurrencyAddon />; export default <CurrencyAddon />;

View File

@ -25,6 +25,8 @@ ARG NEXT_PUBLIC_URL_CRM_GRAPHQL_PROXY
ARG NEXT_PUBLIC_URL_CRM_GRAPHQL_DIRECT ARG NEXT_PUBLIC_URL_CRM_GRAPHQL_DIRECT
ARG NEXT_PUBLIC_URL_GET_USER_PROXY ARG NEXT_PUBLIC_URL_GET_USER_PROXY
ARG NEXT_PUBLIC_URL_GET_USER_DIRECT ARG NEXT_PUBLIC_URL_GET_USER_DIRECT
ARG NEXT_PUBLIC_URL_CORE_FINGAP_PROXY
ARG NEXT_PUBLIC_URL_CORE_FINGAP_DIRECT
# Next.js collects completely anonymous telemetry data about general usage. # Next.js collects completely anonymous telemetry data about general usage.
# Learn more here: https://nextjs.org/telemetry # Learn more here: https://nextjs.org/telemetry

9
api/core/query.ts Normal file
View File

@ -0,0 +1,9 @@
/* eslint-disable import/prefer-default-export */
import axios from 'axios';
import type { RequestFinGAP, ResponseFinGAP } from './types';
export async function calculateFinGAP(payload: RequestFinGAP, signal?: AbortSignal) {
return axios.post<ResponseFinGAP>(process.env.NEXT_PUBLIC_URL_CORE_FINGAP_PROXY!, payload, {
signal,
});
}

21
api/core/types.ts Normal file
View File

@ -0,0 +1,21 @@
export type PaymentRow = {
numberPayment?: number;
percentPayment: number;
};
export type RequestFinGAP = {
calcType: number;
payments: Array<PaymentRow>;
values: {
plPrice: number;
discount: number;
firstPayment: number;
leasingPeriod: number;
premiumPerc: number;
};
};
export type ResponseFinGAP = {
sum: number;
premium: number;
};

View File

@ -135,6 +135,8 @@ const defaultValues: CalculationValues = {
importProgramSum: 0, importProgramSum: 0,
addEquipmentPrice: 0, addEquipmentPrice: 0,
bonusCoefficient: 1, bonusCoefficient: 1,
plPriceRub: 0,
discountRub: 0,
}; };
export default defaultValues; export default defaultValues;

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,15 +108,19 @@ 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
evo_reward_conditions(evo_agency_agreementid_param: GuidParamInput, evo_agent_accountid: Uuid, evo_datefrom_param: DateParamInput, evo_dateto_param: DateParamInput, statecode: Int): [evo_reward_condition] evo_reward_conditions(evo_agency_agreementid_param: GuidParamInput, evo_agent_accountid: Uuid, evo_datefrom_param: DateParamInput, evo_dateto_param: DateParamInput, statecode: Int): [evo_reward_condition]
evo_scheduled_call(evo_scheduled_callid: Uuid!): evo_scheduled_call
evo_scheduled_calls(evo_inn: String, evo_status: [Int!], evo_telephone1: String, evo_telephone2: String, statecode: Int): [evo_scheduled_call]
evo_sot_coefficient_types(statecode: Int): [evo_sot_coefficient_type] evo_sot_coefficient_types(statecode: Int): [evo_sot_coefficient_type]
evo_statuscode(evo_id: String, evo_statuscodeid: Uuid): evo_statuscode evo_statuscode(evo_id: String, evo_statuscodeid: Uuid): evo_statuscode
evo_statuscodes(statecode: Int): [evo_statuscode] evo_statuscodes(statecode: Int): [evo_statuscode]
evo_subject_incidents(statecode: Int): [evo_subject_incident] evo_subject_incidents(statecode: Int): [evo_subject_incident]
evo_subsidies(evo_datefrom_param: DateParamInput, evo_dateto_param: DateParamInput, statecode: Int): [evo_subsidy] evo_subsidies(evo_datefrom_param: DateParamInput, evo_dateto_param: DateParamInput, statecode: Int): [evo_subsidy]
evo_subsidy(evo_subsidyid: Uuid!): evo_subsidy
evo_tarif(evo_tarifid: Uuid!): evo_tarif evo_tarif(evo_tarifid: Uuid!): evo_tarif
evo_tarifs(evo_balance_holder: [Int!], evo_baseproductid: Uuid, evo_datefrom_param: DateParamInput, evo_dateto_param: DateParamInput, evo_graphtype_exception: [Int!], evo_ins_type: [Int!], evo_max_first_payment_param: DecimalParamInput, evo_max_last_payment_param: DecimalParamInput, evo_max_period_param: DecimalParamInput, evo_min_first_payment_param: DecimalParamInput, evo_min_last_payment_param: DecimalParamInput, evo_min_period_param: DecimalParamInput, evo_used: Boolean, statecode: Int): [evo_tarif] evo_tarifs(evo_balance_holder: [Int!], evo_baseproductid: Uuid, evo_datefrom_param: DateParamInput, evo_dateto_param: DateParamInput, evo_graphtype_exception: [Int!], evo_ins_type: [Int!], evo_max_first_payment_param: DecimalParamInput, evo_max_last_payment_param: DecimalParamInput, evo_max_period_param: DecimalParamInput, evo_min_first_payment_param: DecimalParamInput, evo_min_last_payment_param: DecimalParamInput, evo_min_period_param: DecimalParamInput, evo_used: Boolean, statecode: Int): [evo_tarif]
evo_town(evo_fias_id: String, evo_townid: Uuid): evo_town evo_town(evo_fias_id: String, evo_townid: Uuid): evo_town
@ -153,7 +157,7 @@ type Query {
"""Поставщики ЮЛ салона. statecode по умолчанию 0""" """Поставщики ЮЛ салона. statecode по умолчанию 0"""
salon_providers(salonaccountid: Uuid!, statecode: Int): [account] salon_providers(salonaccountid: Uuid!, statecode: Int): [account]
systemuser(domainname: String, systemuserid: Uuid): systemuser systemuser(domainname: String, systemuserid: Uuid): systemuser
systemusers(evo_employee_id: String, isdisabled: Boolean = false): [systemuser] systemusers(domainname: String, evo_employee_id: String, isdisabled: Boolean = false): [systemuser]
templates(description: String): [template] templates(description: String): [template]
"""Валюта. statecode по умолчанию 0""" """Валюта. statecode по умолчанию 0"""
@ -165,19 +169,40 @@ type Mutation {
by(systemuserid: Uuid): MutationBy by(systemuserid: Uuid): MutationBy
} }
type entity_schema { type evo_request_client {
entity_id: String createdon: DateTime
entity_set_name: String evo_accountid: Uuid
icon_large_name: String evo_accountidData: account
icon_medium_name: String evo_caseorigincode: Int
icon_small_name: String evo_caseorigincodename: String
logical_name: String evo_client_request_text: String
object_type_code: Int! evo_comment: String
picklists: [picklist] evo_documents: [evo_document]
evo_number: String
evo_owner_systemuserid: Uuid
evo_owner_systemuseridData: systemuser
evo_phonecallid: Uuid
evo_request_clientid: Uuid
evo_site_email: String
evo_site_name: String
evo_site_telephone: String
evo_site_text: String
evo_statuscodeid: Uuid
evo_statuscodeidData: evo_statuscode
evo_storage: String
incidents: [incidentGraphQL]
link: String
modifiedon: DateTime
toObjectString: String
} }
scalar Uuid scalar Uuid
input OrderByInput {
fieldName: String
sortingType: SortingType!
}
input StringParamInput { input StringParamInput {
eq: String eq: String
} }
@ -213,9 +238,63 @@ input GuidParamInput {
"""The built-in `Decimal` scalar type.""" """The built-in `Decimal` scalar type."""
scalar Decimal scalar Decimal
input OrderByInput { type evo_subject_incident {
fieldName: String createdon: DateTime
sortingType: SortingType! 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 {
caseorigincode: Int
createdon: DateTime
customerid: Uuid
customerid_account: Uuid
customerid_contact: Uuid
description: String
evo_accountid_new: Uuid
evo_cession_opportunityid: Uuid
evo_contracts: [evo_contract]
evo_creat_request_client: Uuid
evo_fast_advice: Boolean
evo_plan_execut_date: DateTime
evo_statuscodeid: Uuid
evo_statuscodeidData: evo_statuscode
evo_storage: String
evo_subject_incidentid: Uuid
evo_subject_incidentidData: evo_subject_incident
evo_taken_work_date: DateTime
evo_typedocpackageid: Uuid
incidentid: Uuid
link: String
modifiedon: DateTime
ownerid: Uuid
owneridData: systemuser
ownerid_systemuser: Uuid
ownerid_team: Uuid
subjectid: Uuid
subjectidData: subjectGraphQL
ticketnumber: String
title: String
toObjectString: String
}
type entity_schema {
entity_id: String
entity_set_name: String
icon_large_name: String
icon_medium_name: String
icon_small_name: String
logical_name: String
object_type_code: Int!
picklists: [picklist]
} }
type evo_debtwork_contract { type evo_debtwork_contract {
@ -341,7 +420,6 @@ type account {
evo_ifns_code_branch: String evo_ifns_code_branch: String
evo_ifns_name: String evo_ifns_name: String
evo_inn: String evo_inn: String
evo_insurance_agent_accountid: Uuid
evo_invoice_number_fix: String evo_invoice_number_fix: String
evo_invoice_number_rules: Int evo_invoice_number_rules: Int
evo_kpp: String evo_kpp: String
@ -361,16 +439,21 @@ 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_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
evo_state_status: Int evo_state_status: Int
evo_storage: String
evo_subsidies(statecode: Int): [evo_subsidy] evo_subsidies(statecode: Int): [evo_subsidy]
evo_supplier_type: Int
evo_tax_system: Int evo_tax_system: Int
evo_type_ins_policy: [Int!] evo_type_ins_policy: [Int!]
evo_unscrupulous_supplier: Boolean
incidents: [incidentGraphQL]
link: String link: String
modifiedon: DateTime modifiedon: DateTime
name: String name: String
@ -382,6 +465,8 @@ type account {
ownerid_team: Uuid ownerid_team: Uuid
statecode: Int statecode: Int
telephone1: String telephone1: String
telephone2: String
telephone3: String
toObjectString: String toObjectString: String
} }
@ -523,7 +608,6 @@ type evo_graph {
evo_cost_price_telematics_withoutnds_sum: Decimal evo_cost_price_telematics_withoutnds_sum: Decimal
evo_cost_telematics_sum: Decimal evo_cost_telematics_sum: Decimal
evo_cost_telematics_withoutnds_sum: Decimal evo_cost_telematics_withoutnds_sum: Decimal
evo_graf_date_approve: DateTime
evo_graphid: Uuid evo_graphid: Uuid
evo_name: String evo_name: String
evo_nds: Decimal evo_nds: Decimal
@ -543,6 +627,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
@ -551,6 +636,7 @@ type evo_insurance_period {
evo_dateto: DateTime evo_dateto: DateTime
evo_dgo_price: Decimal evo_dgo_price: Decimal
evo_elt_id: String evo_elt_id: String
evo_evokasko_price: Decimal
evo_exp_drivers: Int evo_exp_drivers: Int
evo_franchise: Decimal evo_franchise: Decimal
evo_id: String evo_id: String
@ -686,7 +772,6 @@ type evo_leasingobject {
evo_color: String evo_color: String
evo_contractid: Uuid evo_contractid: Uuid
evo_create_contract_purchase: Boolean evo_create_contract_purchase: Boolean
evo_date_withdrawal: DateTime
evo_delivery_time: Int evo_delivery_time: Int
evo_driving_axle: String evo_driving_axle: String
evo_ecological_class: Int evo_ecological_class: Int
@ -814,6 +899,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
@ -822,6 +908,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
@ -848,6 +935,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!]
@ -894,6 +982,7 @@ type opportunity {
evo_sfm_comment: [Int!] evo_sfm_comment: [Int!]
evo_solution_average_cost: Int evo_solution_average_cost: Int
evo_solution_average_cost_com: String evo_solution_average_cost_com: String
evo_solution_average_cost_reason: String
evo_solution_db: Int evo_solution_db: Int
evo_statuscodeid: Uuid evo_statuscodeid: Uuid
evo_statuscodeidData: evo_statuscode evo_statuscodeidData: evo_statuscode
@ -934,6 +1023,7 @@ type quote {
evo_agent_accountid: Uuid evo_agent_accountid: Uuid
evo_agent_reward_conditionid: Uuid evo_agent_reward_conditionid: Uuid
evo_agent_reward_summ: Decimal evo_agent_reward_summ: Decimal
evo_agent_reward_tech: Decimal
evo_agent_reward_total: Decimal evo_agent_reward_total: Decimal
evo_age_drivers: Int evo_age_drivers: Int
evo_another_payments: Decimal evo_another_payments: Decimal
@ -947,6 +1037,7 @@ type quote {
evo_broker_accountid: Uuid evo_broker_accountid: Uuid
evo_broker_reward_conditionid: Uuid evo_broker_reward_conditionid: Uuid
evo_broker_reward_summ: Decimal evo_broker_reward_summ: Decimal
evo_broker_reward_tech: Decimal
evo_broker_reward_total: Decimal evo_broker_reward_total: Decimal
evo_calc_irr: Decimal evo_calc_irr: Decimal
evo_calc_profit: Decimal evo_calc_profit: Decimal
@ -955,6 +1046,7 @@ type quote {
evo_card_quote: Boolean evo_card_quote: Boolean
evo_category: Int evo_category: Int
evo_category_tr: Int evo_category_tr: Int
evo_check_average_result: Int
evo_check_ins_result: Int evo_check_ins_result: Int
evo_client_riskid: Uuid evo_client_riskid: Uuid
evo_client_typeid: Uuid evo_client_typeid: Uuid
@ -968,8 +1060,10 @@ type quote {
evo_dealer_broker_accountid: Uuid evo_dealer_broker_accountid: Uuid
evo_dealer_broker_reward_conditionid: Uuid evo_dealer_broker_reward_conditionid: Uuid
evo_dealer_broker_reward_summ: Decimal evo_dealer_broker_reward_summ: Decimal
evo_dealer_broker_reward_tech: Decimal
evo_dealer_broker_reward_total: Decimal evo_dealer_broker_reward_total: Decimal
evo_dealer_person_accountid: Uuid evo_dealer_person_accountid: Uuid
evo_dealer_person_reward_tech: Decimal
evo_dealer_reward_conditionid: Uuid evo_dealer_reward_conditionid: Uuid
evo_dealer_reward_summ: Decimal evo_dealer_reward_summ: Decimal
evo_dealer_reward_total: Decimal evo_dealer_reward_total: Decimal
@ -980,6 +1074,7 @@ type quote {
evo_declaration_year: Int evo_declaration_year: Int
evo_delivery_time: Int evo_delivery_time: Int
evo_dgo_price: Decimal evo_dgo_price: Decimal
evo_diagnostic: Int
evo_director_bonus: Decimal evo_director_bonus: Decimal
evo_director_fingap_bonus: Decimal evo_director_fingap_bonus: Decimal
evo_director_nsib_bonus: Decimal evo_director_nsib_bonus: Decimal
@ -990,6 +1085,7 @@ type quote {
evo_double_agent_accountid: Uuid evo_double_agent_accountid: Uuid
evo_double_agent_reward_conditionid: Uuid evo_double_agent_reward_conditionid: Uuid
evo_double_agent_reward_summ: Decimal evo_double_agent_reward_summ: Decimal
evo_double_agent_reward_tech: Decimal
evo_double_agent_reward_total: Decimal evo_double_agent_reward_total: Decimal
evo_economic: Decimal evo_economic: Decimal
evo_economic_with_nds: Decimal evo_economic_with_nds: Decimal
@ -999,6 +1095,7 @@ type quote {
evo_equipmentid: Uuid evo_equipmentid: Uuid
evo_equip_price: Decimal evo_equip_price: Decimal
evo_equity_capital: Decimal evo_equity_capital: Decimal
evo_evokasko_price: Decimal
evo_exp_drivers: Int evo_exp_drivers: Int
evo_fingap_accountid: Uuid evo_fingap_accountid: Uuid
evo_fingap_bonus_sum: Decimal evo_fingap_bonus_sum: Decimal
@ -1009,6 +1106,7 @@ type quote {
evo_fin_department_accountid: Uuid evo_fin_department_accountid: Uuid
evo_fin_department_reward_conditionid: Uuid evo_fin_department_reward_conditionid: Uuid
evo_fin_department_reward_summ: Decimal evo_fin_department_reward_summ: Decimal
evo_fin_department_reward_tech: Decimal
evo_fin_department_reward_total: Decimal evo_fin_department_reward_total: Decimal
evo_first_dgo_price: Decimal evo_first_dgo_price: Decimal
evo_first_kasko_accountid: Uuid evo_first_kasko_accountid: Uuid
@ -1147,6 +1245,7 @@ type quote {
evo_report_year: Int evo_report_year: Int
evo_req_telematic: Int evo_req_telematic: Int
evo_req_telematic_accept: Int evo_req_telematic_accept: Int
evo_return_leasing: Boolean
evo_risk: Int evo_risk: Int
evo_risk_coefficientid: Uuid evo_risk_coefficientid: Uuid
evo_risk_profit_coefficientid: Uuid evo_risk_profit_coefficientid: Uuid
@ -1163,6 +1262,7 @@ type quote {
evo_subsidy_summ: Decimal evo_subsidy_summ: Decimal
evo_supplier_accountid: Uuid evo_supplier_accountid: Uuid
evo_supplier_currency_price: Decimal evo_supplier_currency_price: Decimal
evo_supplier_type: Int
evo_tarifid: Uuid evo_tarifid: Uuid
evo_tax_period: Decimal evo_tax_period: Decimal
evo_telematic: Boolean evo_telematic: Boolean
@ -1359,6 +1459,29 @@ type evo_gps_model {
toObjectString: String toObjectString: String
} }
type evo_scheduled_call {
createdon: DateTime
evo_accountid: Uuid
evo_channel: String
evo_comment: String
evo_company_name: String
evo_contact_jobtitle: String
evo_contact_lastname: String
evo_contact_name: String
evo_inn: String
evo_leadid: Uuid
evo_name: String
evo_note: String
evo_scheduled_callid: Uuid
evo_scheduled_time: DateTime
evo_status: Int
evo_telephone1: String
evo_telephone2: String
modifiedon: DateTime
ownerid: Uuid
toObjectString: String
}
type evo_impairment_group { type evo_impairment_group {
createdon: DateTime createdon: DateTime
evo_impairment_groupid: Uuid evo_impairment_groupid: Uuid
@ -1415,13 +1538,13 @@ type evo_request_payment {
evo_finegibddidData: evo_finegibdd evo_finegibddidData: evo_finegibdd
evo_id: String evo_id: String
evo_inn: String evo_inn: String
evo_insurance_addcontractid: Uuid
evo_insurance_periodid: Uuid evo_insurance_periodid: Uuid
evo_insurance_policyid: Uuid evo_insurance_policyid: Uuid
evo_insurance_policyidData: evo_insurance_policy evo_insurance_policyidData: evo_insurance_policy
evo_kpp: String evo_kpp: String
evo_leasingobjectid: Uuid evo_leasingobjectid: Uuid
evo_name: String evo_name: String
evo_new_version: Boolean
evo_number_dkp: String evo_number_dkp: String
evo_oktmo_mreo: String evo_oktmo_mreo: String
evo_opportunityid: Uuid evo_opportunityid: Uuid
@ -1442,9 +1565,11 @@ type evo_request_payment {
evo_region_director_systemuserid: Uuid evo_region_director_systemuserid: Uuid
evo_request_paymentid: Uuid evo_request_paymentid: Uuid
evo_request_payment_type: Int evo_request_payment_type: Int
evo_service_list: [Int!]
evo_statuscodeid: Uuid evo_statuscodeid: Uuid
evo_storage: String evo_storage: String
evo_supplier_payment_type: Int evo_supplier_payment_type: Int
evo_top_agency_agreementid: Uuid
evo_transactioncurrencyid: Uuid evo_transactioncurrencyid: Uuid
evo_transfer_contact: Boolean evo_transfer_contact: Boolean
evo_vat: Decimal evo_vat: Decimal
@ -1466,10 +1591,13 @@ type evo_contract {
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_advance_pay_long_delivery: Decimal
evo_agent_accountid: Uuid evo_agent_accountid: Uuid
evo_agent_request_paymentid: Uuid
evo_agent_reward: Decimal evo_agent_reward: Decimal
evo_agent_reward_conditionid: Uuid evo_agent_reward_conditionid: Uuid
evo_agent_reward_summ: Decimal evo_agent_reward_summ: Decimal
evo_agent_service_list: [Int!]
evo_approvallogs: [evo_approvallog] evo_approvallogs: [evo_approvallog]
evo_balance_holder: Int evo_balance_holder: Int
evo_bank_detailsid: Uuid evo_bank_detailsid: Uuid
@ -1477,9 +1605,11 @@ type evo_contract {
evo_base_calc_pay: Decimal evo_base_calc_pay: Decimal
evo_bonus_pay_systemuserid: Uuid evo_bonus_pay_systemuserid: Uuid
evo_broker_accountid: Uuid evo_broker_accountid: Uuid
evo_broker_request_paymentid: Uuid
evo_broker_reward: Decimal evo_broker_reward: Decimal
evo_broker_reward_conditionid: Uuid evo_broker_reward_conditionid: Uuid
evo_broker_reward_summ: Decimal evo_broker_reward_summ: Decimal
evo_broker_service_list: [Int!]
evo_businessunitid: Uuid evo_businessunitid: Uuid
evo_calc_irr: Decimal evo_calc_irr: Decimal
evo_calc_profit: Decimal evo_calc_profit: Decimal
@ -1495,26 +1625,31 @@ 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
evo_date_termination: DateTime evo_date_termination: DateTime
evo_dealer_broker_accountid: Uuid evo_dealer_broker_accountid: Uuid
evo_dealer_broker_request_paymentid: Uuid
evo_dealer_broker_reward: Decimal evo_dealer_broker_reward: Decimal
evo_dealer_broker_reward_conditionid: Uuid evo_dealer_broker_reward_conditionid: Uuid
evo_dealer_broker_reward_summ: Decimal evo_dealer_broker_reward_summ: Decimal
evo_dealer_broker_service_list: [Int!]
evo_dealer_person_accountid: Uuid evo_dealer_person_accountid: Uuid
evo_dealer_person_accountidData: account evo_dealer_person_accountidData: account
evo_dealer_person_request_paymentid: Uuid
evo_dealer_person_reward: Decimal evo_dealer_person_reward: Decimal
evo_dealer_person_reward_conditionid: Uuid evo_dealer_person_reward_conditionid: Uuid
evo_dealer_person_reward_summ: Decimal evo_dealer_person_reward_summ: Decimal
evo_dealer_person_service_list: [Int!]
evo_debtwork_contractid: Uuid evo_debtwork_contractid: Uuid
evo_debtwork_contractidData: evo_debtwork_contract
evo_debtwork_contracts: [evo_debtwork_contract] evo_debtwork_contracts: [evo_debtwork_contract]
evo_debt_leasing: Decimal evo_debt_leasing: Decimal
evo_debt_penalty_fee: Decimal evo_debt_penalty_fee: Decimal
evo_debt_total: Decimal evo_debt_total: Decimal
evo_delay_days_count: Int evo_delay_days_count: Int
evo_delay_period: DateTime
evo_director_bonus: Decimal evo_director_bonus: Decimal
evo_director_fingap_bonus: Decimal evo_director_fingap_bonus: Decimal
evo_director_nsib_bonus: Decimal evo_director_nsib_bonus: Decimal
@ -1522,12 +1657,15 @@ 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
evo_double_agent_request_paymentid: Uuid
evo_double_agent_reward: Decimal evo_double_agent_reward: Decimal
evo_double_agent_reward_conditionid: Uuid evo_double_agent_reward_conditionid: Uuid
evo_double_agent_reward_summ: Decimal evo_double_agent_reward_summ: Decimal
evo_double_agent_service_list: [Int!]
evo_economic: Decimal evo_economic: Decimal
evo_economic_actual: Decimal evo_economic_actual: Decimal
evo_economic_with_nds: Decimal evo_economic_with_nds: Decimal
@ -1542,9 +1680,11 @@ type evo_contract {
evo_fingap_period: Int evo_fingap_period: Int
evo_finmon_message_date: DateTime evo_finmon_message_date: DateTime
evo_fin_department_accountid: Uuid evo_fin_department_accountid: Uuid
evo_fin_department_request_paymentid: Uuid
evo_fin_department_reward: Decimal evo_fin_department_reward: Decimal
evo_fin_department_reward_conditionid: Uuid evo_fin_department_reward_conditionid: Uuid
evo_fin_department_reward_summ: Decimal evo_fin_department_reward_summ: Decimal
evo_fin_department_service_list: [Int!]
evo_first_payment_fact: Decimal evo_first_payment_fact: Decimal
evo_first_payment_fact_date: DateTime evo_first_payment_fact_date: DateTime
evo_first_payment_perc: Decimal evo_first_payment_perc: Decimal
@ -1552,6 +1692,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]
@ -1568,6 +1709,10 @@ type evo_contract {
evo_irr_msfo_final_actual: Decimal evo_irr_msfo_final_actual: Decimal
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_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
@ -1580,7 +1725,6 @@ type evo_contract {
evo_name: String evo_name: String
evo_nds_in_price_supplier_currency: Decimal evo_nds_in_price_supplier_currency: Decimal
evo_nds_perc: Decimal evo_nds_perc: Decimal
evo_nearest_payment_num: String
evo_net_irr: Decimal evo_net_irr: Decimal
evo_niatinception_msfo: Decimal evo_niatinception_msfo: Decimal
evo_niatinception_msfo_actual: Decimal evo_niatinception_msfo_actual: Decimal
@ -1633,13 +1777,16 @@ type evo_contract {
evo_supplier_bank_detailsidData: evo_bank_details evo_supplier_bank_detailsidData: evo_bank_details
evo_supplier_currency_price: Decimal evo_supplier_currency_price: Decimal
evo_supplier_pay1_sum: Decimal evo_supplier_pay1_sum: Decimal
evo_supplier_pay2_sum: Decimal
evo_supplier_payfull_date: DateTime evo_supplier_payfull_date: DateTime
evo_supplier_pay_actual: Decimal evo_supplier_pay_actual: Decimal
evo_supplier_pay_actual_currency: Decimal evo_supplier_pay_actual_currency: Decimal
evo_supplier_signer_contactid: Uuid evo_supplier_signer_contactid: Uuid
evo_supplier_type: Int
evo_tarifid: Uuid evo_tarifid: Uuid
evo_telematics_addproduct_typeid: Uuid evo_telematics_addproduct_typeid: Uuid
evo_telematics_addproduct_typeid_new: Uuid evo_telematics_addproduct_typeid_new: Uuid
evo_telematics_equipment2_addproductid: Uuid
evo_telematics_equipment_addproductid: Uuid evo_telematics_equipment_addproductid: Uuid
evo_telematics_equipment_addproductidData: evo_addproduct evo_telematics_equipment_addproductidData: evo_addproduct
evo_telematics_service_addproductid: Uuid evo_telematics_service_addproductid: Uuid
@ -1899,6 +2046,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
@ -1909,6 +2057,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
@ -1937,8 +2087,11 @@ type systemuser {
businessunitidData: businessunit businessunitidData: businessunit
createdon: DateTime createdon: DateTime
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_datebirth: DateTime evo_datebirth: DateTime
evo_employee_id: String evo_employee_id: String
evo_fedresurs_rules: Boolean evo_fedresurs_rules: Boolean
@ -2025,23 +2178,33 @@ type evo_agency_agreement {
evo_agency_agreement_type: Int evo_agency_agreement_type: Int
evo_agent_accountid: Uuid evo_agent_accountid: Uuid
evo_agent_accountidData: account evo_agent_accountidData: account
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
evo_branch_agreement: Boolean
evo_businessunitid: Uuid evo_businessunitid: Uuid
evo_contactid: Uuid evo_contactid: Uuid
evo_datefrom: DateTime evo_datefrom: DateTime
evo_dateto: DateTime evo_dateto: DateTime
evo_date_change_statuscode: DateTime evo_date_change_statuscode: DateTime
evo_decentral: Boolean
evo_director_comment: String evo_director_comment: String
evo_director_decision: Int evo_director_decision: Int
evo_leasingobject_price: Int evo_leasingobject_price: Int
evo_location: String
evo_name: String evo_name: String
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_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
@ -2053,7 +2216,9 @@ type evo_agency_agreement {
evo_term_topboss_systemuserid: Uuid evo_term_topboss_systemuserid: Uuid
evo_topboss_comment: String evo_topboss_comment: String
evo_topboss_decision: Int evo_topboss_decision: Int
evo_top_agency_agreementid: Uuid
evo_top_termination: Int evo_top_termination: Int
evo_untype_doc: Boolean
modifiedon: DateTime modifiedon: DateTime
ownerid_systemuser: Uuid ownerid_systemuser: Uuid
ownerid_team: Uuid ownerid_team: Uuid
@ -2073,6 +2238,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
@ -2087,6 +2253,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
@ -2144,6 +2311,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
@ -2171,8 +2339,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
@ -2183,6 +2353,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
@ -2367,12 +2538,12 @@ type email {
evo_accountid: Uuid evo_accountid: Uuid
modifiedon: DateTime modifiedon: DateTime
regardingobjectid_account: Uuid regardingobjectid_account: Uuid
regardingobjectid_evo_addcontract: Uuid
regardingobjectid_evo_contract: Uuid regardingobjectid_evo_contract: Uuid
regardingobjectid_evo_insurance_period: Uuid regardingobjectid_evo_insurance_period: Uuid
regardingobjectid_evo_insurance_policy: Uuid regardingobjectid_evo_insurance_policy: Uuid
regardingobjectid_evo_insurance_policyData: evo_insurance_policy regardingobjectid_evo_insurance_policyData: evo_insurance_policy
regardingobjectid_evo_list: Uuid regardingobjectid_evo_list: Uuid
regardingobjectid_incident: Uuid
regardingobjectid_opportunity: Uuid regardingobjectid_opportunity: Uuid
statuscode: Int statuscode: Int
subject: String subject: String
@ -2431,99 +2602,22 @@ 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
toObjectString: String toObjectString: String
} }
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 {
createdon: DateTime
customerid: Uuid
customerid_account: Uuid
customerid_contact: Uuid
description: String
evo_fast_advice: Boolean
evo_plan_execut_date: DateTime
evo_statuscodeid: Uuid
evo_statuscodeidData: evo_statuscode
evo_storage: String
evo_subject_incidentid: Uuid
evo_subject_incidentidData: evo_subject_incident
evo_taken_work_date: DateTime
evo_typedocpackageid: Uuid
incidentid: Uuid
link: String
modifiedon: DateTime
ownerid: Uuid
owneridData: systemuser
subjectid: Uuid
ticketnumber: String
title: String
toObjectString: String
}
type MutationBy { type MutationBy {
associateBankDetailsAndAgencyAgreement_(evo_agency_agreementid: Uuid!, evo_bank_detailsid: Uuid!): Entity associateBankDetailsAndAgencyAgreement_(evo_agency_agreementid: Uuid!, evo_bank_detailsid: Uuid!): Entity
createEntity(data: EntityDataInput): Uuid! createEntity(data: EntityDataInput): Uuid!
createIncident_(contracts: [Uuid!], customerid_account: Uuid, description: String, evo_fast_advice: Boolean, evo_subject_incidentid: Uuid, subjectid: Uuid, title: String): Entity createIncident_(contracts: [Uuid!], customerid_account: Uuid, description: String, evo_fast_advice: Boolean, evo_subject_incidentid: Uuid, subjectid: Uuid, title: String): Entity
createScheduledCall_(evo_accountid: Uuid, evo_channel: String, evo_company_name: String, evo_contact_lastname: String, evo_contact_name: String, evo_inn: String, evo_name: String, evo_note: String, evo_scheduled_time: DateTime, evo_status: Int, evo_telephone1: String, ownerid: Uuid): Entity
updateAccount_(accountid: Uuid!, evo_agency_agreementid: Uuid): Entity updateAccount_(accountid: Uuid!, evo_agency_agreementid: Uuid): Entity
updateEntity(data: EntityDataInput): Boolean! updateEntity(data: EntityDataInput): Boolean!
} }
type picklist {
name: String
values: [picklist_value]
}
"""The `DateTime` scalar represents an ISO-8601 compliant date time type."""
scalar DateTime
input FilterInput {
fieldname: String
guidvalues: [Uuid]
intvalues: [Int!]
operation: FilterOperation!
stringvalues: [String]
}
enum LogicOperation {
AND
OR
}
enum SortingType {
DESC
ASC
}
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
@ -2551,6 +2645,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]
@ -2665,24 +2806,6 @@ type Entity {
logical_name: String logical_name: String
} }
type picklist_value {
color: String
label: String
order: Int!
value: Int!
}
enum FilterOperation {
ISNULL
EQUAL
CONTAINS
NOTCONTAINS
MORETHEN
MOREOREQUALTHEN
LESSTHEN
LESSOREQUALTHEN
}
type evo_documenttype { type evo_documenttype {
createdon: DateTime createdon: DateTime
evo_comment: String evo_comment: String
@ -2701,6 +2824,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

@ -122,6 +122,41 @@ export type GetCurrencySymbolQueryVariables = Exact<{
export type GetCurrencySymbolQuery = { __typename?: 'Query', transactioncurrency?: { __typename?: 'transactioncurrency', currencysymbol?: string | null } | null }; export type GetCurrencySymbolQuery = { __typename?: 'Query', transactioncurrency?: { __typename?: 'transactioncurrency', currencysymbol?: string | null } | null };
export type GetAgentQueryVariables = Exact<{
agentid: Scalars['Uuid'];
}>;
export type GetAgentQuery = { __typename?: 'Query', agent?: { __typename?: 'account', label?: string | null, value?: any | null } | null };
export type GetAgentAccountIdFromLeadQueryVariables = Exact<{
leadid: Scalars['Uuid'];
}>;
export type GetAgentAccountIdFromLeadQuery = { __typename?: 'Query', lead?: { __typename?: 'lead', agentid?: any | null } | null };
export type GetDoubleAgentAccountIdQueryVariables = Exact<{
leadid: Scalars['Uuid'];
}>;
export type GetDoubleAgentAccountIdQuery = { __typename?: 'Query', lead?: { __typename?: 'lead', agentid?: any | null } | null };
export type GetBrokerAccountIdQueryVariables = Exact<{
leadid: Scalars['Uuid'];
}>;
export type GetBrokerAccountIdQuery = { __typename?: 'Query', lead?: { __typename?: 'lead', agentid?: any | null } | null };
export type GetFinDepartmentAccountIdQueryVariables = Exact<{
leadid: Scalars['Uuid'];
}>;
export type GetFinDepartmentAccountIdQuery = { __typename?: 'Query', lead?: { __typename?: 'lead', agentid?: any | null } | null };
export type GetDealerPersonQueryVariables = Exact<{ export type GetDealerPersonQueryVariables = Exact<{
dealerId: Scalars['Uuid']; dealerId: Scalars['Uuid'];
}>; }>;
@ -136,13 +171,6 @@ export type GetBrokerAccountIdFromDealerQueryVariables = Exact<{
export type GetBrokerAccountIdFromDealerQuery = { __typename?: 'Query', dealer?: { __typename?: 'account', evo_broker_accountid?: any | null } | null }; export type GetBrokerAccountIdFromDealerQuery = { __typename?: 'Query', dealer?: { __typename?: 'account', evo_broker_accountid?: any | null } | null };
export type GetAgentQueryVariables = Exact<{
agentid: Scalars['Uuid'];
}>;
export type GetAgentQuery = { __typename?: 'Query', agent?: { __typename?: 'account', label?: string | null, value?: any | null } | null };
export type GetRewardConditionsQueryVariables = Exact<{ export type GetRewardConditionsQueryVariables = Exact<{
agentid: Scalars['Uuid']; agentid: Scalars['Uuid'];
currentDate?: InputMaybe<Scalars['DateTime']>; currentDate?: InputMaybe<Scalars['DateTime']>;
@ -158,6 +186,13 @@ export type GetRewardSummQueryVariables = Exact<{
export type GetRewardSummQuery = { __typename?: 'Query', evo_reward_condition?: { __typename?: 'evo_reward_condition', evo_reward_summ?: any | null } | null }; export type GetRewardSummQuery = { __typename?: 'Query', evo_reward_condition?: { __typename?: 'evo_reward_condition', evo_reward_summ?: any | null } | null };
export type GetFinGapAddProductTypesQueryVariables = Exact<{
currentDate?: InputMaybe<Scalars['DateTime']>;
}>;
export type GetFinGapAddProductTypesQuery = { __typename?: 'Query', evo_addproduct_types?: Array<{ __typename?: 'evo_addproduct_type', evo_addproduct_typeid?: any | null, evo_name?: string | null, evo_type_calc_cerebellum?: number | null, evo_cost_service_provider_withoutnds?: any | null, evo_addproduct_types?: Array<{ __typename?: 'evo_addproduct_type', evo_addproduct_typeid?: any | null } | null> | null } | null> | null };
export type GetAddproductTypesQueryVariables = Exact<{ [key: string]: never; }>; export type GetAddproductTypesQueryVariables = Exact<{ [key: string]: never; }>;
@ -206,6 +241,11 @@ export type GetOwnerDataQueryVariables = Exact<{
export type GetOwnerDataQuery = { __typename?: 'Query', selectLead?: Array<{ __typename?: 'lead', label?: string | null, value?: any | null } | null> | null, selectOpportunity?: Array<{ __typename?: 'opportunity', label?: string | null, value?: any | null } | null> | null }; export type GetOwnerDataQuery = { __typename?: 'Query', selectLead?: Array<{ __typename?: 'lead', label?: string | null, value?: any | null } | null> | null, selectOpportunity?: Array<{ __typename?: 'opportunity', label?: string | null, value?: any | null } | null> | null };
export type GetTransactionCurrenciesQueryVariables = Exact<{ [key: string]: never; }>;
export type GetTransactionCurrenciesQuery = { __typename?: 'Query', transactioncurrencies?: Array<{ __typename?: 'transactioncurrency', isocurrencycode?: string | null, transactioncurrencyid?: any | null } | null> | null };
export type GetOpportunityByLeadQueryVariables = Exact<{ export type GetOpportunityByLeadQueryVariables = Exact<{
leadid: Scalars['Uuid']; leadid: Scalars['Uuid'];
}>; }>;
@ -247,3 +287,17 @@ export type GetQuoteUrlQueryVariables = Exact<{
export type GetQuoteUrlQuery = { __typename?: 'Query', entity?: { __typename?: 'quote', link?: string | null } | null }; export type GetQuoteUrlQuery = { __typename?: 'Query', entity?: { __typename?: 'quote', link?: string | null } | null };
export type GetCurrencyChangesQueryVariables = Exact<{
currentDate?: InputMaybe<Scalars['DateTime']>;
}>;
export type GetCurrencyChangesQuery = { __typename?: 'Query', evo_currencychanges?: Array<{ __typename?: 'evo_currencychange', evo_currencychange?: any | null, evo_ref_transactioncurrency?: any | null } | null> | null };
export type GetCurrencyIsoCodeQueryVariables = Exact<{
id: Scalars['Uuid'];
}>;
export type GetCurrencyIsoCodeQuery = { __typename?: 'Query', transactioncurrency?: { __typename?: 'transactioncurrency', isocurrencycode?: string | null } | null };

View File

@ -1,4 +1,5 @@
import { rest } from 'msw'; import { rest } from 'msw';
import { random } from 'radash';
const users = { const users = {
akalinina: { akalinina: {
@ -25,4 +26,12 @@ export const handlers = [
rest.get('http://auth_service/user', (req, res, ctx) => { rest.get('http://auth_service/user', (req, res, ctx) => {
return res(ctx.json(users.vchikalkin)); return res(ctx.json(users.vchikalkin));
}), }),
rest.post('/api/core/fingap', (req, res, ctx) => {
return res(
ctx.json({
sum: random(100000, 200000),
premium: random(1000, 10000),
})
);
}),
]; ];

View File

@ -28,6 +28,10 @@ const nextConfig = {
source: process.env.NEXT_PUBLIC_URL_GET_USER_PROXY, source: process.env.NEXT_PUBLIC_URL_GET_USER_PROXY,
destination: process.env.NEXT_PUBLIC_URL_GET_USER_DIRECT, destination: process.env.NEXT_PUBLIC_URL_GET_USER_DIRECT,
}, },
{
source: process.env.NEXT_PUBLIC_URL_CORE_FINGAP_PROXY,
destination: process.env.NEXT_PUBLIC_URL_CORE_FINGAP_DIRECT,
},
]; ];
}, },
}; };

View File

@ -25,7 +25,6 @@
"antd": "^4.21.3", "antd": "^4.21.3",
"axios": "^0.27.2", "axios": "^0.27.2",
"dayjs": "^1.11.2", "dayjs": "^1.11.2",
"graphql": "^16.6.0",
"less": "^4.1.3", "less": "^4.1.3",
"less-loader": "^11.0.0", "less-loader": "^11.0.0",
"mobx": "^6.5.0", "mobx": "^6.5.0",

View File

@ -1,6 +1,6 @@
/* eslint-disable object-curly-newline */ /* eslint-disable object-curly-newline */
import { useApolloClient } from '@apollo/client'; import { useApolloClient } from '@apollo/client';
import { dehydrate, QueryClient } from '@tanstack/react-query'; import { dehydrate, QueryClient, useQueryClient } from '@tanstack/react-query';
import { getUser } from 'api/user/query'; import { getUser } from 'api/user/query';
import initializeApollo from 'apollo/client'; import initializeApollo from 'apollo/client';
import * as Calculation from 'Components/Calculation'; import * as Calculation from 'Components/Calculation';
@ -41,10 +41,11 @@ const Grid = styled(Box)`
function Home() { function Home() {
const store = useStore(); const store = useStore();
const apolloClient = useApolloClient(); const apolloClient = useApolloClient();
const queryClient = useQueryClient();
useEffect(() => { useEffect(() => {
getData(apolloClient, store); getData(apolloClient, store);
injectDefaultReactions(store, apolloClient); injectDefaultReactions(store, apolloClient, queryClient);
}, []); }, []);
return ( return (

View File

@ -9,8 +9,9 @@ export default function validationReactions(store: RootStore, apolloClient: Apol
const hasElementsErrors = $calculation.$validation.hasErrors; const hasElementsErrors = $calculation.$validation.hasErrors;
const hasPaymentsErrors = $tables.payments.validation.hasErrors; const hasPaymentsErrors = $tables.payments.validation.hasErrors;
const hasInsuranceErrors = $tables.insurance.validation.hasErrors; const hasInsuranceErrors = $tables.insurance.validation.hasErrors;
const hasFingapErrors = $tables.fingap.validation.hasErrors;
return hasElementsErrors || hasPaymentsErrors || hasInsuranceErrors; return hasElementsErrors || hasPaymentsErrors || hasInsuranceErrors || hasFingapErrors;
}, },
(hasErrors) => { (hasErrors) => {
if (hasErrors) { if (hasErrors) {

View File

@ -0,0 +1,227 @@
/* eslint-disable implicit-arrow-linebreak */
/* eslint-disable unicorn/consistent-function-scoping */
/* eslint-disable @typescript-eslint/naming-convention */
import type { ApolloClient } from '@apollo/client';
import { gql } from '@apollo/client';
import type { QueryClient, QueryFunctionContext } from '@tanstack/react-query';
import { calculateFinGAP } from 'api/core/query';
import type { RequestFinGAP } from 'api/core/types';
import type { Risk } from 'Components/Calculation/Form/Insurance/FinGAPTable/types';
import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
import type * as CRMTypes from 'graphql/crm.types';
import { comparer, reaction, toJS } from 'mobx';
import type RootStore from 'stores/root';
dayjs.extend(utc);
export default function commonReactions(
store: RootStore,
apolloClient: ApolloClient<object>,
queryClient: QueryClient
) {
const { $calculation, $tables } = store;
// Расчет итоговой суммы ФинГАП и запись в таблицу страхования
reaction(
() => $tables.fingap.totalSum,
(totalSum) => {
$tables.insurance.setRowValues('fingap', {
insCost: totalSum,
});
}
);
/**
Реакция на изменение Страховой компании у ФинГАП и Срока лизинга:
Если Страхованя компания = Не выбрано, то
Плательщик insuredFinGAP = ЛП (100 000 000) и закрыто для редактирования,
Стоимость за первый период inscostFinGAP = 0
Срок страхования insTermFinGAP = 12 мес (100 000 000) и закрыто для редактирования
иначе
Плательщик insuredFinGAP = открыто для редактирования,
Стоимость за первый период inscostFinGAP = 0
Срок страхования insTermFinGAP = Если срок лизинга tbxLeasingPeriod < 13,
то указываем Срок страхования insTermFinGAP = 12 мес
и закрываем для редактирования, иначе открыто для редактирования
*/
reaction(
() => {
const finGAPInsuranceCompany = $tables.insurance.getRowValue('fingap', 'insuranceCompany');
const leasingPeriod = $calculation.getElementValue('tbxLeasingPeriod');
return {
finGAPInsuranceCompany,
leasingPeriod,
};
},
({ finGAPInsuranceCompany, leasingPeriod }) => {
if (!finGAPInsuranceCompany) {
$tables.insurance.setRowValues('fingap', {
insured: 100_000_000,
insCost: 0,
insTerm: 100_000_000,
});
$tables.insurance.setRowStatuses('fingap', {
insured: 'Disabled',
insTerm: 'Disabled',
});
} else {
$tables.insurance.setRowValues('fingap', {
insured: 100_000_000,
insCost: 0,
insTerm: leasingPeriod < 13 ? 100_000_000 : undefined,
});
$tables.insurance.setRowStatuses('fingap', {
insured: 'Default',
insTerm: leasingPeriod < 13 ? 'Disabled' : 'Default',
});
}
},
{
equals: comparer.shallow,
}
);
// Очищаем таблицу ФинГАП, если не выбрана страховая компания
reaction(
() => $tables.insurance.getRowValue('fingap', 'insuranceCompany'),
(finGAPInsuranceCompany) => {
if (!finGAPInsuranceCompany) {
$tables.fingap.clear();
}
}
);
const QUERY_GET_FINGAP_ADDPRODUCT_TYPES = gql`
query GetFinGAPAddProductTypes($currentDate: DateTime) {
evo_addproduct_types(
statecode: 0
evo_datefrom_param: { lte: $currentDate }
evo_dateto_param: { gte: $currentDate }
evo_product_type: 100000006
) {
evo_addproduct_typeid
evo_name
evo_type_calc_cerebellum
evo_cost_service_provider_withoutnds
evo_addproduct_types {
evo_addproduct_typeid
}
}
}
`;
// Заполнение таблицы рисков ФинГАП + Запрос расчета финГАП в мозжечок
reaction(
() => {
const finGAPInsuranceCompany = $tables.insurance.getRowValue('fingap', 'insuranceCompany');
const paymentsValues = toJS($tables.payments.values);
const plPriceRub = $calculation.$values.getValue('plPriceRub');
const discountRub = $calculation.$values.getValue('discountRub');
const firstPaymentRub = $calculation.getElementValue('tbxFirstPaymentRub');
const leasingPeriod = $calculation.getElementValue('tbxLeasingPeriod');
return {
finGAPInsuranceCompany,
paymentsValues,
plPriceRub,
discountRub,
firstPaymentRub,
leasingPeriod,
};
},
async ({
finGAPInsuranceCompany,
paymentsValues,
plPriceRub,
discountRub,
firstPaymentRub,
leasingPeriod,
}) => {
if ($tables.fingap.validation.hasErrors) return;
if (!finGAPInsuranceCompany) return;
const {
data: { evo_addproduct_types },
} = await apolloClient.query<
CRMTypes.GetFinGapAddProductTypesQuery,
CRMTypes.GetFinGapAddProductTypesQueryVariables
>({
query: QUERY_GET_FINGAP_ADDPRODUCT_TYPES,
variables: {
currentDate: dayjs().utc().format('YYYY-MM-DD'),
},
});
const risks = evo_addproduct_types?.map(
// prettier-ignore
(evo_addproduct_type) => ({
key: evo_addproduct_type?.evo_addproduct_typeid,
riskId: evo_addproduct_type?.evo_addproduct_typeid,
riskName: evo_addproduct_type?.evo_name,
calcType: evo_addproduct_type?.evo_type_calc_cerebellum,
premiumPerc: evo_addproduct_type?.evo_cost_service_provider_withoutnds,
sum: 0,
premium: 0,
keys: evo_addproduct_type?.evo_addproduct_types?.map((k) => k?.evo_addproduct_typeid),
} as Risk)
);
if (!risks) return;
$tables.fingap.setRisks(risks);
function getFingapRequestDataFromRisk(risk: Risk): RequestFinGAP {
return {
calcType: risk.calcType,
payments: paymentsValues.map((payment) => ({
percentPayment: payment,
})),
values: {
plPrice: plPriceRub,
discount: discountRub,
firstPayment: firstPaymentRub,
leasingPeriod,
premiumPerc: risk.premiumPerc || 0,
},
};
}
function makeRequestGetFinGAP(request: RequestFinGAP) {
const queryCalculateFinGAP = ({ signal }: QueryFunctionContext) =>
calculateFinGAP(request, signal);
return queryClient.fetchQuery(
['calculate', 'fingap', request.calcType],
queryCalculateFinGAP
);
}
Promise.all(
risks
.map((risk) => getFingapRequestDataFromRisk(risk))
.map((data) => makeRequestGetFinGAP(data))
).then((results) => {
const newRisks = risks.map((risk, i) => ({
...risk,
sum: results.at(i)?.data.sum || 0,
premium: results.at(i)?.data.premium || 0,
}));
$tables.fingap.setRisks(newRisks);
});
},
{
// Important: delay prohibits multiple reaction invocation
equals: comparer.structural,
delay: 100,
}
);
}

View File

@ -0,0 +1,2 @@
export { default as common } from './common';
export { default as validation } from './validation';

View File

@ -0,0 +1,37 @@
import type { ApolloClient } from '@apollo/client';
import type { QueryClient } from '@tanstack/react-query';
import { reaction } from 'mobx';
import type RootStore from 'stores/root';
export default function validationReactions(
store: RootStore,
apolloClient: ApolloClient<object>,
queryClient: QueryClient
) {
const { $tables } = store;
const errorText = 'Неверно заполнены платежи';
let removeError: () => void;
reaction(
() => {
const hasPaymentsErrors = $tables.payments.validation.hasErrors;
const finGAPInsuranceCompany = $tables.insurance.getRowValue('fingap', 'insuranceCompany');
return {
hasPaymentsErrors,
finGAPInsuranceCompany,
};
},
({ hasPaymentsErrors, finGAPInsuranceCompany }) => {
if (finGAPInsuranceCompany && hasPaymentsErrors) {
removeError = $tables.fingap.validation.addError(errorText);
} else {
removeError();
}
},
{
fireImmediately: true,
}
);
}

View File

@ -1,12 +1,19 @@
import * as agentsReactions from '../../agents/reactions'; import * as agentsReactions from '../../agents/reactions';
import * as calculateReactions from '../../calculate/reactions'; import * as calculateReactions from '../../calculate/reactions';
import * as fingapReactions from '../../fingap/reactions';
import * as leadOpportunityReactions from '../../lead-opportunity/reactions'; import * as leadOpportunityReactions from '../../lead-opportunity/reactions';
import paymentsReactions from '../../payments/reactions'; import paymentsReactions from '../../payments/reactions';
import * as priceReactions from '../../price/reactions';
import setInitialValuesReactions from '../set-values/reactions';
export default function injectDefaultReactions(store, apolloClient) { export default function injectDefaultReactions(store, apolloClient, queryClient) {
leadOpportunityReactions.common(store, apolloClient); leadOpportunityReactions.common(store, apolloClient, queryClient);
leadOpportunityReactions.urls(store, apolloClient); leadOpportunityReactions.urls(store, apolloClient, queryClient);
paymentsReactions(store, apolloClient); paymentsReactions(store, apolloClient, queryClient);
calculateReactions.validation(store, apolloClient); calculateReactions.validation(store, apolloClient, queryClient);
agentsReactions.common(store, apolloClient); agentsReactions.common(store, apolloClient, queryClient);
priceReactions.computed(store, apolloClient, queryClient);
fingapReactions.common(store, apolloClient, queryClient);
fingapReactions.validation(store, apolloClient, queryClient);
setInitialValuesReactions(store, apolloClient, queryClient);
} }

View File

@ -0,0 +1,44 @@
/* eslint-disable @typescript-eslint/naming-convention */
import type { ApolloClient } from '@apollo/client';
import { gql } from '@apollo/client';
import type { QueryClient } from '@tanstack/react-query';
import type { GetTransactionCurrenciesQuery } from 'graphql/crm.types';
import { when } from 'mobx';
import type RootStore from 'stores/root';
export default function setInitialValuesReactions(
store: RootStore,
apolloClient: ApolloClient<object>,
queryClient: QueryClient
) {
const QUERY_GET_TRANSACTION_CURRENCIES = gql`
query GetTransactionCurrencies {
transactioncurrencies {
isocurrencycode
transactioncurrencyid
}
}
`;
const { $calculation } = store;
when(
() => $calculation.$options.getOptions('selectSupplierCurrency').length > 0,
async () => {
const {
data: { transactioncurrencies },
} = await apolloClient.query<GetTransactionCurrenciesQuery>({
query: QUERY_GET_TRANSACTION_CURRENCIES,
});
const transactioncurrency_rub = transactioncurrencies?.find(
(x) => x?.isocurrencycode === 'RUB'
);
$calculation.setElementValue(
'selectSupplierCurrency',
transactioncurrency_rub?.transactioncurrencyid
);
}
);
}

View File

@ -30,7 +30,7 @@ export default function paymentsReactions(store: RootStore, apolloClient: Apollo
/** /**
* Проверяем платежи на 0 * Проверяем платежи на 0
*/ */
const errorText = 'Значения не должны быть равны 0'; const errorText = 'Значения должны быть больше 0';
let removeError: () => void; let removeError: () => void;
reaction( reaction(

View File

@ -0,0 +1,94 @@
/* eslint-disable @typescript-eslint/naming-convention */
import type { ApolloClient } from '@apollo/client';
import { gql } from '@apollo/client';
import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
import type * as CRMTypes from 'graphql/crm.types';
import { autorun } from 'mobx';
import type RootStore from 'stores/root';
dayjs.extend(utc);
export default function computedReactions(store: RootStore, apolloClient: ApolloClient<object>) {
const QUERY_GET_EVO_CURRENCY_CHANGES = gql`
query GetCurrencyChanges($currentDate: DateTime) {
evo_currencychanges(statecode: 0, evo_coursedate_param: { eq: $currentDate }) {
evo_currencychange
evo_ref_transactioncurrency
}
}
`;
const QUERY_GET_CURRENCY_ISOCODE = gql`
query GetCurrencyISOCode($id: Uuid!) {
transactioncurrency(transactioncurrencyid: $id) {
isocurrencycode
}
}
`;
const { $calculation } = store;
autorun(
async () => {
const supplierCurrencyId = $calculation.getElementValue('selectSupplierCurrency');
const leaseObjectPrice = $calculation.getElementValue('tbxLeaseObjectPrice');
const supplierDiscountRub = $calculation.getElementValue('tbxSupplierDiscountRub');
if (!supplierCurrencyId) {
$calculation.$values.setValue('plPriceRub', leaseObjectPrice);
$calculation.$values.setValue('discountRub', supplierDiscountRub);
return;
}
const {
data: { transactioncurrency },
} = await apolloClient.query<
CRMTypes.GetCurrencyIsoCodeQuery,
CRMTypes.GetCurrencyIsoCodeQueryVariables
>({
query: QUERY_GET_CURRENCY_ISOCODE,
variables: {
id: supplierCurrencyId,
},
});
if (transactioncurrency?.isocurrencycode === 'RUB') {
$calculation.$values.setValue('plPriceRub', leaseObjectPrice);
$calculation.$values.setValue('discountRub', supplierDiscountRub);
return;
}
const {
data: { evo_currencychanges },
} = await apolloClient.query<
CRMTypes.GetCurrencyChangesQuery,
CRMTypes.GetCurrencyChangesQueryVariables
>({
query: QUERY_GET_EVO_CURRENCY_CHANGES,
variables: {
currentDate: dayjs().utc().format('YYYY-MM-DD'),
},
});
const evo_currencychange = evo_currencychanges?.find(
(x) => x?.evo_ref_transactioncurrency === supplierCurrencyId
);
$calculation.$values.setValue(
'plPriceRub',
leaseObjectPrice * (evo_currencychange?.evo_currencychange || 0)
);
$calculation.$values.setValue(
'discountRub',
supplierDiscountRub * (evo_currencychange?.evo_currencychange || 0)
);
},
{
delay: 100,
}
);
}

View File

@ -0,0 +1,2 @@
/* eslint-disable import/prefer-default-export */
export { default as computed } from './computed';

View File

@ -135,6 +135,8 @@ export type CalculationValues = {
registrationDescription: string | null; registrationDescription: string | null;
depreciationGroup: string | null; depreciationGroup: string | null;
subsidySum: number; subsidySum: number;
plPriceRub: number;
discountRub: number;
}; };
export type Values = keyof CalculationValues; export type Values = keyof CalculationValues;

View File

@ -2,9 +2,11 @@ import type * as FinGAP from 'Components/Calculation/Form/Insurance/FinGAPTable/
import type { IObservableArray } from 'mobx'; import type { IObservableArray } from 'mobx';
import { makeAutoObservable, observable } from 'mobx'; import { makeAutoObservable, observable } from 'mobx';
import type RootStore from 'stores/root'; import type RootStore from 'stores/root';
import Validation from '../validation';
export default class FinGAPTable { export default class FinGAPTable {
root: RootStore; root: RootStore;
validation: Validation;
risks: IObservableArray<FinGAP.Risk>; risks: IObservableArray<FinGAP.Risk>;
selectedKeys: Set<string>; selectedKeys: Set<string>;
@ -13,6 +15,11 @@ export default class FinGAPTable {
this.risks = observable<FinGAP.Risk>([]); this.risks = observable<FinGAP.Risk>([]);
makeAutoObservable(this); makeAutoObservable(this);
this.validation = new Validation({
err_key: 'ERR_FINGAP_TABLE',
err_title: 'Таблица рисков Safe Finance',
});
this.root = rootStore; this.root = rootStore;
} }

View File

@ -55,7 +55,7 @@ export default class InsuranceTable {
return this.options[key]; return this.options[key];
} }
setRowOptions = (key: Insurance.Keys, rowOptions: Insurance.RowOptions) => { setRowOptions = (key: Insurance.Keys, rowOptions: Partial<Insurance.RowOptions>) => {
this.options[key] = { ...this.options[key], ...rowOptions }; this.options[key] = { ...this.options[key], ...rowOptions };
}; };
@ -63,7 +63,7 @@ export default class InsuranceTable {
return this.statuses[key]; return this.statuses[key];
} }
setRowStatuses = (key: Insurance.Keys, rowStatuses: Insurance.RowStatuses) => { setRowStatuses = (key: Insurance.Keys, rowStatuses: Partial<Insurance.RowStatuses>) => {
this.statuses[key] = { ...this.statuses[key], ...rowStatuses }; this.statuses[key] = { ...this.statuses[key], ...rowStatuses };
}; };

View File

@ -5371,11 +5371,6 @@ graphql@^16.3.0:
resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.3.0.tgz#a91e24d10babf9e60c706919bb182b53ccdffc05" resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.3.0.tgz#a91e24d10babf9e60c706919bb182b53ccdffc05"
integrity sha512-xm+ANmA16BzCT5pLjuXySbQVFwH3oJctUVdy81w1sV0vBU0KgDdBGtxQOUd5zqOBk/JayAFeG8Dlmeq74rjm/A== integrity sha512-xm+ANmA16BzCT5pLjuXySbQVFwH3oJctUVdy81w1sV0vBU0KgDdBGtxQOUd5zqOBk/JayAFeG8Dlmeq74rjm/A==
graphql@^16.6.0:
version "16.6.0"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb"
integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==
has-ansi@^2.0.0: has-ansi@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"