<?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_tipo_grafico.php");
class Bi_tipo_graficoDAO
{
	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_tipo_grafico)
	{
		$inputs = array();
		if($bi_tipo_grafico->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_tipo_grafico->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_tipo_grafico->getTipo() != "")
		{
			array_push($inputs, array('campo'=>':tipo', 'valor'=>$bi_tipo_grafico->getTipo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tipo', 'valor'=>null));
		}
		if($bi_tipo_grafico->getTipo_js() != "")
		{
			array_push($inputs, array('campo'=>':tipo_js', 'valor'=>$bi_tipo_grafico->getTipo_js()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tipo_js', 'valor'=>null));
		}
		try
		{
			$sql = "INSERT INTO bi_tipo_grafico (codigo, tipo, tipo_js) VALUES (:codigo, :tipo, :tipo_js)  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function buscarBi_tipo_grafico($codigo)
	{
		$inputs = array();
		array_push($inputs, array('campo'=>':codigo', 'valor'=>$codigo));
		$sql = "SELECT * FROM bi_tipo_grafico where codigo = :codigo "; 
		$bi_tipo_grafico = new Bi_tipo_grafico();
		$rows_bi_tipo_grafico = $this->_funcoes_bd->sqlArrayInputs($sql, $inputs);
		foreach ($rows_bi_tipo_grafico as $row)
		{
			$bi_tipo_grafico->setCodigo($row['codigo']);
			$bi_tipo_grafico->setTipo($row['tipo']);
			$bi_tipo_grafico->setTipo_js($row['tipo_js']);
		}
		return $bi_tipo_grafico;
	}
	public function buscarFiltro($where)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_tipo_grafico  ".$where;
		$lista_bi_tipo_grafico = array();
		$rows_bi_tipo_grafico = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_tipo_grafico as $row)
		{
			$bi_tipo_grafico = new Bi_tipo_grafico();
			$bi_tipo_grafico->setCodigo($row['codigo']);
			$bi_tipo_grafico->setTipo($row['tipo']);
			$bi_tipo_grafico->setTipo_js($row['tipo_js']);
			array_push($lista_bi_tipo_grafico, $bi_tipo_grafico);
		}
		return $lista_bi_tipo_grafico;
	}
	public function atualizar($bi_tipo_grafico)
	{
		$inputs = array();
		if($bi_tipo_grafico->getCodigo() != "")
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_tipo_grafico->getCodigo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':codigo', 'valor'=>null));
		}
		if($bi_tipo_grafico->getTipo() != "")
		{
			array_push($inputs, array('campo'=>':tipo', 'valor'=>$bi_tipo_grafico->getTipo()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tipo', 'valor'=>null));
		}
		if($bi_tipo_grafico->getTipo_js() != "")
		{
			array_push($inputs, array('campo'=>':tipo_js', 'valor'=>$bi_tipo_grafico->getTipo_js()));
		}
		else
		{
			array_push($inputs, array('campo'=>':tipo_js', 'valor'=>null));
		}
		try
		{
			$sql = "UPDATE  bi_tipo_grafico  SET codigo = :codigo, tipo = :tipo, tipo_js = :tipo_js WHERE codigo = :codigo  ";
			return $this->_funcoes_bd->executarSql($sql,$inputs);
		}
		catch (Exception $e)
		{
			throw new Exception($e->getMessage());
		}
	}
	public function excluir($bi_tipo_grafico)
	{
		try
		{
			$sql = "DELETE FROM bi_tipo_grafico  WHERE codigo =  :codigo ";
			$inputs = array();
			array_push($inputs, array('campo'=>':codigo', 'valor'=>$bi_tipo_grafico->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_tipo_grafico";
		$listaBi_tipo_grafico = array();
		$rows_bi_tipo_grafico = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_tipo_grafico as $row)
		{
			$bi_tipo_grafico = new Bi_tipo_grafico();
			$bi_tipo_grafico->setCodigo($row['codigo']);
			$bi_tipo_grafico->setTipo($row['tipo']);
			$bi_tipo_grafico->setTipo_js($row['tipo_js']);
			array_push($listaBi_tipo_grafico,$bi_tipo_grafico );
		}
		return $listaBi_tipo_grafico;
	}
	public function buscarBi_tipo_graficoPorTipo($tipo)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_tipo_grafico where tipo like '%".$tipo."%'";
		$lista_bi_tipo_grafico = array();
		$rows_bi_tipo_grafico = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_tipo_grafico as $row)
		{
			$bi_tipo_grafico = new Bi_tipo_grafico();
			$bi_tipo_grafico->setCodigo($row['codigo']);
			$bi_tipo_grafico->setTipo($row['tipo']);
			$bi_tipo_grafico->setTipo_js($row['tipo_js']);
			array_push($lista_bi_tipo_grafico, $bi_tipo_grafico);
		}
		return $lista_bi_tipo_grafico;
	}
	public function buscarBi_tipo_graficoPorTipo_js($tipo_js)
	{
		$inputs = array();
		$sql = "SELECT * FROM bi_tipo_grafico where tipo_js like '%".$tipo_js."%'";
		$lista_bi_tipo_grafico = array();
		$rows_bi_tipo_grafico = $this->_funcoes_bd->sql($sql);
		foreach ($rows_bi_tipo_grafico as $row)
		{
			$bi_tipo_grafico = new Bi_tipo_grafico();
			$bi_tipo_grafico->setCodigo($row['codigo']);
			$bi_tipo_grafico->setTipo($row['tipo']);
			$bi_tipo_grafico->setTipo_js($row['tipo_js']);
			array_push($lista_bi_tipo_grafico, $bi_tipo_grafico);
		}
		return $lista_bi_tipo_grafico;
	}
}