PenParametroRN.php 3.46 KB
<?php

require_once dirname(__FILE__).'/../../../SEI.php';

/**
 * Regra de negócio para o parâmetros do módulo PEN
 *
 * @author Join Tecnologia
 */
class PenParametroRN extends InfraRN {

    protected function inicializarObjInfraIBanco(){
        return BancoSEI::getInstance();
    }

    protected function contarConectado(PenParametroDTO $objDTO){

        try {
            $objBD = new PenParametroBD($this->inicializarObjInfraIBanco());
            return $objBD->contar($objDTO);
        }
        catch (Exception $e) {
            throw new InfraException('Erro ao contar parâmetro.', $e);
        }
    }

    protected function consultarConectado(PenParametroDTO $objDTO){

        try {
            $objBD = new PenParametroBD($this->inicializarObjInfraIBanco());
            return $objBD->consultar($objDTO);
        }
        catch (Exception $e) {
            throw new InfraException('Erro ao listar parâmetro.', $e);
        }
    }

    protected function listarConectado(PenParametroDTO $objDTO){

        try {
            SessaoSEI::getInstance()->validarAuditarPermissao('pen_parametros_configuracao', __METHOD__, $objDTO);
            $objBD = new PenParametroBD($this->inicializarObjInfraIBanco());
            return $objBD->listar($objDTO);
        }
        catch (Exception $e) {
            throw new InfraException('Erro ao listar parâmetro.', $e);
        }
    }

    protected function cadastrarControlado(PenParametroDTO $objDTO){

        try {
            $objBD = new PenParametroBD($this->inicializarObjInfraIBanco());
            return $objBD->cadastrar($objDTO);
        }
        catch (Exception $e) {
            throw new InfraException('Erro ao cadastrar parâmetro.', $e);
        }
    }

    protected function alterarControlado(PenParametroDTO $objDTO){

        try {
            SessaoSEI::getInstance()->validarAuditarPermissao('pen_parametros_configuracao_alterar', __METHOD__, $objDTO);
            $objBD = new PenParametroBD($this->inicializarObjInfraIBanco());
            return $objBD->alterar($objDTO);
        }
        catch (Exception $e) {
            throw new InfraException('Erro ao alterar parâmetro.', $e);
        }
    }

    protected function excluirControlado(PenParametroDTO $objDTO){

        try {
            $objBD = new PenParametroBD($this->inicializarObjInfraIBanco());
            return $objBD->excluir($objDTO);
        }
        catch (Exception $e) {
            throw new InfraException('Erro ao excluir parâmetro.', $e);
        }
    }

    public function setValor($strNome, $strValor){

        try {
            $objBD = new PenParametroBD($this->inicializarObjInfraIBanco());
            return $objBD->setValor($strNome, $strValor);
        }
        catch (Exception $e) {
            throw new InfraException('Erro ao reativar parâmetro.', $e);
        }
    }

    public function isSetValor($strNome){
        return $objBD->isSetValor($strNome);
    }

    /**
     * Resgata o valor do parâmetro
     * @param string $strNome
     */
    public function getParametro($strNome) {
        $objPenParametroDTO = new PenParametroDTO();
        $objPenParametroDTO->setStrNome($strNome);
        $objPenParametroDTO->retStrValor();

        if($this->contar($objPenParametroDTO) > 0) {
            $objPenParametroDTO = $this->consultar($objPenParametroDTO);
            return $objPenParametroDTO->getStrValor();
        }
    }
}