<?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_totalizar_por_quebra_linha.php");
require_once($config->diretorio_raiz()."/src/model/bd/Bi_analiseDAO.php");
class Bi_totalizar_por_quebra_linhaDAO
{
	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_totalizar_por_quebra_linha)
	{
		$inputs = array();
		if($bi_totalizar_por_quebra_linha->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_totalizar_por_quebra_linha->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_totalizar_por_quebra_linha->getAnalise() != "")
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>$bi_totalizar_por_quebra_linha->getAnalise()));
		}
		else
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>null));
		}
		if($bi_totalizar_por_quebra_linha->getColuna_totalizar() != "")
		{
			array_push($inputs, array('campo'=>':coluna_totalizar', 'valor'=>$bi_totalizar_por_quebra_linha->getColuna_totalizar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':coluna_totalizar', 'valor'=>null));
		}
		if($bi_totalizar_por_quebra_linha->getColuna_quebra() != "")
		{
			array_push($inputs, array('campo'=>':coluna_quebra', 'valor'=>$bi_totalizar_por_quebra_linha->getColuna_quebra()));
		}
		else
		{
			array_push($inputs, array('campo'=>':coluna_quebra', 'valor'=>null));
		}
		if($bi_totalizar_por_quebra_linha->getTotalizar() != "")
		{
			array_push($inputs, array('campo'=>':totalizar', 'valor'=>$bi_totalizar_por_quebra_linha->getTotalizar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':totalizar', 'valor'=>null));
		}
		if($bi_totalizar_por_quebra_linha->getMedia() != "")
		{
			array_push($inputs, array('campo'=>':media', 'valor'=>$bi_totalizar_por_quebra_linha->getMedia()));
		}
		else
		{
			array_push($inputs, array('campo'=>':media', 'valor'=>null));
		}
		try
		{
			$sql = "INSERT INTO bi_totalizar_por_quebra_linha (codigo, analise, coluna_totalizar, coluna_quebra, totalizar, media) VALUES (:codigo, :analise, :coluna_totalizar, :coluna_quebra, :totalizar, :media)  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function buscarBi_totalizar_por_quebra_linha($codigo)
	{
		$inputs = array();
		array_push($inputs, array('campo'=>':codigo', 'valor'=>$codigo));
		$sql = "SELECT * FROM bi_totalizar_por_quebra_linha where codigo = :codigo "; 
		$bi_totalizar_por_quebra_linha = new Bi_totalizar_por_quebra_linha();
		$rows_bi_totalizar_por_quebra_linha = $this->_funcoes_bd->sqlArrayInputs($sql, $inputs);
		foreach ($rows_bi_totalizar_por_quebra_linha as $row)
		{
			$bi_totalizar_por_quebra_linha->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_totalizar_por_quebra_linha->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_totalizar_por_quebra_linha->setAnalise(new Bi_analise());
			}
			$bi_totalizar_por_quebra_linha->setColuna_totalizar($row['coluna_totalizar']);
			$bi_totalizar_por_quebra_linha->setColuna_quebra($row['coluna_quebra']);
			$bi_totalizar_por_quebra_linha->setTotalizar($row['totalizar']);
			$bi_totalizar_por_quebra_linha->setMedia($row['media']);
		}
		return $bi_totalizar_por_quebra_linha;
	}
	public function buscarFiltro($where)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_totalizar_por_quebra_linha  ".$where;
		$lista_bi_totalizar_por_quebra_linha = array();
		$rows_bi_totalizar_por_quebra_linha = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_totalizar_por_quebra_linha as $row)
		{
			$bi_totalizar_por_quebra_linha = new Bi_totalizar_por_quebra_linha();
			$bi_totalizar_por_quebra_linha->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_totalizar_por_quebra_linha->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_totalizar_por_quebra_linha->setAnalise(new Bi_analise());
			}
			$bi_totalizar_por_quebra_linha->setColuna_totalizar($row['coluna_totalizar']);
			$bi_totalizar_por_quebra_linha->setColuna_quebra($row['coluna_quebra']);
			$bi_totalizar_por_quebra_linha->setTotalizar($row['totalizar']);
			$bi_totalizar_por_quebra_linha->setMedia($row['media']);
			array_push($lista_bi_totalizar_por_quebra_linha, $bi_totalizar_por_quebra_linha);
		}
		return $lista_bi_totalizar_por_quebra_linha;
	}
	public function atualizar($bi_totalizar_por_quebra_linha)
	{
		$inputs = array();
		if($bi_totalizar_por_quebra_linha->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_totalizar_por_quebra_linha->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_totalizar_por_quebra_linha->getAnalise() != "")
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>$bi_totalizar_por_quebra_linha->getAnalise()));
		}
		else
		{
			array_push($inputs, array('campo'=>':analise', 'valor'=>null));
		}
		if($bi_totalizar_por_quebra_linha->getColuna_totalizar() != "")
		{
			array_push($inputs, array('campo'=>':coluna_totalizar', 'valor'=>$bi_totalizar_por_quebra_linha->getColuna_totalizar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':coluna_totalizar', 'valor'=>null));
		}
		if($bi_totalizar_por_quebra_linha->getColuna_quebra() != "")
		{
			array_push($inputs, array('campo'=>':coluna_quebra', 'valor'=>$bi_totalizar_por_quebra_linha->getColuna_quebra()));
		}
		else
		{
			array_push($inputs, array('campo'=>':coluna_quebra', 'valor'=>null));
		}
		if($bi_totalizar_por_quebra_linha->getTotalizar() != "")
		{
			array_push($inputs, array('campo'=>':totalizar', 'valor'=>$bi_totalizar_por_quebra_linha->getTotalizar()));
		}
		else
		{
			array_push($inputs, array('campo'=>':totalizar', 'valor'=>null));
		}
		if($bi_totalizar_por_quebra_linha->getMedia() != "")
		{
			array_push($inputs, array('campo'=>':media', 'valor'=>$bi_totalizar_por_quebra_linha->getMedia()));
		}
		else
		{
			array_push($inputs, array('campo'=>':media', 'valor'=>null));
		}
		try
		{
			$sql = "UPDATE  bi_totalizar_por_quebra_linha  SET codigo = :codigo, analise = :analise, coluna_totalizar = :coluna_totalizar, coluna_quebra = :coluna_quebra, totalizar = :totalizar, media = :media WHERE codigo = :codigo  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function excluir($bi_totalizar_por_quebra_linha)
	{
		try
		{
			$sql = "DELETE FROM bi_totalizar_por_quebra_linha  WHERE codigo =  :codigo ";
			$inputs = array();
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_totalizar_por_quebra_linha->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_totalizar_por_quebra_linha";
		$listaBi_totalizar_por_quebra_linha = array();
		$rows_bi_totalizar_por_quebra_linha = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_totalizar_por_quebra_linha as $row)
		{
			$bi_totalizar_por_quebra_linha = new Bi_totalizar_por_quebra_linha();
			$bi_totalizar_por_quebra_linha->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_totalizar_por_quebra_linha->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_totalizar_por_quebra_linha->setAnalise(new Bi_analise());
			}
			$bi_totalizar_por_quebra_linha->setColuna_totalizar($row['coluna_totalizar']);
			$bi_totalizar_por_quebra_linha->setColuna_quebra($row['coluna_quebra']);
			$bi_totalizar_por_quebra_linha->setTotalizar($row['totalizar']);
			$bi_totalizar_por_quebra_linha->setMedia($row['media']);
			array_push($listaBi_totalizar_por_quebra_linha,$bi_totalizar_por_quebra_linha );
		}
		return $listaBi_totalizar_por_quebra_linha;
	}
	public function buscarBi_totalizar_por_quebra_linhaPorAnalise($analise)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_totalizar_por_quebra_linha where analise = ".$analise."";
		$lista_bi_totalizar_por_quebra_linha = array();
		$rows_bi_totalizar_por_quebra_linha = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_totalizar_por_quebra_linha as $row)
		{
			$bi_totalizar_por_quebra_linha = new Bi_totalizar_por_quebra_linha();
			$bi_totalizar_por_quebra_linha->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_totalizar_por_quebra_linha->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_totalizar_por_quebra_linha->setAnalise(new Bi_analise());
			}
			$bi_totalizar_por_quebra_linha->setColuna_totalizar($row['coluna_totalizar']);
			$bi_totalizar_por_quebra_linha->setColuna_quebra($row['coluna_quebra']);
			$bi_totalizar_por_quebra_linha->setTotalizar($row['totalizar']);
			$bi_totalizar_por_quebra_linha->setMedia($row['media']);
			array_push($lista_bi_totalizar_por_quebra_linha, $bi_totalizar_por_quebra_linha);
		}
		return $lista_bi_totalizar_por_quebra_linha;
	}
	public function buscarBi_totalizar_por_quebra_linhaPorColuna_totalizar($coluna_totalizar)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_totalizar_por_quebra_linha where coluna_totalizar like '%".$coluna_totalizar."%'";
		$lista_bi_totalizar_por_quebra_linha = array();
		$rows_bi_totalizar_por_quebra_linha = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_totalizar_por_quebra_linha as $row)
		{
			$bi_totalizar_por_quebra_linha = new Bi_totalizar_por_quebra_linha();
			$bi_totalizar_por_quebra_linha->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_totalizar_por_quebra_linha->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_totalizar_por_quebra_linha->setAnalise(new Bi_analise());
			}
			$bi_totalizar_por_quebra_linha->setColuna_totalizar($row['coluna_totalizar']);
			$bi_totalizar_por_quebra_linha->setColuna_quebra($row['coluna_quebra']);
			$bi_totalizar_por_quebra_linha->setTotalizar($row['totalizar']);
			$bi_totalizar_por_quebra_linha->setMedia($row['media']);
			array_push($lista_bi_totalizar_por_quebra_linha, $bi_totalizar_por_quebra_linha);
		}
		return $lista_bi_totalizar_por_quebra_linha;
	}
	public function buscarBi_totalizar_por_quebra_linhaPorColuna_quebra($coluna_quebra)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_totalizar_por_quebra_linha where coluna_quebra like '%".$coluna_quebra."%'";
		$lista_bi_totalizar_por_quebra_linha = array();
		$rows_bi_totalizar_por_quebra_linha = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_totalizar_por_quebra_linha as $row)
		{
			$bi_totalizar_por_quebra_linha = new Bi_totalizar_por_quebra_linha();
			$bi_totalizar_por_quebra_linha->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_totalizar_por_quebra_linha->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_totalizar_por_quebra_linha->setAnalise(new Bi_analise());
			}
			$bi_totalizar_por_quebra_linha->setColuna_totalizar($row['coluna_totalizar']);
			$bi_totalizar_por_quebra_linha->setColuna_quebra($row['coluna_quebra']);
			$bi_totalizar_por_quebra_linha->setTotalizar($row['totalizar']);
			$bi_totalizar_por_quebra_linha->setMedia($row['media']);
			array_push($lista_bi_totalizar_por_quebra_linha, $bi_totalizar_por_quebra_linha);
		}
		return $lista_bi_totalizar_por_quebra_linha;
	}
	public function buscarBi_totalizar_por_quebra_linhaPorTotalizar($totalizar)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_totalizar_por_quebra_linha where totalizar like '%".$totalizar."%'";
		$lista_bi_totalizar_por_quebra_linha = array();
		$rows_bi_totalizar_por_quebra_linha = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_totalizar_por_quebra_linha as $row)
		{
			$bi_totalizar_por_quebra_linha = new Bi_totalizar_por_quebra_linha();
			$bi_totalizar_por_quebra_linha->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_totalizar_por_quebra_linha->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_totalizar_por_quebra_linha->setAnalise(new Bi_analise());
			}
			$bi_totalizar_por_quebra_linha->setColuna_totalizar($row['coluna_totalizar']);
			$bi_totalizar_por_quebra_linha->setColuna_quebra($row['coluna_quebra']);
			$bi_totalizar_por_quebra_linha->setTotalizar($row['totalizar']);
			$bi_totalizar_por_quebra_linha->setMedia($row['media']);
			array_push($lista_bi_totalizar_por_quebra_linha, $bi_totalizar_por_quebra_linha);
		}
		return $lista_bi_totalizar_por_quebra_linha;
	}
	public function buscarBi_totalizar_por_quebra_linhaPorMedia($media)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_totalizar_por_quebra_linha where media like '%".$media."%'";
		$lista_bi_totalizar_por_quebra_linha = array();
		$rows_bi_totalizar_por_quebra_linha = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_totalizar_por_quebra_linha as $row)
		{
			$bi_totalizar_por_quebra_linha = new Bi_totalizar_por_quebra_linha();
			$bi_totalizar_por_quebra_linha->setCodigo($row['codigo']);
			if($row['analise'] != "")
			{
				$analiseDAO = new Bi_analiseDAO();
				$bi_totalizar_por_quebra_linha->setAnalise($analiseDAO->buscarBi_analise($row['analise']));
			}
			else
			{
				$bi_totalizar_por_quebra_linha->setAnalise(new Bi_analise());
			}
			$bi_totalizar_por_quebra_linha->setColuna_totalizar($row['coluna_totalizar']);
			$bi_totalizar_por_quebra_linha->setColuna_quebra($row['coluna_quebra']);
			$bi_totalizar_por_quebra_linha->setTotalizar($row['totalizar']);
			$bi_totalizar_por_quebra_linha->setMedia($row['media']);
			array_push($lista_bi_totalizar_por_quebra_linha, $bi_totalizar_por_quebra_linha);
		}
		return $lista_bi_totalizar_por_quebra_linha;
	}
}