/** * @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."); } } }
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()); } }
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; }
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}"); } }