diff --git a/apps/web/Components/Calculation/Form/ELT/lib/make-request.ts b/apps/web/Components/Calculation/Form/ELT/lib/make-request.ts
index b5c1d33..68f673c 100644
--- a/apps/web/Components/Calculation/Form/ELT/lib/make-request.ts
+++ b/apps/web/Components/Calculation/Form/ELT/lib/make-request.ts
@@ -348,21 +348,15 @@ export async function makeEltKaskoRequest(
const leaseObjectUsed = $calculation.element('cbxLeaseObjectUsed').getValue();
const productId = $calculation.element('selectProduct').getValue();
- let evo_baseproduct: CRMTypes.GetProductQuery['evo_baseproduct'] = null;
- if (productId) {
- const { data } = await apolloClient.query({
- query: CRMTypes.GetProductDocument,
- variables: { productId },
- });
- ({ evo_baseproduct } = data);
- }
+ const partialVAT = $calculation.element('cbxPartialVAT').getValue();
const leaseObjectYear = $calculation.element('tbxLeaseObjectYear').getValue();
let isNew = true;
if (
leaseObjectUsed === true ||
(leaseObjectUsed === false &&
- evo_baseproduct?.evo_sale_without_nds === true &&
+ productId &&
+ partialVAT &&
leaseObjectYear < currentDate.getFullYear() - 1)
) {
isNew = false;
@@ -373,7 +367,8 @@ export async function makeEltKaskoRequest(
if (
leaseObjectUsed === true ||
(leaseObjectUsed === false &&
- evo_baseproduct?.evo_sale_without_nds === true &&
+ productId &&
+ partialVAT &&
leaseObjectYear < currentDate.getFullYear() - 1)
) {
vehicleDate = new Date(`${vehicleYear}-01-01`);
@@ -496,7 +491,8 @@ export async function makeEltKaskoRequest(
if (
leaseObjectUsed === false &&
- evo_baseproduct?.evo_sale_without_nds === true &&
+ productId &&
+ partialVAT &&
leaseObjectYear < currentDate.getFullYear() - 1
) {
mileage = 0;
diff --git a/apps/web/Components/Calculation/addons/product-addon.tsx b/apps/web/Components/Calculation/addons/product-addon.tsx
new file mode 100644
index 0000000..e13f058
--- /dev/null
+++ b/apps/web/Components/Calculation/addons/product-addon.tsx
@@ -0,0 +1,53 @@
+/* eslint-disable react/forbid-component-props */
+import titles from '../config/elements-titles';
+import { useStore } from '@/stores/hooks';
+import { observer } from 'mobx-react-lite';
+import { pick } from 'radash';
+import styled from 'styled-components';
+import { Tag } from 'ui/elements';
+
+const Container = styled.div`
+ display: flex;
+ flex-direction: row;
+ gap: 5px;
+`;
+
+const TagWrapper = styled.div<{ disabled: boolean }>`
+ > span {
+ pointer-events: ${(props) => (props.disabled ? 'none' : 'auto')};
+ opacity: ${(props) => (props.disabled ? '50%' : '')};
+ }
+`;
+
+const tagsData = pick(titles, ['cbxPartialVAT', 'cbxFloatingRate']);
+
+const { CheckableTag } = Tag;
+
+export const ProductAddon = observer(() => {
+ const { $calculation } = useStore();
+
+ function handleChange(elementName: keyof typeof tagsData, checked: boolean) {
+ $calculation.element(elementName).setValue(checked);
+ }
+
+ return (
+
+ {(Object.keys(tagsData) as Array).map((elementName) => {
+ const visible = $calculation.$status.getStatus(elementName);
+
+ return (
+
+ handleChange(elementName, checked)}
+ key={elementName}
+ style={{ marginInlineEnd: 0 }}
+ >
+ {tagsData[elementName]}
+
+
+ );
+ })}
+
+ );
+});
diff --git a/apps/web/Components/Calculation/config/elements-components.ts b/apps/web/Components/Calculation/config/elements-components.ts
index d7dde05..c5a0692 100644
--- a/apps/web/Components/Calculation/config/elements-components.ts
+++ b/apps/web/Components/Calculation/config/elements-components.ts
@@ -134,6 +134,7 @@ const components = wrapComponentsMap({
cbxSupplierFinancing: e.Switch,
tbxPi: e.InputNumber,
cbxPartialVAT: e.Switch,
+ cbxFloatingRate: e.Switch,
/** Readonly Elements */
labelLeaseObjectRisk: e.Text,
diff --git a/apps/web/Components/Calculation/config/elements-render/override.tsx b/apps/web/Components/Calculation/config/elements-render/override.tsx
index 94a0b32..df6723d 100644
--- a/apps/web/Components/Calculation/config/elements-render/override.tsx
+++ b/apps/web/Components/Calculation/config/elements-render/override.tsx
@@ -1,3 +1,4 @@
+import { ProductAddon } from '../../addons/product-addon';
import { buildLink } from '../../builders';
import components from '../elements-components';
import elementsProps from '../elements-props';
@@ -221,6 +222,29 @@ const overrideRender: Partial> = {
},
},
+ selectProduct: {
+ render: () => {
+ const elementName = 'selectProduct';
+ const title = titles.selectProduct;
+ const valueName = map.selectProduct;
+ const Component = components.selectProduct;
+ const props = elementsProps.selectProduct;
+ const { builder } = types.selectProduct();
+
+ const Element = builder(Component, {
+ elementName,
+ valueName,
+ });
+
+ return (
+
+ } htmlFor={elementName} title={title} />
+
+
+ );
+ },
+ },
+
selectQuote: {
render: () => {
const elementName = 'selectQuote';
diff --git a/apps/web/Components/Calculation/config/elements-titles.ts b/apps/web/Components/Calculation/config/elements-titles.ts
index bf555a0..e2db3a4 100644
--- a/apps/web/Components/Calculation/config/elements-titles.ts
+++ b/apps/web/Components/Calculation/config/elements-titles.ts
@@ -128,6 +128,7 @@ const titles: Record = {
cbxSupplierFinancing: 'Финансирование поставщика',
tbxPi: 'PI',
cbxPartialVAT: 'Частичный НДС',
+ cbxFloatingRate: 'Плавающая ставка',
/** Link Elements */
linkDownloadKp: '',
diff --git a/apps/web/Components/Calculation/config/elements-types.ts b/apps/web/Components/Calculation/config/elements-types.ts
index 4b7c8cc..5c68284 100644
--- a/apps/web/Components/Calculation/config/elements-types.ts
+++ b/apps/web/Components/Calculation/config/elements-types.ts
@@ -193,6 +193,7 @@ const types = wrapElementsTypes({
cbxSupplierFinancing: t.Switch,
tbxPi: t.Number,
cbxPartialVAT: t.Switch,
+ cbxFloatingRate: t.Switch,
labelLeaseObjectRisk: t.Readonly,
tbxInsKaskoPriceLeasePeriod: t.Readonly,
diff --git a/apps/web/Components/Calculation/config/map/values.ts b/apps/web/Components/Calculation/config/map/values.ts
index 5bdf7e2..5d278f4 100644
--- a/apps/web/Components/Calculation/config/map/values.ts
+++ b/apps/web/Components/Calculation/config/map/values.ts
@@ -131,6 +131,7 @@ const elementsToValues = wrapElementsMap({
cbxSupplierFinancing: 'supplierFinancing',
tbxPi: 'pi',
cbxPartialVAT: 'partialVAT',
+ cbxFloatingRate: 'floatingRate',
/** Readonly Elements */
labelLeaseObjectRisk: 'leaseObjectRiskName',
diff --git a/apps/web/config/default-options.ts b/apps/web/config/default-options.ts
index 0080899..15424e4 100644
--- a/apps/web/config/default-options.ts
+++ b/apps/web/config/default-options.ts
@@ -505,6 +505,7 @@ const defaultOptions: CalculationOptions = {
cbxSupplierFinancing: [],
tbxPi: [],
cbxPartialVAT: [],
+ cbxFloatingRate: [],
};
export default defaultOptions;
diff --git a/apps/web/config/default-statuses.ts b/apps/web/config/default-statuses.ts
index 5d2a630..04e2477 100644
--- a/apps/web/config/default-statuses.ts
+++ b/apps/web/config/default-statuses.ts
@@ -6,6 +6,7 @@ const defaultStatuses: CalculationStatuses = {
btnCreateKPMini: 'Default',
cbxCostIncrease: 'Default',
cbxDisableChecks: 'Default',
+ cbxFloatingRate: 'Default',
cbxFullPriceWithDiscount: 'Default',
cbxInsDecentral: 'Default',
cbxInsUnlimitDrivers: 'Default',
diff --git a/apps/web/config/default-values.ts b/apps/web/config/default-values.ts
index cc70187..d8a6931 100644
--- a/apps/web/config/default-values.ts
+++ b/apps/web/config/default-values.ts
@@ -142,6 +142,7 @@ const defaultValues: CalculationValues = {
vin: null,
withTrailer: false,
partialVAT: false,
+ floatingRate: false,
};
export default defaultValues;
diff --git a/apps/web/config/schema/values.ts b/apps/web/config/schema/values.ts
index 3a5ce52..190803d 100644
--- a/apps/web/config/schema/values.ts
+++ b/apps/web/config/schema/values.ts
@@ -127,6 +127,7 @@ const ValuesSchema = z.object({
vin: z.string().nullable(),
withTrailer: z.boolean(),
partialVAT: z.boolean(),
+ floatingRate: z.boolean(),
/**
* Link Values
diff --git a/apps/web/graphql/crm.query.graphql b/apps/web/graphql/crm.query.graphql
index e127420..1d1e6c9 100644
--- a/apps/web/graphql/crm.query.graphql
+++ b/apps/web/graphql/crm.query.graphql
@@ -106,6 +106,7 @@ query GetQuote($quoteId: Uuid!) {
evo_programsolution
evo_kasko_payer
evo_promotion
+ evo_sale_without_nds
}
}
@@ -131,6 +132,8 @@ query GetTarifs($currentDate: DateTime) {
evo_leasingobject_typeid
}
evo_pl_use_type
+ evo_nds_rules
+ evo_floating_rate
}
}
@@ -208,7 +211,6 @@ query GetProduct($productId: Uuid!) {
evo_sale_without_nds
evo_cut_proportion_bonus_director
evo_cut_irr_with_bonus
- evo_sale_without_nds
evo_id
evo_supplier_financing_accept
accounts {
diff --git a/apps/web/graphql/crm.types.ts b/apps/web/graphql/crm.types.ts
index 48fdd01..923de21 100644
--- a/apps/web/graphql/crm.types.ts
+++ b/apps/web/graphql/crm.types.ts
@@ -763,14 +763,14 @@ export type GetQuoteQueryVariables = Exact<{
}>;
-export type GetQuoteQuery = { __typename?: 'Query', quote: { __typename?: 'quote', evo_baseproductid: string | null, evo_one_year_insurance: boolean | null, evo_min_change_price: number | null, evo_max_price_change: number | null, evo_discount_supplier_currency: number | null, evo_equip_price: number | null, evo_program_import_subsidy_sum: number | null, evo_nds_in_price_supplier_currency: number | null, evo_supplier_currency_price: number | null, evo_approved_first_payment: number | null, evo_recalc_limit: number | null, evo_max_mass: number | null, evo_seats: number | null, evo_year: number | null, evo_last_payment_perc: number | null, evo_maximum_percentage_av: number | null, evo_untype_insurance: boolean | null, evo_percent_subsidy: number | null, evo_programsolution: number | null, evo_kasko_payer: number | null, evo_promotion: Array | null } | null };
+export type GetQuoteQuery = { __typename?: 'Query', quote: { __typename?: 'quote', evo_baseproductid: string | null, evo_one_year_insurance: boolean | null, evo_min_change_price: number | null, evo_max_price_change: number | null, evo_discount_supplier_currency: number | null, evo_equip_price: number | null, evo_program_import_subsidy_sum: number | null, evo_nds_in_price_supplier_currency: number | null, evo_supplier_currency_price: number | null, evo_approved_first_payment: number | null, evo_recalc_limit: number | null, evo_max_mass: number | null, evo_seats: number | null, evo_year: number | null, evo_last_payment_perc: number | null, evo_maximum_percentage_av: number | null, evo_untype_insurance: boolean | null, evo_percent_subsidy: number | null, evo_programsolution: number | null, evo_kasko_payer: number | null, evo_promotion: Array | null, evo_sale_without_nds: boolean | null } | null };
export type GetTarifsQueryVariables = Exact<{
currentDate: InputMaybe;
}>;
-export type GetTarifsQuery = { __typename?: 'Query', evo_tarifs: Array<{ __typename?: 'evo_tarif', evo_tarifid: string | null, evo_baseproductid: string | null, evo_min_period: number | null, evo_max_period: number | null, evo_delivery_time: Array | null, evo_min_first_payment: number | null, evo_max_first_payment: number | null, evo_min_last_payment: number | null, evo_max_last_payment: number | null, evo_used: boolean | null, evo_pl_use_type: Array | null, label: string | null, value: string | null, evo_leasingobject_types: Array<{ __typename?: 'evo_leasingobject_type', evo_leasingobject_typeid: string | null } | null> | null } | null> | null };
+export type GetTarifsQuery = { __typename?: 'Query', evo_tarifs: Array<{ __typename?: 'evo_tarif', evo_tarifid: string | null, evo_baseproductid: string | null, evo_min_period: number | null, evo_max_period: number | null, evo_delivery_time: Array | null, evo_min_first_payment: number | null, evo_max_first_payment: number | null, evo_min_last_payment: number | null, evo_max_last_payment: number | null, evo_used: boolean | null, evo_pl_use_type: Array | null, evo_nds_rules: number | null, evo_floating_rate: boolean | null, label: string | null, value: string | null, evo_leasingobject_types: Array<{ __typename?: 'evo_leasingobject_type', evo_leasingobject_typeid: string | null } | null> | null } | null> | null };
export type GetTarifQueryVariables = Exact<{
tarifId: Scalars['Uuid']['input'];
@@ -1090,7 +1090,7 @@ export type GetQuoteConfiguratorDataQueryVariables = Exact<{
}>;
-export type GetQuoteConfiguratorDataQuery = { __typename?: 'Query', quote: { __typename?: 'quote', evo_baseproductid: string | null, evo_client_typeid: string | null, evo_msfo_irr: number | null, evo_delivery_time: number | null, evo_first_payment_perc: number | null, evo_last_payment_perc: number | null, evo_leasingobject_typeid: string | null, evo_leasingobject_used: boolean | null, evo_period: number | null, evo_accept_period: number | null, evo_rateid: string | null, evo_min_change_price: number | null, evo_max_price_change: number | null } | null };
+export type GetQuoteConfiguratorDataQuery = { __typename?: 'Query', quote: { __typename?: 'quote', evo_baseproductid: string | null, evo_client_typeid: string | null, evo_msfo_irr: number | null, evo_delivery_time: number | null, evo_first_payment_perc: number | null, evo_last_payment_perc: number | null, evo_leasingobject_typeid: string | null, evo_leasingobject_used: boolean | null, evo_period: number | null, evo_accept_period: number | null, evo_rateid: string | null, evo_min_change_price: number | null, evo_max_price_change: number | null, evo_floating_rate: boolean | null, evo_sale_without_nds: boolean | null } | null };
export type GetQuoteCreateKpDataQueryVariables = Exact<{
quoteId: Scalars['Uuid']['input'];
@@ -1206,13 +1206,13 @@ export const GetLeadDocument = {"kind":"Document","definitions":[{"kind":"Operat
export const GetOpportunityDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetOpportunity"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"opportunityid"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"opportunity"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"opportunityid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"opportunityid"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leadid"}},{"kind":"Field","name":{"kind":"Name","value":"accountidData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_address_legalidData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_region_fias_id"}},{"kind":"Field","name":{"kind":"Name","value":"evo_city_fias_id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_okved"}}]}}]}}]}}]} as unknown as DocumentNode;
export const GetOpportunitiesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetOpportunities"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"domainname"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"opportunities"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"owner_domainname"},"value":{"kind":"Variable","name":{"kind":"Name","value":"domainname"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"opportunityid"}}]}}]}}]} as unknown as DocumentNode;
export const GetQuotesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQuotes"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"leadid"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"quotes"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_leadid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"leadid"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_quotename"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"quoteid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_recalc_limit"}},{"kind":"Field","name":{"kind":"Name","value":"evo_statuscodeidData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_purchases_participation"}}]}}]}}]} as unknown as DocumentNode;
-export const GetQuoteDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQuote"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"quote"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"quoteId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_baseproductid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_one_year_insurance"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_change_price"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_price_change"}},{"kind":"Field","name":{"kind":"Name","value":"evo_discount_supplier_currency"}},{"kind":"Field","name":{"kind":"Name","value":"evo_equip_price"}},{"kind":"Field","name":{"kind":"Name","value":"evo_program_import_subsidy_sum"}},{"kind":"Field","name":{"kind":"Name","value":"evo_nds_in_price_supplier_currency"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_currency_price"}},{"kind":"Field","name":{"kind":"Name","value":"evo_approved_first_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_recalc_limit"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_mass"}},{"kind":"Field","name":{"kind":"Name","value":"evo_seats"}},{"kind":"Field","name":{"kind":"Name","value":"evo_year"}},{"kind":"Field","name":{"kind":"Name","value":"evo_last_payment_perc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_maximum_percentage_av"}},{"kind":"Field","name":{"kind":"Name","value":"evo_untype_insurance"}},{"kind":"Field","name":{"kind":"Name","value":"evo_percent_subsidy"}},{"kind":"Field","name":{"kind":"Name","value":"evo_programsolution"}},{"kind":"Field","name":{"kind":"Name","value":"evo_kasko_payer"}},{"kind":"Field","name":{"kind":"Name","value":"evo_promotion"}}]}}]}}]} as unknown as DocumentNode;
-export const GetTarifsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTarifs"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"DateTime"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_tarifs"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}},{"kind":"Argument","name":{"kind":"Name","value":"evo_datefrom_param"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"evo_dateto_param"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_tarifid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_tarifid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_baseproductid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_period"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_period"}},{"kind":"Field","name":{"kind":"Name","value":"evo_delivery_time"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_first_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_first_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_last_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_last_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_used"}},{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_types"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_pl_use_type"}}]}}]}}]} as unknown as DocumentNode;
+export const GetQuoteDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQuote"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"quote"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"quoteId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_baseproductid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_one_year_insurance"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_change_price"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_price_change"}},{"kind":"Field","name":{"kind":"Name","value":"evo_discount_supplier_currency"}},{"kind":"Field","name":{"kind":"Name","value":"evo_equip_price"}},{"kind":"Field","name":{"kind":"Name","value":"evo_program_import_subsidy_sum"}},{"kind":"Field","name":{"kind":"Name","value":"evo_nds_in_price_supplier_currency"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_currency_price"}},{"kind":"Field","name":{"kind":"Name","value":"evo_approved_first_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_recalc_limit"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_mass"}},{"kind":"Field","name":{"kind":"Name","value":"evo_seats"}},{"kind":"Field","name":{"kind":"Name","value":"evo_year"}},{"kind":"Field","name":{"kind":"Name","value":"evo_last_payment_perc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_maximum_percentage_av"}},{"kind":"Field","name":{"kind":"Name","value":"evo_untype_insurance"}},{"kind":"Field","name":{"kind":"Name","value":"evo_percent_subsidy"}},{"kind":"Field","name":{"kind":"Name","value":"evo_programsolution"}},{"kind":"Field","name":{"kind":"Name","value":"evo_kasko_payer"}},{"kind":"Field","name":{"kind":"Name","value":"evo_promotion"}},{"kind":"Field","name":{"kind":"Name","value":"evo_sale_without_nds"}}]}}]}}]} as unknown as DocumentNode;
+export const GetTarifsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTarifs"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"DateTime"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_tarifs"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}},{"kind":"Argument","name":{"kind":"Name","value":"evo_datefrom_param"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"evo_dateto_param"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_tarifid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_tarifid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_baseproductid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_period"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_period"}},{"kind":"Field","name":{"kind":"Name","value":"evo_delivery_time"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_first_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_first_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_last_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_last_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_used"}},{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_types"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_pl_use_type"}},{"kind":"Field","name":{"kind":"Name","value":"evo_nds_rules"}},{"kind":"Field","name":{"kind":"Name","value":"evo_floating_rate"}}]}}]}}]} as unknown as DocumentNode;
export const GetTarifDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTarif"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"tarifId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_tarif"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_tarifid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"tarifId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_irr"}},{"kind":"Field","name":{"kind":"Name","value":"evo_graphtype_exception"}},{"kind":"Field","name":{"kind":"Name","value":"evo_seasons_type_exception"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_decreasing_perc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_irr"}},{"kind":"Field","name":{"kind":"Name","value":"evo_cut_irr_with_bonus_coefficient"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_irr"}},{"kind":"Field","name":{"kind":"Name","value":"evo_rates"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_datefrom"}},{"kind":"Field","name":{"kind":"Name","value":"evo_rateid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_irr_plan"}},{"kind":"Field","name":{"kind":"Name","value":"evo_margin_min"}}]}}]}}]} as unknown as DocumentNode;
export const GetRatesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetRates"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"DateTime"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_rates"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}},{"kind":"Argument","name":{"kind":"Name","value":"evo_datefrom_param"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"evo_dateto_param"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_rateid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id"}},{"kind":"Field","name":{"kind":"Name","value":"evo_tarifs"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_tarifid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_rateid"}}]}}]}}]} as unknown as DocumentNode;
export const GetRateDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetRate"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"rateId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_rate"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_rateid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"rateId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_base_rate"}},{"kind":"Field","name":{"kind":"Name","value":"evo_credit_period"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id"}},{"kind":"Field","name":{"kind":"Name","value":"evo_finance_rate"}}]}}]}}]} as unknown as DocumentNode;
export const GetProductsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetProducts"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"DateTime"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_baseproducts"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}},{"kind":"Argument","name":{"kind":"Name","value":"evo_relation"},"value":{"kind":"ListValue","values":[{"kind":"IntValue","value":"100000000"}]}},{"kind":"Argument","name":{"kind":"Name","value":"evo_datefrom_param"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"evo_dateto_param"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_baseproductid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_baseproductid"}},{"kind":"Field","name":{"kind":"Name","value":"systemusers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"systemuserid"}}]}}]}}]}}]} as unknown as DocumentNode;
-export const GetProductDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetProduct"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"productId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_baseproduct"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_baseproductid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"productId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_types"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_calculation_method"}},{"kind":"Field","name":{"kind":"Name","value":"evo_baseproducts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_baseproductid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_brands"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_brandid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_sale_without_nds"}},{"kind":"Field","name":{"kind":"Name","value":"evo_cut_proportion_bonus_director"}},{"kind":"Field","name":{"kind":"Name","value":"evo_cut_irr_with_bonus"}},{"kind":"Field","name":{"kind":"Name","value":"evo_sale_without_nds"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_financing_accept"}},{"kind":"Field","name":{"kind":"Name","value":"accounts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"accountid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_product_properties"}}]}}]}}]} as unknown as DocumentNode;
+export const GetProductDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetProduct"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"productId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_baseproduct"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_baseproductid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"productId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_types"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_calculation_method"}},{"kind":"Field","name":{"kind":"Name","value":"evo_baseproducts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_baseproductid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_brands"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_brandid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_sale_without_nds"}},{"kind":"Field","name":{"kind":"Name","value":"evo_cut_proportion_bonus_director"}},{"kind":"Field","name":{"kind":"Name","value":"evo_cut_irr_with_bonus"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id"}},{"kind":"Field","name":{"kind":"Name","value":"evo_supplier_financing_accept"}},{"kind":"Field","name":{"kind":"Name","value":"accounts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"accountid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_product_properties"}}]}}]}}]} as unknown as DocumentNode;
export const GetSubsidiesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetSubsidies"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"DateTime"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_subsidies"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"statecode"},"value":{"kind":"IntValue","value":"0"}},{"kind":"Argument","name":{"kind":"Name","value":"evo_datefrom_param"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"lte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}},{"kind":"Argument","name":{"kind":"Name","value":"evo_dateto_param"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"gte"},"value":{"kind":"Variable","name":{"kind":"Name","value":"currentDate"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"evo_name"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"evo_subsidyid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_subsidy_type"}}]}}]}}]} as unknown as DocumentNode;
export const GetSubsidyDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetSubsidy"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"subsidyId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_subsidy"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_subsidyid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"subsidyId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_types"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"accounts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"accountid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_brands"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_brandid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_models"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_modelid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_subsidy_summ"}},{"kind":"Field","name":{"kind":"Name","value":"evo_percent_subsidy"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_subsidy_summ"}},{"kind":"Field","name":{"kind":"Name","value":"evo_get_subsidy_payment"}},{"kind":"Field","name":{"kind":"Name","value":"evo_delivery_time"}}]}}]}}]} as unknown as DocumentNode;
export const GetImportProgramDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetImportProgram"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"importProgramId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"importProgram"},"name":{"kind":"Name","value":"evo_subsidy"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"evo_subsidyid"},"value":{"kind":"Variable","name":{"kind":"Name","value":"importProgramId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_types"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"accounts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"accountid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_brands"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_brandid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_models"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_modelid"}}]}}]}}]}}]} as unknown as DocumentNode;
@@ -1254,7 +1254,7 @@ export const GetInsuranceCompaniesDocument = {"kind":"Document","definitions":[{
export const GetRolesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetRoles"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"roleName"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"roles"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"roleName"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"systemusers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"label"},"name":{"kind":"Name","value":"fullname"}},{"kind":"Field","alias":{"kind":"Name","value":"value"},"name":{"kind":"Name","value":"domainname"}}]}}]}}]}}]} as unknown as DocumentNode;
export const GetQuoteAddProductDataDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQuoteAddProductData"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"quote"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"quoteId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_addproduct_types"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_product_type"}},{"kind":"Field","name":{"kind":"Name","value":"evo_addproduct_typeid"}}]}},{"kind":"Field","name":{"kind":"Name","value":"evo_accept_control_addproduct_typeid"}}]}}]}}]} as unknown as DocumentNode;
export const GetQuoteBonusDataDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQuoteBonusData"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"quote"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"quoteId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_sale_bonus"}}]}}]}}]} as unknown as DocumentNode;
-export const GetQuoteConfiguratorDataDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQuoteConfiguratorData"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"quote"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"quoteId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_baseproductid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_client_typeid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_msfo_irr"}},{"kind":"Field","name":{"kind":"Name","value":"evo_delivery_time"}},{"kind":"Field","name":{"kind":"Name","value":"evo_first_payment_perc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_last_payment_perc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_used"}},{"kind":"Field","name":{"kind":"Name","value":"evo_period"}},{"kind":"Field","name":{"kind":"Name","value":"evo_accept_period"}},{"kind":"Field","name":{"kind":"Name","value":"evo_rateid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_change_price"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_price_change"}}]}}]}}]} as unknown as DocumentNode;
+export const GetQuoteConfiguratorDataDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQuoteConfiguratorData"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"quote"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"quoteId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_baseproductid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_client_typeid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_msfo_irr"}},{"kind":"Field","name":{"kind":"Name","value":"evo_delivery_time"}},{"kind":"Field","name":{"kind":"Name","value":"evo_first_payment_perc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_last_payment_perc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_used"}},{"kind":"Field","name":{"kind":"Name","value":"evo_period"}},{"kind":"Field","name":{"kind":"Name","value":"evo_accept_period"}},{"kind":"Field","name":{"kind":"Name","value":"evo_rateid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_min_change_price"}},{"kind":"Field","name":{"kind":"Name","value":"evo_max_price_change"}},{"kind":"Field","name":{"kind":"Name","value":"evo_floating_rate"}},{"kind":"Field","name":{"kind":"Name","value":"evo_sale_without_nds"}}]}}]}}]} as unknown as DocumentNode;
export const GetQuoteCreateKpDataDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQuoteCreateKPData"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"quote"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"quoteId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_price_with_discount"}},{"kind":"Field","name":{"kind":"Name","value":"evo_price_without_discount_quote"}},{"kind":"Field","name":{"kind":"Name","value":"evo_cost_increace"}},{"kind":"Field","name":{"kind":"Name","value":"evo_insurance"}},{"kind":"Field","name":{"kind":"Name","value":"evo_registration_quote"}},{"kind":"Field","name":{"kind":"Name","value":"evo_card_quote"}},{"kind":"Field","name":{"kind":"Name","value":"evo_nsib_quote"}},{"kind":"Field","name":{"kind":"Name","value":"evo_redemption_graph"}},{"kind":"Field","name":{"kind":"Name","value":"evo_fingap_quote"}},{"kind":"Field","name":{"kind":"Name","value":"evo_contact_name"}},{"kind":"Field","name":{"kind":"Name","value":"evo_gender"}},{"kind":"Field","name":{"kind":"Name","value":"evo_last_payment_redemption"}}]}}]}}]} as unknown as DocumentNode;
export const GetQuoteEltDataDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQuoteEltData"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"quote"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"quoteId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_kasko_accountid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_kasko_price"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id_elt_kasko"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id_kasko_calc"}},{"kind":"Field","name":{"kind":"Name","value":"evo_franchise"}},{"kind":"Field","name":{"kind":"Name","value":"evo_osago_accountid"}},{"kind":"Field","name":{"kind":"Name","value":"evo_id_elt_osago"}},{"kind":"Field","name":{"kind":"Name","value":"evo_osago_price"}},{"kind":"Field","name":{"kind":"Name","value":"evo_leasingobject_typeid"}}]}}]}}]} as unknown as DocumentNode;
export const GetQuoteFingapDataDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQuoteFingapData"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Uuid"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"quote"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"quoteId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"quoteId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_product_risks"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"evo_addproduct_typeid"}}]}}]}}]}}]} as unknown as DocumentNode;
diff --git a/apps/web/process/configurator/get-kp-data.ts b/apps/web/process/configurator/get-kp-data.ts
index d8f0ab4..63546bf 100644
--- a/apps/web/process/configurator/get-kp-data.ts
+++ b/apps/web/process/configurator/get-kp-data.ts
@@ -27,6 +27,8 @@ const QUERY_GET_QUOTE_CONFIGURATOR_DATA = gql`
evo_rateid
evo_min_change_price
evo_max_price_change
+ evo_floating_rate
+ evo_sale_without_nds
}
}
`;
@@ -66,10 +68,12 @@ export async function getKPData({ values }: GetQuoteInputData): Promise;
@@ -128,6 +131,8 @@ export default function helper({ apolloClient }: Pick {
+ if (partialVAT) {
+ return (
+ tarif?.evo_nds_rules && [100_000_000, 100_000_002].includes(tarif?.evo_nds_rules)
+ );
+ } else {
+ return (
+ tarif?.evo_nds_rules && [100_000_000, 100_000_001].includes(tarif?.evo_nds_rules)
+ );
+ }
+ })
+ .filter((tarif) => {
+ if (floatingRate) {
+ return tarif?.evo_floating_rate;
+ } else {
+ return !tarif?.evo_floating_rate;
+ }
+ })
.at(0);
return { evo_tarif, evo_tarifs };
diff --git a/apps/web/process/configurator/reactions/values.ts b/apps/web/process/configurator/reactions/values.ts
index 405d7c2..df8f9b1 100644
--- a/apps/web/process/configurator/reactions/values.ts
+++ b/apps/web/process/configurator/reactions/values.ts
@@ -26,6 +26,8 @@ export default function valuesReactions({ store, apolloClient }: ProcessContext)
'firstPaymentPerc',
'lastPaymentPerc',
'leaseObjectType',
+ 'floatingRate',
+ 'partialVAT',
]),
async (values) => {
const { evo_tarif, evo_tarifs } = await getTarifs(values);
@@ -154,6 +156,39 @@ export default function valuesReactions({ store, apolloClient }: ProcessContext)
}
);
+ reaction(
+ () => $calculation.element('selectProduct').getValue(),
+ async (productId) => {
+ if (!productId) {
+ $calculation.element('cbxPartialVAT').unblock();
+ $calculation.element('cbxPartialVAT').unblock();
+
+ return;
+ }
+
+ const {
+ data: { evo_baseproduct },
+ } = await apolloClient.query({
+ query: CRMTypes.GetProductDocument,
+ variables: { productId },
+ });
+
+ // eslint-disable-next-line no-negated-condition
+ if (!evo_baseproduct?.evo_product_properties?.includes(100_000_001)) {
+ $calculation.element('cbxFloatingRate').setValue(false).block();
+ } else {
+ $calculation.element('cbxFloatingRate').unblock();
+ }
+
+ // eslint-disable-next-line no-negated-condition
+ if (!evo_baseproduct?.evo_sale_without_nds) {
+ $calculation.element('cbxPartialVAT').setValue(false).block();
+ } else {
+ $calculation.element('cbxPartialVAT').unblock();
+ }
+ }
+ );
+
(
[
'selectProduct',
diff --git a/apps/web/process/configurator/validation.ts b/apps/web/process/configurator/validation.ts
index 5572c06..2cbd57f 100644
--- a/apps/web/process/configurator/validation.ts
+++ b/apps/web/process/configurator/validation.ts
@@ -1,3 +1,4 @@
+/* eslint-disable sonarjs/cognitive-complexity */
import type { ValidationContext } from '../types';
import elementsProps from '@/Components/Calculation/config/elements-props';
import { getElementName } from '@/Components/Calculation/config/map/values';
@@ -24,6 +25,7 @@ const Schema = ValuesSchema.pick({
finDepartmentRewardSumm: true,
firstPaymentPerc: true,
firstPaymentRub: true,
+ floatingRate: true,
importProgramSum: true,
importerRewardPerc: true,
importerRewardRub: true,
@@ -38,6 +40,7 @@ const Schema = ValuesSchema.pick({
leaseObjectPriceWthtVAT: true,
leaseObjectYear: true,
leasingPeriod: true,
+ leasingWithoutKasko: true,
maxMass: true,
maxPriceChange: true,
maxSpeed: true,
@@ -93,6 +96,19 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
}
}
+ /**
+ * Если Плавающая ставка = Да и Лизинг без КАСКО содержит данные,
+ * то выводить сообщение "При плавающей ставке нельзя оформлять Лизинг без КАСКО"
+ */
+ const { floatingRate, leasingWithoutKasko } = values;
+ if (floatingRate && leasingWithoutKasko) {
+ ctx.addIssue({
+ code: z.ZodIssueCode.custom,
+ message: 'При плавающей ставке нельзя оформлять Лизинг без КАСКО',
+ path: ['selectLeasingWithoutKasko'],
+ });
+ }
+
(Object.keys(values) as Values[]).forEach((valueName) => {
const elementName = getElementName(valueName);
if (elementName) {
diff --git a/apps/web/process/elt/reactions/common.ts b/apps/web/process/elt/reactions/common.ts
index 47eeac5..100fed4 100644
--- a/apps/web/process/elt/reactions/common.ts
+++ b/apps/web/process/elt/reactions/common.ts
@@ -39,6 +39,7 @@ export default function reactions(context: ProcessContext) {
'leasingPeriod',
'leaseObjectPrice',
'quote',
+ 'partialVAT',
]),
}),
async () => {
@@ -94,6 +95,7 @@ export default function reactions(context: ProcessContext) {
'insDecentral',
'leasingWithoutKasko',
'quote',
+ 'partialVAT',
]),
}),
async () => {
diff --git a/apps/web/process/insurance/validation.ts b/apps/web/process/insurance/validation.ts
index 49c3a74..7ca2a9b 100644
--- a/apps/web/process/insurance/validation.ts
+++ b/apps/web/process/insurance/validation.ts
@@ -39,7 +39,6 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
brand: brandId,
fingap: fingapRisks,
partialVAT,
- product: productId,
leaseObjectType: leaseObjectTypeId,
firstPaymentPerc,
plPriceRub,
@@ -221,19 +220,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
}
}
- let evo_baseproduct: CRMTypes.GetProductQuery['evo_baseproduct'] = null;
- if (productId) {
- const { data } = await apolloClient.query({
- query: CRMTypes.GetProductDocument,
- variables: { productId },
- });
- ({ evo_baseproduct } = data);
- }
-
- if (
- (partialVAT || evo_baseproduct?.evo_sale_without_nds) &&
- insurance.values.kasko.insured === 100_000_001
- ) {
+ if (partialVAT && insurance.values.kasko.insured === 100_000_001) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: 'При частичном НДС нельзя включать КАСКО в график',
diff --git a/apps/web/process/price/reactions/common.ts b/apps/web/process/price/reactions/common.ts
index 293eac9..3b0707b 100644
--- a/apps/web/process/price/reactions/common.ts
+++ b/apps/web/process/price/reactions/common.ts
@@ -1,11 +1,10 @@
import { VAT } from '@/constants/values';
-import * as CRMTypes from '@/graphql/crm.types';
import type { ProcessContext } from '@/process/types';
import { disposableReaction } from '@/utils/mobx';
import { reaction } from 'mobx';
import { round } from 'tools';
-export default function reactions({ store, apolloClient }: ProcessContext) {
+export default function reactions({ store }: ProcessContext) {
const { $calculation, $process } = store;
reaction(
@@ -71,25 +70,15 @@ export default function reactions({ store, apolloClient }: ProcessContext) {
);
reaction(
- () => $calculation.$values.getValues(['product', 'leaseObjectPrice', 'VATInLeaseObjectPrice']),
- async ({ product: productId, leaseObjectPrice, VATInLeaseObjectPrice }) => {
- let evo_sale_without_nds = false;
-
- if (productId) {
- const {
- data: { evo_baseproduct },
- } = await apolloClient.query({
- query: CRMTypes.GetProductDocument,
- variables: {
- productId,
- },
- });
- if (evo_baseproduct?.evo_sale_without_nds) {
- evo_sale_without_nds = evo_baseproduct.evo_sale_without_nds;
- }
- }
-
- if (evo_sale_without_nds) {
+ () =>
+ $calculation.$values.getValues([
+ 'product',
+ 'leaseObjectPrice',
+ 'VATInLeaseObjectPrice',
+ 'partialVAT',
+ ]),
+ async ({ product: productId, leaseObjectPrice, VATInLeaseObjectPrice, partialVAT }) => {
+ if (productId && partialVAT) {
$calculation
.element('tbxLeaseObjectPriceWthtVAT')
.setValue(leaseObjectPrice - VATInLeaseObjectPrice);
diff --git a/apps/web/process/price/validation.ts b/apps/web/process/price/validation.ts
index ef49ba5..6bb9ebb 100644
--- a/apps/web/process/price/validation.ts
+++ b/apps/web/process/price/validation.ts
@@ -1,17 +1,16 @@
-import type { ValidationContext } from '../types';
import ValuesSchema from '@/config/schema/values';
import { VAT } from '@/constants/values';
-import * as CRMTypes from '@/graphql/crm.types';
import { round } from 'tools';
import { z } from 'zod';
-export function createValidationSchema({ apolloClient }: ValidationContext) {
+export function createValidationSchema() {
return ValuesSchema.pick({
VATInLeaseObjectPrice: true,
balanceHolder: true,
firstPaymentRub: true,
lastPaymentPerc: true,
leaseObjectPriceWthtVAT: true,
+ partialVAT: true,
plPriceRub: true,
product: true,
subsidySum: true,
@@ -28,30 +27,21 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
subsidySum,
balanceHolder,
lastPaymentPerc,
+ partialVAT,
},
ctx
) => {
- if (productId) {
- const {
- data: { evo_baseproduct },
- } = await apolloClient.query({
- query: CRMTypes.GetProductDocument,
- variables: {
- productId,
- },
+ if (
+ productId &&
+ partialVAT &&
+ round(VATInLeaseObjectPrice / leaseObjectPriceWthtVAT, 2) >= VAT
+ ) {
+ ctx.addIssue({
+ code: z.ZodIssueCode.custom,
+ message:
+ 'При продаже ПЛ после ФЛ размер НДС в стоимости ПЛ не может составлять 20% и более от стоимости с НДС. Проверьте корректность НДС, либо измените Продукт',
+ path: ['tbxVATInLeaseObjectPrice'],
});
-
- if (
- evo_baseproduct?.evo_sale_without_nds &&
- round(VATInLeaseObjectPrice / leaseObjectPriceWthtVAT, 2) >= VAT
- ) {
- ctx.addIssue({
- code: z.ZodIssueCode.custom,
- message:
- 'При продаже ПЛ после ФЛ размер НДС в стоимости ПЛ не может составлять 20% и более от стоимости с НДС. Проверьте корректность НДС, либо измените Продукт',
- path: ['tbxVATInLeaseObjectPrice'],
- });
- }
}
if (supplierDiscountRub >= plPriceRub) {
diff --git a/apps/web/process/recalc/reactions.ts b/apps/web/process/recalc/reactions.ts
index 2eeb8cd..107a8d3 100644
--- a/apps/web/process/recalc/reactions.ts
+++ b/apps/web/process/recalc/reactions.ts
@@ -63,6 +63,7 @@ export function common({ store }: ProcessContext) {
// 'radioLastPaymentRule',
// 'tbxLastPaymentPerc',
// 'tbxLastPaymentRub',
+ 'cbxPartialVAT',
];
reaction(
() => $calculation.element('cbxRecalcWithRevision').getValue(),
diff --git a/apps/web/process/recalc/validation.ts b/apps/web/process/recalc/validation.ts
index 93738bd..05efd10 100644
--- a/apps/web/process/recalc/validation.ts
+++ b/apps/web/process/recalc/validation.ts
@@ -21,6 +21,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
leaseObjectUsed: true,
leaseObjectYear: true,
maxMass: true,
+ partialVAT: true,
plPriceRub: true,
product: true,
quote: true,
@@ -45,6 +46,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
leaseObjectYear,
lastPaymentPerc,
leaseObjectCategory,
+ partialVAT,
},
ctx
) => {
@@ -75,18 +77,11 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
variables: { quoteId },
});
- const {
- data: { evo_baseproduct },
- } = await apolloClient.query({
- query: CRMTypes.GetProductDocument,
- variables: { productId },
- });
-
const maxCondition1 =
leaseObjectUsed === false &&
dealerPerson?.evo_supplier_type !== 100_000_001 &&
quote?.evo_max_price_change &&
- !evo_baseproduct?.evo_sale_without_nds &&
+ !partialVAT &&
plPriceRub - discountRub + addEquipmentPrice - importProgramSum >
quote.evo_max_price_change;
@@ -94,7 +89,7 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
leaseObjectUsed === false &&
dealerPerson?.evo_supplier_type !== 100_000_001 &&
quote?.evo_max_price_change &&
- evo_baseproduct?.evo_sale_without_nds &&
+ partialVAT &&
leaseObjectPriceWthtVAT >
quote.evo_max_price_change - (quote.evo_nds_in_price_supplier_currency || 0);
@@ -108,13 +103,13 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
(quote.evo_program_import_subsidy_sum || 0);
const minCondition1 =
- !evo_baseproduct?.evo_sale_without_nds &&
+ !partialVAT &&
quote?.evo_min_change_price &&
plPriceRub - discountRub + addEquipmentPrice - importProgramSum <
quote.evo_min_change_price;
const minCondition2 =
- evo_baseproduct?.evo_sale_without_nds &&
+ partialVAT &&
quote?.evo_min_change_price &&
leaseObjectPriceWthtVAT <
quote.evo_min_change_price - (quote.evo_nds_in_price_supplier_currency || 0);
@@ -219,6 +214,14 @@ export function createValidationSchema({ apolloClient }: ValidationContext) {
path: ['tbxLastPaymentPerc'],
});
}
+
+ if (partialVAT !== quote?.evo_sale_without_nds) {
+ ctx.addIssue({
+ code: z.ZodIssueCode.custom,
+ message: 'Нельзя менять частичный НДС при пересчете без пересмотра',
+ path: ['selectProduct'],
+ });
+ }
}
}
);
diff --git a/apps/web/process/subsidy-import-program/reactions.ts b/apps/web/process/subsidy-import-program/reactions.ts
index a834ce9..13b60cc 100644
--- a/apps/web/process/subsidy-import-program/reactions.ts
+++ b/apps/web/process/subsidy-import-program/reactions.ts
@@ -16,12 +16,20 @@ export function common({ store, apolloClient }: ProcessContext) {
* иначе selectSupplierCurrency открыто для редактирования
*/
reaction(
- () => $calculation.$values.getValues(['product', 'subsidy', 'importProgram', 'dealer']),
+ () =>
+ $calculation.$values.getValues([
+ 'product',
+ 'subsidy',
+ 'importProgram',
+ 'dealer',
+ 'partialVAT',
+ ]),
async ({
product: productId,
subsidy: subsidyId,
importProgram: importProgramId,
dealer: dealerId,
+ partialVAT,
}) => {
const {
data: { transactioncurrencies },
@@ -41,16 +49,7 @@ export function common({ store, apolloClient }: ProcessContext) {
return;
}
- const {
- data: { evo_baseproduct },
- } = await apolloClient.query({
- query: CRMTypes.GetProductDocument,
- variables: {
- productId,
- },
- });
-
- if (subsidyId || importProgramId || evo_baseproduct?.evo_sale_without_nds) {
+ if (subsidyId || importProgramId || (productId && partialVAT)) {
$calculation.element('selectSupplierCurrency').setValue(transactioncurrency_rub_id).block();
} else if (dealerId) {
const {
diff --git a/apps/web/process/used-pl/reactions.ts b/apps/web/process/used-pl/reactions.ts
index bb262e0..64c660f 100644
--- a/apps/web/process/used-pl/reactions.ts
+++ b/apps/web/process/used-pl/reactions.ts
@@ -38,8 +38,8 @@ export function common({ store, apolloClient }: ProcessContext) {
* поле НДС в стоимости предмета лизинга xxx закрыть для редактирования
*/
reaction(
- () => $calculation.$values.getValues(['product', 'recalcWithRevision']),
- async ({ product: productId }) => {
+ () => $calculation.$values.getValues(['product', 'recalcWithRevision', 'partialVAT']),
+ async ({ product: productId, partialVAT }) => {
if (!productId) {
$calculation.element('tbxSupplierDiscountRub').block();
$calculation.element('tbxSupplierDiscountPerc').block();
@@ -50,16 +50,7 @@ export function common({ store, apolloClient }: ProcessContext) {
return;
}
- const {
- data: { evo_baseproduct },
- } = await apolloClient.query({
- query: CRMTypes.GetProductDocument,
- variables: {
- productId,
- },
- });
-
- if (evo_baseproduct?.evo_sale_without_nds) {
+ if (productId && partialVAT) {
$calculation.element('tbxSupplierDiscountRub').block();
$calculation.element('tbxSupplierDiscountPerc').block();
$calculation.element('tbxLeaseObjectPrice').unblock();
@@ -80,8 +71,8 @@ export function common({ store, apolloClient }: ProcessContext) {
disposableReaction(
() => $process.has('LoadKP'),
- () => $calculation.$values.getValues(['product']),
- async ({ product: productId }) => {
+ () => $calculation.$values.getValues(['product', 'partialVAT']),
+ async ({ product: productId, partialVAT }) => {
if (!productId) {
$calculation.element('tbxSupplierDiscountRub').resetValue();
$calculation.element('tbxSupplierDiscountPerc').resetValue();
@@ -93,23 +84,15 @@ export function common({ store, apolloClient }: ProcessContext) {
return;
}
- const {
- data: { evo_baseproduct },
- } = await apolloClient.query({
- query: CRMTypes.GetProductDocument,
- variables: {
- productId,
- },
- });
-
- if (evo_baseproduct?.evo_sale_without_nds) {
+ if (productId && partialVAT) {
$calculation.element('tbxSupplierDiscountRub').resetValue();
$calculation.element('tbxSupplierDiscountPerc').resetValue();
$calculation.element('selectImportProgram').resetValue();
}
if (
- evo_baseproduct?.evo_sale_without_nds &&
+ productId &&
+ partialVAT &&
$calculation.element('cbxRecalcWithRevision').getValue() === false
) {
$calculation.element('cbxLeaseObjectUsed').setValue(true);
@@ -127,8 +110,8 @@ export function common({ store, apolloClient }: ProcessContext) {
* иначе открыты для редактирования
*/
reaction(
- () => $calculation.$values.getValues(['recalcWithRevision', 'product']),
- async ({ recalcWithRevision, product: productId }) => {
+ () => $calculation.$values.getValues(['recalcWithRevision', 'product', 'partialVAT']),
+ async ({ recalcWithRevision, product: productId, partialVAT }) => {
if (!productId) {
$calculation.element('tbxFirstPaymentPerc').unblock();
$calculation.element('tbxFirstPaymentRub').unblock();
@@ -136,16 +119,7 @@ export function common({ store, apolloClient }: ProcessContext) {
return;
}
- const {
- data: { evo_baseproduct },
- } = await apolloClient.query({
- query: CRMTypes.GetProductDocument,
- variables: {
- productId,
- },
- });
-
- if (evo_baseproduct?.evo_sale_without_nds && recalcWithRevision) {
+ if (productId && partialVAT && recalcWithRevision) {
$calculation.element('tbxFirstPaymentPerc').block();
$calculation.element('tbxFirstPaymentRub').block();
} else {
@@ -227,6 +201,7 @@ export function common({ store, apolloClient }: ProcessContext) {
'product',
'dealer',
'supplierFinancing',
+ 'partialVAT',
]),
async ({
leaseObjectUsed,
@@ -234,20 +209,11 @@ export function common({ store, apolloClient }: ProcessContext) {
product: productId,
dealer: dealerId,
supplierFinancing,
+ partialVAT,
}) => {
- let evo_baseproduct: CRMTypes.GetProductQuery['evo_baseproduct'] = null;
let dealer: CRMTypes.GetDealerQuery['dealer'] = null;
let evo_subsidy: CRMTypes.GetSubsidyQuery['evo_subsidy'] = null;
- if (productId) {
- const { data } = await apolloClient.query({
- query: CRMTypes.GetProductDocument,
- variables: { productId },
- });
-
- ({ evo_baseproduct } = data);
- }
-
if (dealerId) {
const { data } = await apolloClient.query({
query: CRMTypes.GetDealerDocument,
@@ -270,7 +236,7 @@ export function common({ store, apolloClient }: ProcessContext) {
leaseObjectUsed ||
(evo_subsidy_evo_delivery_time?.length === 1 &&
evo_subsidy_evo_delivery_time.includes(100_000_000)) ||
- evo_baseproduct?.evo_sale_without_nds ||
+ (productId && partialVAT) ||
dealer?.evo_return_leasing_dealer
) {
$calculation.element('radioDeliveryTime').setValue(100_000_000).block();