<?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_permissao_analise.php");
require_once($config->diretorio_raiz()."/src/model/bd/Bi_analiseDAO.php");
require_once($config->diretorio_raiz()."/src/model/bd/Bi_grupo_permissaoDAO.php");
class Bi_permissao_analiseDAO
{
	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_permissao_analise)
	{
		$inputs = array();
		if($bi_permissao_analise->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_permissao_analise->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_permissao_analise->getAnalise() != "")
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>$bi_permissao_analise->getAnalise()));
		}
		else
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>null));
		}
		if($bi_permissao_analise->getGrupo() != "")
		{
			array_push($inputs, array('campo'=>':grupo', 'valor'=>$bi_permissao_analise->getGrupo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':grupo', 'valor'=>null));
		}
		if($bi_permissao_analise->getVisualizar() != "")
		{
			array_push($inputs, array('campo'=>':visualizar', 'valor'=>$bi_permissao_analise->getVisualizar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':visualizar', 'valor'=>null));
		}
		if($bi_permissao_analise->getAlterar() != "")
		{
			array_push($inputs, array('campo'=>':alterar', 'valor'=>$bi_permissao_analise->getAlterar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':alterar', 'valor'=>null));
		}
		try
		{
			$sql = "INSERT INTO bi_permissao_analise (codigo, analise, grupo, visualizar, alterar) VALUES (:codigo, :analise, :grupo, :visualizar, :alterar)  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function buscarBi_permissao_analise($codigo)
	{
		$inputs = array();
		array_push($inputs, array('campo'=>':codigo', 'valor'=>$codigo));
		$sql = "SELECT * FROM bi_permissao_analise where codigo = :codigo "; 
		$bi_permissao_analise = new Bi_permissao_analise();
		$rows_bi_permissao_analise = $this->_funcoes_bd->sqlArrayInputs($sql, $inputs);
		foreach ($rows_bi_permissao_analise as $row)
		{
			$bi_permissao_analise->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_permissao_analise->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_permissao_analise->setAnalise(new Bi_analise());
			}
			if($row['grupo'] != "")
			{
				$grupoDAO = new Bi_grupo_permissaoDAO();
				$bi_permissao_analise->setGrupo($grupoDAO->buscarBi_grupo_permissao($row['grupo']));
			}
			else
			{
				$bi_permissao_analise->setGrupo(new Bi_grupo_permissao());
			}
			$bi_permissao_analise->setVisualizar($row['visualizar']);
			$bi_permissao_analise->setAlterar($row['alterar']);
		}
		return $bi_permissao_analise;
	}
	public function buscarFiltro($where)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_permissao_analise  ".$where;
		$lista_bi_permissao_analise = array();
		$rows_bi_permissao_analise = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_permissao_analise as $row)
		{
			$bi_permissao_analise = new Bi_permissao_analise();
			$bi_permissao_analise->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_permissao_analise->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_permissao_analise->setAnalise(new Bi_analise());
			}
			if($row['grupo'] != "")
			{
				$grupoDAO = new Bi_grupo_permissaoDAO();
				$bi_permissao_analise->setGrupo($grupoDAO->buscarBi_grupo_permissao($row['grupo']));
			}
			else
			{
				$bi_permissao_analise->setGrupo(new Bi_grupo_permissao());
			}
			$bi_permissao_analise->setVisualizar($row['visualizar']);
			$bi_permissao_analise->setAlterar($row['alterar']);
			array_push($lista_bi_permissao_analise, $bi_permissao_analise);
		}
		return $lista_bi_permissao_analise;
	}
	public function atualizar($bi_permissao_analise)
	{
		$inputs = array();
		if($bi_permissao_analise->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_permissao_analise->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_permissao_analise->getAnalise() != "")
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>$bi_permissao_analise->getAnalise()));
		}
		else
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>null));
		}
		if($bi_permissao_analise->getGrupo() != "")
		{
			array_push($inputs, array('campo'=>':grupo', 'valor'=>$bi_permissao_analise->getGrupo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':grupo', 'valor'=>null));
		}
		if($bi_permissao_analise->getVisualizar() != "")
		{
			array_push($inputs, array('campo'=>':visualizar', 'valor'=>$bi_permissao_analise->getVisualizar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':visualizar', 'valor'=>null));
		}
		if($bi_permissao_analise->getAlterar() != "")
		{
			array_push($inputs, array('campo'=>':alterar', 'valor'=>$bi_permissao_analise->getAlterar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':alterar', 'valor'=>null));
		}
		try
		{
			$sql = "UPDATE  bi_permissao_analise  SET codigo = :codigo, analise = :analise, grupo = :grupo, visualizar = :visualizar, alterar = :alterar WHERE codigo = :codigo  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function excluir($bi_permissao_analise)
	{
		try
		{
			$sql = "DELETE FROM bi_permissao_analise  WHERE codigo =  :codigo ";
			$inputs = array();
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_permissao_analise->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_permissao_analise";
		$listaBi_permissao_analise = array();
		$rows_bi_permissao_analise = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_permissao_analise as $row)
		{
			$bi_permissao_analise = new Bi_permissao_analise();
			$bi_permissao_analise->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_permissao_analise->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_permissao_analise->setAnalise(new Bi_analise());
			}
			if($row['grupo'] != "")
			{
				$grupoDAO = new Bi_grupo_permissaoDAO();
				$bi_permissao_analise->setGrupo($grupoDAO->buscarBi_grupo_permissao($row['grupo']));
			}
			else
			{
				$bi_permissao_analise->setGrupo(new Bi_grupo_permissao());
			}
			$bi_permissao_analise->setVisualizar($row['visualizar']);
			$bi_permissao_analise->setAlterar($row['alterar']);
			array_push($listaBi_permissao_analise,$bi_permissao_analise );
		}
		return $listaBi_permissao_analise;
	}
	public function buscarBi_permissao_analisePorAnalise($analise)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_permissao_analise where analise = ".$analise."";
		$lista_bi_permissao_analise = array();
		$rows_bi_permissao_analise = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_permissao_analise as $row)
		{
			$bi_permissao_analise = new Bi_permissao_analise();
			$bi_permissao_analise->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_permissao_analise->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_permissao_analise->setAnalise(new Bi_analise());
			}
			if($row['grupo'] != "")
			{
				$grupoDAO = new Bi_grupo_permissaoDAO();
				$bi_permissao_analise->setGrupo($grupoDAO->buscarBi_grupo_permissao($row['grupo']));
			}
			else
			{
				$bi_permissao_analise->setGrupo(new Bi_grupo_permissao());
			}
			$bi_permissao_analise->setVisualizar($row['visualizar']);
			$bi_permissao_analise->setAlterar($row['alterar']);
			array_push($lista_bi_permissao_analise, $bi_permissao_analise);
		}
		return $lista_bi_permissao_analise;
	}
	public function buscarBi_permissao_analisePorGrupo($grupo)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_permissao_analise where grupo = ".$grupo."";
		$lista_bi_permissao_analise = array();
		$rows_bi_permissao_analise = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_permissao_analise as $row)
		{
			$bi_permissao_analise = new Bi_permissao_analise();
			$bi_permissao_analise->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_permissao_analise->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_permissao_analise->setAnalise(new Bi_analise());
			}
			if($row['grupo'] != "")
			{
				$grupoDAO = new Bi_grupo_permissaoDAO();
				$bi_permissao_analise->setGrupo($grupoDAO->buscarBi_grupo_permissao($row['grupo']));
			}
			else
			{
				$bi_permissao_analise->setGrupo(new Bi_grupo_permissao());
			}
			$bi_permissao_analise->setVisualizar($row['visualizar']);
			$bi_permissao_analise->setAlterar($row['alterar']);
			array_push($lista_bi_permissao_analise, $bi_permissao_analise);
		}
		return $lista_bi_permissao_analise;
	}
	public function buscarBi_permissao_analisePorVisualizar($visualizar)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_permissao_analise where visualizar like '%".$visualizar."%'";
		$lista_bi_permissao_analise = array();
		$rows_bi_permissao_analise = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_permissao_analise as $row)
		{
			$bi_permissao_analise = new Bi_permissao_analise();
			$bi_permissao_analise->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_permissao_analise->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_permissao_analise->setAnalise(new Bi_analise());
			}
			if($row['grupo'] != "")
			{
				$grupoDAO = new Bi_grupo_permissaoDAO();
				$bi_permissao_analise->setGrupo($grupoDAO->buscarBi_grupo_permissao($row['grupo']));
			}
			else
			{
				$bi_permissao_analise->setGrupo(new Bi_grupo_permissao());
			}
			$bi_permissao_analise->setVisualizar($row['visualizar']);
			$bi_permissao_analise->setAlterar($row['alterar']);
			array_push($lista_bi_permissao_analise, $bi_permissao_analise);
		}
		return $lista_bi_permissao_analise;
	}
	public function buscarBi_permissao_analisePorAlterar($alterar)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_permissao_analise where alterar like '%".$alterar."%'";
		$lista_bi_permissao_analise = array();
		$rows_bi_permissao_analise = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_permissao_analise as $row)
		{
			$bi_permissao_analise = new Bi_permissao_analise();
			$bi_permissao_analise->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_permissao_analise->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_permissao_analise->setAnalise(new Bi_analise());
			}
			if($row['grupo'] != "")
			{
				$grupoDAO = new Bi_grupo_permissaoDAO();
				$bi_permissao_analise->setGrupo($grupoDAO->buscarBi_grupo_permissao($row['grupo']));
			}
			else
			{
				$bi_permissao_analise->setGrupo(new Bi_grupo_permissao());
			}
			$bi_permissao_analise->setVisualizar($row['visualizar']);
			$bi_permissao_analise->setAlterar($row['alterar']);
			array_push($lista_bi_permissao_analise, $bi_permissao_analise);
		}
		return $lista_bi_permissao_analise;
	}
}