import React from "react";
import Head from 'next/head';
import Image from 'next/image';
import Link from "next/link";
import cookie from 'cookie';
import numeral from "numeral";
import pluralize from 'pluralize-ru';
import { SpinnerCircular } from 'spinners-react';
import { connect } from "react-redux";
import { withRouter } from 'next/router';

import QuestionnaireForm from "../QuestionnaireForm";
import { reduxWrapper } from '../../../../store';
import Form_1_Main from "../Form_1_Main";
import Form_2_Contacts from "../Form_2_Contacts";
import Form_3_Signer from "../Form_3_Signer";
import Form_4_Shareholders from "../Form_4_Shareholders";
import Form_5_Regulatory from "../Form_5_Regulatory";
import Form_6_NonProfit from "../Form_6_NonProfit";
import Modal from "../../../../pages/components/Modal/modal";

class Form_7_Check extends QuestionnaireForm 
{
	constructor(props)
	{
		super(props);
		this.state = {
			address: "", 
			loading: false, 
			phone_number_format_error: false, 

			main: {}, 
			legal_address: {}, 
			fact_address: {}, 
			postal_address: {}, 
			head_person: {}, 
			head_person_files: [], 
			signatory_person: {}, 
			signatory_person_files: [], 
			founder_persons: [], 
			client_contacts: {}, 
			non_profit: {}, 
			loading: false, 
			modal_show_personal_data: false, 
			company: {}, 
		};
	}

	static getDerivedStateFromProps(nextProps, prevState)
	{
		return {
			company: nextProps.company, 
			main: nextProps.main, 
			legal_address: nextProps.legal_address, 
			fact_address: nextProps.fact_address, 
			postal_address: nextProps.postal_address, 
			head_person: nextProps.head_person, 
			head_person_files: nextProps.head_person_files, 
			signatory_person: nextProps.signatory_person, 
			signatory_person_files: nextProps.signatory_person_files, 
			founder_persons: nextProps.founder_persons, 
			client_contacts: nextProps.client_contacts, 
			non_profit: nextProps.non_profit, 
			personal_data_consent: nextProps.personal_data_consent, 
		};
	}

	componentDidMount()
	{
	}

	_handle_onFormSubmit = (event) => 
	{
		event.preventDefault();
		//console.log("FormAddress", "_handle_onFormSubmit");


		this._handle_onCheckboxFieldChange("step", 8);
		setTimeout(() => 
		{
			this.props.onNextStep("signing");
		}, 10);

	}

	_handle_onAddressChange = (value) => 
	{
		this.setState({ address: value, }, () => 
		{
		});
	}

	_checkDisabled = () => 
	{
		const { personal_data_consent } = this.state;
		if(!personal_data_consent)
		{
			return true;
		}

		return false;
	}

	render()
	{
		const { signatories } = this.props;
		const { company, loading, personal_data_consent, modal_show_personal_data } = this.state;

		return (
			<React.Fragment>
				<Form_1_Main company={ company } checking={ true }/>
				<Form_2_Contacts company={ company } checking={ true }/>
				<Form_3_Signer company={ company } checking={ true }/>
				<Form_4_Shareholders company={ company } signatories={ signatories } checking={ true }/>
				<Form_5_Regulatory company={ company } checking={ true }/>
				<Form_6_NonProfit company={ company } checking={ true }/>

				<form onSubmit={ this._handle_onFormSubmit } className="questionnaire questionnaire_6">
					<div className="form_field">
						<div className="form_field checkbox">
							<input type="checkbox" 
								hidden="" 
								id="personal_data_consent" 
								name="personal_data_consent" 
								checked={ personal_data_consent }  
								onChange={ (event) => this._handle_onCheckboxFieldChange(event.target.name, !personal_data_consent ? true : false) } 
								disabled={ false } 
							/>
							<label htmlFor="personal_data_consent" className="unselectable">Даю согласие на&nbsp;<a style={{ cursor: "pointer", }} onClick={ (event) => { event.stopPropagation(); event.preventDefault(); this.setState({ modal_show_personal_data: true, }) } }>обработку персональных данных и уточняю статус ПДЛ</a></label>
						</div>
					</div>
					<div className="action">
						<button type="submit" className="button button-blue" disabled={ this._checkDisabled() }>
							{ loading ? (
								<SpinnerCircular size={24} thickness={100} speed={100} color="rgba(255, 255, 255, 1)" secondaryColor="rgba(255, 255, 255, 0.5)" style={{ marginTop: "4px" }}/>
							) : "Согласовать и перейти к подписанию" }
						</button>
					</div>
				</form>
				<Modal 
					open={ modal_show_personal_data } 
					close={ () => { this.setState({ modal_show_personal_data: false, }) } } 
				>
					<p>Настоящим даю ООО «ЛК Эволюция» (ОГРН 1207700245037) (115201, г. Москва, ул. Котляковская, дом 8, эт., пом. 3, 337) для целей определения возможности заключения договора финансовой аренды (лизинга)/ договора поручительства, проведения проверки кредитной истории, заключения, изменения и исполнения договора финансовой аренды (лизинга)/ договора поручительства, в том числе в случае неисполнения и/или ненадлежащего исполнения указанного договора, осуществления рассылки рекламно-информационного характера и осуществления прямых контактов с помощью любых средств связи (телефонной и подвижной связи, смс-оповещения, почтового письма, телеграммы, голосового сообщения, сообщения по электронной почте и др.), при этом право выбора организаций, осуществляющих рассылку, предоставляю ООО «ЛК Эволюция» (ОГРН 1207700245037) без дополнительного согласования со мной, а также для обеспечения соблюдения законов и иных
нормативно-правовых актов, согласие на обработку, предполагающую сбор (непосредственно от заявителя, от третьих лиц, путем направления запросов в органы государственной власти, органы местного самоуправления, юридическим и физическим лицам, из иных общедоступных информационных ресурсов, из архивов), запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), проверку, извлечение, использование, передачу (распространение, предоставление, доступ), полностью или частично третьим лицам, действующим на основании договоров, заключенных ими с ООО «ЛК Эволюция» (ОГРН 1207700245037), обезличивание, блокирование, удаление и уничтожение, следующих моих персональных данных: фамилия, имя, отчество, дата и место рождения, пол, гражданство, серия и номер основного документа (включая его копию), удостоверяющего личность, сведения о дате выдачи указанного документа и выдавшем его органе, ИНН, страховой номер индивидуального лицевого счета, указанный в страховом свидетельстве обязательного пенсионного страхования, адрес регистрации и фактического проживания, контактная информация (домашний, рабочий, мобильный телефоны, электронные адреса), место работы и должность, сведения о доходах, сведения о семейном положении, сведения о супруге, сведения об имущественном положении, сведения,
содержащиеся в титульной и основной части кредитной истории. Обработка персональных данных осуществляется как с использованием средств автоматизации, в том числе в информационно телекоммуникационных сетях, так и без использования таких средств. ООО «ЛК Эволюция» (ОГРН 1207700245037) в соответствии с настоящим согласием и для достижения указанных выше целей, вправе поручить обработку персональных данных третьим лицам, а так же, в случае привлечения третьих лиц к оказанию услуг и/или в случае передачи ООО «ЛК Эволюция» (ОГРН 1207700245037) принадлежащих ему прав требования третьему лицу, вправе в необходимом объеме раскрывать/передавать информацию таким третьим лицам, их агентам и иным уполномоченным им лицам, а также предоставлять таким лицам соответствующие документы, содержащие такую информацию. Согласие на обработку персональных данных вступает в силу со дня подписания настоящей
анкеты, действует в течение 10 (десяти) лет или до момента надлежащего отзыва согласия. Согласие может быть отозвано в любое время посредством направления соответствующего письменного заявления в адрес ООО «ЛК Эволюция» (ОГРН 1207700245037). В случае отзыва настоящего согласия ООО «ЛК Эволюция» (ОГРН 1207700245037) вправе продолжить обработку персональных данных в случаях и в порядке, предусмотренных законодательством РФ. В случае любых изменений персональных данных, указанных в настоящем согласии, обязуюсь сообщить о таких изменениях ООО «ЛК Эволюция» (ОГРН 1207700245037) в течение 7 (семи) дней. Настоящим даю ООО «ЛК Эволюция» (ОГРН 1207700245037) согласие на получение кредитного отчета в целях заключения договора лизинга
и иных договоров, связанных с исполнением договора лизинга, в том числе на раскрытие информации, содержащейся в основной части кредитной истории, в отношении вышеуказанного лизингополучателя, а также в отношении меня (оригинал документа, удостоверяющего мою личность, предоставлен ООО «ЛК Эволюция» (ОГРН 1207700245037)). Данное согласие на получение кредитного отчета действует в течение 6 (шести) месяцев с даты подписания мной настоящей анкеты.</p>
					<div className="questionnaire">
						<br/>
						<label style={{ fontWeight: 800, }}>Настоящим я заявляю, что перечисленные в анкете представители лизингополучателя не являются:</label>
						<ul>
							<li style={{ lineHeight: "18px" }}>иностранным публичным должностным лицом (ИПДЛ) или родственниками ИПДЛ (супруг, близкий родственник
							(родственник по прямой восходящей и нисходящей линии (родитель и ребенок, дедушка, бабушка и внук), полнородный и неполнородный (имеющий общих отца или мать) брат и сестра, усыновитель и усыновленный);</li>
							<li style={{ lineHeight: "18px" }}>должностным лицом публичных международных организаций;</li>
							<li style={{ lineHeight: "18px" }}>публичным должностным лицом Российской Федерации.</li>
						</ul>
					</div>

				</Modal>
			</React.Fragment>
		)
	}
}

function mapStateToProps(state, ownProps)
{
	return {
		company: state.company, 
		main: state.questionnaire.main, 
		legal_address: state.questionnaire.legal_address, 
		fact_address: state.questionnaire.fact_address, 
		postal_address: state.questionnaire.postal_address, 
		head_person: state.questionnaire.head_person, 
		head_person_files: state.questionnaire.head_person_files, 
		signatory_person: state.questionnaire.signatory_person, 
		signatory_person_files: state.questionnaire.signatory_person_files, 
		founder_persons: state.questionnaire.founder_persons, 
		client_contacts: state.questionnaire.client_contacts, 
		non_profit: state.questionnaire.non_profit, 
		personal_data_consent: state.questionnaire.personal_data_consent, 
	}
}

export const getServerSideProps = reduxWrapper.getServerSideProps(store => 
	async ({ req, res, query }) => 
	{
    }
);

export default connect(mapStateToProps)(Form_7_Check);