public function excluirPost() { if (!$this->getRequisicao()->isPost()) { $this->redireciona("/animal/lista"); } $iCodigo = $this->getRequisicao()->getPost("codigo"); $oDao = new Entidade(); $sWhere = "usuario = " . $this->getSessao()->getUsuarioLogado()->getCodigo(); $oAnimal = $oDao->buscarPorCodigo($iCodigo, $sWhere); try { if (empty($oAnimal->getCodigo())) { throw new Exception("Animal não identificado para a exclusão."); } if (!$oDao->excluir($oAnimal)) { throw new Exception("Houve um erro ao tentar excluir o Animal. Conte o suporte."); } $this->getSessao()->setMensagemSucesso("Animal excluído com sucesso."); $this->redireciona("/animal/lista"); } catch (Exception $e) { $this->getSessao()->setMensagemErro($e->getMessage()); $this->redireciona("/animal/excluir/{$iCodigo}"); } }
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}"); } }