<?php
function preencheFormulario($I, $motivo, $formulario, $setor){
	$I->fillField("Pendencias[PEN_TITULO]", "Teste automatizado");
	$I->selectOption("Pendencias[PEN_IDPRIORIDADE]", 1);

	$I->selectOption("Pendencias[PEN_IDMOTIVO]", $motivo);
	$I->selectOption("Pendencias[PEN_IDFORMULARIO]", $formulario);
	$I->selectOption("Pendencias[PEN_IDSETOR]", $setor);

	$I->fillCkEditor("#Pendencias_PEN_TXTSOLICITACAO", "<p><strong>teste</strong></p><p>automatizado</p>");
	$I->fillCkEditor("#Pendencias_PEN_TXTPROCEDIMENTO", "<ul><li>Teste</li><li>Automatizado</li></ul>");

	if($motivo == 450){
		$formulario = $I->grabValueFrom("#Pendencias_PEN_IDFORMULARIO");
		$I->assertEquals(405, $formulario);
	}

	if($formulario == 405){
		$setor = $I->grabValueFrom("#Pendencias_PEN_IDSETOR");
		$I->assertEquals(5, $setor);
	}
}
function verificaLocal($I, $funcionario, $local = false){
	$cod = $I->grabValueFrom("#cod_pendencia");
	$pendencia = Pendencias::model()->findByPk($cod);

	if($local){
		$I->assertEquals($local, $pendencia->PEN_IDLOCAL);
	}
	else{
		if($pendencia->PEN_IDMOTIVO == 154) {
			$I->assertEquals(3, $pendencia->PEN_IDLOCAL);
		} 
		else if ($pendencia->PEN_IDMOTIVO == 450 || ($pendencia->PEN_IDMOTIVO == 452 && $pendencia->PEN_IDSETOR == 5 && $pendencia->PEN_IDFORMULARIO == 405)) {
			$I->assertEquals(2, $pendencia->PEN_IDLOCAL);
		} 
		else {
			$I->assertEquals(13, $pendencia->PEN_IDLOCAL);
		}
	}
}

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

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

$I->amOnPage(Url::create("pendencias/create"));
$I->seeElement("#Pendencias_PEN_IDLOCAL");
$local = $I->selectRandOption("#Pendencias_PEN_IDLOCAL");

preencheFormulario($I, 450, 428, 2); // teste passando opções erradas no formulario e setor

$I->click("#submit_button");
$I->seeInCurrentUrl(Url::create("pendencias/view"));

verificaLocal($I, $funcionario, $local);

Auth::logout($I);

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

$I->amOnPage(Url::create("pendencias/create"));
$I->dontSeeElement("#Pendencias_PEN_IDLOCAL");

preencheFormulario($I, 450, 428, 2); // teste passando opções erradas no formulario e setor

$I->click("#submit_button");
$I->seeInCurrentUrl(Url::create("pendencias/view"));

verificaLocal($I, $funcionario);