<?php
require_once("../../config/config_dir_raiz.php");
$config = new Config();
require_once($config->diretorio_raiz()."/src/model/bd/Bi_agendamento_cargaDAO.php");
$bi_agendamento_cargaDAO = new Bi_agendamento_cargaDAO();
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_unidade_recorrenciaDAO.php");
$bi_unidade_recorrenciaDAO = new Bi_unidade_recorrenciaDAO(); 
$retorno = array();
if (isset($_GET["mod"]) && $_GET["mod"] == "form")
{
	if ( (isset($_GET["codigo"]) and $_GET["codigo"] != "")  )
	{
		$bi_agendamento_carga = $bi_agendamento_cargaDAO->buscarBi_agendamento_carga($_GET["codigo"]);
	}else{
		$bi_agendamento_carga = new Bi_agendamento_carga();
		$bi_agendamento_carga->setCarga_dados(new Bi_carga_dados());
		$bi_agendamento_carga->setUnidade_recorrencia(new Bi_unidade_recorrencia());
	}
	$listaCarga_dados = $bi_carga_dadosDAO->listarTodosRegistros(); 
	$listaUnidade_recorrencia = $bi_unidade_recorrenciaDAO->listarTodosRegistros(); 
	if (isset($_GET["carga_dados"]) and $_GET["carga_dados"] != "")
	{
		$bi_agendamento_carga->setCarga_dados($bi_carga_dadosDAO->buscarBi_carga_dados($_GET["carga_dados"]));
		$campo_buscar = "&carga_dados=".$_GET["carga_dados"]; 
	}
	if (isset($_GET["unidade_recorrencia"]) and $_GET["unidade_recorrencia"] != "")
	{
		$bi_agendamento_carga->setUnidade_recorrencia($bi_unidade_recorrenciaDAO->buscarBi_unidade_recorrencia($_GET["unidade_recorrencia"]));
		$campo_buscar = "&unidade_recorrencia=".$_GET["unidade_recorrencia"]; 
	}
	include_once($config->diretorio_raiz()."/src/view/bi_agendamento_carga/Formulario.php");
}
elseif (isset($_GET["mod"]) && ($_GET["mod"] == "salvar" or $_GET["mod"] == "alterar"))
{
	$bi_agendamento_carga = new Bi_agendamento_carga();
	$bi_agendamento_carga->setCodigo($_POST['codigo']);
	$bi_agendamento_carga->setCarga_dados($_POST['carga_dados']);
	if ($_POST['hora_execucao'] != "")
	{
		$dateHora_execucao = DateTime::createFromFormat('H:i', $_POST['hora_execucao']);
		$bi_agendamento_carga->setHora_execucao($dateHora_execucao);
	}
	if (isset($_POST['recorrente']))
	{
		$bi_agendamento_carga->setRecorrente($_POST['recorrente']);
	}
	else
	{
		$bi_agendamento_carga->setRecorrente("0");
	}
	$bi_agendamento_carga->setValor_recorrencia($_POST['valor_recorrencia']);
	$bi_agendamento_carga->setUnidade_recorrencia($_POST['unidade_recorrencia']);
	if ($_POST['ultima_execucao'] != "")
	{
		$dateUltima_execucao = DateTime::createFromFormat('d/m/Y H:i', $_POST['ultima_execucao']);
		$bi_agendamento_carga->setUltima_execucao($dateUltima_execucao);
	}
	if (isset($_POST['executando']))
	{
		$bi_agendamento_carga->setExecutando($_POST['executando']);
	}
	else
	{
		$bi_agendamento_carga->setExecutando("0");
	}
	$codigo = "";
	if ($_GET["mod"] == "alterar")
	{
		$bi_agendamento_carga->setCodigo($_POST['codigo']);
		$codigo = $bi_agendamento_carga->getCodigo();
		try
		{
			$retorno["mensagem"] = "Alterado com sucesso!";
			$retorno["status"] = true;
			$bi_agendamento_cargaDAO->atualizar($bi_agendamento_carga);
		}
		catch (Exception  $e)
		{
			$retorno["mensagem"] = $e->getMessage();
			$retorno["status"] = false;
		}
	}
	else
	{
		try
		{
			$retorno["mensagem"] = "Inserido com sucesso!";
			$retorno["status"] = true;
			$codigo = $bi_agendamento_cargaDAO->salvar($bi_agendamento_carga);
		}
		catch (Exception  $e)
		{
			$retorno["mensagem"] = $e->getMessage();
			$retorno["status"] = false;
		}
	}
	echo json_encode($retorno);
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "excluir")
{
	try
	{
		$bi_agendamento_carga = $bi_agendamento_cargaDAO->buscarBi_agendamento_carga($_GET["codigo"]);
		$bi_agendamento_cargaDAO->excluir($bi_agendamento_carga);
		$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["carga_dados"]) and $_GET["carga_dados"] != "")
	{
		$campo_buscar = "&carga_dados=".$_GET["carga_dados"]; 
	}
	if (isset($_GET["unidade_recorrencia"]) and $_GET["unidade_recorrencia"] != "")
	{
		$campo_buscar = "&unidade_recorrencia=".$_GET["unidade_recorrencia"]; 
	}
	$listaBi_agendamento_carga = $bi_agendamento_cargaDAO->listarTodosRegistros();
	include_once($config->diretorio_raiz()."/src/view/bi_agendamento_carga/Listar_todos_registros.php");
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "filtro")
{
	if ( (isset($_GET["codigo"]) and $_GET["codigo"] != "")  )
	{
		$bi_agendamento_carga = $bi_agendamento_cargaDAO->buscarBi_agendamento_carga($_GET["codigo"]);
	}else{
		$bi_agendamento_carga = new Bi_agendamento_carga();
		$bi_agendamento_carga->setCarga_dados(new Bi_carga_dados());
		$bi_agendamento_carga->setUnidade_recorrencia(new Bi_unidade_recorrencia());
	}
	$listaCarga_dados = $bi_carga_dadosDAO->listarTodosRegistros(); 
	$listaUnidade_recorrencia = $bi_unidade_recorrenciaDAO->listarTodosRegistros(); 
	if (isset($_GET["carga_dados"]) and $_GET["carga_dados"] != "")
	{
		$bi_agendamento_carga->setCarga_dados($bi_carga_dadosDAO->buscarBi_carga_dados($_GET["carga_dados"]));
		$campo_buscar = "&carga_dados=".$_GET["carga_dados"]; 
	}
	if (isset($_GET["unidade_recorrencia"]) and $_GET["unidade_recorrencia"] != "")
	{
		$bi_agendamento_carga->setUnidade_recorrencia($bi_unidade_recorrenciaDAO->buscarBi_unidade_recorrencia($_GET["unidade_recorrencia"]));
		$campo_buscar = "&unidade_recorrencia=".$_GET["unidade_recorrencia"]; 
	}
	include_once($config->diretorio_raiz()."/src/view/bi_agendamento_carga/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['carga_dados']) and $_GET['carga_dados'] != "")
	{
		$where .= " and carga_dados = ". $_GET['carga_dados'];
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&carga_dados=".$_GET["carga_dados"]; 
	}
	if(isset($_POST['carga_dados']) and $_POST['carga_dados'] != "")
	{
		$where .= " and carga_dados = ". $_POST['carga_dados'];
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&carga_dados=".$_POST["carga_dados"]; 
	}
	if(isset($_GET['hora_execucaoIni']) and $_GET['hora_execucaoIni'] != "" and $_GET['hora_execucaoFim'] != "")
	{
		$dateIni = DateTime::createFromFormat('H:i', $_GET['hora_execucaoIni']);
		$dateFim = DateTime::createFromFormat('H:i', $_GET['hora_execucaoFim']);
		$where .= " and hora_execucao >= '".$dateIni->format('H:i').''."'";
		$where .= " and hora_execucao <= '".$dateFim->format('H:i').''."'";
		$entrouEmAlgumFiltro = true;
	}
	if(isset($_POST['hora_execucaoIni']) and $_POST['hora_execucaoIni'] != "" and $_POST['hora_execucaoFim'] != "")
	{
		$dateIni = DateTime::createFromFormat('H:i', $_POST['hora_execucaoIni']);
		$dateFim = DateTime::createFromFormat('H:i', $_POST['hora_execucaoFim']);
		$where .= " and hora_execucao >= '".$dateIni->format('H:i').''."'";
		$where .= " and hora_execucao <= '".$dateFim->format('H:i').''."'";
		$entrouEmAlgumFiltro = true;
	}
	if(isset($_GET['recorrente']) and $_GET["recorrente"] != "" )
	{
		$where .= " and UPPER(recorrente) like '%".strtoupper($_GET['recorrente'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&recorrente=".$_GET["recorrente"]; 
	}
	if(isset($_POST['recorrente']) and $_POST["recorrente"] != "" )
	{
		$where .= " and UPPER(recorrente) like '%".strtoupper($_POST['recorrente'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&recorrente=".$_POST["recorrente"]; 
	}
	if(isset($_GET['valor_recorrencia']) and $_GET["valor_recorrencia"] != "" )
	{
		$where .= " and UPPER(valor_recorrencia) like '%".strtoupper($_GET['valor_recorrencia'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&valor_recorrencia=".$_GET["valor_recorrencia"]; 
	}
	if(isset($_POST['valor_recorrencia']) and $_POST["valor_recorrencia"] != "" )
	{
		$where .= " and UPPER(valor_recorrencia) like '%".strtoupper($_POST['valor_recorrencia'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&valor_recorrencia=".$_POST["valor_recorrencia"]; 
	}
	if(isset($_GET['unidade_recorrencia']) and $_GET['unidade_recorrencia'] != "")
	{
		$where .= " and unidade_recorrencia = ". $_GET['unidade_recorrencia'];
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&unidade_recorrencia=".$_GET["unidade_recorrencia"]; 
	}
	if(isset($_POST['unidade_recorrencia']) and $_POST['unidade_recorrencia'] != "")
	{
		$where .= " and unidade_recorrencia = ". $_POST['unidade_recorrencia'];
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&unidade_recorrencia=".$_POST["unidade_recorrencia"]; 
	}
	if(isset($_GET['ultima_execucaoIni']) and $_GET['ultima_execucaoIni'] != "" and $_GET['ultima_execucaoFim'] != "")
	{
		$dateIni = DateTime::createFromFormat('d/m/Y H:i', $_GET['ultima_execucaoIni']);
		$dateFim = DateTime::createFromFormat('d/m/Y H:i', $_GET['ultima_execucaoFim']);
		$where .= " and ultima_execucao >= '".$dateIni->format('Y-m-d H:i').''."'";
		$where .= " and ultima_execucao <= '".$dateFim->format('Y-m-d H:i').''."'";
		$entrouEmAlgumFiltro = true;
	}
	if(isset($_POST['ultima_execucaoIni']) and $_POST['ultima_execucaoIni'] != "" and $_POST['ultima_execucaoFim'] != "")
	{
		$dateIni = DateTime::createFromFormat('d/m/Y H:i', $_POST['ultima_execucaoIni']);
		$dateFim = DateTime::createFromFormat('d/m/Y H:i', $_POST['ultima_execucaoFim']);
		$where .= " and ultima_execucao >= '".$dateIni->format('Y-m-d H:i').''."'";
		$where .= " and ultima_execucao <= '".$dateFim->format('Y-m-d H:i').''."'";
		$entrouEmAlgumFiltro = true;
	}
	if(isset($_GET['executando']) and $_GET["executando"] != "" )
	{
		$where .= " and UPPER(executando) like '%".strtoupper($_GET['executando'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&executando=".$_GET["executando"]; 
	}
	if(isset($_POST['executando']) and $_POST["executando"] != "" )
	{
		$where .= " and UPPER(executando) like '%".strtoupper($_POST['executando'])."%'";
		$entrouEmAlgumFiltro = true;
		$campo_buscar = "&executando=".$_POST["executando"]; 
	}
	$listaBi_agendamento_carga = $bi_agendamento_cargaDAO->buscarFiltro($where);
	include_once($config->diretorio_raiz()."/src/view/bi_agendamento_carga/Listar_todos_registros.php");
}
