<?php
include("Bi_usuarioController.php");
require_once($config->diretorio_raiz()."/src/model/bd/Bi_grupo_permissaoDAO.php");
$bi_grupo_permissaoDAO = new Bi_grupo_permissaoDAO(); 
if (isset($_GET["mod"]) && $_GET["mod"] == "form_user")
{
	if ( (isset($_GET["codigo"]) and $_GET["codigo"] != "")  )
	{
		$bi_usuario = $bi_usuarioDAO->buscarBi_usuario($_GET["codigo"]);
	}else{
		$bi_usuario = new Bi_usuario();
		$bi_usuario->setArea(new Bi_area());
	}
	$listaArea = $bi_areaDAO->listarTodosRegistros(); 
	$listaGrupo = $bi_grupo_permissaoDAO->listarTodosRegistros(); 
	$listabi_usuario_grupo = $bi_usuario_grupoDAO->buscarFiltro(" where usuario = '".$bi_usuario->getCodigo()."'");
	$aUserGrupCadastrado = array();
	foreach($listabi_usuario_grupo as $bi_usuario_grupo)
	{
		array_push($aUserGrupCadastrado, $bi_usuario_grupo->getGrupo()->getCodigo());
	}
	if (isset($_GET["area"]) and $_GET["area"] != "")
	{
		$bi_usuario->setArea($bi_areaDAO->buscarBi_area($_GET["area"]));
		$campo_buscar = "&area=".$_GET["area"]; 
	}
	include_once($config->diretorio_raiz()."/src/view/bi_usuario/Formulario_user.php");
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "filtro_user")
{
	if ( (isset($_GET["codigo"]) and $_GET["codigo"] != "")  )
	{
		$bi_usuario = $bi_usuarioDAO->buscarBi_usuario($_GET["codigo"]);
	}else{
		$bi_usuario = new Bi_usuario();
		$bi_usuario->setArea(new Bi_area());
	}
	$listaArea = $bi_areaDAO->listarTodosRegistros(); 
	if (isset($_GET["area"]) and $_GET["area"] != "")
	{
		$bi_usuario->setArea($bi_areaDAO->buscarBi_area($_GET["area"]));
		$campo_buscar = "&area=".$_GET["area"]; 
	}
	include_once($config->diretorio_raiz()."/src/view/bi_usuario/Filtro_lista_registros_user.php");
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "busca_por_campo_filtro_user")
{
	$entrouEmAlgumFiltro = false;
 	$where = " where 1=1";
	if(isset($_GET['codigo']) and $_GET["codigo"] != "" )
	{
		$where .= " and UPPER(codigo) like '%".strtoupper($_GET['codigo'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&codigo=".$_GET["codigo"]; 
	}
	if(isset($_POST['codigo']) and $_POST["codigo"] != "" )
	{
		$where .= " and UPPER(codigo) like '%".strtoupper($_POST['codigo'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&codigo=".$_POST["codigo"]; 
	}
	if(isset($_GET['usuario']) and $_GET["usuario"] != "" )
	{
		$where .= " and UPPER(usuario) like '%".strtoupper($_GET['usuario'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&usuario=".$_GET["usuario"]; 
	}
	if(isset($_POST['usuario']) and $_POST["usuario"] != "" )
	{
		$where .= " and UPPER(usuario) like '%".strtoupper($_POST['usuario'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&usuario=".$_POST["usuario"]; 
	}
	if(isset($_GET['senha']) and $_GET["senha"] != "" )
	{
		$where .= " and UPPER(senha) like '%".strtoupper($_GET['senha'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&senha=".$_GET["senha"]; 
	}
	if(isset($_POST['senha']) and $_POST["senha"] != "" )
	{
		$where .= " and UPPER(senha) like '%".strtoupper($_POST['senha'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&senha=".$_POST["senha"]; 
	}
	if(isset($_GET['nome']) and $_GET["nome"] != "" )
	{
		$where .= " and UPPER(nome) like '%".strtoupper($_GET['nome'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&nome=".$_GET["nome"]; 
	}
	if(isset($_POST['nome']) and $_POST["nome"] != "" )
	{
		$where .= " and UPPER(nome) like '%".strtoupper($_POST['nome'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&nome=".$_POST["nome"]; 
	}
	if(isset($_GET['ativo']) and $_GET["ativo"] != "" )
	{
		$where .= " and UPPER(ativo) like '%".strtoupper($_GET['ativo'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&ativo=".$_GET["ativo"]; 
	}
	if(isset($_POST['ativo']) and $_POST["ativo"] != "" )
	{
		$where .= " and UPPER(ativo) like '%".strtoupper($_POST['ativo'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&ativo=".$_POST["ativo"]; 
	}
	if(isset($_GET['data_inclusaoIni']) and $_GET['data_inclusaoIni'] != "" and $_GET['data_inclusaoFim'] != "")
	{
		$dateIni = DateTime::createFromFormat('d/m/Y H:i', $_GET['data_inclusaoIni']);
		$dateFim = DateTime::createFromFormat('d/m/Y H:i', $_GET['data_inclusaoFim']);
		$where .= " and data_inclusao >= '".$dateIni->format('Y-m-d H:i').''."'";
		$where .= " and data_inclusao <= '".$dateFim->format('Y-m-d H:i').''."'";
		$entrouEmAlgumFiltro = true;
	}
	if(isset($_POST['data_inclusaoIni']) and $_POST['data_inclusaoIni'] != "" and $_POST['data_inclusaoFim'] != "")
	{
		$dateIni = DateTime::createFromFormat('d/m/Y H:i', $_POST['data_inclusaoIni']);
		$dateFim = DateTime::createFromFormat('d/m/Y H:i', $_POST['data_inclusaoFim']);
		$where .= " and data_inclusao >= '".$dateIni->format('Y-m-d H:i').''."'";
		$where .= " and data_inclusao <= '".$dateFim->format('Y-m-d H:i').''."'";
		$entrouEmAlgumFiltro = true;
	}
	if(isset($_GET['area']) and $_GET['area'] != "")
	{
		$where .= " and area = ". $_GET['area'];
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&area=".$_GET["area"]; 
	}
	if(isset($_POST['area']) and $_POST['area'] != "")
	{
		$where .= " and area = ". $_POST['area'];
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&area=".$_POST["area"]; 
	}
	$listaBi_usuario = $bi_usuarioDAO->buscarFiltro($where);
	include_once($config->diretorio_raiz()."/src/view/bi_usuario/Listar_todos_registros_user.php");
}
elseif (isset($_GET["mod"]) && ($_GET["mod"] == "salvar_user" or $_GET["mod"] == "alterar_user"))
{
	$bi_usuario = new Bi_usuario();
	$bi_usuario->setCodigo($_POST['codigo']);
	$bi_usuario->setUsuario($_POST['usuario']);
	$bi_usuario->setSenha($_POST['senha']);
	$bi_usuario->setNome($_POST['nome']);
	if (isset($_POST['ativo']))
	{
		$bi_usuario->setAtivo($_POST['ativo']);
	}
	else
	{
		$bi_usuario->setAtivo("0");
	}
	$dateData_inclusao = new DateTime;
	$bi_usuario->setData_inclusao($dateData_inclusao);
	if(isset($_POST['area']))
	{
		$bi_usuario->setArea($_POST['area']);
	}
	if (isset($_POST['admin']))
	{
		$bi_usuario->setAdmin($_POST['admin']);
	}
	else
	{
		$bi_usuario->setAdmin("0");
	}
	if (isset($_POST['alterar_senha_proximo_login']))
	{
		$bi_usuario->setAlterar_senha_proximo_login($_POST['alterar_senha_proximo_login']);
	}
	else
	{
		$bi_usuario->setAlterar_senha_proximo_login("0");
	}
	$codigo = "";
	if ($_GET["mod"] == "alterar_user")
	{
		$bi_usuario->setCodigo($_POST['codigo']);
		$codigo = $bi_usuario->getCodigo();
		//echo "Usuário 1".$codigo;
		try
		{
			$retorno["mensagem"] = "Alterado com sucesso!";
			$retorno["status"] = true;
			$bi_usuarioDAO->atualizar($bi_usuario);
		}
		catch (Exception  $e)
		{
			$retorno["mensagem"] = $e->getMessage();
			$retorno["status"] = false;
		}
	}
	else
	{
		try
		{
			$retorno["mensagem"] = "Inserido com sucesso!";
			$retorno["status"] = true;
			$codigo = $bi_usuarioDAO->salvar($bi_usuario);
		}
		catch (Exception  $e)
		{
			$retorno["mensagem"] = $e->getMessage();
			$retorno["status"] = false;
		}
	}
	if(isset($_POST["grupo"]))
	{
		foreach($_POST["grupo"] as $grupo)
		{
			//valida se ja inseriu
			$listGsuario_grupo = $bi_usuario_grupoDAO->buscarFiltro(" where grupo = ".$grupo." and usuario = ".$codigo);
			if(count($listGsuario_grupo) == 0)
			{
				$bi_usuario_grupo = new Bi_usuario_grupo();
				$bi_usuario_grupo->setUsuario($codigo); 
				$bi_usuario_grupo->setGrupo($grupo);
				$bi_usuario_grupoDAO->salvar($bi_usuario_grupo);
			}
		}
		//exclusão desmarcados
		//echo "Usuário ".$codigo;
		$listGsuario_grupo = $bi_usuario_grupoDAO->buscarFiltro(" where usuario = ".$codigo);
		foreach($listGsuario_grupo as $bi_usuario_grupo)
		{
			$marcado = false;
			foreach($_POST["grupo"] as $grupo)
			{
				if($grupo == $bi_usuario_grupo->getGrupo()->getCodigo())
				{
					$marcado = true;
				}
			}
			if(! $marcado)
			{
				$bi_usuario_grupoDAO->excluir($bi_usuario_grupo);
			}
		}
	}
	else
	{
		$listGsuario_grupo = $bi_usuario_grupoDAO->buscarFiltro(" where usuario = ".$codigo);
		foreach($listGsuario_grupo as $bi_usuario_grupo)
		{
			$bi_usuario_grupoDAO->excluir($bi_usuario_grupo);
		}
	}
	/*if(isset($_POST['qtd_linhasBi_grupo_permissao']))
	{
	 	for($linha =0; $linha <= intval($_POST['qtd_linhasBi_grupo_permissao']); $linha ++)
		{
			if(isset($_POST['listtablebi_grupo_permissao'.$linha.'codigo']))
			{
				$a_codigo = explode('excluir_', $_POST['listtablebi_grupo_permissao'.$linha.'codigo']);
				if(count($a_codigo) == 1)
				{
					$bi_grupo_permissao = new Bi_grupo_permissao();
					$bi_grupo_permissao->setCodigo($_POST['listtablebi_grupo_permissao'.$linha.'codigo']);
					$bi_grupo_permissao->setNome($_POST['listtablebi_grupo_permissao'.$linha.'nome']);
					if ( (isset($_POST['listtablebi_grupo_permissao'.$linha."codigo"]) and $_POST['listtablebi_grupo_permissao'.$linha."codigo"] != "")  )
					{
						try
						{
							$retorno["status"] = true;
							$bi_grupo_permissaoDAO->atualizar($bi_grupo_permissao);
						}
						catch (Exception  $e)
						{
							$retorno["mensagem"] = $e->getMessage();
							$retorno["status"] = false;
						}
					}
					else
					{
						try
						{
							$retorno["status"] = true;
							$bi_grupo_permissaoDAO->salvar($bi_grupo_permissao);
						}
						catch (Exception  $e)
						{
							$retorno["mensagem"] = 'Erro na linha '.$linha.' '.$e->getMessage();
							$retorno["status"] = false;
						}
					}
				}
				elseif(count($a_codigo) > 1)
				{
					$bi_grupo_permissaoDAO->excluir($bi_grupo_permissaoDAO->buscarBi_grupo_permissao($a_codigo[1]));
				}
			}
		}
	}*/
	echo json_encode($retorno);
}