auth | rewrite preparedData
This commit is contained in:
parent
ebd7c2ef3c
commit
5a2c629e1b
@ -22,6 +22,7 @@
|
||||
"cross-fetch": "^3.0.6",
|
||||
"express": "^4.17.1",
|
||||
"express-http-proxy": "^1.6.2",
|
||||
"express-ntlm": "^2.5.2",
|
||||
"graphql": "^15.4.0",
|
||||
"helmet": "^4.1.0",
|
||||
"http-errors": "^1.8.0",
|
||||
@ -69,7 +70,7 @@
|
||||
"agentkeepalive": "^4.1.3",
|
||||
"dotenv": "^8.2.0",
|
||||
"faker": "^5.1.0",
|
||||
"http-proxy-middleware": "^1.0.5",
|
||||
"http-proxy-middleware": "^1.0.6",
|
||||
"rimraf": "^3.0.2",
|
||||
"webpack-cli": "^4.0.0",
|
||||
"webpack-node-externals": "^2.5.1"
|
||||
|
||||
@ -1418,8 +1418,8 @@ const sections: ISections[] = [
|
||||
title: 'Телематика',
|
||||
Component: Select,
|
||||
props: {
|
||||
name: 'selectTelematics',
|
||||
valueName: 'telematics',
|
||||
name: 'selectTelematic',
|
||||
valueName: 'telematic',
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@ -11,71 +11,130 @@ import Modal from 'client/Elements/Modal';
|
||||
import Results from './Results';
|
||||
import Sections from './Sections';
|
||||
import { gql } from '@apollo/client';
|
||||
import { currentDate } from 'client/common/constants';
|
||||
import { getUser } from 'client/tools/user';
|
||||
|
||||
const Calculation = () => {
|
||||
const [status, setStatus] = useState(LoadingStatus.loading);
|
||||
const { calculationStore } = useStores();
|
||||
//TODO: move to external file
|
||||
useEffect(() => {
|
||||
Promise.all([
|
||||
CalculationService.getEntities({
|
||||
queries: initialOptions,
|
||||
}),
|
||||
CalculationService.crmgqlquery({
|
||||
query: gql`
|
||||
query($statecode: Int) {
|
||||
evo_impairment_group: evo_impairment_groups(statecode: $statecode) {
|
||||
evo_impairment_groupid
|
||||
evo_name
|
||||
getUser().then(({ UserName, DomainName }) => {
|
||||
Promise.all([
|
||||
CalculationService.getEntities({
|
||||
queries: initialOptions,
|
||||
}),
|
||||
CalculationService.crmgqlquery({
|
||||
query: gql`
|
||||
query($statecode: Int, $currentDate: DateTime, $username: String) {
|
||||
evo_impairment_group: evo_impairment_groups(
|
||||
statecode: $statecode
|
||||
) {
|
||||
evo_impairment_groupid
|
||||
evo_name
|
||||
}
|
||||
evo_currencychange: evo_currencychanges(
|
||||
statecode: $statecode
|
||||
evo_coursedate_param: { eq: $currentDate }
|
||||
) {
|
||||
evo_currencychange
|
||||
evo_ref_transactioncurrency
|
||||
}
|
||||
evo_coefficient: evo_coefficients(
|
||||
statecode: $statecode
|
||||
evo_datefrom_param: { lte: $currentDate }
|
||||
evo_dateto_param: { gte: $currentDate }
|
||||
) {
|
||||
evo_correction_coefficient
|
||||
evo_graph_type
|
||||
evo_season_type
|
||||
evo_job_titleid
|
||||
evo_sot_coefficient_typeid
|
||||
evo_sot_coefficient
|
||||
evo_corfficient_type
|
||||
evo_min_period
|
||||
evo_max_period
|
||||
evo_graph_type
|
||||
evo_season_type
|
||||
evo_correction_coefficient
|
||||
evo_client_riskid
|
||||
evo_client_typeid
|
||||
evo_risk_delta
|
||||
evo_leasingobject_types {
|
||||
evo_name
|
||||
evo_id
|
||||
evo_leasingobject_typeid
|
||||
}
|
||||
}
|
||||
evo_sot_coefficient_type: evo_sot_coefficient_types(
|
||||
statecode: $statecode
|
||||
) {
|
||||
evo_id
|
||||
evo_name
|
||||
evo_sot_coefficient_typeid
|
||||
}
|
||||
systemuser(domainname: $username) {
|
||||
evo_job_titleid
|
||||
businessunitid
|
||||
firstname
|
||||
lastname
|
||||
fullname
|
||||
}
|
||||
evo_job_title: evo_job_titles(statecode: $statecode) {
|
||||
evo_id
|
||||
evo_name
|
||||
evo_job_titleid
|
||||
}
|
||||
}
|
||||
evo_currencychange: evo_currencychanges(statecode: $statecode) {
|
||||
evo_currencychange
|
||||
evo_ref_transactioncurrency
|
||||
}
|
||||
}
|
||||
`,
|
||||
variables: { statecode: 0 },
|
||||
}),
|
||||
CalculationService.getEntities({
|
||||
queries: [
|
||||
{
|
||||
alias: 'insuranceCompany',
|
||||
entityName: 'account',
|
||||
where: { evo_account_type: 100000002, statecode: 0 },
|
||||
fields: ['accountid', 'name', 'evo_type_ins_policy'],
|
||||
many: true,
|
||||
`,
|
||||
variables: {
|
||||
statecode: 0,
|
||||
currentDate,
|
||||
username: `${DomainName}\\${UserName}`,
|
||||
},
|
||||
],
|
||||
}),
|
||||
])
|
||||
.then(
|
||||
([
|
||||
{ entities: initialOptions },
|
||||
{ entities: staticEntities },
|
||||
{ entities: insuranceCompanies },
|
||||
]) => {
|
||||
calculationStore.applyOptions(initialOptions);
|
||||
calculationStore.applyStaticData(staticEntities);
|
||||
calculationStore.setTableColumns('tableInsurance')({
|
||||
options: { ...insuranceCompanies },
|
||||
});
|
||||
|
||||
//TODO: move to external file
|
||||
var supplierCurrency = calculationStore.options.selectSupplierCurrency.find(
|
||||
x => x.isocurrencycode === 'RUB',
|
||||
);
|
||||
calculationStore.setValue(
|
||||
'supplierCurrency',
|
||||
supplierCurrency.transactioncurrencyid,
|
||||
);
|
||||
}),
|
||||
CalculationService.getEntities({
|
||||
queries: [
|
||||
{
|
||||
alias: 'insuranceCompany',
|
||||
entityName: 'account',
|
||||
where: { evo_account_type: 100000002, statecode: 0 },
|
||||
fields: ['accountid', 'name', 'evo_type_ins_policy'],
|
||||
many: true,
|
||||
},
|
||||
],
|
||||
}),
|
||||
])
|
||||
.then(
|
||||
([
|
||||
{ entities: initialOptions },
|
||||
{ entities: staticEntities },
|
||||
{ entities: insuranceCompanies },
|
||||
]) => {
|
||||
calculationStore.applyOptions(initialOptions);
|
||||
calculationStore.applyStaticData(staticEntities);
|
||||
calculationStore.setTableColumns('tableInsurance')({
|
||||
options: { ...insuranceCompanies },
|
||||
});
|
||||
|
||||
setStatus(LoadingStatus.ready);
|
||||
},
|
||||
)
|
||||
.catch(err => {
|
||||
setStatus(LoadingStatus.error);
|
||||
throw err;
|
||||
});
|
||||
//TODO: move to external file
|
||||
var supplierCurrency = calculationStore.options.selectSupplierCurrency.find(
|
||||
x => x.isocurrencycode === 'RUB',
|
||||
);
|
||||
calculationStore.setValue(
|
||||
'supplierCurrency',
|
||||
supplierCurrency.transactioncurrencyid,
|
||||
);
|
||||
|
||||
setStatus(LoadingStatus.ready);
|
||||
},
|
||||
)
|
||||
.catch(err => {
|
||||
setStatus(LoadingStatus.error);
|
||||
throw err;
|
||||
});
|
||||
});
|
||||
//TODO: makes 2 requests, need 1
|
||||
}, []);
|
||||
|
||||
if (status === LoadingStatus.loading) {
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { ApolloClient, gql, HttpLink, InMemoryCache } from '@apollo/client';
|
||||
import axios from 'axios';
|
||||
import { API_HOSTNAME } from 'client/common/constants';
|
||||
import { CRM_GRAPHQL_PROXY_URL, CRM_GRAPHQL_URL } from 'core/constants/urls';
|
||||
import { convertEntityToOption } from 'core/tools/entities';
|
||||
@ -7,15 +8,19 @@ import {
|
||||
IGetEntitiesRequest,
|
||||
IRequestToCRMGQL,
|
||||
} from 'core/types/Calculation/Requests';
|
||||
import { IGetEntitiesResponse } from 'core/types/Calculation/Responses';
|
||||
import {
|
||||
IGetEntitiesResponse,
|
||||
IGetUserResponse,
|
||||
} from 'core/types/Calculation/Responses';
|
||||
import { IBaseOption } from 'core/types/Calculation/Store/options';
|
||||
import { TCRMEntity } from 'core/types/Entities/crmEntities';
|
||||
import { TEntities, CRMEntityNames } from 'core/types/Entities/crmEntityNames';
|
||||
import { TEntities } from 'core/types/Entities/crmEntityNames';
|
||||
import { isPlural, singular } from 'pluralize';
|
||||
|
||||
const client = new ApolloClient({
|
||||
uri: CRM_GRAPHQL_URL,
|
||||
cache: new InMemoryCache(),
|
||||
|
||||
link: new HttpLink({
|
||||
uri:
|
||||
process.env.NODE_ENV !== 'development'
|
||||
@ -25,8 +30,8 @@ const client = new ApolloClient({
|
||||
'/proxy',
|
||||
CRM_GRAPHQL_PROXY_URL,
|
||||
),
|
||||
fetch,
|
||||
}),
|
||||
|
||||
defaultOptions: {
|
||||
query: {
|
||||
fetchPolicy: 'no-cache',
|
||||
@ -36,6 +41,14 @@ const client = new ApolloClient({
|
||||
});
|
||||
|
||||
class CalculationService {
|
||||
static getUser = (): Promise<IGetUserResponse> =>
|
||||
new Promise((resolve, reject) => {
|
||||
axios.get('/api/users/getUser').then(res => {
|
||||
console.log('User', res.data);
|
||||
resolve(res.data);
|
||||
});
|
||||
});
|
||||
|
||||
static crmgqlquery = ({
|
||||
query,
|
||||
toOptions,
|
||||
@ -60,8 +73,9 @@ class CalculationService {
|
||||
resEntities[targetName];
|
||||
|
||||
if (toOptions)
|
||||
//@ts-ignore
|
||||
if (toOptions.includes(targetName)) {
|
||||
//@ts-ignore
|
||||
//@ts-ignore
|
||||
if (Array.isArray(targetEnt)) {
|
||||
let optionatedEntities: (TCRMEntity & IBaseOption)[] = [];
|
||||
for (let entity of targetEnt) {
|
||||
@ -76,9 +90,7 @@ class CalculationService {
|
||||
//@ts-ignore
|
||||
resEntities[
|
||||
//@ts-ignore
|
||||
isPlural(targetName)
|
||||
? singular(targetName)
|
||||
: targetName
|
||||
isPlural(targetName) ? singular(targetName) : targetName
|
||||
] = optionatedEntities;
|
||||
} else {
|
||||
const entityOption = convertEntityToOption(
|
||||
@ -116,6 +128,7 @@ class CalculationService {
|
||||
});
|
||||
|
||||
const convertedQuery = convertJSONToGQLQuery(queries);
|
||||
console.log('CalculationService -> convertedQuery', convertedQuery);
|
||||
await client
|
||||
.query({
|
||||
query: gql`
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
22
src/client/tools/user.ts
Normal file
22
src/client/tools/user.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import CalculationService from 'client/services/CalculationService';
|
||||
import { User } from 'core/types/user';
|
||||
|
||||
export const getUser = async (): Promise<User> => {
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
const savedUser = localStorage.getItem('user');
|
||||
if (savedUser) {
|
||||
const user = JSON.parse(savedUser);
|
||||
if (user.UserName) {
|
||||
return user;
|
||||
}
|
||||
}
|
||||
var username = prompt('Enter username');
|
||||
const user: User = { UserName: username || '', DomainName: 'EVOLEASING' };
|
||||
localStorage.setItem('user', JSON.stringify(user));
|
||||
return user;
|
||||
}
|
||||
|
||||
const { user } = await CalculationService.getUser();
|
||||
localStorage.setItem('user', JSON.stringify(user));
|
||||
return user;
|
||||
};
|
||||
@ -204,6 +204,225 @@ const initialOptions: TEntityQuery[] = [
|
||||
many: true,
|
||||
toOption: true,
|
||||
},
|
||||
{
|
||||
alias: 'selectTracker',
|
||||
entityName: 'evo_addproduct_type',
|
||||
where: {
|
||||
statecode: 0,
|
||||
evo_product_type: 100000003,
|
||||
},
|
||||
whereCmp: {
|
||||
evo_datefrom_param: {
|
||||
lte: currentDate,
|
||||
},
|
||||
evo_dateto_param: {
|
||||
gte: currentDate,
|
||||
},
|
||||
},
|
||||
fields: [
|
||||
'evo_id',
|
||||
'evo_addproduct_typeid',
|
||||
'evo_name',
|
||||
'evo_min_period',
|
||||
'evo_max_period',
|
||||
'evo_controls_program',
|
||||
'evo_accountid',
|
||||
'evo_graph_price_withoutnds',
|
||||
'evo_cost_service_provider_withoutnds',
|
||||
'evo_retro_bonus_withoutnds',
|
||||
'evo_prime_cost',
|
||||
'evo_graph_price',
|
||||
],
|
||||
relatedEntities: [
|
||||
{
|
||||
entityName: 'evo_planpayment',
|
||||
fields: [
|
||||
'evo_name',
|
||||
'evo_cost_equipment_withoutnds',
|
||||
'evo_cost_price_telematics_withoutnds',
|
||||
'evo_cost_telematics_withoutnds',
|
||||
],
|
||||
many: true,
|
||||
},
|
||||
],
|
||||
many: true,
|
||||
toOption: true,
|
||||
},
|
||||
{
|
||||
alias: 'selectTelematic',
|
||||
entityName: 'evo_addproduct_type',
|
||||
where: {
|
||||
statecode: 0,
|
||||
evo_product_type: 100000004,
|
||||
},
|
||||
whereCmp: {
|
||||
evo_datefrom_param: {
|
||||
lte: currentDate,
|
||||
},
|
||||
evo_dateto_param: {
|
||||
gte: currentDate,
|
||||
},
|
||||
},
|
||||
fields: [
|
||||
'evo_id',
|
||||
'evo_addproduct_typeid',
|
||||
'evo_name',
|
||||
'evo_min_period',
|
||||
'evo_max_period',
|
||||
'evo_controls_program',
|
||||
'evo_accountid',
|
||||
'evo_graph_price_withoutnds',
|
||||
'evo_cost_service_provider_withoutnds',
|
||||
'evo_retro_bonus_withoutnds',
|
||||
'evo_prime_cost',
|
||||
'evo_graph_price',
|
||||
],
|
||||
relatedEntities: [
|
||||
{
|
||||
entityName: 'evo_planpayment',
|
||||
fields: [
|
||||
'evo_name',
|
||||
'evo_cost_equipment_withoutnds',
|
||||
'evo_cost_price_telematics_withoutnds',
|
||||
'evo_cost_telematics_withoutnds',
|
||||
],
|
||||
many: true,
|
||||
},
|
||||
],
|
||||
many: true,
|
||||
toOption: true,
|
||||
},
|
||||
{
|
||||
alias: 'selectTechnicalCard',
|
||||
entityName: 'evo_addproduct_type',
|
||||
where: {
|
||||
statecode: 0,
|
||||
evo_product_type: 100000000,
|
||||
},
|
||||
whereCmp: {
|
||||
evo_datefrom_param: {
|
||||
lte: currentDate,
|
||||
},
|
||||
evo_dateto_param: {
|
||||
gte: currentDate,
|
||||
},
|
||||
},
|
||||
fields: [
|
||||
'evo_id',
|
||||
'evo_addproduct_typeid',
|
||||
'evo_name',
|
||||
'evo_min_period',
|
||||
'evo_max_period',
|
||||
'evo_controls_program',
|
||||
'evo_accountid',
|
||||
'evo_graph_price_withoutnds',
|
||||
'evo_cost_service_provider_withoutnds',
|
||||
'evo_retro_bonus_withoutnds',
|
||||
'evo_prime_cost',
|
||||
'evo_graph_price',
|
||||
],
|
||||
many: true,
|
||||
toOption: true,
|
||||
},
|
||||
{
|
||||
alias: 'selectTarif',
|
||||
entityName: 'evo_tarif',
|
||||
where: {
|
||||
statecode: 0,
|
||||
},
|
||||
whereCmp: {
|
||||
evo_datefrom_param: {
|
||||
lte: currentDate,
|
||||
},
|
||||
evo_dateto_param: {
|
||||
gte: currentDate,
|
||||
},
|
||||
},
|
||||
fields: [
|
||||
'evo_id',
|
||||
'evo_name',
|
||||
'evo_tarifid',
|
||||
'evo_baseproductid',
|
||||
'evo_irr',
|
||||
'evo_max_irr',
|
||||
'evo_min_profit',
|
||||
'evo_min_irr',
|
||||
'evo_irr_plan',
|
||||
'evo_ins_type',
|
||||
],
|
||||
relatedEntities: [
|
||||
{
|
||||
entityName: 'evo_client_risk',
|
||||
fields: ['evo_client_riskid', 'evo_name'],
|
||||
many: true,
|
||||
},
|
||||
{
|
||||
entityName: 'evo_client_type',
|
||||
fields: ['evo_client_typeid', 'evo_name'],
|
||||
many: true,
|
||||
},
|
||||
{
|
||||
entityName: 'evo_leasingobject_type',
|
||||
fields: ['evo_leasingobject_typeid', 'evo_name', 'evo_id'],
|
||||
many: true,
|
||||
},
|
||||
],
|
||||
many: true,
|
||||
toOption: true,
|
||||
},
|
||||
{
|
||||
alias: 'selectRate',
|
||||
entityName: 'evo_rate',
|
||||
where: {
|
||||
statecode: 0,
|
||||
},
|
||||
//TODO:
|
||||
// whereCmp: {
|
||||
// evo_datefrom_param: {
|
||||
// lte: currentDate,
|
||||
// },
|
||||
// evo_dateto_param: {
|
||||
// gte: currentDate,
|
||||
// },
|
||||
// },
|
||||
fields: [
|
||||
'evo_id',
|
||||
'evo_rateid',
|
||||
'evo_name',
|
||||
'evo_base_rate',
|
||||
'evo_coeff_12_23',
|
||||
'evo_coeff_24_35',
|
||||
'evo_coeff_36_47',
|
||||
'evo_coeff_7_11',
|
||||
'evo_coeff_48_60',
|
||||
],
|
||||
relatedEntities: [
|
||||
{
|
||||
entityName: 'evo_tarif',
|
||||
fields: ['evo_tarifid', 'evo_name'],
|
||||
many: true,
|
||||
},
|
||||
],
|
||||
many: true,
|
||||
toOption: true,
|
||||
},
|
||||
{
|
||||
alias: 'selectLeaseObjectType',
|
||||
entityName: 'evo_leasingobject_type',
|
||||
where: { statecode: 0 },
|
||||
fields: [
|
||||
'evo_name',
|
||||
'evo_id',
|
||||
'evo_leasingobject_typeid',
|
||||
'evo_depreciation_rate1',
|
||||
'evo_depreciation_rate2',
|
||||
'evo_expluatation_period1',
|
||||
'evo_expluatation_period2',
|
||||
'evo_type_code',
|
||||
],
|
||||
many: true,
|
||||
toOption: true,
|
||||
},
|
||||
];
|
||||
|
||||
export default initialOptions;
|
||||
|
||||
@ -101,6 +101,14 @@ const propsMap: TEntities<{
|
||||
name: 'evo_name',
|
||||
value: 'evo_planpaymentid',
|
||||
},
|
||||
evo_tarif: {
|
||||
name: 'evo_name',
|
||||
value: 'evo_tarifid',
|
||||
},
|
||||
evo_rate: {
|
||||
name: 'evo_name',
|
||||
value: 'evo_rateid',
|
||||
},
|
||||
};
|
||||
|
||||
export default propsMap;
|
||||
|
||||
@ -1,105 +1,105 @@
|
||||
import { CRMEntityNames } from '../Entities/crmEntityNames';
|
||||
export interface PreparedValues {
|
||||
calcDate: Date;
|
||||
calcType: number;
|
||||
irrExpected: number;
|
||||
npvniExpected: number;
|
||||
totalExpected: number;
|
||||
leasing0K: number;
|
||||
loanRate: number;
|
||||
balanceHolder: number;
|
||||
dogDate: Date;
|
||||
calcDate?: Date;
|
||||
calcType?: number;
|
||||
irrExpected?: number;
|
||||
npvniExpected?: number;
|
||||
totalExpected?: number;
|
||||
leasing0K?: number;
|
||||
loanRate?: number;
|
||||
balanceHolder?: number;
|
||||
dogDate?: Date;
|
||||
paymentDateNew?: Date;
|
||||
deliveryTime: number;
|
||||
cityc: string;
|
||||
nmper: number;
|
||||
firstPayment: number;
|
||||
firstPaymentSum: number;
|
||||
deliveryTime?: number;
|
||||
cityc?: string;
|
||||
nmper?: number;
|
||||
firstPayment?: number;
|
||||
firstPaymentSum?: number;
|
||||
firstPaymentAbs?: number;
|
||||
firstPaymentNdsAbs?: number;
|
||||
firstPaymentWithNdsAbs?: number;
|
||||
lastPayment: number;
|
||||
lastPaymentSum: number;
|
||||
scheduleOfPayments: number;
|
||||
comissionRub: number;
|
||||
plPrice: number;
|
||||
discount: number;
|
||||
acceptSum: number;
|
||||
plTypeId: string;
|
||||
brandId: string;
|
||||
modelId: string;
|
||||
configurationId: string;
|
||||
plYear: number;
|
||||
carCapacity: number;
|
||||
motorVolume: number;
|
||||
plEngineType: number;
|
||||
carCarrying: number;
|
||||
carSeats: number;
|
||||
bonus: number;
|
||||
bonusFix: number;
|
||||
marketRate: number;
|
||||
districtRate: number;
|
||||
salaryRate: number;
|
||||
bonusRatPr: number;
|
||||
bonusNsPr: number;
|
||||
bonusNsibPr: number;
|
||||
rats: number;
|
||||
baseRatCost: number;
|
||||
retroBonus: number;
|
||||
registration: number;
|
||||
baseRegistration: number;
|
||||
transTax: number;
|
||||
transIncludeGr: boolean;
|
||||
trackerCost: number;
|
||||
insuranceKasko: number;
|
||||
nmperInsurance: number;
|
||||
insuranceOsago: number;
|
||||
insurance: number;
|
||||
insuranceKaskoNmper: number;
|
||||
insuranceContract: number;
|
||||
insuranceBonus: number;
|
||||
nsibBruttoPr: number;
|
||||
nsibNettoPr: number;
|
||||
nsibBase: number;
|
||||
repayment: number;
|
||||
npvniDelta: number;
|
||||
transportTaxGrYear: number;
|
||||
transportTaxGr: number;
|
||||
nsibBrutto: number;
|
||||
nsibNetto: number;
|
||||
nmperDeprecation: number;
|
||||
deprecationTime: number;
|
||||
ratBonus: number;
|
||||
nsBonus: number;
|
||||
nsibBonus: number;
|
||||
niAtInception: number;
|
||||
agentsSum: number;
|
||||
doubleAgentsSum: number;
|
||||
deliverySum: number;
|
||||
brokerSum: number;
|
||||
brokerOfDeliverySum: number;
|
||||
financialDeptOfDeliverySum: number;
|
||||
importerSum: number;
|
||||
calculationCost: number;
|
||||
priceUpTotal: number;
|
||||
acquisitionExpenses: number;
|
||||
npvBase: number;
|
||||
tLMCost: number;
|
||||
iRR_MSFO_Plan: number;
|
||||
extraBonus: number;
|
||||
directorBonus: number;
|
||||
dogCredit: number;
|
||||
dogCreditLeasing: number;
|
||||
lastPayment?: number;
|
||||
lastPaymentSum?: number;
|
||||
scheduleOfPayments?: number;
|
||||
comissionRub?: number;
|
||||
plPrice?: number;
|
||||
discount?: number;
|
||||
acceptSum?: number;
|
||||
plTypeId?: string;
|
||||
brandId?: string;
|
||||
modelId?: string;
|
||||
configurationId?: string;
|
||||
plYear?: number;
|
||||
carCapacity?: number;
|
||||
motorVolume?: number;
|
||||
plEngineType?: number;
|
||||
carCarrying?: number;
|
||||
carSeats?: number;
|
||||
bonus?: number;
|
||||
bonusFix?: number;
|
||||
marketRate?: number;
|
||||
districtRate?: number;
|
||||
salaryRate?: number;
|
||||
bonusRatPr?: number;
|
||||
bonusNsPr?: number;
|
||||
bonusNsibPr?: number;
|
||||
rats?: number;
|
||||
baseRatCost?: number;
|
||||
retroBonus?: number;
|
||||
registration?: number;
|
||||
baseRegistration?: number;
|
||||
transTax?: number;
|
||||
transIncludeGr?: boolean;
|
||||
trackerCost?: number;
|
||||
insuranceKasko?: number;
|
||||
nmperInsurance?: number;
|
||||
insuranceOsago?: number;
|
||||
insurance?: number;
|
||||
insuranceKaskoNmper?: number;
|
||||
insuranceContract?: number;
|
||||
insuranceBonus?: number;
|
||||
nsibBruttoPr?: number;
|
||||
nsibNettoPr?: number;
|
||||
nsibBase?: number;
|
||||
repayment?: number;
|
||||
npvniDelta?: number;
|
||||
transportTaxGrYear?: number;
|
||||
transportTaxGr?: number;
|
||||
nsibBrutto?: number;
|
||||
nsibNetto?: number;
|
||||
nmperDeprecation?: number;
|
||||
deprecationTime?: number;
|
||||
ratBonus?: number;
|
||||
nsBonus?: number;
|
||||
nsibBonus?: number;
|
||||
niAtInception?: number;
|
||||
agentsSum?: number;
|
||||
doubleAgentsSum?: number;
|
||||
deliverySum?: number;
|
||||
brokerSum?: number;
|
||||
brokerOfDeliverySum?: number;
|
||||
financialDeptOfDeliverySum?: number;
|
||||
importerSum?: number;
|
||||
calculationCost?: number;
|
||||
priceUpTotal?: number;
|
||||
acquisitionExpenses?: number;
|
||||
npvBase?: number;
|
||||
tLMCost?: number;
|
||||
iRR_MSFO_Plan?: number;
|
||||
extraBonus?: number;
|
||||
directorBonus?: number;
|
||||
dogCredit?: number;
|
||||
dogCreditLeasing?: number;
|
||||
}
|
||||
|
||||
export interface PaymentRow {
|
||||
numberPayment: number;
|
||||
percentPayment: number;
|
||||
sumPayment: number;
|
||||
gpsBasePayment: number;
|
||||
gpsCostPayment: number;
|
||||
tlmBasePayment: number;
|
||||
tlmCostPayment: number;
|
||||
numberPayment?: number;
|
||||
percentPayment?: number;
|
||||
sumPayment?: number;
|
||||
gpsBasePayment?: number;
|
||||
gpsCostPayment?: number;
|
||||
tlmBasePayment?: number;
|
||||
tlmCostPayment?: number;
|
||||
}
|
||||
|
||||
export type PreparedPayments = PaymentRow[];
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import { ICalculationStore } from 'core/types/Calculation/Store';
|
||||
import { CRMEntityNames } from 'core/types/Entities/crmEntityNames';
|
||||
import { TEntityQuery } from '../Entities/query';
|
||||
import { ValuesTables } from './Store/tables';
|
||||
import { TValue, TValues } from './Store/values';
|
||||
|
||||
export interface IGetEntitiesRequest {
|
||||
queries: TEntityQuery[];
|
||||
@ -14,7 +13,6 @@ export interface IRequestToCRMGQL {
|
||||
}
|
||||
|
||||
export interface IGetCalculationRequest {
|
||||
values: TValues<TValue>;
|
||||
tables: ValuesTables;
|
||||
calculationStore: ICalculationStore;
|
||||
username: string;
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { TCRMEntity } from '../Entities/crmEntities';
|
||||
import { TEntities } from '../Entities/crmEntityNames';
|
||||
import { User } from 'core/types/user';
|
||||
|
||||
export interface IGetEntitiesResponse {
|
||||
entities: TEntities<TCRMEntity | TCRMEntity[]>;
|
||||
@ -9,3 +10,7 @@ export interface IGetCalculationResponse {
|
||||
columns: any;
|
||||
postValues: any;
|
||||
}
|
||||
|
||||
export interface IGetUserResponse {
|
||||
user: User;
|
||||
}
|
||||
|
||||
@ -132,7 +132,7 @@ export type ElementsNames =
|
||||
| 'selectRegistration'
|
||||
| 'selectInsNSIB'
|
||||
| 'selectTechnicalCard'
|
||||
| 'selectTelematics'
|
||||
| 'selectTelematic'
|
||||
| 'selectTracker';
|
||||
|
||||
export enum ElementType {
|
||||
|
||||
@ -41,7 +41,3 @@ export interface ITable {
|
||||
export type StoreTables = {
|
||||
[table in TableNames]: ITable;
|
||||
};
|
||||
|
||||
export type ValuesTables = {
|
||||
[table in TableNames]: TableProps<any>[];
|
||||
};
|
||||
|
||||
@ -105,7 +105,7 @@ export type ValuesNames =
|
||||
| 'quoteName'
|
||||
| 'quoteContactGender'
|
||||
| 'quoteRedemptionGraph'
|
||||
| 'Tarif'
|
||||
| 'tarif'
|
||||
| 'creditRate'
|
||||
| 'rate'
|
||||
| 'userSession'
|
||||
@ -118,7 +118,7 @@ export type ValuesNames =
|
||||
| 'registration'
|
||||
| 'insNSIB'
|
||||
| 'technicalCard'
|
||||
| 'telematics'
|
||||
| 'telematic'
|
||||
| 'tracker';
|
||||
|
||||
export type ComputedValuesNames =
|
||||
|
||||
@ -245,6 +245,7 @@ export interface IEvoAddproductType {
|
||||
evo_cost_telematics?: number;
|
||||
evo_cost_price_telematics?: number;
|
||||
evo_cost_equipment?: number;
|
||||
evo_controls_program?: number[];
|
||||
}
|
||||
|
||||
export interface IEvoTarif {
|
||||
@ -308,6 +309,9 @@ export interface ISystemUser {
|
||||
systemuserid?: string;
|
||||
evo_job_titleid?: string;
|
||||
statecode?: number;
|
||||
firstname?: string;
|
||||
lastname?: string;
|
||||
fullname?: string;
|
||||
}
|
||||
|
||||
export interface IEvoSotCoefficientType {
|
||||
@ -317,6 +321,12 @@ export interface IEvoSotCoefficientType {
|
||||
evo_name?: string;
|
||||
}
|
||||
|
||||
export interface IEvoJobTitle {
|
||||
evo_id?: string;
|
||||
evo_name?: string;
|
||||
evo_job_titleid?: string;
|
||||
}
|
||||
|
||||
type BaseEntity = {
|
||||
__typename?: CRMEntityNames;
|
||||
};
|
||||
@ -351,4 +361,5 @@ export type TCRMEntity = BaseEntity &
|
||||
IEvoRate &
|
||||
IEvoPlanPayment &
|
||||
ISystemUser &
|
||||
IEvoJobTitle &
|
||||
IEvoSotCoefficientType;
|
||||
|
||||
6
src/core/types/user.ts
Normal file
6
src/core/types/user.ts
Normal file
@ -0,0 +1,6 @@
|
||||
export type User = {
|
||||
DomainName?: string;
|
||||
UserName?: string;
|
||||
Workstation?: string;
|
||||
Authenticated?: boolean;
|
||||
};
|
||||
@ -1,10 +1,10 @@
|
||||
import { Request, Response } from "express";
|
||||
import { Request, Response } from 'express';
|
||||
|
||||
class UsersController {
|
||||
static getUser = async (req: Request, res: Response): Promise<void> => {
|
||||
res.send({
|
||||
//@ts-ignore
|
||||
user: req.connection.user,
|
||||
user: req.ntlm,
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
@ -3,13 +3,13 @@ import compression from 'compression';
|
||||
import cors from 'cors';
|
||||
// import cookieParser from "cookie-parser";
|
||||
import express from 'express';
|
||||
// import nodeSSPI from "express-node-sspi";
|
||||
import helmet from 'helmet';
|
||||
import morgan from 'morgan';
|
||||
import path from 'path';
|
||||
import 'reflect-metadata';
|
||||
import { API_PORT } from '../core/constants/urls';
|
||||
import routes from './routes';
|
||||
import ntlm from 'express-ntlm';
|
||||
|
||||
const isDevelopmentMode = process.env.NODE_ENV === 'development';
|
||||
|
||||
@ -20,16 +20,15 @@ const buildDir = path.join(
|
||||
|
||||
const app = express();
|
||||
|
||||
// app.enable("trust proxy");
|
||||
// app.set("trust proxy", "loopback");
|
||||
|
||||
app.use(cors({ origin: isDevelopmentMode && '*', credentials: false }));
|
||||
/** AUTHENTICATION */
|
||||
// app.use(
|
||||
// nodeSSPI({
|
||||
// retrieveGroups: true,
|
||||
// })
|
||||
// );
|
||||
|
||||
if (!isDevelopmentMode)
|
||||
app.use(
|
||||
ntlm({
|
||||
domain: 'EVOLEASING',
|
||||
domaincontroller: 'ldap://evoleasing.ru',
|
||||
}),
|
||||
);
|
||||
/** AUTHENTICATION */
|
||||
|
||||
/**EXTENTIONS */
|
||||
@ -41,8 +40,6 @@ app.use(
|
||||
);
|
||||
app.use(helmet({ contentSecurityPolicy: { reportOnly: true } }));
|
||||
|
||||
app.use(cors({ origin: isDevelopmentMode && '*', credentials: true }));
|
||||
|
||||
// app.use(cookieParser());
|
||||
app.use(compression());
|
||||
app.use(morgan(isDevelopmentMode ? 'dev' : 'tiny'));
|
||||
|
||||
@ -3,6 +3,6 @@ import { Router } from "express";
|
||||
|
||||
const router = Router();
|
||||
|
||||
router.get("/", UsersController.getUser);
|
||||
router.get("/getUser", UsersController.getUser);
|
||||
|
||||
export default router;
|
||||
|
||||
Reference in New Issue
Block a user