<?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_filtro.php");
require_once($config->diretorio_raiz()."/src/model/bd/Bi_analiseDAO.php");
require_once($config->diretorio_raiz()."/src/model/bd/Bi_tipo_dadoDAO.php");
require_once($config->diretorio_raiz()."/src/model/bd/Bi_tipo_calculo_dataDAO.php");
class Bi_filtroDAO
{
	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_filtro)
	{
		$inputs = array();
		if($bi_filtro->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_filtro->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_filtro->getAnalise() != "")
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>$bi_filtro->getAnalise()));
		}
		else
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>null));
		}
		if($bi_filtro->getTipo() != "")
		{
			array_push($inputs, array('campo'=>':tipo', 'valor'=>$bi_filtro->getTipo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tipo', 'valor'=>null));
		}
		if($bi_filtro->getId() != "")
		{
			array_push($inputs, array('campo'=>':id', 'valor'=>$bi_filtro->getId()));
		}
		else
		{
			array_push($inputs, array('campo'=>':id', 'valor'=>null));
		}
		if($bi_filtro->getDescricao() != "")
		{
			array_push($inputs, array('campo'=>':descricao', 'valor'=>$bi_filtro->getDescricao()));
		}
		else
		{
			array_push($inputs, array('campo'=>':descricao', 'valor'=>null));
		}
		if($bi_filtro->getObrigatorio() != "")
		{
			array_push($inputs, array('campo'=>':obrigatorio', 'valor'=>$bi_filtro->getObrigatorio()));
		}
		else
		{
			array_push($inputs, array('campo'=>':obrigatorio', 'valor'=>null));
		}
		if($bi_filtro->getTabela_buscar() != "")
		{
			array_push($inputs, array('campo'=>':tabela_buscar', 'valor'=>$bi_filtro->getTabela_buscar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tabela_buscar', 'valor'=>null));
		}
		if($bi_filtro->getColuna_buscar() != "")
		{
			array_push($inputs, array('campo'=>':coluna_buscar', 'valor'=>$bi_filtro->getColuna_buscar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':coluna_buscar', 'valor'=>null));
		}
		if($bi_filtro->getTipo_calculo_data() != "")
		{
			array_push($inputs, array('campo'=>':tipo_calculo_data', 'valor'=>$bi_filtro->getTipo_calculo_data()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tipo_calculo_data', 'valor'=>null));
		}
		if($bi_filtro->getValor_calculo_data() != "")
		{
			array_push($inputs, array('campo'=>':valor_calculo_data', 'valor'=>$bi_filtro->getValor_calculo_data()));
		}
		else
		{
			array_push($inputs, array('campo'=>':valor_calculo_data', 'valor'=>null));
		}
		if($bi_filtro->getTipo_dia_calculo_data() != "")
		{
			array_push($inputs, array('campo'=>':tipo_dia_calculo_data', 'valor'=>$bi_filtro->getTipo_dia_calculo_data()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tipo_dia_calculo_data', 'valor'=>null));
		}
		try
		{
			$sql = "INSERT INTO bi_filtro (codigo, analise, tipo, id, descricao, obrigatorio, tabela_buscar, coluna_buscar, tipo_calculo_data, valor_calculo_data, tipo_dia_calculo_data) VALUES (:codigo, :analise, :tipo, :id, :descricao, :obrigatorio, :tabela_buscar, :coluna_buscar, :tipo_calculo_data, :valor_calculo_data, :tipo_dia_calculo_data)  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function buscarBi_filtro($codigo)
	{
		$inputs = array();
		array_push($inputs, array('campo'=>':codigo', 'valor'=>$codigo));
		$sql = "SELECT * FROM bi_filtro where codigo = :codigo "; 
		$bi_filtro = new Bi_filtro();
		$rows_bi_filtro = $this->_funcoes_bd->sqlArrayInputs($sql, $inputs);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
		}
		return $bi_filtro;
	}
	public function buscarFiltro($where)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro  ".$where;
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
	public function atualizar($bi_filtro)
	{
		$inputs = array();
		if($bi_filtro->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_filtro->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_filtro->getAnalise() != "")
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>$bi_filtro->getAnalise()));
		}
		else
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>null));
		}
		if($bi_filtro->getTipo() != "")
		{
			array_push($inputs, array('campo'=>':tipo', 'valor'=>$bi_filtro->getTipo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tipo', 'valor'=>null));
		}
		if($bi_filtro->getId() != "")
		{
			array_push($inputs, array('campo'=>':id', 'valor'=>$bi_filtro->getId()));
		}
		else
		{
			array_push($inputs, array('campo'=>':id', 'valor'=>null));
		}
		if($bi_filtro->getDescricao() != "")
		{
			array_push($inputs, array('campo'=>':descricao', 'valor'=>$bi_filtro->getDescricao()));
		}
		else
		{
			array_push($inputs, array('campo'=>':descricao', 'valor'=>null));
		}
		if($bi_filtro->getObrigatorio() != "")
		{
			array_push($inputs, array('campo'=>':obrigatorio', 'valor'=>$bi_filtro->getObrigatorio()));
		}
		else
		{
			array_push($inputs, array('campo'=>':obrigatorio', 'valor'=>null));
		}
		if($bi_filtro->getTabela_buscar() != "")
		{
			array_push($inputs, array('campo'=>':tabela_buscar', 'valor'=>$bi_filtro->getTabela_buscar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tabela_buscar', 'valor'=>null));
		}
		if($bi_filtro->getColuna_buscar() != "")
		{
			array_push($inputs, array('campo'=>':coluna_buscar', 'valor'=>$bi_filtro->getColuna_buscar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':coluna_buscar', 'valor'=>null));
		}
		if($bi_filtro->getTipo_calculo_data() != "")
		{
			array_push($inputs, array('campo'=>':tipo_calculo_data', 'valor'=>$bi_filtro->getTipo_calculo_data()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tipo_calculo_data', 'valor'=>null));
		}
		if($bi_filtro->getValor_calculo_data() != "")
		{
			array_push($inputs, array('campo'=>':valor_calculo_data', 'valor'=>$bi_filtro->getValor_calculo_data()));
		}
		else
		{
			array_push($inputs, array('campo'=>':valor_calculo_data', 'valor'=>null));
		}
		if($bi_filtro->getTipo_dia_calculo_data() != "")
		{
			array_push($inputs, array('campo'=>':tipo_dia_calculo_data', 'valor'=>$bi_filtro->getTipo_dia_calculo_data()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tipo_dia_calculo_data', 'valor'=>null));
		}
		try
		{
			$sql = "UPDATE  bi_filtro  SET codigo = :codigo, analise = :analise, tipo = :tipo, id = :id, descricao = :descricao, obrigatorio = :obrigatorio, tabela_buscar = :tabela_buscar, coluna_buscar = :coluna_buscar, tipo_calculo_data = :tipo_calculo_data, valor_calculo_data = :valor_calculo_data, tipo_dia_calculo_data = :tipo_dia_calculo_data WHERE codigo = :codigo  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function excluir($bi_filtro)
	{
		try
		{
			$sql = "DELETE FROM bi_filtro  WHERE codigo =  :codigo ";
			$inputs = array();
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_filtro->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_filtro";
		$listaBi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($listaBi_filtro,$bi_filtro );
		}
		return $listaBi_filtro;
	}
	public function buscarBi_filtroPorAnalise($analise)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro where analise = ".$analise."";
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
	public function buscarBi_filtroPorTipo($tipo)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro where tipo = ".$tipo."";
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
	public function buscarBi_filtroPorId($id)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro where id like '%".$id."%'";
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
	public function buscarBi_filtroPorDescricao($descricao)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro where descricao like '%".$descricao."%'";
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
	public function buscarBi_filtroPorObrigatorio($obrigatorio)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro where obrigatorio like '%".$obrigatorio."%'";
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
	public function buscarBi_filtroPorTabela_buscar($tabela_buscar)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro where tabela_buscar like '%".$tabela_buscar."%'";
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
	public function buscarBi_filtroPorColuna_buscar($coluna_buscar)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro where coluna_buscar like '%".$coluna_buscar."%'";
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
	public function buscarBi_filtroPorTipo_calculo_data($tipo_calculo_data)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro where tipo_calculo_data = ".$tipo_calculo_data."";
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
	public function buscarBi_filtroPorValor_calculo_data($valor_calculo_data)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro where valor_calculo_data like '%".$valor_calculo_data."%'";
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
	public function buscarBi_filtroPorTipo_dia_calculo_data($tipo_dia_calculo_data)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_filtro where tipo_dia_calculo_data like '%".$tipo_dia_calculo_data."%'";
		$lista_bi_filtro = array();
		$rows_bi_filtro = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_filtro as $row)
		{
			$bi_filtro = new Bi_filtro();
			$bi_filtro->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_filtro->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_filtro->setAnalise(new Bi_analise());
			}
			if($row['tipo'] != "")
			{
				$tipoDAO = new Bi_tipo_dadoDAO();
				$bi_filtro->setTipo($tipoDAO->buscarBi_tipo_dado($row['tipo']));
			}
			else
			{
				$bi_filtro->setTipo(new Bi_tipo_dado());
			}
			$bi_filtro->setId($row['id']);
			$bi_filtro->setDescricao($row['descricao']);
			$bi_filtro->setObrigatorio($row['obrigatorio']);
			$bi_filtro->setTabela_buscar($row['tabela_buscar']);
			$bi_filtro->setColuna_buscar($row['coluna_buscar']);
			if($row['tipo_calculo_data'] != "")
			{
				$tipo_calculo_dataDAO = new Bi_tipo_calculo_dataDAO();
				$bi_filtro->setTipo_calculo_data($tipo_calculo_dataDAO->buscarBi_tipo_calculo_data($row['tipo_calculo_data']));
			}
			else
			{
				$bi_filtro->setTipo_calculo_data(new Bi_tipo_calculo_data());
			}
			$bi_filtro->setValor_calculo_data($row['valor_calculo_data']);
			$bi_filtro->setTipo_dia_calculo_data($row['tipo_dia_calculo_data']);
			array_push($lista_bi_filtro, $bi_filtro);
		}
		return $lista_bi_filtro;
	}
}