<?php
if(file_exists("../../config/config_dir_raiz.php")) { require_once("../../config/config_dir_raiz.php"); } elseif(file_exists("config/config_dir_raiz.php")) { require_once("config/config_dir_raiz.php"); }
$config = new Config();
require_once($config->diretorio_raiz()."/src/controller/Funcoes_bd.php");
require_once($config->diretorio_raiz()."/src/model/Bi_layout_importacao.php");
require_once($config->diretorio_raiz()."/src/model/bd/Bi_usuarioDAO.php");
class Bi_layout_importacaoDAO
{
	private $_funcoes_bd;
	private $_banco_atual;
	private $conexao;
	function __construct()
	{
		$this->conexao = Conexao::obterConexao();
		$this->_banco_atual = Conexao::getUtilizarBanco();
		$this->_funcoes_bd = new Funcoes_bd();
	}
	public function salvar($bi_layout_importacao)
	{
		$inputs = array();
		if($bi_layout_importacao->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_layout_importacao->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_layout_importacao->getNome() != "")
		{
			array_push($inputs, array('campo'=>':nome', 'valor'=>$bi_layout_importacao->getNome()));
		}
		else
		{
			array_push($inputs, array('campo'=>':nome', 'valor'=>null));
		}
		if($bi_layout_importacao->getDescricao() != "")
		{
			array_push($inputs, array('campo'=>':descricao', 'valor'=>$bi_layout_importacao->getDescricao()));
		}
		else
		{
			array_push($inputs, array('campo'=>':descricao', 'valor'=>null));
		}
		if($bi_layout_importacao->getData_inclusao() instanceof DateTime)
		{
			array_push($inputs, array('campo'=>':data_inclusao', 'valor'=>$bi_layout_importacao->getData_inclusao()->format('Y-m-d H:i:s')));
		}
		else
		{
			array_push($inputs, array('campo'=>':data_inclusao', 'valor'=>null));
		}
		if($bi_layout_importacao->getUsuario_incluiu() != "")
		{
			array_push($inputs, array('campo'=>':usuario_incluiu', 'valor'=>$bi_layout_importacao->getUsuario_incluiu()));
		}
		else
		{
			array_push($inputs, array('campo'=>':usuario_incluiu', 'valor'=>null));
		}
		if($bi_layout_importacao->getLinha_inicia_cabecalho() != "")
		{
			array_push($inputs, array('campo'=>':linha_inicia_cabecalho', 'valor'=>$bi_layout_importacao->getLinha_inicia_cabecalho()));
		}
		else
		{
			array_push($inputs, array('campo'=>':linha_inicia_cabecalho', 'valor'=>null));
		}
		if($bi_layout_importacao->getColuna_testa_fim() != "")
		{
			array_push($inputs, array('campo'=>':coluna_testa_fim', 'valor'=>$bi_layout_importacao->getColuna_testa_fim()));
		}
		else
		{
			array_push($inputs, array('campo'=>':coluna_testa_fim', 'valor'=>null));
		}
		if($bi_layout_importacao->getTexto_teste_fim() != "")
		{
			array_push($inputs, array('campo'=>':texto_teste_fim', 'valor'=>$bi_layout_importacao->getTexto_teste_fim()));
		}
		else
		{
			array_push($inputs, array('campo'=>':texto_teste_fim', 'valor'=>null));
		}
		try
		{
			$sql = "INSERT INTO bi_layout_importacao (codigo, nome, descricao, data_inclusao, usuario_incluiu, linha_inicia_cabecalho, coluna_testa_fim, texto_teste_fim) VALUES (:codigo, :nome, :descricao, :data_inclusao, :usuario_incluiu, :linha_inicia_cabecalho, :coluna_testa_fim, :texto_teste_fim)  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function buscarBi_layout_importacao($codigo)
	{
		$inputs = array();
		array_push($inputs, array('campo'=>':codigo', 'valor'=>$codigo));
		$sql = "SELECT * FROM bi_layout_importacao where codigo = :codigo "; 
		$bi_layout_importacao = new Bi_layout_importacao();
		$rows_bi_layout_importacao = $this->_funcoes_bd->sqlArrayInputs($sql, $inputs);
		foreach ($rows_bi_layout_importacao as $row)
		{
			$bi_layout_importacao->setCodigo($row['codigo']);
			$bi_layout_importacao->setNome($row['nome']);
			$bi_layout_importacao->setDescricao($row['descricao']);
			if($row['data_inclusao'] != "")
			{
				$dateData_inclusao = DateTime::createFromFormat('Y-m-d H:i:s', $row['data_inclusao']);
				$bi_layout_importacao->setData_inclusao($dateData_inclusao);
			}
			if($row['usuario_incluiu'] != "")
			{
				$usuario_incluiuDAO = new Bi_usuarioDAO();
				$bi_layout_importacao->setUsuario_incluiu($usuario_incluiuDAO->buscarBi_usuario($row['usuario_incluiu']));
			}
			else
			{
				$bi_layout_importacao->setUsuario_incluiu(new Bi_usuario());
			}
			$bi_layout_importacao->setLinha_inicia_cabecalho($row['linha_inicia_cabecalho']);
			$bi_layout_importacao->setColuna_testa_fim($row['coluna_testa_fim']);
			$bi_layout_importacao->setTexto_teste_fim($row['texto_teste_fim']);
		}
		return $bi_layout_importacao;
	}
	public function buscarFiltro($where)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_layout_importacao  ".$where;
		$lista_bi_layout_importacao = array();
		$rows_bi_layout_importacao = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_layout_importacao as $row)
		{
			$bi_layout_importacao = new Bi_layout_importacao();
			$bi_layout_importacao->setCodigo($row['codigo']);
			$bi_layout_importacao->setNome($row['nome']);
			$bi_layout_importacao->setDescricao($row['descricao']);
			if($row['data_inclusao'] != "")
			{
				$dateData_inclusao = DateTime::createFromFormat('Y-m-d H:i:s', $row['data_inclusao']);
				$bi_layout_importacao->setData_inclusao($dateData_inclusao);
			}
			if($row['usuario_incluiu'] != "")
			{
				$usuario_incluiuDAO = new Bi_usuarioDAO();
				$bi_layout_importacao->setUsuario_incluiu($usuario_incluiuDAO->buscarBi_usuario($row['usuario_incluiu']));
			}
			else
			{
				$bi_layout_importacao->setUsuario_incluiu(new Bi_usuario());
			}
			$bi_layout_importacao->setLinha_inicia_cabecalho($row['linha_inicia_cabecalho']);
			$bi_layout_importacao->setColuna_testa_fim($row['coluna_testa_fim']);
			$bi_layout_importacao->setTexto_teste_fim($row['texto_teste_fim']);
			array_push($lista_bi_layout_importacao, $bi_layout_importacao);
		}
		return $lista_bi_layout_importacao;
	}
	public function atualizar($bi_layout_importacao)
	{
		$inputs = array();
		if($bi_layout_importacao->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_layout_importacao->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_layout_importacao->getNome() != "")
		{
			array_push($inputs, array('campo'=>':nome', 'valor'=>$bi_layout_importacao->getNome()));
		}
		else
		{
			array_push($inputs, array('campo'=>':nome', 'valor'=>null));
		}
		if($bi_layout_importacao->getDescricao() != "")
		{
			array_push($inputs, array('campo'=>':descricao', 'valor'=>$bi_layout_importacao->getDescricao()));
		}
		else
		{
			array_push($inputs, array('campo'=>':descricao', 'valor'=>null));
		}
		if($bi_layout_importacao->getUsuario_incluiu() != "")
		{
			array_push($inputs, array('campo'=>':usuario_incluiu', 'valor'=>$bi_layout_importacao->getUsuario_incluiu()));
		}
		else
		{
			array_push($inputs, array('campo'=>':usuario_incluiu', 'valor'=>null));
		}
		if($bi_layout_importacao->getLinha_inicia_cabecalho() != "")
		{
			array_push($inputs, array('campo'=>':linha_inicia_cabecalho', 'valor'=>$bi_layout_importacao->getLinha_inicia_cabecalho()));
		}
		else
		{
			array_push($inputs, array('campo'=>':linha_inicia_cabecalho', 'valor'=>null));
		}
		if($bi_layout_importacao->getColuna_testa_fim() != "")
		{
			array_push($inputs, array('campo'=>':coluna_testa_fim', 'valor'=>$bi_layout_importacao->getColuna_testa_fim()));
		}
		else
		{
			array_push($inputs, array('campo'=>':coluna_testa_fim', 'valor'=>null));
		}
		if($bi_layout_importacao->getTexto_teste_fim() != "")
		{
			array_push($inputs, array('campo'=>':texto_teste_fim', 'valor'=>$bi_layout_importacao->getTexto_teste_fim()));
		}
		else
		{
			array_push($inputs, array('campo'=>':texto_teste_fim', 'valor'=>null));
		}
		try
		{
			$sql = "UPDATE  bi_layout_importacao  SET codigo = :codigo, nome = :nome, descricao = :descricao, usuario_incluiu = :usuario_incluiu, linha_inicia_cabecalho = :linha_inicia_cabecalho, coluna_testa_fim = :coluna_testa_fim, texto_teste_fim = :texto_teste_fim WHERE codigo = :codigo  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function excluir($bi_layout_importacao)
	{
		try
		{
			$sql = "DELETE FROM bi_layout_importacao  WHERE codigo =  :codigo ";
			$inputs = array();
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_layout_importacao->getCodigo()));
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function listarTodosRegistros()
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_layout_importacao";
		$listaBi_layout_importacao = array();
		$rows_bi_layout_importacao = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_layout_importacao as $row)
		{
			$bi_layout_importacao = new Bi_layout_importacao();
			$bi_layout_importacao->setCodigo($row['codigo']);
			$bi_layout_importacao->setNome($row['nome']);
			$bi_layout_importacao->setDescricao($row['descricao']);
			if($row['data_inclusao'] != "")
			{
				$dateData_inclusao = DateTime::createFromFormat('Y-m-d H:i:s', $row['data_inclusao']);
				$bi_layout_importacao->setData_inclusao($dateData_inclusao);
			}
			if($row['usuario_incluiu'] != "")
			{
				$usuario_incluiuDAO = new Bi_usuarioDAO();
				$bi_layout_importacao->setUsuario_incluiu($usuario_incluiuDAO->buscarBi_usuario($row['usuario_incluiu']));
			}
			else
			{
				$bi_layout_importacao->setUsuario_incluiu(new Bi_usuario());
			}
			$bi_layout_importacao->setLinha_inicia_cabecalho($row['linha_inicia_cabecalho']);
			$bi_layout_importacao->setColuna_testa_fim($row['coluna_testa_fim']);
			$bi_layout_importacao->setTexto_teste_fim($row['texto_teste_fim']);
			array_push($listaBi_layout_importacao,$bi_layout_importacao );
		}
		return $listaBi_layout_importacao;
	}
	public function buscarBi_layout_importacaoPorNome($nome)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_layout_importacao where nome like '%".$nome."%'";
		$lista_bi_layout_importacao = array();
		$rows_bi_layout_importacao = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_layout_importacao as $row)
		{
			$bi_layout_importacao = new Bi_layout_importacao();
			$bi_layout_importacao->setCodigo($row['codigo']);
			$bi_layout_importacao->setNome($row['nome']);
			$bi_layout_importacao->setDescricao($row['descricao']);
			if($row['data_inclusao'] != "")
			{
				$dateData_inclusao = DateTime::createFromFormat('Y-m-d H:i:s', $row['data_inclusao']);
				$bi_layout_importacao->setData_inclusao($dateData_inclusao);
			}
			if($row['usuario_incluiu'] != "")
			{
				$usuario_incluiuDAO = new Bi_usuarioDAO();
				$bi_layout_importacao->setUsuario_incluiu($usuario_incluiuDAO->buscarBi_usuario($row['usuario_incluiu']));
			}
			else
			{
				$bi_layout_importacao->setUsuario_incluiu(new Bi_usuario());
			}
			$bi_layout_importacao->setLinha_inicia_cabecalho($row['linha_inicia_cabecalho']);
			$bi_layout_importacao->setColuna_testa_fim($row['coluna_testa_fim']);
			$bi_layout_importacao->setTexto_teste_fim($row['texto_teste_fim']);
			array_push($lista_bi_layout_importacao, $bi_layout_importacao);
		}
		return $lista_bi_layout_importacao;
	}
	public function buscarBi_layout_importacaoPorDescricao($descricao)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_layout_importacao where descricao like '%".$descricao."%'";
		$lista_bi_layout_importacao = array();
		$rows_bi_layout_importacao = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_layout_importacao as $row)
		{
			$bi_layout_importacao = new Bi_layout_importacao();
			$bi_layout_importacao->setCodigo($row['codigo']);
			$bi_layout_importacao->setNome($row['nome']);
			$bi_layout_importacao->setDescricao($row['descricao']);
			if($row['data_inclusao'] != "")
			{
				$dateData_inclusao = DateTime::createFromFormat('Y-m-d H:i:s', $row['data_inclusao']);
				$bi_layout_importacao->setData_inclusao($dateData_inclusao);
			}
			if($row['usuario_incluiu'] != "")
			{
				$usuario_incluiuDAO = new Bi_usuarioDAO();
				$bi_layout_importacao->setUsuario_incluiu($usuario_incluiuDAO->buscarBi_usuario($row['usuario_incluiu']));
			}
			else
			{
				$bi_layout_importacao->setUsuario_incluiu(new Bi_usuario());
			}
			$bi_layout_importacao->setLinha_inicia_cabecalho($row['linha_inicia_cabecalho']);
			$bi_layout_importacao->setColuna_testa_fim($row['coluna_testa_fim']);
			$bi_layout_importacao->setTexto_teste_fim($row['texto_teste_fim']);
			array_push($lista_bi_layout_importacao, $bi_layout_importacao);
		}
		return $lista_bi_layout_importacao;
	}
	public function buscarBi_layout_importacaoPorData_inclusao($data_inclusao)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_layout_importacao where data_inclusao like '%".$data_inclusao."%'";
		$lista_bi_layout_importacao = array();
		$rows_bi_layout_importacao = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_layout_importacao as $row)
		{
			$bi_layout_importacao = new Bi_layout_importacao();
			$bi_layout_importacao->setCodigo($row['codigo']);
			$bi_layout_importacao->setNome($row['nome']);
			$bi_layout_importacao->setDescricao($row['descricao']);
			if($row['data_inclusao'] != "")
			{
				$dateData_inclusao = DateTime::createFromFormat('Y-m-d H:i:s', $row['data_inclusao']);
				$bi_layout_importacao->setData_inclusao($dateData_inclusao);
			}
			if($row['usuario_incluiu'] != "")
			{
				$usuario_incluiuDAO = new Bi_usuarioDAO();
				$bi_layout_importacao->setUsuario_incluiu($usuario_incluiuDAO->buscarBi_usuario($row['usuario_incluiu']));
			}
			else
			{
				$bi_layout_importacao->setUsuario_incluiu(new Bi_usuario());
			}
			$bi_layout_importacao->setLinha_inicia_cabecalho($row['linha_inicia_cabecalho']);
			$bi_layout_importacao->setColuna_testa_fim($row['coluna_testa_fim']);
			$bi_layout_importacao->setTexto_teste_fim($row['texto_teste_fim']);
			array_push($lista_bi_layout_importacao, $bi_layout_importacao);
		}
		return $lista_bi_layout_importacao;
	}
	public function buscarBi_layout_importacaoPorUsuario_incluiu($usuario_incluiu)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_layout_importacao where usuario_incluiu = ".$usuario_incluiu."";
		$lista_bi_layout_importacao = array();
		$rows_bi_layout_importacao = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_layout_importacao as $row)
		{
			$bi_layout_importacao = new Bi_layout_importacao();
			$bi_layout_importacao->setCodigo($row['codigo']);
			$bi_layout_importacao->setNome($row['nome']);
			$bi_layout_importacao->setDescricao($row['descricao']);
			if($row['data_inclusao'] != "")
			{
				$dateData_inclusao = DateTime::createFromFormat('Y-m-d H:i:s', $row['data_inclusao']);
				$bi_layout_importacao->setData_inclusao($dateData_inclusao);
			}
			if($row['usuario_incluiu'] != "")
			{
				$usuario_incluiuDAO = new Bi_usuarioDAO();
				$bi_layout_importacao->setUsuario_incluiu($usuario_incluiuDAO->buscarBi_usuario($row['usuario_incluiu']));
			}
			else
			{
				$bi_layout_importacao->setUsuario_incluiu(new Bi_usuario());
			}
			$bi_layout_importacao->setLinha_inicia_cabecalho($row['linha_inicia_cabecalho']);
			$bi_layout_importacao->setColuna_testa_fim($row['coluna_testa_fim']);
			$bi_layout_importacao->setTexto_teste_fim($row['texto_teste_fim']);
			array_push($lista_bi_layout_importacao, $bi_layout_importacao);
		}
		return $lista_bi_layout_importacao;
	}
	public function buscarBi_layout_importacaoPorLinha_inicia_cabecalho($linha_inicia_cabecalho)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_layout_importacao where linha_inicia_cabecalho like '%".$linha_inicia_cabecalho."%'";
		$lista_bi_layout_importacao = array();
		$rows_bi_layout_importacao = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_layout_importacao as $row)
		{
			$bi_layout_importacao = new Bi_layout_importacao();
			$bi_layout_importacao->setCodigo($row['codigo']);
			$bi_layout_importacao->setNome($row['nome']);
			$bi_layout_importacao->setDescricao($row['descricao']);
			if($row['data_inclusao'] != "")
			{
				$dateData_inclusao = DateTime::createFromFormat('Y-m-d H:i:s', $row['data_inclusao']);
				$bi_layout_importacao->setData_inclusao($dateData_inclusao);
			}
			if($row['usuario_incluiu'] != "")
			{
				$usuario_incluiuDAO = new Bi_usuarioDAO();
				$bi_layout_importacao->setUsuario_incluiu($usuario_incluiuDAO->buscarBi_usuario($row['usuario_incluiu']));
			}
			else
			{
				$bi_layout_importacao->setUsuario_incluiu(new Bi_usuario());
			}
			$bi_layout_importacao->setLinha_inicia_cabecalho($row['linha_inicia_cabecalho']);
			$bi_layout_importacao->setColuna_testa_fim($row['coluna_testa_fim']);
			$bi_layout_importacao->setTexto_teste_fim($row['texto_teste_fim']);
			array_push($lista_bi_layout_importacao, $bi_layout_importacao);
		}
		return $lista_bi_layout_importacao;
	}
	public function buscarBi_layout_importacaoPorColuna_testa_fim($coluna_testa_fim)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_layout_importacao where coluna_testa_fim like '%".$coluna_testa_fim."%'";
		$lista_bi_layout_importacao = array();
		$rows_bi_layout_importacao = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_layout_importacao as $row)
		{
			$bi_layout_importacao = new Bi_layout_importacao();
			$bi_layout_importacao->setCodigo($row['codigo']);
			$bi_layout_importacao->setNome($row['nome']);
			$bi_layout_importacao->setDescricao($row['descricao']);
			if($row['data_inclusao'] != "")
			{
				$dateData_inclusao = DateTime::createFromFormat('Y-m-d H:i:s', $row['data_inclusao']);
				$bi_layout_importacao->setData_inclusao($dateData_inclusao);
			}
			if($row['usuario_incluiu'] != "")
			{
				$usuario_incluiuDAO = new Bi_usuarioDAO();
				$bi_layout_importacao->setUsuario_incluiu($usuario_incluiuDAO->buscarBi_usuario($row['usuario_incluiu']));
			}
			else
			{
				$bi_layout_importacao->setUsuario_incluiu(new Bi_usuario());
			}
			$bi_layout_importacao->setLinha_inicia_cabecalho($row['linha_inicia_cabecalho']);
			$bi_layout_importacao->setColuna_testa_fim($row['coluna_testa_fim']);
			$bi_layout_importacao->setTexto_teste_fim($row['texto_teste_fim']);
			array_push($lista_bi_layout_importacao, $bi_layout_importacao);
		}
		return $lista_bi_layout_importacao;
	}
	public function buscarBi_layout_importacaoPorTexto_teste_fim($texto_teste_fim)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_layout_importacao where texto_teste_fim like '%".$texto_teste_fim."%'";
		$lista_bi_layout_importacao = array();
		$rows_bi_layout_importacao = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_layout_importacao as $row)
		{
			$bi_layout_importacao = new Bi_layout_importacao();
			$bi_layout_importacao->setCodigo($row['codigo']);
			$bi_layout_importacao->setNome($row['nome']);
			$bi_layout_importacao->setDescricao($row['descricao']);
			if($row['data_inclusao'] != "")
			{
				$dateData_inclusao = DateTime::createFromFormat('Y-m-d H:i:s', $row['data_inclusao']);
				$bi_layout_importacao->setData_inclusao($dateData_inclusao);
			}
			if($row['usuario_incluiu'] != "")
			{
				$usuario_incluiuDAO = new Bi_usuarioDAO();
				$bi_layout_importacao->setUsuario_incluiu($usuario_incluiuDAO->buscarBi_usuario($row['usuario_incluiu']));
			}
			else
			{
				$bi_layout_importacao->setUsuario_incluiu(new Bi_usuario());
			}
			$bi_layout_importacao->setLinha_inicia_cabecalho($row['linha_inicia_cabecalho']);
			$bi_layout_importacao->setColuna_testa_fim($row['coluna_testa_fim']);
			$bi_layout_importacao->setTexto_teste_fim($row['texto_teste_fim']);
			array_push($lista_bi_layout_importacao, $bi_layout_importacao);
		}
		return $lista_bi_layout_importacao;
	}
}