<?php
require_once("../../config/config_dir_raiz.php");
$config = new Config();
require_once($config->diretorio_raiz()."/src/model/bd/Bi_paginaDAO.php");
$bi_paginaDAO = new Bi_paginaDAO();
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_pagina_analiseDAO.php");
$bi_pagina_analiseDAO = new Bi_pagina_analiseDAO(); 
$retorno = array();
if (isset($_GET["mod"]) && $_GET["mod"] == "form")
{
	if ( (isset($_GET["codigo"]) and $_GET["codigo"] != "")  )
	{
		$bi_pagina = $bi_paginaDAO->buscarBi_pagina($_GET["codigo"]);
	}else{
		$bi_pagina = new Bi_pagina();
		$bi_pagina->setArea(new Bi_area());
	}
	$listaArea = $bi_areaDAO->listarTodosRegistros(); 
	$listabi_pagina_analise = $bi_pagina_analiseDAO->buscarFiltro(" where pagina = '".$bi_pagina->getCodigo()."'"); 
	$lista_js_grid_editavelBi_pagina_analise = array();								
	foreach($listabi_pagina_analise as $item)			    
	{													
		array_push($lista_js_grid_editavelBi_pagina_analise, $item->getCodigo());	
	}													
	if (isset($_GET["area"]) and $_GET["area"] != "")
	{
		$bi_pagina->setArea($bi_areaDAO->buscarBi_area($_GET["area"]));
		$campo_buscar = "&area=".$_GET["area"]; 
	}
	include_once($config->diretorio_raiz()."/src/view/bi_pagina/Formulario.php");
}
elseif (isset($_GET["mod"]) && ($_GET["mod"] == "salvar" or $_GET["mod"] == "alterar"))
{
	$bi_pagina = new Bi_pagina();
	$bi_pagina->setCodigo($_POST['codigo']);
	$bi_pagina->setNome($_POST['nome']);
	$bi_pagina->setArea($_POST['area']);
	$bi_pagina->setLayout($_POST['layout']);
	$bi_pagina->setTempo_visivel_publico($_POST['tempo_visivel_publico']);
	if ($_POST['data_ini_visivel_publico'] != "")
	{
		$dateData_ini_visivel_publico = DateTime::createFromFormat('d/m/Y H:i', $_POST['data_ini_visivel_publico']);
		$bi_pagina->setData_ini_visivel_publico($dateData_ini_visivel_publico);
	}
	$bi_pagina->setLink_externo($_POST['link_externo']);
	$codigo = "";
	if ($_GET["mod"] == "alterar")
	{
		$bi_pagina->setCodigo($_POST['codigo']);
		$codigo = $bi_pagina->getCodigo();
		try
		{
			$retorno["mensagem"] = "Alterado com sucesso!";
			$retorno["status"] = true;
			$bi_paginaDAO->atualizar($bi_pagina);
		}
		catch (Exception  $e)
		{
			$retorno["mensagem"] = $e->getMessage();
			$retorno["status"] = false;
		}
	}
	else
	{
		try
		{
			$retorno["mensagem"] = "Inserido com sucesso!";
			$retorno["status"] = true;
			$codigo = $bi_paginaDAO->salvar($bi_pagina);
		}
		catch (Exception  $e)
		{
			$retorno["mensagem"] = $e->getMessage();
			$retorno["status"] = false;
		}
	}
	if(isset($_POST['qtd_linhasBi_pagina_analise']))
	{
	 	for($linha =0; $linha <= intval($_POST['qtd_linhasBi_pagina_analise']); $linha ++)
		{
			if(isset($_POST['listtablebi_pagina_analise'.$linha.'codigo']))
			{
				$a_codigo = explode('excluir_', $_POST['listtablebi_pagina_analise'.$linha.'codigo']);
				if(count($a_codigo) == 1)
				{
					$bi_pagina_analise = new Bi_pagina_analise();
					$bi_pagina_analise->setCodigo($_POST['listtablebi_pagina_analise'.$linha.'codigo']);
					$bi_pagina_analise->setPagina($codigo); 
					$bi_pagina_analise->setAnalise($_POST['listtablebi_pagina_analise'.$linha.'analise']);
					if (isset($_POST['listtablebi_pagina_analise'.$linha.'altura']))
					{
						$bi_pagina_analise->setAltura($_POST['listtablebi_pagina_analise'.$linha.'altura']);
					}
					else
					{
						$bi_pagina_analise->setAltura("0");
					}
					$bi_pagina_analise->setLargura($_POST['listtablebi_pagina_analise'.$linha.'largura']);
					$bi_pagina_analise->setLeft_fixo($_POST['listtablebi_pagina_analise'.$linha.'left_fixo']);
					$bi_pagina_analise->setTop_fixo($_POST['listtablebi_pagina_analise'.$linha.'top_fixo']);
					$bi_pagina_analise->setLinha($_POST['listtablebi_pagina_analise'.$linha.'linha']);
					$bi_pagina_analise->setColuna($_POST['listtablebi_pagina_analise'.$linha.'coluna']);
					$bi_pagina_analise->setTexto($_POST['listtablebi_pagina_analise'.$linha.'texto']);
					$bi_pagina_analise->setTipo($_POST['listtablebi_pagina_analise'.$linha.'tipo']);
					if ( (isset($_POST['listtablebi_pagina_analise'.$linha."codigo"]) and $_POST['listtablebi_pagina_analise'.$linha."codigo"] != "")  )
					{
						try
						{
							$retorno["status"] = true;
							$bi_pagina_analiseDAO->atualizar($bi_pagina_analise);
						}
						catch (Exception  $e)
						{
							$retorno["mensagem"] = $e->getMessage();
							$retorno["status"] = false;
						}
					}
					else
					{
						try
						{
							$retorno["status"] = true;
							$bi_pagina_analiseDAO->salvar($bi_pagina_analise);
						}
						catch (Exception  $e)
						{
							$retorno["mensagem"] = 'Erro na linha '.$linha.' '.$e->getMessage();
							$retorno["status"] = false;
						}
					}
				}
				elseif(count($a_codigo) > 1)
				{
					$bi_pagina_analiseDAO->excluir($bi_pagina_analiseDAO->buscarBi_pagina_analise($a_codigo[1]));
				}
			}
		}
	}
	echo json_encode($retorno);
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "excluir")
{
	try
	{
		$bi_pagina = $bi_paginaDAO->buscarBi_pagina($_GET["codigo"]);
		$bi_paginaDAO->excluir($bi_pagina);
		$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_pagina = $bi_paginaDAO->listarTodosRegistros();
	include_once($config->diretorio_raiz()."/src/view/bi_pagina/Listar_todos_registros.php");
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "filtro")
{
	if ( (isset($_GET["codigo"]) and $_GET["codigo"] != "")  )
	{
		$bi_pagina = $bi_paginaDAO->buscarBi_pagina($_GET["codigo"]);
	}else{
		$bi_pagina = new Bi_pagina();
		$bi_pagina->setArea(new Bi_area());
	}
	$listaArea = $bi_areaDAO->listarTodosRegistros(); 
	if (isset($_GET["area"]) and $_GET["area"] != "")
	{
		$bi_pagina->setArea($bi_areaDAO->buscarBi_area($_GET["area"]));
		$campo_buscar = "&area=".$_GET["area"]; 
	}
	include_once($config->diretorio_raiz()."/src/view/bi_pagina/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['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['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['layout']) and $_GET["layout"] != "" )
	{
		$where .= " and UPPER(layout) like '%".strtoupper($_GET['layout'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&layout=".$_GET["layout"]; 
	}
	if(isset($_POST['layout']) and $_POST["layout"] != "" )
	{
		$where .= " and UPPER(layout) like '%".strtoupper($_POST['layout'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&layout=".$_POST["layout"]; 
	}
	if(isset($_GET['tempo_visivel_publico']) and $_GET["tempo_visivel_publico"] != "" )
	{
		$where .= " and UPPER(tempo_visivel_publico) like '%".strtoupper($_GET['tempo_visivel_publico'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&tempo_visivel_publico=".$_GET["tempo_visivel_publico"]; 
	}
	if(isset($_POST['tempo_visivel_publico']) and $_POST["tempo_visivel_publico"] != "" )
	{
		$where .= " and UPPER(tempo_visivel_publico) like '%".strtoupper($_POST['tempo_visivel_publico'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&tempo_visivel_publico=".$_POST["tempo_visivel_publico"]; 
	}
	if(isset($_GET['data_ini_visivel_publicoIni']) and $_GET['data_ini_visivel_publicoIni'] != "" and $_GET['data_ini_visivel_publicoFim'] != "")
	{
		$dateIni = DateTime::createFromFormat('d/m/Y H:i', $_GET['data_ini_visivel_publicoIni']);
		$dateFim = DateTime::createFromFormat('d/m/Y H:i', $_GET['data_ini_visivel_publicoFim']);
		$where .= " and data_ini_visivel_publico >= '".$dateIni->format('Y-m-d H:i').''."'";
		$where .= " and data_ini_visivel_publico <= '".$dateFim->format('Y-m-d H:i').''."'";
		$entrouEmAlgumFiltro = true;
	}
	if(isset($_POST['data_ini_visivel_publicoIni']) and $_POST['data_ini_visivel_publicoIni'] != "" and $_POST['data_ini_visivel_publicoFim'] != "")
	{
		$dateIni = DateTime::createFromFormat('d/m/Y H:i', $_POST['data_ini_visivel_publicoIni']);
		$dateFim = DateTime::createFromFormat('d/m/Y H:i', $_POST['data_ini_visivel_publicoFim']);
		$where .= " and data_ini_visivel_publico >= '".$dateIni->format('Y-m-d H:i').''."'";
		$where .= " and data_ini_visivel_publico <= '".$dateFim->format('Y-m-d H:i').''."'";
		$entrouEmAlgumFiltro = true;
	}
	if(isset($_GET['link_externo']) and $_GET["link_externo"] != "" )
	{
		$where .= " and UPPER(link_externo) like '%".strtoupper($_GET['link_externo'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&link_externo=".$_GET["link_externo"]; 
	}
	if(isset($_POST['link_externo']) and $_POST["link_externo"] != "" )
	{
		$where .= " and UPPER(link_externo) like '%".strtoupper($_POST['link_externo'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&link_externo=".$_POST["link_externo"]; 
	}
	$listaBi_pagina = $bi_paginaDAO->buscarFiltro($where);
	include_once($config->diretorio_raiz()."/src/view/bi_pagina/Listar_todos_registros.php");
}
