public function editarPost() { if (!$this->getRequisicao()->isPost()) { $this->redireciona("/animal/editar/"); } $nPeso = Utils::stringToFloat($this->getRequisicao()->getPost('peso')); $oAnimal = new Model($this->getRequisicao()->getPost("id")); $oAnimal->setNome($this->getRequisicao()->getPost('nome')); $oAnimal->setEspecie($this->getRequisicao()->getPost('especie')); $oAnimal->setRaca($this->getRequisicao()->getPost('raca')); $oAnimal->setPelo($this->getRequisicao()->getPost('pelo')); $oAnimal->setPelagem($this->getRequisicao()->getPost('pelagem')); $oAnimal->setPorte($this->getRequisicao()->getPost('porte')); $oAnimal->setPeso($nPeso); $oAnimal->setObservacoes($this->getRequisicao()->getPost('observacoes')); $oAnimal->setSexo($this->getRequisicao()->getPost('sexo')); $oAnimal->setCastrado($this->getRequisicao()->isSetPost('castrado')); $oAnimal->setClientePacote($this->getRequisicao()->isSetPost('temPacote')); $oAnimal->setUsuario($this->getSessao()->getUsuarioLogado()->getCodigo()); $sDataNascimento = implode("-", array_reverse(explode("/", $this->getRequisicao()->getPost('nascimento')))); $sDataCadastro = implode("-", array_reverse(explode("/", $this->getRequisicao()->getPost('cadastro')))); try { $oValidador = new Validador(); $oValidador->setDados(array('animal' => $oAnimal, 'data_cadastro' => $sDataCadastro, 'data_nascimento' => $sDataNascimento)); $oValidador->validar(); $oAnimal->setCadastro(new DateTime($sDataCadastro)); $oAnimal->setNascimento(new DateTime($sDataNascimento)); if (empty($oAnimal->getCodigo())) { throw new Exception("Animal não identificado para a edição."); } if (!empty($aErroDatas)) { throw new Exception(implode("<br>", $aErroDatas)); } $oDao = new Entidade(); if (!$oDao->salvar($oAnimal)) { throw new Exception("Houve um erro ao tentar atualizar o animal. Contate suporte."); } $this->getSessao()->setMensagemSucesso("Animal atualizado com sucesso."); $this->redireciona("/animal/lista"); } catch (Exception $e) { $this->getSessao()->setObjeto("animal", $oAnimal); $this->getSessao()->setMensagemErro($e->getMessage()); $this->redireciona("/animal/editar/{$oAnimal->getCodigo()}"); } }
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}"); } }