示例#1
0
 /**
  * @param integer $iCodigo
  * @throws Exception
  */
 public function __construct($iCodigo = null)
 {
     if (!empty($iCodigo)) {
         $oDaoAnimal = new Entidade();
         $lRetorno = $oDaoAnimal->buscarPorCodigo($iCodigo, "", $this);
         if ($lRetorno === false) {
             throw new Exception("Animal não encontrado.");
         }
     }
 }
示例#2
0
 public function lista()
 {
     $sWhere = "";
     $iPagina = 1;
     $iPorPagina = 10;
     $oDao = new Entidade();
     try {
         if ($this->getRequisicao()->isSetGet("busca")) {
             $sBuscaNome = trim($this->getRequisicao()->getGet("nomeBusca"));
             $this->aDados['sBuscaNome'] = $sBuscaNome;
             $sWherePesquisa = str_replace(" ", "%' or nome like '%", $sBuscaNome);
             $sWherePesquisa = " nome like '%{$sWherePesquisa}%' ";
         }
         $sWhere = " usuario = " . $this->getSessao()->getUsuarioLogado()->getCodigo();
         if (!empty($sWherePesquisa)) {
             $sWhere .= " and ({$sWherePesquisa})";
         }
         $iTotal = $oDao->contar($sWhere);
         if (count($this->getRequisicao()->getParametros()) > 0) {
             $iPagina = $this->getRequisicao()->getParametros()[0];
             if (empty($iPagina) || $iPagina < 1) {
                 $iPagina = 1;
             }
         }
         $oPaginacao = new PaginacaoSimples("animal", $iPorPagina, $iTotal, $iPagina);
         if ($this->getRequisicao()->isSetGet("busca")) {
             $aBuscaNome = array();
             $aBuscaNome['nomeBusca'] = trim($this->getRequisicao()->getGet("nomeBusca"));
             $oPaginacao->setParametros($aBuscaNome);
         }
         $aAnimais = $oDao->buscar("*", $sWhere, "nome", $oPaginacao);
         $this->aDados['selecao'] = false;
         $this->aDados['aAnimais'] = $aAnimais;
         $this->aDados['oPaginacao'] = $oPaginacao;
     } catch (Exception $e) {
         die($e->getMessage());
     }
 }
示例#3
0
 public function getAnimais()
 {
     if (is_null($this->aAnimais)) {
         $this->aAnimais = array();
         $oDaoAnimais = new EntidadeAnimal();
         $sWhere = " cliente = " . $this->getCodigo();
         $aAnimais = $oDaoAnimais->buscar("*", $sWhere);
         if ($aAnimais !== false) {
             $this->aAnimais = $aAnimais;
         }
     }
     return $this->aAnimais;
 }
示例#4
0
 public function excluirPost()
 {
     if (!$this->getRequisicao()->isPost()) {
         $this->redireciona("/cliente/lista");
     }
     $iCodigo = $this->getRequisicao()->getPost("codigo");
     $lExcluiAnimais = $this->getRequisicao()->getPost("excluirAnimais");
     $oDao = new Entidade();
     $oDaoAnimal = new EntidadeAnimal();
     $sWhere = " usuario = " . $this->getSessao()->getUsuarioLogado()->getCodigo();
     try {
         $oDao->iniciaTransacao();
         $oCliente = $oDao->buscarPorCodigo($iCodigo, $sWhere);
         if ($oCliente === false || empty($oCliente->getCodigo())) {
             throw new Exception("Cliente não encontrada para exclusão.");
         }
         $aAnimais = $oCliente->getAnimais();
         if ($aAnimais === false) {
             throw new Exception("Houve um erro ao buscar os animais do Cliente. Contate o suporte.");
         }
         foreach ($aAnimais as $oAnimal) {
             if ($lExcluiAnimais) {
                 if (!$oDaoAnimal->excluir($oAnimal)) {
                     throw new Exception("Houve um problema ao excluir o Animal do Cliente. Contate o suporte.");
                 }
                 continue;
             }
             $oAnimal->setCliente(null);
             if (!$oDaoAnimal->salvar($oAnimal)) {
                 throw new Exception("Houve um erro ao desvincular o Cliente e o Animal. Contate o suporte.");
             }
         }
         if (!$oDao->excluir($oCliente)) {
             throw new Exception("Não foi possível excluir o Cliente. Contate o suporte.");
         }
         $oDao->encerraTransacao(false);
         $this->getSessao()->setMensagemSucesso("Cliente excluido com sucesso.");
         $this->redireciona("/cliente/lista");
     } catch (Exception $e) {
         $oDao->encerraTransacao(true);
         $this->getSessao()->setMensagemErro($e->getMessage());
         $this->redireciona("/cliente/excluir/{$iCodigo}");
     }
 }