Merge branch 'development' into master
This commit is contained in:
commit
c89dd55302
72
src/client/process/agents/leaseback.ts
Normal file
72
src/client/process/agents/leaseback.ts
Normal file
@ -0,0 +1,72 @@
|
||||
import { IAccount } from 'core/services/CrmService/types/entities';
|
||||
import { ICalculationStore } from 'core/types/Calculation/Store';
|
||||
import { reaction } from 'mobx';
|
||||
import { ElementStatus } from 'types/elements';
|
||||
|
||||
export default function leasebackReactions($calculation: ICalculationStore) {
|
||||
/**
|
||||
* Дополнить реакцию на изменение поля Салон приобретения selectDealer:
|
||||
|
||||
если в поле selectDealer указан account, у которого evo_return_leasing_dealer = true, то
|
||||
|
||||
1) поле selectDealerPerson обнулять и закрывать для редактирования,
|
||||
иначе формировать список связанных значений
|
||||
|
||||
2) в таблице страхования в столбце Плательщик в строках ОСАГО и КАСКО указывать "Лизингополучатель" (100 000 000) и закрывать для редактирования ,
|
||||
иначе открывать данные поля для редактирования
|
||||
|
||||
3) ПЛ БУ cbxLeaseObjectUsed = true
|
||||
*/
|
||||
reaction(
|
||||
() => {
|
||||
return $calculation.getOption('selectDealer') as IAccount;
|
||||
},
|
||||
dealer => {
|
||||
if (dealer.evo_return_leasing_dealer === true) {
|
||||
// TODO: мб сбрасывать dealerPerson и dealerBroker
|
||||
|
||||
$calculation.setTableRow('tableInsurance', rows =>
|
||||
rows.findIndex(x => x.key === 'kasko'),
|
||||
)({
|
||||
insured: { value: 100_000_000, status: ElementStatus.Disabled },
|
||||
});
|
||||
|
||||
$calculation.setValue('leaseObjectUsed', true);
|
||||
} else {
|
||||
$calculation.setTableRow('tableInsurance', rows =>
|
||||
rows.findIndex(x => x.key === 'kasko'),
|
||||
)({
|
||||
insured: { status: ElementStatus.Default },
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
// объединили реакцию для прицепа и возвратного лизинга
|
||||
reaction(
|
||||
() => {
|
||||
return {
|
||||
dealer: $calculation.getOption('selectDealer') as IAccount,
|
||||
leaseObjectCategory: $calculation.getValue('leaseObjectCategory'),
|
||||
};
|
||||
},
|
||||
({ dealer, leaseObjectCategory }) => {
|
||||
const isTrailer = leaseObjectCategory === 100000004;
|
||||
const returnLeasing = dealer.evo_return_leasing_dealer === true;
|
||||
|
||||
if (isTrailer || returnLeasing) {
|
||||
$calculation.setTableRow('tableInsurance', rows =>
|
||||
rows.findIndex(x => x.key === 'osago'),
|
||||
)({
|
||||
insured: { value: 100_000_000, status: ElementStatus.Disabled },
|
||||
});
|
||||
} else {
|
||||
$calculation.setTableRow('tableInsurance', rows =>
|
||||
rows.findIndex(x => x.key === 'osago'),
|
||||
)({
|
||||
insured: { status: ElementStatus.Default },
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
@ -18,14 +18,19 @@ export default function ($calculation: ICalculationStore) {
|
||||
() => {
|
||||
const product = $calculation.getOption('selectProduct');
|
||||
const { subsidy, importProgram } = $calculation.values;
|
||||
return { product, subsidy, importProgram };
|
||||
const dealer = $calculation.getOption('selectDealer');
|
||||
return { product, subsidy, importProgram, dealer };
|
||||
},
|
||||
({ product, subsidy, importProgram }) => {
|
||||
({ product, subsidy, importProgram, dealer }) => {
|
||||
const supplierCurrency =
|
||||
$calculation.options.selectSupplierCurrency?.find(
|
||||
x => x.isocurrencycode === 'RUB',
|
||||
);
|
||||
if (subsidy || importProgram) {
|
||||
if (
|
||||
subsidy ||
|
||||
importProgram ||
|
||||
dealer?.evo_return_leasing_dealer === true
|
||||
) {
|
||||
$calculation.setValue(
|
||||
'supplierCurrency',
|
||||
supplierCurrency?.transactioncurrencyid,
|
||||
@ -48,24 +53,26 @@ export default function ($calculation: ICalculationStore) {
|
||||
|
||||
/**
|
||||
* @description
|
||||
* на изменение selectProduct, selectSubsidy или selectImportProgram
|
||||
если selectSusidy или selectItProgram содержит данные, то selectSupplierCurrency = RUB,
|
||||
* на изменение selectProduct, selectSubsidy или selectImportProgram или selectDealer
|
||||
если selectSusidy или selectItProgram содержит данные или в поле selectDealer указан account, у которого evo_return_leasing_dealer = true, то selectSupplierCurrency закрыта для редактирования,
|
||||
иначе
|
||||
если selectProduct не содержит данные, то selectSupplierCurrency = RUB, иначе
|
||||
если (в поле Продукт selectProduct выбрана запись, у которой БУбезНДС evo_sale_without_nds = True),
|
||||
то selectSupplierCurrency = RUB
|
||||
иначе без изменения
|
||||
|
||||
|
||||
если selectProduct не содержит данные, то selectSupplierCurrency закрыта для редактирования, иначе
|
||||
если (в поле Продукт selectProduct выбрана запись, у которой БУбезНДС evo_sale_without_nds = True), то selectSupplierCurrency закрыта для редактирования
|
||||
иначе selectSupplierCurrency открыто для редактирования
|
||||
*/
|
||||
reaction(
|
||||
() => {
|
||||
const product = $calculation.getOption('selectProduct');
|
||||
const { subsidy, importProgram } = $calculation.values;
|
||||
return { product, subsidy, importProgram };
|
||||
const dealer = $calculation.getOption('selectDealer');
|
||||
return { product, subsidy, importProgram, dealer };
|
||||
},
|
||||
({ product, subsidy, importProgram }) => {
|
||||
if (subsidy || importProgram) {
|
||||
({ product, subsidy, importProgram, dealer }) => {
|
||||
if (
|
||||
subsidy ||
|
||||
importProgram ||
|
||||
dealer?.evo_return_leasing_dealer === true
|
||||
) {
|
||||
$calculation.setStatus(
|
||||
'selectSupplierCurrency',
|
||||
ElementStatus.Disabled,
|
||||
|
||||
@ -282,8 +282,10 @@ export default function ($calculation: ICalculationStore) {
|
||||
|
||||
/**
|
||||
* @description
|
||||
* реакция на ПЛ БУ, Субсидию и Продукт
|
||||
* если ПЛ БУ = Да или Субсидия содержит данные или в Продукте БУбезНДС = Да,
|
||||
* реакция на ПЛ БУ, Субсидию и Продукт и Салон
|
||||
* если ПЛ БУ = Да или Субсидия содержит данные
|
||||
* или в Продукте БУбезНДС = Да,
|
||||
* или в selectDealer указан account, у которого evo_return_leasing_dealer === true
|
||||
* то поле Срок поставки = 100 000 000 и закрыто для редактирования, иначе открыто для редактирования
|
||||
*/
|
||||
reaction(
|
||||
@ -291,15 +293,22 @@ export default function ($calculation: ICalculationStore) {
|
||||
const { leaseObjectUsed } = $calculation.values;
|
||||
const sudsidy = $calculation.getOption('selectSubsidy');
|
||||
const product = $calculation.getOption('selectProduct');
|
||||
const dealer = $calculation.getOption('selectDealer');
|
||||
|
||||
return {
|
||||
leaseObjectUsed,
|
||||
sudsidy,
|
||||
product,
|
||||
dealer,
|
||||
};
|
||||
},
|
||||
({ leaseObjectUsed, sudsidy, product }) => {
|
||||
if (leaseObjectUsed || sudsidy || product?.evo_sale_without_nds) {
|
||||
({ leaseObjectUsed, sudsidy, product, dealer }) => {
|
||||
if (
|
||||
leaseObjectUsed ||
|
||||
sudsidy ||
|
||||
product?.evo_sale_without_nds ||
|
||||
dealer?.evo_return_leasing_dealer
|
||||
) {
|
||||
$calculation.setValue('deliveryTime', 100_000_000);
|
||||
$calculation.setStatus('radioDeliveryTime', ElementStatus.Disabled);
|
||||
} else {
|
||||
|
||||
@ -0,0 +1,164 @@
|
||||
import { ICalculationStore } from 'core/types/Calculation/Store';
|
||||
|
||||
/**
|
||||
* Добавить валидацию на кнопку Рассчитать:
|
||||
если tbxDealerRewardSumm > 0 и
|
||||
если selectDealerPerson = selectDealerBroker и tbxDealerBrokerRewardSumm > 0, то ругаться на selectDealerPerson
|
||||
если selectDealerPerson = selectIndAgent и tbxIndAgentRewardSumm > 0, то ругаться на selectDealerPerson
|
||||
если selectDealerPerson = selectCalcDoubleAgent и tbxCalcDoubleAgentRewardSumm > 0, то ругаться на selectDealerPerson
|
||||
если selectDealerPerson = selectCalcBroker tbxCalcBrokerRewardSum > 0, то ругаться на selectDealerPerson
|
||||
если selectDealerPerson = selectFinDepartment и tbxFinDepartmentRewardSumm > 0, то ругаться на selectDealerPerson
|
||||
2.если tbxDealerBrokerRewardSumm > 0 и
|
||||
|
||||
если selectDealerBroker = selectDealerPerson и tbxDealerRewardSumm > 0, то ругаться на selectDealerBroker
|
||||
если selectDealerBroker = selectIndAgent и tbxIndAgentRewardSumm > 0, то ругаться на selectDealerBroker
|
||||
если selectDealerBroker = selectCalcDoubleAgent и tbxCalcDoubleAgentRewardSumm > 0, то ругаться на selectDealerBroker
|
||||
если selectDealerBroker = selectCalcBroker tbxCalcBrokerRewardSum > 0, то ругаться на selectDealerBroker
|
||||
если selectDealerBroker = selectFinDepartment и tbxFinDepartmentRewardSumm > 0, то ругаться на selectDealerBroker
|
||||
3. если tbxIndAgentRewardSumm > 0 и
|
||||
|
||||
если selectIndAgent = selectDealerPerson и tbxDealerRewardSumm > 0, то ругаться на selectIndAgent
|
||||
если selectIndAgent = selectDealerBroker и tbxDealerBrokerRewardSumm > 0, то ругаться на selectIndAgent
|
||||
если selectIndAgent = selectCalcDoubleAgent и tbxCalcDoubleAgentRewardSumm > 0, то ругаться на selectIndAgent
|
||||
если selectIndAgent = selectCalcBroker tbxCalcBrokerRewardSum > 0, то ругаться на selectIndAgent
|
||||
если selectIndAgent = selectFinDepartment и tbxFinDepartmentRewardSumm > 0, то ругаться на selectIndAgent
|
||||
4. если tbxCalcDoubleAgentRewardSumm > 0 и
|
||||
|
||||
если selectCalcDoubleAgent = selectDealerPerson и tbxDealerRewardSumm > 0, то ругаться на selectCalcDoubleAgent
|
||||
если selectCalcDoubleAgent = selectDealerBroker и tbxDealerBrokerRewardSumm > 0, то ругаться на selectCalcDoubleAgent
|
||||
если selectCalcDoubleAgent = sselectIndAgent и tbxIndAgentRewardSumm > 0, то ругаться на selectCalcDoubleAgent
|
||||
если selectCalcDoubleAgent = selectCalcBroker tbxCalcBrokerRewardSum > 0, то ругаться на selectCalcDoubleAgent
|
||||
если selectCalcDoubleAgent = selectFinDepartment и tbxFinDepartmentRewardSumm > 0, то ругаться на selectCalcDoubleAgent
|
||||
5. если tbxCalcBrokerRewardSum > 0 и
|
||||
|
||||
если selectCalcBroker = selectDealerPerson и tbxDealerRewardSumm > 0, то ругаться на selectCalcBroker
|
||||
если selectCalcBroker = selectDealerBroker и tbxDealerBrokerRewardSumm > 0, то ругаться на selectCalcBroker
|
||||
если selectCalcBroker = sselectIndAgent и tbxIndAgentRewardSumm > 0, то ругаться на selectCalcBroker
|
||||
если selectCalcBroker = selectCalcDoubleAgent и tbxCalcDoubleAgentRewardSumm > 0, то ругаться на selectCalcBroker
|
||||
если selectCalcBroker = selectFinDepartment и tbxFinDepartmentRewardSumm > 0, то ругаться на selectCalcBroker
|
||||
6. если tbxFinDepartmentRewardSumm > 0 и
|
||||
|
||||
если selectFinDepartment = selectDealerPerson и tbxDealerRewardSumm > 0, то ругаться на selectFinDepartment
|
||||
если selectFinDepartment = selectDealerBroker и tbxDealerBrokerRewardSumm > 0, то ругаться на selectFinDepartment
|
||||
если selectFinDepartment = sselectIndAgent и tbxIndAgentRewardSumm > 0, то ругаться на selectFinDepartment
|
||||
если selectFinDepartment = selectCalcDoubleAgent и tbxCalcDoubleAgentRewardSumm > 0, то ругаться на selectFinDepartment
|
||||
если selectFinDepartment = selectCalcBroker tbxCalcBrokerRewardSum > 0, то ругаться на selectFinDepartment
|
||||
*/
|
||||
export default function customValidation($calculation: ICalculationStore) {
|
||||
const dealerRewardSumm = $calculation.getValue('dealerRewardSumm');
|
||||
const dealerBrokerRewardSumm = $calculation.getValue(
|
||||
'dealerBrokerRewardSumm',
|
||||
);
|
||||
const indAgentRewardSumm = $calculation.getValue('indAgentRewardSumm');
|
||||
const calcDoubleAgentRewardSumm = $calculation.getValue(
|
||||
'calcDoubleAgentRewardSumm',
|
||||
);
|
||||
const calcBrokerRewardSum = $calculation.getValue('calcBrokerRewardSum');
|
||||
const finDepartmentRewardSumm = $calculation.getValue(
|
||||
'finDepartmentRewardSumm',
|
||||
);
|
||||
|
||||
const dealerPerson = $calculation.getValue('dealerPerson');
|
||||
const dealerBroker = $calculation.getValue('dealerBroker');
|
||||
const indAgent = $calculation.getValue('indAgent');
|
||||
const calcDoubleAgent = $calculation.getValue('calcDoubleAgent');
|
||||
const calcBroker = $calculation.getValue('calcBroker');
|
||||
const calcFinDepartment = $calculation.getValue('calcFinDepartment');
|
||||
|
||||
/**
|
||||
* В валидацию на кнопку Рассчитать внести изменение:
|
||||
1) поле selectDealerPerson убрать из списка обязательных для расчета полей
|
||||
2) добавить валидацию на поле selectDealerPerson :
|
||||
Если в поле selectDealer указан account, у которого evo_return_leasing_dealer = False (или null) и поле selectDealerPerson = null, то выводить ошибку и поле selectDealerPerson обводить красной рамкой, иначе все ок
|
||||
*/
|
||||
|
||||
const dealer = $calculation.getOption('selectDealer');
|
||||
const isReturnLeasing = dealer?.evo_return_leasing_dealer;
|
||||
|
||||
if (
|
||||
(dealerRewardSumm > 0 &&
|
||||
dealerPerson &&
|
||||
((dealerPerson === dealerBroker && dealerBrokerRewardSumm > 0) ||
|
||||
(dealerPerson === indAgent && indAgentRewardSumm > 0) ||
|
||||
(dealerPerson === calcDoubleAgent && calcDoubleAgentRewardSumm > 0) ||
|
||||
(dealerPerson === calcBroker && calcBrokerRewardSum > 0) ||
|
||||
(dealerPerson === calcFinDepartment && finDepartmentRewardSumm > 0))) ||
|
||||
// TODO: последнее условие сделать отдельно
|
||||
(!isReturnLeasing && !dealerPerson)
|
||||
) {
|
||||
$calculation.setValidation('selectDealerPerson', false);
|
||||
} else {
|
||||
$calculation.setValidation('selectDealerPerson', undefined);
|
||||
}
|
||||
|
||||
if (
|
||||
dealerBrokerRewardSumm > 0 &&
|
||||
dealerBroker &&
|
||||
((dealerBroker === dealerPerson && dealerRewardSumm > 0) ||
|
||||
(dealerBroker === indAgent && indAgentRewardSumm > 0) ||
|
||||
(dealerBroker === calcDoubleAgent && calcDoubleAgentRewardSumm > 0) ||
|
||||
(dealerBroker === calcBroker && calcBrokerRewardSum > 0) ||
|
||||
(dealerBroker === calcFinDepartment && finDepartmentRewardSumm > 0))
|
||||
) {
|
||||
$calculation.setValidation('selectDealerBroker', false);
|
||||
} else {
|
||||
$calculation.setValidation('selectDealerBroker', undefined);
|
||||
}
|
||||
|
||||
if (
|
||||
indAgentRewardSumm > 0 &&
|
||||
indAgent &&
|
||||
((indAgent === dealerPerson && dealerRewardSumm > 0) ||
|
||||
(indAgent === dealerBroker && dealerBrokerRewardSumm > 0) ||
|
||||
(indAgent === calcDoubleAgent && calcDoubleAgentRewardSumm > 0) ||
|
||||
(indAgent === calcBroker && calcBrokerRewardSum > 0) ||
|
||||
(indAgent === calcFinDepartment && finDepartmentRewardSumm > 0))
|
||||
) {
|
||||
$calculation.setValidation('selectIndAgent', false);
|
||||
} else {
|
||||
$calculation.setValidation('selectIndAgent', undefined);
|
||||
}
|
||||
|
||||
if (
|
||||
calcDoubleAgentRewardSumm > 0 &&
|
||||
calcDoubleAgent &&
|
||||
((calcDoubleAgent === dealerPerson && dealerRewardSumm > 0) ||
|
||||
(calcDoubleAgent === dealerBroker && dealerBrokerRewardSumm > 0) ||
|
||||
(calcDoubleAgent === indAgent && indAgentRewardSumm > 0) ||
|
||||
(calcDoubleAgent === calcBroker && calcBrokerRewardSum > 0) ||
|
||||
(calcDoubleAgent === calcFinDepartment && finDepartmentRewardSumm > 0))
|
||||
) {
|
||||
$calculation.setValidation('selectCalcDoubleAgent', false);
|
||||
} else {
|
||||
$calculation.setValidation('selectCalcDoubleAgent', undefined);
|
||||
}
|
||||
|
||||
if (
|
||||
calcBrokerRewardSum > 0 &&
|
||||
calcBroker &&
|
||||
((calcBroker === dealerPerson && dealerRewardSumm > 0) ||
|
||||
(calcBroker === dealerBroker && dealerBrokerRewardSumm > 0) ||
|
||||
(calcBroker === indAgent && indAgentRewardSumm > 0) ||
|
||||
(calcBroker === calcDoubleAgent && calcDoubleAgentRewardSumm > 0) ||
|
||||
(calcBroker === calcFinDepartment && finDepartmentRewardSumm > 0))
|
||||
) {
|
||||
$calculation.setValidation('selectCalcBroker', false);
|
||||
} else {
|
||||
$calculation.setValidation('selectCalcBroker', undefined);
|
||||
}
|
||||
|
||||
if (
|
||||
finDepartmentRewardSumm > 0 &&
|
||||
calcFinDepartment &&
|
||||
((calcFinDepartment === dealerPerson && dealerRewardSumm > 0) ||
|
||||
(calcFinDepartment === dealerBroker && dealerBrokerRewardSumm > 0) ||
|
||||
(calcFinDepartment === indAgent && indAgentRewardSumm > 0) ||
|
||||
(calcFinDepartment === calcDoubleAgent &&
|
||||
calcDoubleAgentRewardSumm > 0) ||
|
||||
(calcFinDepartment === calcBroker && calcBrokerRewardSum > 0))
|
||||
) {
|
||||
$calculation.setValidation('selectCalcFinDepartment', false);
|
||||
} else {
|
||||
$calculation.setValidation('selectCalcFinDepartment', undefined);
|
||||
}
|
||||
}
|
||||
@ -145,7 +145,7 @@ const elementsValidations: Partial<
|
||||
selectModel: CONDITIONS.IS_NULL,
|
||||
selectLeaseObjectUseFor: CONDITIONS.IS_NULL,
|
||||
selectDealer: CONDITIONS.IS_NULL,
|
||||
selectDealerPerson: CONDITIONS.IS_NULL,
|
||||
// selectDealerPerson: CONDITIONS.IS_NULL,
|
||||
selectRegionRegistration: CONDITIONS.IS_NULL,
|
||||
selectTarif: CONDITIONS.IS_NULL,
|
||||
// selectRate: VALIDATIONS.IS_NULL,
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
import { ICalculationStore } from 'core/types/Calculation/Store';
|
||||
import customValidation from './custom';
|
||||
import validateElements from './elements';
|
||||
import validateTables from './tables';
|
||||
|
||||
export default function (this: ICalculationStore) {
|
||||
customValidation(this);
|
||||
validateElements.call(this);
|
||||
validateTables.call(this);
|
||||
}
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
import { gql } from '@apollo/client';
|
||||
import { message } from 'antd';
|
||||
import { resetIns } from 'client/Containers/Calculation/Components/ELT/lib/resetIns';
|
||||
import { numberElementsProps } from 'client/Containers/Calculation/Elements/props/common';
|
||||
import {
|
||||
getTitle,
|
||||
getValueName
|
||||
getValueName,
|
||||
} from 'client/Containers/Calculation/Elements/tools';
|
||||
import { ElementsNames } from 'client/Containers/Calculation/types/elements';
|
||||
import { openNotification } from 'client/Elements/Notification';
|
||||
@ -13,7 +14,7 @@ import {
|
||||
mainOptionsForQuoteQuery,
|
||||
quoteQuery,
|
||||
secondaryOptionsForQuoteQuery,
|
||||
singleOptionsForQuoteQuery
|
||||
singleOptionsForQuoteQuery,
|
||||
} from 'core/services/CrmService/graphql/query/quote';
|
||||
import { TOptionizedEntity } from 'core/services/CrmService/types/common';
|
||||
import {
|
||||
@ -21,7 +22,7 @@ import {
|
||||
IAccount,
|
||||
IEvoGraph,
|
||||
IEvoTown,
|
||||
IQuote
|
||||
IQuote,
|
||||
} from 'core/services/CrmService/types/entities';
|
||||
import { currentISODate } from 'core/tools/date';
|
||||
import { NIL } from 'core/tools/uuid';
|
||||
@ -165,6 +166,7 @@ const loadKpReaction: IReactionEffect = calculationStore => ({
|
||||
//TODO: refactor
|
||||
const { indAgent, calcBroker, calcFinDepartment } =
|
||||
calculationStore.values;
|
||||
|
||||
let {
|
||||
indAgentRewardCondition,
|
||||
indAgentRewardSumm,
|
||||
@ -199,6 +201,85 @@ const loadKpReaction: IReactionEffect = calculationStore => ({
|
||||
};
|
||||
// agents
|
||||
|
||||
// dealer
|
||||
|
||||
let { dealerPerson } = calculationStore.values;
|
||||
|
||||
// TODO: сделать запрос на account
|
||||
const dealer = calculationStore.getOption('selectDealer', {
|
||||
accountid: quote.evo_supplier_accountid,
|
||||
});
|
||||
|
||||
if (dealer?.evo_return_leasing_dealer) {
|
||||
calculationStore.setOptions('selectDealerPerson', []);
|
||||
calculationStore.setValue('dealerPerson', null);
|
||||
calculationStore.setStatus(
|
||||
'selectDealerPerson',
|
||||
ElementStatus.Disabled,
|
||||
);
|
||||
} else {
|
||||
const { selectDealerPerson: dealerPersonOptions } =
|
||||
await CrmService.getCRMOptions<'selectDealerPerson', IAccount>({
|
||||
query: gql`
|
||||
query GetSelectDealerPersonByQuote($dealerId: Uuid!) {
|
||||
selectDealerPerson: salon_providers(
|
||||
statecode: 0
|
||||
salonaccountid: $dealerId
|
||||
) {
|
||||
accountid
|
||||
name
|
||||
evo_broker_accountid
|
||||
evo_kpp
|
||||
evo_inn
|
||||
}
|
||||
}
|
||||
`,
|
||||
variables: {
|
||||
dealerId: quote.evo_supplier_accountid,
|
||||
},
|
||||
});
|
||||
|
||||
const dealer_broker_accountid =
|
||||
dealerPersonOptions &&
|
||||
dealerPersonOptions?.length > 0 &&
|
||||
dealerPersonOptions[0].evo_broker_accountid;
|
||||
if (dealer_broker_accountid) {
|
||||
const { selectDealerBroker: dealerBrokerOptions } =
|
||||
await CrmService.getCRMOptions<'selectDealerBroker', IAccount>({
|
||||
query: gql`
|
||||
query GetDealerBrokerByDealerPerson($brokerid: Uuid!) {
|
||||
selectDealerBroker: account(accountid: $brokerid) {
|
||||
accountid
|
||||
name
|
||||
}
|
||||
}
|
||||
`,
|
||||
variables: {
|
||||
brokerid: dealer_broker_accountid,
|
||||
},
|
||||
});
|
||||
if (dealerBrokerOptions)
|
||||
calculationStore.setOptions(
|
||||
'selectDealerBroker',
|
||||
dealerBrokerOptions,
|
||||
);
|
||||
}
|
||||
|
||||
if (dealerPersonOptions?.length) {
|
||||
calculationStore.setOptions(
|
||||
'selectDealerPerson',
|
||||
dealerPersonOptions,
|
||||
);
|
||||
dealerPerson = quote.evo_dealer_person_accountid;
|
||||
calculationStore.setStatus(
|
||||
'selectDealerPerson',
|
||||
ElementStatus.Default,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// dealer
|
||||
|
||||
// fill insurance table
|
||||
calculationStore.setTableRows(
|
||||
'tableInsurance',
|
||||
@ -601,6 +682,7 @@ const loadKpReaction: IReactionEffect = calculationStore => ({
|
||||
engineHours,
|
||||
leasingPeriod,
|
||||
objectRegistration,
|
||||
dealerPerson,
|
||||
};
|
||||
|
||||
// check min max number values
|
||||
|
||||
@ -44,7 +44,7 @@ const mapKPtoValues: Partial<Record<keyof IQuote | string, ValuesNames>> = {
|
||||
evo_seats: 'countSeats',
|
||||
evo_max_speed: 'maxSpeed',
|
||||
evo_supplier_accountid: 'dealer',
|
||||
evo_dealer_person_accountid: 'dealerPerson',
|
||||
// evo_dealer_person_accountid: 'dealerPerson',
|
||||
evo_dealer_reward_conditionid: 'dealerRewardCondition',
|
||||
evo_dealer_reward_total: 'dealerRewardSumm',
|
||||
evo_dealer_broker_accountid: 'dealerBroker',
|
||||
|
||||
@ -539,7 +539,7 @@ export default [
|
||||
const dealer = calculationStore.getOption('selectDealer', {
|
||||
accountid: dealerId,
|
||||
});
|
||||
if (dealer) {
|
||||
if (dealer && !dealer.evo_return_leasing_dealer) {
|
||||
CrmService.getCRMOptions<'salon_providers', ISalonProvider>({
|
||||
query: gql`
|
||||
query selectDealerPerson(
|
||||
|
||||
@ -744,14 +744,13 @@ export default [
|
||||
const { leaseObjectCategory } = calculationStore.values;
|
||||
return leaseObjectCategory;
|
||||
},
|
||||
effect: (nextLeaseObjectCategory, prevLeaseObjectCategory) => {
|
||||
effect: leaseObjectCategory => {
|
||||
if (calculationProcess.hasProcess(Process.LoadKp)) {
|
||||
return;
|
||||
}
|
||||
const nextIsTrailer = nextLeaseObjectCategory === 100000004;
|
||||
const prevIsTrailer = prevLeaseObjectCategory === 100000004;
|
||||
const isTrailer = leaseObjectCategory === 100000004;
|
||||
|
||||
if (nextIsTrailer) {
|
||||
if (isTrailer) {
|
||||
const otherInsuranceCompany =
|
||||
calculationStore.tables.tableInsurance.options?.insuranceCompany?.find(
|
||||
x => x.name?.includes('ПРОЧИЕ'),
|
||||
@ -774,10 +773,6 @@ export default [
|
||||
value: 0,
|
||||
status: ElementStatus.Disabled,
|
||||
},
|
||||
insured: {
|
||||
value: 100000000,
|
||||
status: ElementStatus.Disabled,
|
||||
},
|
||||
});
|
||||
}
|
||||
} else {
|
||||
@ -788,15 +783,12 @@ export default [
|
||||
)({
|
||||
insuranceCompany: {
|
||||
filter: insuranceOsagoDefaultFilter,
|
||||
value: prevIsTrailer ? null : undefined,
|
||||
value: isTrailer ? null : undefined,
|
||||
status: ElementStatus.Default,
|
||||
},
|
||||
insCost: {
|
||||
status: ElementStatus.Default,
|
||||
},
|
||||
insured: {
|
||||
status: ElementStatus.Default,
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import leasebackReactions from 'client/process/agents/leaseback';
|
||||
import injectBonusesReaction from 'client/process/bonuses/reactions';
|
||||
import { injectConfiguratorReactions } from 'client/process/configurator/reactions';
|
||||
import { injectFinGapReactions } from 'client/process/fingap/reactions';
|
||||
@ -43,6 +44,7 @@ injectUsedWhthVATReactions(CalculationStore);
|
||||
injectConfiguratorReactions(CalculationStore);
|
||||
injectSubsidyReactions(CalculationStore);
|
||||
injectBonusesReaction(CalculationStore);
|
||||
leasebackReactions(CalculationStore);
|
||||
|
||||
whenEffects.map(whenEffectBuilder => {
|
||||
const whenEffect = whenEffectBuilder(CalculationStore);
|
||||
|
||||
@ -34,6 +34,7 @@ query GetMainOptions(
|
||||
) {
|
||||
name
|
||||
accountid
|
||||
evo_return_leasing_dealer
|
||||
}
|
||||
selectGPSBrand: evo_gps_brands(statecode: $statecode) {
|
||||
evo_name
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -43,6 +43,7 @@ export interface BaseEntity {
|
||||
}
|
||||
|
||||
export interface IAccount extends BaseEntity {
|
||||
evo_return_leasing_dealer?: boolean;
|
||||
name?: string;
|
||||
accountid?: string;
|
||||
evo_inn?: string;
|
||||
|
||||
Reference in New Issue
Block a user