<?php 
	include_once "funcoes.php";

	function preencheFormularioAtividadeCliente($I, &$interessado, $situacao){
		$I->click('#adicionar-novo');
		$motivos = array(
		    Interessados::DEMONSTRACAO          => 64,
		    Interessados::FECHAMENTO_POSITIVO   => 82,
		    Interessados::FECHAMENTO_NEGATIVO   => 83,
		    Interessados::NEGOCIACAO            => 84,
		    Interessados::NEGOCIACAO_POSTERGADA => 465,
		);

		$horainicio = $I->grabValueFrom("#Atendimentos_ATD_HORAINICIO");
		$horafim = date('H:i', strtotime('+1 hour', strtotime($horainicio)));
		$I->fillField("#Atendimentos_ATD_HORAFINAL", $horafim);
		$I->selectOption("#Atendimentos_ATD_TIPO", "V");
		
		$I->selectOption("#Atendimentos_ATD_IDMOTIVO", $motivos[$situacao]);
		$I->selectRandOption("#Atendimentos_ATD_NIVELINTERESSE");
		$I->selectRandOption("#Atendimentos_ATD_IDFUNCIONARIO");
		$I->fillField("#Atendimentos_ATD_CONTATO", "Lorem Ipsum");
		$I->fillField("#Atendimentos_ATD_OBS", "Lorem ipsum dolor sit amet, consectetur adipiscing elit.");

		$I->click("#submit_button");

		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}&page=atividades"));

		$interessado = Interessados::model()->findByPk($interessado->INT_CODIGO);

		if($interessado->INT_TIPO == "P"){
			$I->assertEquals($situacao, $interessado->INT_SITUACAO);
		}
		else{
			$I->assertNotEquals($situacao, $interessado->INT_SITUACAO);
		}
	}

	function processaDocumento($I, &$interessado, $inativo_antigo = false){
		$campos_contrato = false;
		$campos_adendo = false;
		$campos_reativacao = false;	
		if($interessado->INT_TIPO == "P"){
			$I->click(".novo-contrato");
			$I->seeInCurrentUrl(Url::create("contratos/create&CLI_IDCLIENTE={$interessado->INT_IDPROSPECTO}&COT_SITUACAO=1"));

			$campos_contrato = true;
		}
		elseif($interessado->INT_TIPO == "A"){
			$I->click(".novo-adendo");
			$I->seeInCurrentUrl(Url::create("contratos/create&CLI_IDCLIENTE={$interessado->INT_IDPROSPECTO}&COT_SITUACAO=2"));

			$campos_contrato = true;
			$campos_adendo = true;	
		}
		else{
			$I->click(".novo-pedidoreativacao");
			$I->seeInCurrentUrl(Url::create("contratos/create&CLI_IDCLIENTE={$interessado->INT_IDPROSPECTO}&COT_SITUACAO=8"));

			$campos_reativacao = true;
			if($inativo_antigo){
				$campos_contrato = true;
			}
		}
		
		$I->selectRandOption("#Contratos_COT_IDVENDEDOR");
		if($campos_contrato){
			$I->selectRandOption("#Contratos_COT_SIMPLES");
		}

		if($campos_adendo){
			$I->selectRandOption("#Contratos_COT_IDSERVICO");
		}

		if($campos_contrato){
			$I->selectOption("#Contratos_COT_IDPRODUTO", 1);
			$I->selectOptionUiMultiselect("produtos", ['08 - Manufatura', '12 - NF-e']);
			$I->fillField("#Contratos_COT_NROUSUARIOS", 1);
			$I->fillField("#Contratos_COT_VLRMENSAL", "900,00");
			if(!$campos_reativacao){
				$I->selectOption("#Contratos_COT_COBRADAIMPLANTACAO", 1);
				$I->fillField("#Contratos_COT_VLRIMPLANTACAO", "2500,00");
			}
		}

		if($campos_reativacao){
			$I->fillField("#Contratos_COT_HORASIMPLANTACAO", 4);
			$I->fillField("#Vencimento0Data", date('d/m/Y', strtotime('+2 days')));
			$I->fillField("#Vencimento0Valor", "500,00");
		}

		$I->fillField("#Contratos_COT_JUSTIFICATIVA", "JUSTIFICATIVA");

		if($campos_contrato){
			$I->selectRandOption("#Contratos_COT_FUNCAO");
		}

		$I->fillField("#Contratos_COT_REPRESENTANTES", "Representante");

		if($campos_contrato){
			$I->fillField("#Contratos_COT_CPFS", DocumentNumberGenerator::cpf());
			$I->fillField("#Contratos_COT_TESTEMUNHA1", "Testemunha 1");
			$I->fillField("#Contratos_COT_CPF1", DocumentNumberGenerator::cpf());
			$I->fillField("#Contratos_COT_TESTEMUNHA2", "Testemunha 2");
			$I->fillField("#Contratos_COT_CPF2", DocumentNumberGenerator::cpf());
		}
		$I->click("#submit_button");
		$I->seeElement(".alert-success");

		$I->selectOption("#Atendimentos_ATD_IDMOTIVO", 11);
		$I->click("#submit_button");
		$I->seeElement(".alert-success");

		$I->selectOption("#Atendimentos_ATD_IDMOTIVO", 14);
		$I->click("#submit_button");
		$I->seeElement(".alert-success");

		$interessado = Interessados::model()->findByPk($interessado->INT_CODIGO);
		switch ($interessado->INT_TIPO) {
			case 'P':
				$situacao = Interessados::ATIVADO;
				break;
			case 'I':
				$situacao = Interessados::CLIENTE_REATIVADO;
				break;
			case 'A':
				$situacao = Interessados::ADENDO_ATIVADO;
		}

		if(!$inativo_antigo){
			$I->assertEquals($situacao, $interessado->INT_SITUACAO);
		}
	}

	$I = new AcceptanceTester($scenario);
	$I->expect('Converter interessados');

	$usuario = ModelFind::getRand("Funcionarios", "FUN_SITUACAO = 'A' AND FUN_TBL_INTERESSADOS = 1 AND FUN_PRM_PRIVILEGIO = 1"); 
	$id = $usuario->FUN_IDFUNCIONARIO;
	$funcionario = Auth::loginById($I, $id);

	$interessado = Interessados::model()->findByPk(144); // interessado prospecto	
		resetInteressado("P", $interessado);

		$I->amOnPage(Url::create("interessados/view&id={$interessado->INT_CODIGO}"));
			transformarProspecto($I, $interessado, true);
			$I->assertEquals($interessado->INT_SITUACAO, Interessados::TRANSFORMADO);
		
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}"));

		$I->click('Atividades');
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}&page=atividades"));	

		preencheFormularioAtividadeCliente($I, $interessado, Interessados::NEGOCIACAO);
		preencheFormularioAtividadeCliente($I, $interessado, Interessados::NEGOCIACAO_POSTERGADA);
		preencheFormularioAtividadeCliente($I, $interessado, Interessados::FECHAMENTO_NEGATIVO);
		preencheFormularioAtividadeCliente($I, $interessado, Interessados::FECHAMENTO_POSITIVO);

		$I->click('Documentos');
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}&page=documentos"));
		processaDocumento($I, $interessado);
		
		resetInteressado("P",$interessado,true);

	$interessado = Interessados::model()->findByPk(146); // interessado ativo
		resetInteressado("A", $interessado);

		$I->amOnPage(Url::create("interessados/view&id={$interessado->INT_CODIGO}"));
			vincularProspecto($I, $interessado, true);
			$I->assertEquals($interessado->INT_SITUACAO, Interessados::VINCULADO);
		
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}"));

		$I->click('Atividades');
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}&page=atividades"));	

		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::NEGOCIACAO);
		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::NEGOCIACAO_POSTERGADA);
		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::FECHAMENTO_NEGATIVO);
		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::FECHAMENTO_POSITIVO);

		$I->click('Documentos');
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}&page=documentos"));
		processaDocumento($I, $interessado);
		
		resetInteressado("A",$interessado, 1);

	$interessado = Interessados::model()->findByPk(149); // interessado inativo	com cliente inativado até 4 meses
		resetInteressado("I", $interessado);

		$I->amOnPage(Url::create("interessados/view&id={$interessado->INT_CODIGO}"));
			vincularProspecto($I, $interessado, true, 1);
			$I->assertEquals($interessado->INT_SITUACAO, Interessados::VINCULADO);
		
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}"));

		$I->click('Atividades');
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}&page=atividades"));	

		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::NEGOCIACAO);
		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::NEGOCIACAO_POSTERGADA);
		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::FECHAMENTO_NEGATIVO);
		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::FECHAMENTO_POSITIVO);

		$I->click('Documentos');
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}&page=documentos"));
		processaDocumento($I, $interessado);
		
		resetInteressado("I",$interessado, 1);
	
	$interessado = Interessados::model()->findByPk(149); // interessado inativo	com cliente inativado há mais de 4 meses
		resetInteressado("I", $interessado);

		$I->amOnPage(Url::create("interessados/view&id={$interessado->INT_CODIGO}"));
			vincularProspecto($I, $interessado, true, 2);
			$I->assertEquals($interessado->INT_SITUACAO, Interessados::VINCULADO);
		
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}"));

		$I->click('Atividades');
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}&page=atividades"));	

		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::NEGOCIACAO);
		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::NEGOCIACAO_POSTERGADA);
		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::FECHAMENTO_NEGATIVO);
		// preencheFormularioAtividadeCliente($I, $interessado, Interessados::FECHAMENTO_POSITIVO);

		$I->click('Documentos');
		$I->seeInCurrentUrl(Url::create("clientes/view&id={$interessado->INT_IDPROSPECTO}&page=documentos"));
		processaDocumento($I, $interessado, true);
		
		resetInteressado("I",$interessado, 1);