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/components/Header/index.js b/pages/components/Header/index.js index 3c3bd05..f55d7e7 100644 --- a/pages/components/Header/index.js +++ b/pages/components/Header/index.js @@ -53,6 +53,7 @@ class Header extends React.Component if (route.indexOf("/documents/") > -1) return "Взаиморасчеты и закрывающие документы"; if (route.indexOf("/settings/") > -1) return "Настройки"; if (route.indexOf("/contract") === 0) return "Договоры"; + if (route.indexOf("/support") === 0) return "Обращения"; return null; }; diff --git a/pages/contract/change/components/Comparison/index.js b/pages/contract/change/components/Comparison/index.js index e8d0117..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 = () => @@ -96,6 +119,90 @@ export default class Comparison extends React.Component this.setState({ show_previous: true }); } + _handle_onDownloadPDF = () => + { + console.log("this.props"); + console.log(this.props); + console.log("this.state"); + 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; @@ -108,7 +215,7 @@ export default class Comparison extends React.Component Выбранный(ые) варианты изменения графика Вернуться к параметрам изменения графика

    - +
    { calculation !== undefined && calculation !== null && calculation.fix_last_payment_available_comment !== null && ( @@ -181,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(' ., ') } ₽
    +
    + ) + }) }
    @@ -218,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(' ., ') }  ₽
    +
    + ) + }) }
    @@ -242,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 67a153e..a2b7636 100644 --- a/pages/contract/components/InnerMenu/index.js +++ b/pages/contract/components/InnerMenu/index.js @@ -15,18 +15,11 @@ export default class InnerMenu extends React.Component }; } - _handle_onToggleMenu = () => - { - this.setState({ - menuOpened: !this.state.menuOpened, - }); - }; - componentDidMount() { 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) { @@ -44,6 +37,13 @@ export default class InnerMenu extends React.Component this.menuRef.current.scrollLeft = l - 50; } + _handle_onToggleMenu = () => + { + this.setState({ + menuOpened: !this.state.menuOpened, + }); + }; + _getActiveLink = (route) => { if (route.indexOf("/payments") > -1) return "График платежей"; @@ -60,15 +60,15 @@ export default class InnerMenu extends React.Component render() { - const { menuOpened, count_events, count_fines } = this.state; const { number, status } = this.props; + const { menuOpened, count_events, count_fines } = this.state; return (