<?php 
	function preencheFormulario($I, $funcionario, $pendencia){
		$dados_atualizados = array();
		$id_funcionario = $funcionario->FUN_IDFUNCIONARIO;

		$local = $I->selectRandOption("#PendenciasAtividades_PAT_IDLOCAL");
		$dados_atualizados['PEN_IDLOCAL'] = $local;

		$I->fillCkEditor("#PendenciasAtividades_PAT_DESCRICAO", "<p><strong>teste</strong></p><p>automatizado</p>");

		if(in_array($id_funcionario, [3, 17, 97])){ // Analista de Negócios
			$I->seeElement("#PendenciasAtividades_PAT_IDATENDENTE");
			$selecionado = $I->selectRandOption("#PendenciasAtividades_PAT_IDATENDENTE");
			$dados_atualizados['PEN_IDATENDENTE'] = $selecionado;
		}

		if(($id_funcionario == 368 || $id_funcionario == 461 ||  $id_funcionario == $pendencia->PEN_IDDESENVOLVEDOR) || in_array($id_funcionario, [3, 17, 97, 192, 262, $pendencia->PEN_IDATENDENTE])){ // Desenvolvedor, Analista ou Administrativo
			$I->seeElement("#PendenciasAtividades_PAT_IDPRIORIDADE");
			$selecionado = $I->selectRandOption("#PendenciasAtividades_PAT_IDPRIORIDADE");
			$dados_atualizados['PEN_IDPRIORIDADE'] = $selecionado;

			$I->seeElement("#PendenciasAtividades_PAT_IDMOTIVO");
			$selecionado = $I->selectRandOption("#PendenciasAtividades_PAT_IDMOTIVO");
			$dados_atualizados['PEN_IDMOTIVO'] = $selecionado;

			$I->seeElement("#PendenciasAtividades_PAT_IDFORMULARIO");
			$selecionado = $I->selectRandOption("#PendenciasAtividades_PAT_IDFORMULARIO");
			$dados_atualizados['PEN_IDFORMULARIO'] = $selecionado;

			$I->seeElement("#PendenciasAtividades_PAT_IDSETOR");
			$selecionado = $I->selectRandOption("#PendenciasAtividades_PAT_IDSETOR");
			$dados_atualizados['PEN_IDSETOR'] = $selecionado;
		}

		if($id_funcionario == 368){
			$I->seeElement("#PendenciasAtividades_PAT_IDDESENVOLVEDOR");
			$selecionado = $I->selectRandOption("#PendenciasAtividades_PAT_IDDESENVOLVEDOR");
			$dados_atualizados['PEN_IDDESENVOLVEDOR'] = $selecionado;

			$I->seeElement("#PendenciasAtividades_PAT_DATAPREVISAO");
			$data = date('d/m/Y', strtotime('+4 days', strtotime(date('Y-m-d'))));
			$I->fillField("#PendenciasAtividades_PAT_DATAPREVISAO", $data);
			$dados_atualizados['PEN_DATAPREVISAO'] = $data;

			$I->seeElement("#PendenciasAtividades_PAT_IDPREVISAOVERSAO");
			$selecionado = $I->selectRandOption("#PendenciasAtividades_PAT_IDPREVISAOVERSAO");
			$dados_atualizados['PEN_IDPREVISAOVERSAO'] = $selecionado;

			$I->seeElement("#PendenciasAtividades_PAT_PERCENTUAL");
			$percentual = rand(0,100);
			$I->fillField("#PendenciasAtividades_PAT_PERCENTUAL", $percentual);
			$dados_atualizados['PEN_PERCENTUAL'] = $percentual;
		}

		return $dados_atualizados;
	}

	function verificaCampos($I, $dados_atualizados, $pendencia){
		$pendencia = $pendencia->findByPk($pendencia->PEN_IDPENDENCIA);
		foreach ($dados_atualizados as $campo => $valor) { // verifica se atualizou os campos
			if($campo != "PEN_IDLOCAL" && $valor != 21 && $valor != -1){
				$I->assertEquals($pendencia[$campo], $valor);
			}
		}
	}

	$I = new AcceptanceTester($scenario);
	$I->expect('Editar pendência');

	$usuario = ModelFind::getRand("Funcionarios", "FUN_IDFUNCIONARIO IN (3, 17, 97, 368, 461)"); // analista ou desenvolvedor
	$id = $usuario->FUN_IDFUNCIONARIO;
	$funcionario = Auth::loginById($I, $id);

	$pendencia = ModelFind::getRand("Pendencias", "PEN_SITUACAO = 'A' AND PEN_IDMOTIVO IN (450,452) AND PEN_IDSETOR = 5");
	$I->amOnPage(Url::create("pendencias/view&id={$pendencia->PEN_IDPENDENCIA}"));
	$I->click("#adicionar-atividade");
	$I->seeInCurrentUrl("pendenciasAtividades/create");

	$dados_atualizados = preencheFormulario($I, $funcionario, $pendencia);
	$I->click("#submit_button");
	
	$I->seeInCurrentUrl(Url::create("pendencias/view"));

	verificaCampos($I, $dados_atualizados, $pendencia);

	Auth::logout($I);

	$usuario = ModelFind::getRand("Funcionarios", "FUN_IDFUNCIONARIO IN (192, 262)"); // administrativo
	$id = $usuario->FUN_IDFUNCIONARIO;
	$funcionario = Auth::loginById($I, $id);

	$pendencia = ModelFind::getRand("Pendencias", "PEN_SITUACAO = 'A' AND PEN_IDMOTIVO IN (450,452) AND PEN_IDSETOR = 5");
	$I->amOnPage(Url::create("pendencias/view&id={$pendencia->PEN_IDPENDENCIA}"));
	$I->click("#adicionar-atividade");
	$I->seeInCurrentUrl("pendenciasAtividades/create");

	$dados_atualizados = preencheFormulario($I, $funcionario, $pendencia);
	$I->click("#submit_button");
	
	$I->seeInCurrentUrl(Url::create("pendencias/view"));

	verificaCampos($I, $dados_atualizados, $pendencia);

	Auth::logout($I);

	$usuario = ModelFind::getRand("Funcionarios", "FUN_IDFUNCIONARIO NOT IN (3, 17, 97, 368, 461, 192, 262) AND FUN_SITUACAO = 'A' AND not exists (select * from funcionarios_bloqueio t2 where t2.FUQ_FUNCIONARIO = FUN_IDFUNCIONARIO AND t2.FUQ_DATAFIM > NOW())"); // usuário normal
	$id = $usuario->FUN_IDFUNCIONARIO;
	$funcionario = Auth::loginById($I, $id);

	$pendencia = ModelFind::getRand("Pendencias", "PEN_SITUACAO = 'A' AND PEN_IDMOTIVO IN (450,452) AND PEN_IDSETOR = 5");
	$I->amOnPage(Url::create("pendencias/view&id={$pendencia->PEN_IDPENDENCIA}"));
	$I->click("#adicionar-atividade");
	$I->seeInCurrentUrl("pendenciasAtividades/create");

	$dados_atualizados = preencheFormulario($I, $funcionario, $pendencia);
	$I->click("#submit_button");
	
	$I->seeInCurrentUrl(Url::create("pendencias/view"));

	verificaCampos($I, $dados_atualizados, $pendencia);
?>