<?php
require_once("../../config/config_dir_raiz.php");
$config = new Config();
require_once($config->diretorio_raiz()."/src/model/bd/Bi_carga_dadosDAO.php");
$bi_carga_dadosDAO = new Bi_carga_dadosDAO();
require_once($config->diretorio_raiz()."/src/model/bd/Bi_conexaoDAO.php");
$bi_conexaoDAO = new Bi_conexaoDAO(); 
require_once($config->diretorio_raiz()."/src/model/bd/Bi_agendamento_cargaDAO.php");
$bi_agendamento_cargaDAO = new Bi_agendamento_cargaDAO(); 
$retorno = array();
if (isset($_GET["mod"]) && $_GET["mod"] == "form")
{
	if ( (isset($_GET["codigo"]) and $_GET["codigo"] != "")  )
	{
		$bi_carga_dados = $bi_carga_dadosDAO->buscarBi_carga_dados($_GET["codigo"]);
	}else{
		$bi_carga_dados = new Bi_carga_dados();
		$bi_carga_dados->setConexao(new Bi_conexao());
	}
	$listaConexao = $bi_conexaoDAO->listarTodosRegistros(); 
	$listabi_agendamento_carga = $bi_agendamento_cargaDAO->buscarFiltro(" where carga_dados = '".$bi_carga_dados->getCodigo()."'"); 
	$lista_js_grid_editavelBi_agendamento_carga = array();								
	foreach($listabi_agendamento_carga as $item)			    
	{													
		array_push($lista_js_grid_editavelBi_agendamento_carga, $item->getCodigo());	
	}													
	if (isset($_GET["conexao"]) and $_GET["conexao"] != "")
	{
		$bi_carga_dados->setConexao($bi_conexaoDAO->buscarBi_conexao($_GET["conexao"]));
		$campo_buscar = "&conexao=".$_GET["conexao"]; 
	}
	include_once($config->diretorio_raiz()."/src/view/bi_carga_dados/Formulario.php");
}
elseif (isset($_GET["mod"]) && ($_GET["mod"] == "salvar" or $_GET["mod"] == "alterar"))
{
	$bi_carga_dados = new Bi_carga_dados();
	$bi_carga_dados->setCodigo($_POST['codigo']);
	$bi_carga_dados->setNome($_POST['nome']);
	$bi_carga_dados->setDescricao($_POST['descricao']);
	$bi_carga_dados->setConexao($_POST['conexao']);
	$bi_carga_dados->setTabela($_POST['tabela']);
	if (isset($_POST['ativo']))
	{
		$bi_carga_dados->setAtivo($_POST['ativo']);
	}
	else
	{
		$bi_carga_dados->setAtivo("0");
	}
	$codigo = "";
	if ($_GET["mod"] == "alterar")
	{
		$bi_carga_dados->setCodigo($_POST['codigo']);
		$codigo = $bi_carga_dados->getCodigo();
		try
		{
			$retorno["mensagem"] = "Alterado com sucesso!";
			$retorno["status"] = true;
			$bi_carga_dadosDAO->atualizar($bi_carga_dados);
		}
		catch (Exception  $e)
		{
			$retorno["mensagem"] = $e->getMessage();
			$retorno["status"] = false;
		}
	}
	else
	{
		try
		{
			$retorno["mensagem"] = "Inserido com sucesso!";
			$retorno["status"] = true;
			$codigo = $bi_carga_dadosDAO->salvar($bi_carga_dados);
		}
		catch (Exception  $e)
		{
			$retorno["mensagem"] = $e->getMessage();
			$retorno["status"] = false;
		}
	}
	if(isset($_POST['qtd_linhasBi_agendamento_carga']))
	{
	 	for($linha =0; $linha <= intval($_POST['qtd_linhasBi_agendamento_carga']); $linha ++)
		{
			if(isset($_POST['listtablebi_agendamento_carga'.$linha.'codigo']))
			{
				$a_codigo = explode('excluir_', $_POST['listtablebi_agendamento_carga'.$linha.'codigo']);
				if(count($a_codigo) == 1)
				{
					$bi_agendamento_carga = new Bi_agendamento_carga();
					$bi_agendamento_carga->setCodigo($_POST['listtablebi_agendamento_carga'.$linha.'codigo']);
					$bi_agendamento_carga->setCarga_dados($codigo); 
					if ($_POST['listtablebi_agendamento_carga'.$linha.'hora_execucao'] != "")
					{
						$dateHora_execucao = DateTime::createFromFormat('H:i', $_POST['listtablebi_agendamento_carga'.$linha.'hora_execucao']);
						$bi_agendamento_carga->setHora_execucao($dateHora_execucao);
					}
					if (isset($_POST['listtablebi_agendamento_carga'.$linha.'recorrente']))
					{
						$bi_agendamento_carga->setRecorrente($_POST['listtablebi_agendamento_carga'.$linha.'recorrente']);
					}
					else
					{
						$bi_agendamento_carga->setRecorrente("0");
					}
					$bi_agendamento_carga->setValor_recorrencia($_POST['listtablebi_agendamento_carga'.$linha.'valor_recorrencia']);
					$bi_agendamento_carga->setUnidade_recorrencia($_POST['listtablebi_agendamento_carga'.$linha.'unidade_recorrencia']);
					if ($_POST['listtablebi_agendamento_carga'.$linha.'ultima_execucao'] != "")
					{
						$dateUltima_execucao = DateTime::createFromFormat('d/m/Y H:i', $_POST['listtablebi_agendamento_carga'.$linha.'ultima_execucao']);
						$bi_agendamento_carga->setUltima_execucao($dateUltima_execucao);
					}
					if ( (isset($_POST['listtablebi_agendamento_carga'.$linha."codigo"]) and $_POST['listtablebi_agendamento_carga'.$linha."codigo"] != "")  )
					{
						try
						{
							$retorno["status"] = true;
							$bi_agendamento_cargaDAO->atualizar($bi_agendamento_carga);
						}
						catch (Exception  $e)
						{
							$retorno["mensagem"] = $e->getMessage();
							$retorno["status"] = false;
						}
					}
					else
					{
						try
						{
							$retorno["status"] = true;
							$bi_agendamento_cargaDAO->salvar($bi_agendamento_carga);
						}
						catch (Exception  $e)
						{
							$retorno["mensagem"] = 'Erro na linha '.$linha.' '.$e->getMessage();
							$retorno["status"] = false;
						}
					}
				}
				elseif(count($a_codigo) > 1)
				{
					$bi_agendamento_cargaDAO->excluir($bi_agendamento_cargaDAO->buscarBi_agendamento_carga($a_codigo[1]));
				}
			}
		}
	}
	echo json_encode($retorno);
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "excluir")
{
	try
	{
		$bi_carga_dados = $bi_carga_dadosDAO->buscarBi_carga_dados($_GET["codigo"]);
		$bi_carga_dadosDAO->excluir($bi_carga_dados);
		$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["conexao"]) and $_GET["conexao"] != "")
	{
		$campo_buscar = "&conexao=".$_GET["conexao"]; 
	}
	$listaBi_carga_dados = $bi_carga_dadosDAO->listarTodosRegistros();
	include_once($config->diretorio_raiz()."/src/view/bi_carga_dados/Listar_todos_registros.php");
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "filtro")
{
	if ( (isset($_GET["codigo"]) and $_GET["codigo"] != "")  )
	{
		$bi_carga_dados = $bi_carga_dadosDAO->buscarBi_carga_dados($_GET["codigo"]);
	}else{
		$bi_carga_dados = new Bi_carga_dados();
		$bi_carga_dados->setConexao(new Bi_conexao());
	}
	$listaConexao = $bi_conexaoDAO->listarTodosRegistros(); 
	if (isset($_GET["conexao"]) and $_GET["conexao"] != "")
	{
		$bi_carga_dados->setConexao($bi_conexaoDAO->buscarBi_conexao($_GET["conexao"]));
		$campo_buscar = "&conexao=".$_GET["conexao"]; 
	}
	include_once($config->diretorio_raiz()."/src/view/bi_carga_dados/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['descricao']) and $_GET["descricao"] != "" )
	{
		$where .= " and UPPER(descricao) like '%".strtoupper($_GET['descricao'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&descricao=".$_GET["descricao"]; 
	}
	if(isset($_POST['descricao']) and $_POST["descricao"] != "" )
	{
		$where .= " and UPPER(descricao) like '%".strtoupper($_POST['descricao'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&descricao=".$_POST["descricao"]; 
	}
	if(isset($_GET['conexao']) and $_GET['conexao'] != "")
	{
		$where .= " and conexao = ". $_GET['conexao'];
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&conexao=".$_GET["conexao"]; 
	}
	if(isset($_POST['conexao']) and $_POST['conexao'] != "")
	{
		$where .= " and conexao = ". $_POST['conexao'];
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&conexao=".$_POST["conexao"]; 
	}
	if(isset($_GET['tabela']) and $_GET["tabela"] != "" )
	{
		$where .= " and UPPER(tabela) like '%".strtoupper($_GET['tabela'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&tabela=".$_GET["tabela"]; 
	}
	if(isset($_POST['tabela']) and $_POST["tabela"] != "" )
	{
		$where .= " and UPPER(tabela) like '%".strtoupper($_POST['tabela'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&tabela=".$_POST["tabela"]; 
	}
	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"]; 
	}
	$listaBi_carga_dados = $bi_carga_dadosDAO->buscarFiltro($where);
	include_once($config->diretorio_raiz()."/src/view/bi_carga_dados/Listar_todos_registros.php");
}
