Пример #1
0
 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()}");
     }
 }
Пример #2
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}");
     }
 }