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) {