<?php
require_once("../../config/config_dir_raiz.php");
$config = new Config();
require_once($config->diretorio_raiz()."/src/model/bd/Bi_usuarioDAO.php");
$bi_usuarioDAO = new Bi_usuarioDAO();
require_once($config->diretorio_raiz()."/src/model/bd/Bi_areaDAO.php");
$bi_areaDAO = new Bi_areaDAO(); 
require_once($config->diretorio_raiz()."/src/model/bd/Bi_usuario_grupoDAO.php");
$bi_usuario_grupoDAO = new Bi_usuario_grupoDAO(); 
$retorno = array();
if (isset($_GET["mod"]) && $_GET["mod"] == "form")
{
	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(); 
	$listabi_usuario_grupo = $bi_usuario_grupoDAO->buscarFiltro(" where usuario = '".$bi_usuario->getCodigo()."'"); 
	$lista_js_grid_editavelBi_usuario_grupo = array();								
	foreach($listabi_usuario_grupo as $item)			    
	{													
		array_push($lista_js_grid_editavelBi_usuario_grupo, $item->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.php");
}
elseif (isset($_GET["mod"]) && ($_GET["mod"] == "salvar" or $_GET["mod"] == "alterar"))
{
	$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);
	$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")
	{
		$bi_usuario->setCodigo($_POST['codigo']);
		$codigo = $bi_usuario->getCodigo();
		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['qtd_linhasBi_usuario_grupo']))
	{
	 	for($linha =0; $linha <= intval($_POST['qtd_linhasBi_usuario_grupo']); $linha ++)
		{
			if(isset($_POST['listtablebi_usuario_grupo'.$linha.'codigo']))
			{
				$a_codigo = explode('excluir_', $_POST['listtablebi_usuario_grupo'.$linha.'codigo']);
				if(count($a_codigo) == 1)
				{
					$bi_usuario_grupo = new Bi_usuario_grupo();
					$bi_usuario_grupo->setCodigo($_POST['listtablebi_usuario_grupo'.$linha.'codigo']);
					$bi_usuario_grupo->setUsuario($codigo); 
					$bi_usuario_grupo->setGrupo($_POST['listtablebi_usuario_grupo'.$linha.'grupo']);
					if ( (isset($_POST['listtablebi_usuario_grupo'.$linha."codigo"]) and $_POST['listtablebi_usuario_grupo'.$linha."codigo"] != "")  )
					{
						try
						{
							$retorno["status"] = true;
							$bi_usuario_grupoDAO->atualizar($bi_usuario_grupo);
						}
						catch (Exception  $e)
						{
							$retorno["mensagem"] = $e->getMessage();
							$retorno["status"] = false;
						}
					}
					else
					{
						try
						{
							$retorno["status"] = true;
							$bi_usuario_grupoDAO->salvar($bi_usuario_grupo);
						}
						catch (Exception  $e)
						{
							$retorno["mensagem"] = 'Erro na linha '.$linha.' '.$e->getMessage();
							$retorno["status"] = false;
						}
					}
				}
				elseif(count($a_codigo) > 1)
				{
					$bi_usuario_grupoDAO->excluir($bi_usuario_grupoDAO->buscarBi_usuario_grupo($a_codigo[1]));
				}
			}
		}
	}
	echo json_encode($retorno);
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "excluir")
{
	try
	{
		$bi_usuario = $bi_usuarioDAO->buscarBi_usuario($_GET["codigo"]);
		$bi_usuarioDAO->excluir($bi_usuario);
		$retorno["mensagem"] = utf8_decode("Excluido com sucesso!");
		$retorno["status"] = true;
	}
	catch (Exception  $e)
	{
		$retorno["mensagem"] = $e->getMessage();
		$retorno["status"] = false;
	}
	echo json_encode($retorno);
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "listar")
{
	if (isset($_GET["area"]) and $_GET["area"] != "")
	{
		$campo_buscar = "&area=".$_GET["area"]; 
	}
	$listaBi_usuario = $bi_usuarioDAO->listarTodosRegistros();
	include_once($config->diretorio_raiz()."/src/view/bi_usuario/Listar_todos_registros.php");
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "filtro")
{
	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.php");
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "busca_por_campo_filtro")
{
	$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"]; 
	}
	if(isset($_GET['admin']) and $_GET["admin"] != "" )
	{
		$where .= " and UPPER(admin) like '%".strtoupper($_GET['admin'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&admin=".$_GET["admin"]; 
	}
	if(isset($_POST['admin']) and $_POST["admin"] != "" )
	{
		$where .= " and UPPER(admin) like '%".strtoupper($_POST['admin'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&admin=".$_POST["admin"]; 
	}
	if(isset($_GET['alterar_senha_proximo_login']) and $_GET["alterar_senha_proximo_login"] != "" )
	{
		$where .= " and UPPER(alterar_senha_proximo_login) like '%".strtoupper($_GET['alterar_senha_proximo_login'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&alterar_senha_proximo_login=".$_GET["alterar_senha_proximo_login"]; 
	}
	if(isset($_POST['alterar_senha_proximo_login']) and $_POST["alterar_senha_proximo_login"] != "" )
	{
		$where .= " and UPPER(alterar_senha_proximo_login) like '%".strtoupper($_POST['alterar_senha_proximo_login'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&alterar_senha_proximo_login=".$_POST["alterar_senha_proximo_login"]; 
	}
	$listaBi_usuario = $bi_usuarioDAO->buscarFiltro($where);
	include_once($config->diretorio_raiz()."/src/view/bi_usuario/Listar_todos_registros.php");
}
