<?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_colunas_totalizar.php");
require_once($config->diretorio_raiz()."/src/model/bd/Bi_analiseDAO.php");
class Bi_colunas_totalizarDAO
{
	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_colunas_totalizar)
	{
		$inputs = array();
		if($bi_colunas_totalizar->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_colunas_totalizar->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_colunas_totalizar->getAnalise() != "")
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>$bi_colunas_totalizar->getAnalise()));
		}
		else
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>null));
		}
		if($bi_colunas_totalizar->getNome_coluna() != "")
		{
			array_push($inputs, array('campo'=>':nome_coluna', 'valor'=>$bi_colunas_totalizar->getNome_coluna()));
		}
		else
		{
			array_push($inputs, array('campo'=>':nome_coluna', 'valor'=>null));
		}
		if($bi_colunas_totalizar->getTotalizar() != "")
		{
			array_push($inputs, array('campo'=>':totalizar', 'valor'=>$bi_colunas_totalizar->getTotalizar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':totalizar', 'valor'=>null));
		}
		if($bi_colunas_totalizar->getMedia() != "")
		{
			array_push($inputs, array('campo'=>':media', 'valor'=>$bi_colunas_totalizar->getMedia()));
		}
		else
		{
			array_push($inputs, array('campo'=>':media', 'valor'=>null));
		}
		if($bi_colunas_totalizar->getColunas_quebra() != "")
		{
			array_push($inputs, array('campo'=>':colunas_quebra', 'valor'=>$bi_colunas_totalizar->getColunas_quebra()));
		}
		else
		{
			array_push($inputs, array('campo'=>':colunas_quebra', 'valor'=>null));
		}
		try
		{
			$sql = "INSERT INTO bi_colunas_totalizar (codigo, analise, nome_coluna, totalizar, media, colunas_quebra) VALUES (:codigo, :analise, :nome_coluna, :totalizar, :media, :colunas_quebra)  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function buscarBi_colunas_totalizar($codigo)
	{
		$inputs = array();
		array_push($inputs, array('campo'=>':codigo', 'valor'=>$codigo));
		$sql = "SELECT * FROM bi_colunas_totalizar where codigo = :codigo "; 
		$bi_colunas_totalizar = new Bi_colunas_totalizar();
		$rows_bi_colunas_totalizar = $this->_funcoes_bd->sqlArrayInputs($sql, $inputs);
		foreach ($rows_bi_colunas_totalizar as $row)
		{
			$bi_colunas_totalizar->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_colunas_totalizar->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_colunas_totalizar->setAnalise(new Bi_analise());
			}
			$bi_colunas_totalizar->setNome_coluna($row['nome_coluna']);
			$bi_colunas_totalizar->setTotalizar($row['totalizar']);
			$bi_colunas_totalizar->setMedia($row['media']);
			$bi_colunas_totalizar->setColunas_quebra($row['colunas_quebra']);
		}
		return $bi_colunas_totalizar;
	}
	public function buscarFiltro($where)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_colunas_totalizar  ".$where;
		$lista_bi_colunas_totalizar = array();
		$rows_bi_colunas_totalizar = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_colunas_totalizar as $row)
		{
			$bi_colunas_totalizar = new Bi_colunas_totalizar();
			$bi_colunas_totalizar->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_colunas_totalizar->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_colunas_totalizar->setAnalise(new Bi_analise());
			}
			$bi_colunas_totalizar->setNome_coluna($row['nome_coluna']);
			$bi_colunas_totalizar->setTotalizar($row['totalizar']);
			$bi_colunas_totalizar->setMedia($row['media']);
			$bi_colunas_totalizar->setColunas_quebra($row['colunas_quebra']);
			array_push($lista_bi_colunas_totalizar, $bi_colunas_totalizar);
		}
		return $lista_bi_colunas_totalizar;
	}
	public function atualizar($bi_colunas_totalizar)
	{
		$inputs = array();
		if($bi_colunas_totalizar->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_colunas_totalizar->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_colunas_totalizar->getAnalise() != "")
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>$bi_colunas_totalizar->getAnalise()));
		}
		else
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>null));
		}
		if($bi_colunas_totalizar->getNome_coluna() != "")
		{
			array_push($inputs, array('campo'=>':nome_coluna', 'valor'=>$bi_colunas_totalizar->getNome_coluna()));
		}
		else
		{
			array_push($inputs, array('campo'=>':nome_coluna', 'valor'=>null));
		}
		if($bi_colunas_totalizar->getTotalizar() != "")
		{
			array_push($inputs, array('campo'=>':totalizar', 'valor'=>$bi_colunas_totalizar->getTotalizar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':totalizar', 'valor'=>null));
		}
		if($bi_colunas_totalizar->getMedia() != "")
		{
			array_push($inputs, array('campo'=>':media', 'valor'=>$bi_colunas_totalizar->getMedia()));
		}
		else
		{
			array_push($inputs, array('campo'=>':media', 'valor'=>null));
		}
		if($bi_colunas_totalizar->getColunas_quebra() != "")
		{
			array_push($inputs, array('campo'=>':colunas_quebra', 'valor'=>$bi_colunas_totalizar->getColunas_quebra()));
		}
		else
		{
			array_push($inputs, array('campo'=>':colunas_quebra', 'valor'=>null));
		}
		try
		{
			$sql = "UPDATE  bi_colunas_totalizar  SET codigo = :codigo, analise = :analise, nome_coluna = :nome_coluna, totalizar = :totalizar, media = :media, colunas_quebra = :colunas_quebra WHERE codigo = :codigo  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function excluir($bi_colunas_totalizar)
	{
		try
		{
			$sql = "DELETE FROM bi_colunas_totalizar  WHERE codigo =  :codigo ";
			$inputs = array();
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_colunas_totalizar->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_colunas_totalizar";
		$listaBi_colunas_totalizar = array();
		$rows_bi_colunas_totalizar = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_colunas_totalizar as $row)
		{
			$bi_colunas_totalizar = new Bi_colunas_totalizar();
			$bi_colunas_totalizar->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_colunas_totalizar->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_colunas_totalizar->setAnalise(new Bi_analise());
			}
			$bi_colunas_totalizar->setNome_coluna($row['nome_coluna']);
			$bi_colunas_totalizar->setTotalizar($row['totalizar']);
			$bi_colunas_totalizar->setMedia($row['media']);
			$bi_colunas_totalizar->setColunas_quebra($row['colunas_quebra']);
			array_push($listaBi_colunas_totalizar,$bi_colunas_totalizar );
		}
		return $listaBi_colunas_totalizar;
	}
	public function buscarBi_colunas_totalizarPorAnalise($analise)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_colunas_totalizar where analise = ".$analise."";
		$lista_bi_colunas_totalizar = array();
		$rows_bi_colunas_totalizar = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_colunas_totalizar as $row)
		{
			$bi_colunas_totalizar = new Bi_colunas_totalizar();
			$bi_colunas_totalizar->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_colunas_totalizar->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_colunas_totalizar->setAnalise(new Bi_analise());
			}
			$bi_colunas_totalizar->setNome_coluna($row['nome_coluna']);
			$bi_colunas_totalizar->setTotalizar($row['totalizar']);
			$bi_colunas_totalizar->setMedia($row['media']);
			$bi_colunas_totalizar->setColunas_quebra($row['colunas_quebra']);
			array_push($lista_bi_colunas_totalizar, $bi_colunas_totalizar);
		}
		return $lista_bi_colunas_totalizar;
	}
	public function buscarBi_colunas_totalizarPorNome_coluna($nome_coluna)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_colunas_totalizar where nome_coluna like '%".$nome_coluna."%'";
		$lista_bi_colunas_totalizar = array();
		$rows_bi_colunas_totalizar = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_colunas_totalizar as $row)
		{
			$bi_colunas_totalizar = new Bi_colunas_totalizar();
			$bi_colunas_totalizar->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_colunas_totalizar->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_colunas_totalizar->setAnalise(new Bi_analise());
			}
			$bi_colunas_totalizar->setNome_coluna($row['nome_coluna']);
			$bi_colunas_totalizar->setTotalizar($row['totalizar']);
			$bi_colunas_totalizar->setMedia($row['media']);
			$bi_colunas_totalizar->setColunas_quebra($row['colunas_quebra']);
			array_push($lista_bi_colunas_totalizar, $bi_colunas_totalizar);
		}
		return $lista_bi_colunas_totalizar;
	}
	public function buscarBi_colunas_totalizarPorTotalizar($totalizar)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_colunas_totalizar where totalizar like '%".$totalizar."%'";
		$lista_bi_colunas_totalizar = array();
		$rows_bi_colunas_totalizar = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_colunas_totalizar as $row)
		{
			$bi_colunas_totalizar = new Bi_colunas_totalizar();
			$bi_colunas_totalizar->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_colunas_totalizar->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_colunas_totalizar->setAnalise(new Bi_analise());
			}
			$bi_colunas_totalizar->setNome_coluna($row['nome_coluna']);
			$bi_colunas_totalizar->setTotalizar($row['totalizar']);
			$bi_colunas_totalizar->setMedia($row['media']);
			$bi_colunas_totalizar->setColunas_quebra($row['colunas_quebra']);
			array_push($lista_bi_colunas_totalizar, $bi_colunas_totalizar);
		}
		return $lista_bi_colunas_totalizar;
	}
	public function buscarBi_colunas_totalizarPorMedia($media)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_colunas_totalizar where media like '%".$media."%'";
		$lista_bi_colunas_totalizar = array();
		$rows_bi_colunas_totalizar = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_colunas_totalizar as $row)
		{
			$bi_colunas_totalizar = new Bi_colunas_totalizar();
			$bi_colunas_totalizar->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_colunas_totalizar->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_colunas_totalizar->setAnalise(new Bi_analise());
			}
			$bi_colunas_totalizar->setNome_coluna($row['nome_coluna']);
			$bi_colunas_totalizar->setTotalizar($row['totalizar']);
			$bi_colunas_totalizar->setMedia($row['media']);
			$bi_colunas_totalizar->setColunas_quebra($row['colunas_quebra']);
			array_push($lista_bi_colunas_totalizar, $bi_colunas_totalizar);
		}
		return $lista_bi_colunas_totalizar;
	}
	public function buscarBi_colunas_totalizarPorColunas_quebra($colunas_quebra)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_colunas_totalizar where colunas_quebra like '%".$colunas_quebra."%'";
		$lista_bi_colunas_totalizar = array();
		$rows_bi_colunas_totalizar = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_colunas_totalizar as $row)
		{
			$bi_colunas_totalizar = new Bi_colunas_totalizar();
			$bi_colunas_totalizar->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_colunas_totalizar->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_colunas_totalizar->setAnalise(new Bi_analise());
			}
			$bi_colunas_totalizar->setNome_coluna($row['nome_coluna']);
			$bi_colunas_totalizar->setTotalizar($row['totalizar']);
			$bi_colunas_totalizar->setMedia($row['media']);
			$bi_colunas_totalizar->setColunas_quebra($row['colunas_quebra']);
			array_push($lista_bi_colunas_totalizar, $bi_colunas_totalizar);
		}
		return $lista_bi_colunas_totalizar;
	}
}