Штрафы ГИБДД
{ contract_fines !== undefined && contract_fines !== null && contract_fines[ number ] !== undefined && contract_fines[ number ] !== null && ( <> { this._renderFines(contract_fines) } > ) }import React from "react"; import Head from "next/head"; import Image from "next/image"; import { connect } from "react-redux"; import { withRouter } from "next/router"; import moment from "moment"; import numeral from "numeral"; import { SpinnerCircular } from "spinners-react"; import pluralize from "pluralize-ru"; import { reduxWrapper } from "../../store"; import Header from "../components/Header"; import Footer from "../components/Footer"; import InnerMenu from "./components/InnerMenu"; import Company from "../components/Company"; import DownloadFinesPdfButton from "../components/DownloadFinesPdfButton"; import { getContractInfo, getContractFines, } from "../../actions"; import AccountLayout from "../components/Layout/Account"; import ContractHeader from "./components/ContractHeader"; const TYPES = { upd: "УПД по очередным платежам", upd_avans: "УПД по авансовым платежам", billfines: "Счета-уведомления на пени", billgibdd: "BillGIBDD", fines: "Штрафы ГИБДД", }; class ContractFinesPage extends React.Component { constructor(props) { super(props); this.state = { loading: false, contracts_info: [], fines: null, all: false, contract_fines: {}, }; } static getDerivedStateFromProps(nextProps, prevState) { return { contracts_info: nextProps.contracts_info, fines: nextProps.fines, contract_fines: nextProps.contract_fines, }; } componentDidMount() { const { dispatch, number} = this.props; const { contracts_info, contract_fines } = this.state; if(!this.state.loading && number !== undefined) { this.setState({ loading: true }, () => { Promise.all([ ( (resolve) => { if(contracts_info[ number ] === undefined) { getContractInfo({ dispatch, number }) .then(() => { resolve(); }) .catch(() => { resolve(); }); } else { resolve(); } } ), ( (resolve) => { if(contract_fines[number] === undefined) { getContractFines({ dispatch, contract: number }) .then(() => { resolve(); }) .catch(() => { resolve(); }); } else { resolve(); } } ) ]) .then(() => { this.setState({ loading: false }); }); }); } } componentDidUpdate(prevProps, prevState) { } _handle_onShowMore = () => { this.setState({ all: true }); } _renderFines = (contract_fines) => { const { number } = this.props; const fines = contract_fines[number]; const { all } = this.state; const status = { NotPaid: "danger", PaidEvolution: "danger", PaidIndependently: "success", }; if (fines.length > 0) { console.log({ fines }); return ( <>
№ постановления: {fine.fine_number}
Штраф: { fine.fine_title }
Счет на оплату
Еще {fines.length - 10}{" "} {pluralize( fines.length - 10, "постановлений", "постановление", "постановления", "постановлений" )}
Штрафов не найдено.
Штрафы ГИБДД
{ contract_fines !== undefined && contract_fines !== null && contract_fines[ number ] !== undefined && contract_fines[ number ] !== null && ( <> { this._renderFines(contract_fines) } > ) }