From 7fb9ba59d72dc51d1ee31a9b0ed30d6102bcf9f5 Mon Sep 17 00:00:00 2001
From: merelendor
Date: Tue, 6 Sep 2022 07:44:21 +0300
Subject: [PATCH] fixes for graphic comparison
---
.../Events/NotificationMessage/index.js | 2 +-
.../change/components/Comparison/index.js | 194 +++++++++-----
pages/contract/components/InnerMenu/index.js | 2 +-
pages/contract/services.js | 238 +++++++++---------
pages/settings/components/InnerMenu/index.js | 1 +
pages/support/components/InnerMenu/index.js | 1 +
6 files changed, 262 insertions(+), 176 deletions(-)
diff --git a/pages/components/Events/NotificationMessage/index.js b/pages/components/Events/NotificationMessage/index.js
index 14db0de..181faba 100644
--- a/pages/components/Events/NotificationMessage/index.js
+++ b/pages/components/Events/NotificationMessage/index.js
@@ -110,7 +110,7 @@ export default class NotificationMessage extends React.Component
{
return (
- Сформировано новое ДС №{ event.add_info} от { moment(event.event_date).format("DD.MM.YYYY") } по договору №{ event.contract_number }. Срок подписания (НЕТ ДАТЫ).
+ Сформировано новое ДС №{ event.add_info} от { moment(event.event_date).format("DD.MM.YYYY") } по договору №{ event.contract_number }.
{ event.important && (Важное
) }
{ moment(event.event_date).format("DD.MM.YYYY") }
diff --git a/pages/contract/change/components/Comparison/index.js b/pages/contract/change/components/Comparison/index.js
index 654fe4f..f550d9a 100644
--- a/pages/contract/change/components/Comparison/index.js
+++ b/pages/contract/change/components/Comparison/index.js
@@ -20,20 +20,22 @@ export default class Comparison extends React.Component
show_previous: false,
mixed_index: 0,
signatories_show_all: false,
+ opened: [],
};
}
componentDidMount()
{
- if(this.props.signer === undefined)
+ const { signer, signatories, calculations, calculation_id, current } = this.props;
+ const { today } = this.state;
+ if(signer === undefined)
{
- if(this.props.signatories !== undefined && this.props.signatories !== null)
+ if(signatories !== undefined && signatories !== null)
{
- this._handle_onSigner(this.props.signatories[0].signatoryid);
+ this._handle_onSigner(signatories[0].signatoryid);
}
}
- const { calculations, calculation_id, } = this.props;
let calculation = null;
for(let i in calculations)
@@ -45,7 +47,17 @@ export default class Comparison extends React.Component
}
}
- this.setState({ calculation : calculation });
+ const opened = [];
+ for(let i in current)
+ {
+ if(moment(current[i].plandate) >= today)
+ {
+ opened.push(current[i].name);
+ break;
+ }
+ }
+
+ this.setState({ calculation, opened });
}
componentDidUpdate(prevProps, prevState)
@@ -88,7 +100,18 @@ export default class Comparison extends React.Component
_handle_onMixedPayment = (index) =>
{
- this.setState({ mixed_index: index });
+ const opened = [ ...this.state.opened ];
+
+ if(opened.indexOf(index) > -1)
+ {
+ opened.splice(opened.indexOf(index));
+ }
+ else
+ {
+ opened.push(index);
+ }
+
+ this.setState({ opened });
}
_handle_onShowPrevious = () =>
@@ -104,6 +127,82 @@ export default class Comparison extends React.Component
console.log(this.state);
}
+ _renderMixedPayments = () =>
+ {
+ const { calculation, mixed_index, opened, today, show_previous, } = this.state;
+ const { current, calculated } = this.props;
+
+ if(current !== undefined && current !== null && calculated !== undefined && calculated !== null)
+ {
+ console.log("_renderMixedPayments", "current.length", current.length, "calculated.length", calculated.length);
+
+ if(current.length > calculated.length)
+ {
+ return (
+ <>
+ { current.map((payment, index) =>
+ {
+ if(!show_previous && moment(payment.plandate) < today) { return null; }
+ else
+ {
+ return (
+
-1 && "opened" }` } onClick={ () => this._handle_onMixedPayment(payment.name) }>
+
Платеж №{ payment.name }
+
+
+
Текущий график { moment(payment.plandate, "YYYY.MM.DD").format("DD.MM.YYYY") }
+
На сумму { numeral(payment.sum).format(' ., ') } ₽
+
Сумма досрочного выкупа { numeral(payment.early_repayment_sum).format(' ., ') } ₽
+
+
+
Новый график { calculated[index] !== undefined ? moment(calculated[index].plandate, "YYYY.MM.DD").format("DD.MM.YYYY") : (`-`) }
+
На сумму { calculated[index] !== undefined ? (<>{ numeral(calculated[index].sum).format(' ., ') } ₽>) : (`-`) }
+
Сумма досрочного выкупа { calculated[index] !== undefined ? (<>{ numeral(calculated[index].early_repayment_sum).format(' ., ') } ₽>) : (`-`) }
+
+
+
+ )
+ }
+ }) }
+ >
+ )
+ }
+ else
+ {
+ return (
+ <>
+ { calculated.map((payment, index) =>
+ {
+ if(!show_previous && moment(payment.plandate) < today) { return null; }
+ else
+ {
+ return (
+ -1 && "opened" }` } onClick={ () => this._handle_onMixedPayment(payment.name) }>
+
Платеж №{ payment.name }
+
+
+
Текущий график { current[index] !== undefined ? moment(current[index].plandate, "YYYY.MM.DD").format("DD.MM.YYYY") : (`-`) }
+
На сумму { current[index] !== undefined ? (<>{ numeral(current[index].sum).format(' ., ') } ₽>) : (`-`) }
+
Сумма досрочного выкупа { current[index] !== undefined ? (<>{ numeral(current[index].early_repayment_sum).format(' ., ') } ₽>) : (`-`) }
+
+
+
Новый график { moment(payment.plandate, "YYYY.MM.DD").format("DD.MM.YYYY") }
+
На сумму { numeral(payment.sum).format(' ., ') } ₽
+
Сумма досрочного выкупа { numeral(payment.early_repayment_sum).format(' ., ') } ₽
+
+
+
+ )
+ }
+ }) }
+ >
+ )
+ }
+ }
+
+ return null;
+ }
+
render()
{
const { calculation, mixed_index, today, show_previous, signatories_show_all } = this.state;
@@ -189,21 +288,19 @@ export default class Comparison extends React.Component
) }
- { current !== undefined &&
- current !== null &&
- current.map((payment, index) =>
- {
- if(!show_previous && moment(payment.plandate) < today) { return null; }
- return (
-
-
{ payment.name }
-
{ moment(payment.plandate, "YYYY.MM.DD").format("DD.MM.YYYY") }
-
{ numeral(payment.sum).format(' ., ') } ₽
-
{ numeral(payment.early_repayment_sum).format(' ., ') } ₽
-
- )
- })
- }
+ { current !== undefined && current !== null && current.map((payment, index) =>
+ {
+ if(!show_previous && moment(payment.plandate) < today) { return null; }
+
+ return (
+
+
{ payment.name }
+
{ moment(payment.plandate, "YYYY.MM.DD").format("DD.MM.YYYY") }
+
{ numeral(payment.sum).format(' ., ') } ₽
+
{ numeral(payment.early_repayment_sum).format(' ., ') } ₽
+
+ )
+ }) }
@@ -226,21 +323,19 @@ export default class Comparison extends React.Component
) }
- { calculated !== undefined &&
- calculated !== null &&
- calculated.map((payment, index) =>
- {
- if(!show_previous && moment(payment.plandate) < today) { return null; }
- return (
-
-
{ payment.name }
-
{ moment(payment.plandate, "YYYY.MM.DD").format("DD.MM.YYYY") }
-
{ numeral(payment.sum).format(' ., ') } ₽
-
{ numeral(payment.early_repayment_sum).format(' ., ') } ₽
-
- )
- })
- }
+ { calculated !== undefined && calculated !== null && calculated.map((payment, index) =>
+ {
+ if(!show_previous && moment(payment.plandate) < today) { return null; }
+
+ return (
+
+
{ payment.name }
+
{ moment(payment.plandate, "YYYY.MM.DD").format("DD.MM.YYYY") }
+
{ numeral(payment.sum).format(' ., ') } ₽
+
{ numeral(payment.early_repayment_sum).format(' ., ') } ₽
+
+ )
+ }) }
@@ -250,32 +345,7 @@ export default class Comparison extends React.Component
Показать прошедшие платежи
) }
- { current !== undefined &&
- current !== null &&
- calculated !== undefined &&
- calculated !== null &&
- current.map((payment, index) =>
- {
- if(!show_previous && moment(payment.plandate) < today) { return null; }
- return (
-
this._handle_onMixedPayment(index) }>
-
Платеж №{ payment.name }
-
-
-
Текущий график { moment(payment.plandate, "YYYY.MM.DD").format("DD.MM.YYYY") }
-
На сумму { numeral(payment.sum).format(' ., ') } ₽
-
Сумма досрочного выкупа { numeral(payment.early_repayment_sum).format(' ., ') } ₽
-
-
-
Новый график { calculated[index] !== undefined ? moment(calculated[index].plandate, "YYYY.MM.DD").format("DD.MM.YYYY") : (`-`) }
-
На сумму { calculated[index] !== undefined ? (<>{ numeral(calculated[index].sum).format(' ., ') } ₽>) : (`-`) }
-
Сумма досрочного выкупа { calculated[index] !== undefined ? (<>{ numeral(calculated[index].early_repayment_sum).format(' ., ') } ₽>) : (`-`) }
-
-
-
- )
- })
- }
+ { this._renderMixedPayments() }
diff --git a/pages/contract/components/InnerMenu/index.js b/pages/contract/components/InnerMenu/index.js
index 387bde4..a2b7636 100644
--- a/pages/contract/components/InnerMenu/index.js
+++ b/pages/contract/components/InnerMenu/index.js
@@ -19,7 +19,7 @@ export default class InnerMenu extends React.Component
{
let l = 0;
let m = 0;
- const menu = ["payments", "services", "agreement", "documents", "materials", "events", "change"];
+ const menu = [ "payments", "services", "agreement", "documents", "materials", "events", "change" ];
for(let i in menu)
{
diff --git a/pages/contract/services.js b/pages/contract/services.js
index afb09b1..b0ac565 100644
--- a/pages/contract/services.js
+++ b/pages/contract/services.js
@@ -54,7 +54,6 @@ class ContractServicesPage extends React.Component
componentDidMount()
{
- console.log("document.location.hash", document.location.hash);
const { dispatch, number } = this.props;
if(!this.state.loading && number !== undefined)
@@ -144,6 +143,23 @@ class ContractServicesPage extends React.Component
}
+ _checkInsuranceAvailable = () =>
+ {
+ const { insurance, } = this.state;
+
+ if(insurance !== undefined && insurance !== null)
+ {
+ for(let i in insurance)
+ {
+ if(insurance[i].length > 0)
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
render()
{
const { loading, contracts_info, opened, helpcard, insurance, registration, telematic, } = this.state;
@@ -223,121 +239,119 @@ class ContractServicesPage extends React.Component
-
- { insurance !== undefined && insurance !== null ? (
- <>
- { insurance.kasko !== undefined && insurance.kasko !== null && insurance.kasko !== "" && insurance.kasko.map !== undefined && insurance.kasko.map((entry, index) => (
-
-
-
КАСКО
-
- { entry.company && (Страховая компания: { entry.company } ) }
- { entry.site && (Сайт: { entry.site } ) }
- { entry.phone && (Телефон: { entry.phone } ) }
- { entry.number && (
- Номер полиса:
- { entry.url !== null ? this._handle_onContract(entry.url) : {} } }>{ entry.number }
-
-
- ) }
- { entry.period && (Период действия: { entry.period } ) }
- { entry.amount && (Страховая сумма: { numeral(entry.amount).format(' ., ') } ₽ ) }
-
- { entry.period_type === "prolong" && entry.invoice_url !== null && (
-
-
-
+ { this._checkInsuranceAvailable() ? (
+
+ { insurance.kasko !== undefined && insurance.kasko !== null && insurance.kasko !== "" && insurance.kasko.map !== undefined && insurance.kasko.map((entry, index) => (
+
+
+
КАСКО
+
+ { entry.company && (Страховая компания: { entry.company } ) }
+ { entry.site && (Сайт: { entry.site } ) }
+ { entry.phone && (Телефон: { entry.phone } ) }
+ { entry.number && (
+ Номер полиса:
+ { entry.url !== null ? this._handle_onContract(entry.url) : {} } }>{ entry.number }
+
+
) }
-
- { entry.description && ({ entry.description }
) }
-
- )) }
- { insurance.osago !== undefined && insurance.osago !== null && insurance.osago !== "" && insurance.osago.map !== undefined && insurance.osago.map((entry, index) => (
-
-
-
ОСАГО
-
- { entry.company && (Страховая компания: { entry.company } ) }
- { entry.site && (Сайт: { entry.site } ) }
- { entry.phone && (Телефон: { entry.phone } ) }
- { entry.number && (
- Номер полиса:
- { entry.url !== null ? this._handle_onContract(entry.url) : {} } }>{ entry.number }
-
-
- ) }
- { entry.period && (Период действия: { entry.period } ) }
- { entry.amount && (Страховая сумма: { numeral(entry.amount).format(' ., ') } ₽ ) }
- { entry.period_type === "prolong" && (
- Обращаем Ваше внимание, что пролонгация полиса ОСАГО на второй и последующие периоды осуществляется Лизингополучателем самостоятельно
- ) }
-
- { entry.period_type === "prolong" && entry.invoice_url !== null && (
-
-
-
+ { entry.period && (
Период действия: { entry.period } ) }
+ { entry.amount && (
Страховая сумма: { numeral(entry.amount).format(' ., ') } ₽ ) }
+
+ { entry.period_type === "prolong" && entry.invoice_url !== null && (
+
+
+
+ ) }
+
+ { entry.description && ({ entry.description }
) }
+
+ )) }
+ { insurance.osago !== undefined && insurance.osago !== null && insurance.osago !== "" && insurance.osago.map !== undefined && insurance.osago.map((entry, index) => (
+
+
+
ОСАГО
+
+ { entry.company && (Страховая компания: { entry.company } ) }
+ { entry.site && (Сайт: { entry.site } ) }
+ { entry.phone && (Телефон: { entry.phone } ) }
+ { entry.number && (
+ Номер полиса:
+ { entry.url !== null ? this._handle_onContract(entry.url) : {} } }>{ entry.number }
+
+
) }
-
- { entry.description && ({ entry.description }
) }
-
- )) }
- { insurance.nsib !== undefined && insurance.nsib !== null && insurance.nsib !== "" && insurance.nsib.map !== undefined && insurance.nsib.map((entry, index) => (
-
-
-
НСИБ
-
- { entry.company && (Страховая компания: { entry.company } ) }
- { entry.site && (Сайт: { entry.site } ) }
- { entry.phone && (Телефон: { entry.phone } ) }
- { entry.number && (
- Номер полиса:
- { entry.url !== null ? this._handle_onContract(entry.url) : {} } }>{ entry.number }
-
-
- ) }
- { entry.period && (Период действия: { entry.period } ) }
- { entry.amount && (Страховая сумма: { numeral(entry.amount).format(' ., ') } ₽ ) }
-
- { entry.period_type === "prolong" && entry.invoice_url !== null && (
-
-
-
+ { entry.period && (
Период действия: { entry.period } ) }
+ { entry.amount && (
Страховая сумма: { numeral(entry.amount).format(' ., ') } ₽ ) }
+ { entry.period_type === "prolong" && (
+
Обращаем Ваше внимание, что пролонгация полиса ОСАГО на второй и последующие периоды осуществляется Лизингополучателем самостоятельно
) }
-
- { entry.description && ({ entry.description }
) }
-
- )) }
- { insurance.fingap !== undefined && insurance.fingap !== null && insurance.fingap !== "" && insurance.fingap.map !== undefined && insurance.fingap.map((entry, index) => (
-
-
-
Safe Finance
-
- { entry.company && (Страховая компания: { entry.company } ) }
- { entry.site && (Сайт: { entry.site } ) }
- { entry.phone && (Телефон: { entry.phone } ) }
- { entry.number && (
- Номер полиса:
- { entry.number }
-
-
- ) }
- { entry.period && (Период действия: { entry.period } ) }
- { entry.amount && (Страховая сумма: { numeral(entry.amount).format(' ., ') } ₽ ) }
-
- { entry.period_type === "prolong" && entry.invoice_url !== null && (
-
-
-
+
+ { entry.period_type === "prolong" && entry.invoice_url !== null && (
+
+
+
+ ) }
+
+ { entry.description && ({ entry.description }
) }
+
+ )) }
+ { insurance.nsib !== undefined && insurance.nsib !== null && insurance.nsib !== "" && insurance.nsib.map !== undefined && insurance.nsib.map((entry, index) => (
+
+
+
НСИБ
+
+ { entry.company && (Страховая компания: { entry.company } ) }
+ { entry.site && (Сайт: { entry.site } ) }
+ { entry.phone && (Телефон: { entry.phone } ) }
+ { entry.number && (
+ Номер полиса:
+ { entry.url !== null ? this._handle_onContract(entry.url) : {} } }>{ entry.number }
+
+
) }
-
- { entry.description && ({ entry.description }
) }
-
- )) }
- >
- ) : (
-
- ) }
-
+ { entry.period && (
Период действия: { entry.period } ) }
+ { entry.amount && (
Страховая сумма: { numeral(entry.amount).format(' ., ') } ₽ ) }
+
+ { entry.period_type === "prolong" && entry.invoice_url !== null && (
+
+
+
+ ) }
+
+ { entry.description && ({ entry.description }
) }
+
+ )) }
+ { insurance.fingap !== undefined && insurance.fingap !== null && insurance.fingap !== "" && insurance.fingap.map !== undefined && insurance.fingap.map((entry, index) => (
+
+
+
Safe Finance
+
+ { entry.company && (Страховая компания: { entry.company } ) }
+ { entry.site && (Сайт: { entry.site } ) }
+ { entry.phone && (Телефон: { entry.phone } ) }
+ { entry.number && (
+ Номер полиса:
+ { entry.number }
+
+
+ ) }
+ { entry.period && (Период действия: { entry.period } ) }
+ { entry.amount && (Страховая сумма: { numeral(entry.amount).format(' ., ') } ₽ ) }
+
+ { entry.period_type === "prolong" && entry.invoice_url !== null && (
+
+
+
+ ) }
+
+ { entry.description && ({ entry.description }
) }
+
+ )) }
+
+ ) : (
+
+ ) }
-1 ? 'open' : '' }`}>
this._handle_onCard('registration') }>
diff --git a/pages/settings/components/InnerMenu/index.js b/pages/settings/components/InnerMenu/index.js
index 260ffb8..f747b8d 100644
--- a/pages/settings/components/InnerMenu/index.js
+++ b/pages/settings/components/InnerMenu/index.js
@@ -23,6 +23,7 @@ export default class InnerMenu extends React.Component
{
let l = 0;
let m = 0;
+ const menu = [ "phone", "password", "admin" ];
for(let i in menu)
{
diff --git a/pages/support/components/InnerMenu/index.js b/pages/support/components/InnerMenu/index.js
index 84f11e1..e8ed6a3 100644
--- a/pages/support/components/InnerMenu/index.js
+++ b/pages/support/components/InnerMenu/index.js
@@ -25,6 +25,7 @@ class InnerMenu extends React.Component
{
let l = 0;
let m = 0;
+ const menu = [ "faq", "appeals" ];
for(let i in menu)
{