function Novo()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(628, $this->pessoa_logada, 11, "educar_exemplar_devolucao_lst.php");
     $this->valor_multa = urldecode($this->valor_multa);
     $this->valor_multa = str_replace(".", "", $this->valor_multa);
     $this->valor_multa = str_replace(",", ".", $this->valor_multa);
     //		echo $this->cod_emprestimo." / ".$this->pessoa_logada." / ".date('Y-m-d')." / ".$this->valor_multa;die;
     $obj_situacao = new clsPmieducarSituacao();
     $lst_situacao = $obj_situacao->lista(null, null, null, null, 2, null, 1, 0, null, null, null, null, 1, $this->ref_cod_biblioteca);
     if (is_array($lst_situacao) && count($lst_situacao)) {
         $det_situacao = array_shift($lst_situacao);
         $cod_situacao = $det_situacao["cod_situacao"];
     } else {
         echo "<script> alert('ERRO - Não foi possível encontrar a situação DISPONÍVEL da biblioteca utilizada!'); </script>";
         return false;
     }
     $obj = new clsPmieducarExemplarEmprestimo($this->cod_emprestimo, $this->pessoa_logada, null, null, null, null, date('Y-m-d'), $this->valor_multa);
     $editou = $obj->edita();
     if ($editou) {
         $obj = new clsPmieducarExemplar($this->ref_cod_exemplar, null, null, null, $cod_situacao, $this->pessoa_logada, null, null, null, null, null, 1);
         $editou = $obj->edita();
         if (!$editou) {
             $this->mensagem = "Cadastro n&atilde;o realizado.<br>";
             echo "<!--\nErro ao cadastrar clsPmieducarSituacao\nvalores obrigatorios\nis_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->ref_cod_exemplar} ) && is_numeric( {$cod_situacao} )\n-->";
             return false;
         }
         $this->mensagem .= "Cadastro efetuado com sucesso.<br>";
         header("Location: educar_exemplar_devolucao_lst.php");
         die;
         return true;
     }
     $this->mensagem = "Edi&ccedil;&atilde;o n&atilde;o realizada.<br>";
     echo "<!--\nErro ao editar clsPmieducarExemplarEmprestimo\nvalores obrigatorios\nis_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->ref_cod_cliente} )\n-->";
     return false;
 }
 protected function postDevolucao()
 {
     if ($this->canPostDevolucao()) {
         // altera situacao exemplar para disponivel
         $situacaoDisponivel = $this->loadSituacaoExemplar($permiteEmprestimo = true, $padrao = true, $emprestada = false);
         if ($situacaoDisponivel && !$this->updateSituacaoExemplar($situacaoDisponivel)) {
             $this->messenger->append("Aparentemente a situação do exemplar não foi alterada para disponivel.", 'error');
         } elseif (!$situacaoDisponivel) {
             $this->messenger->append("Não foi encontrado uma situação padrão cadastrada para exemplar disponivel.", 'error');
         }
         // grava emprestimo
         if (!$this->messenger->hasMsgWithType('error')) {
             $_emprestimo = $this->loadEmprestimoForExemplar();
             $emprestimo = new clsPmieducarExemplarEmprestimo();
             $emprestimo->cod_emprestimo = $_emprestimo['id'];
             $emprestimo->ref_usuario_devolucao = $this->getSession()->id_pessoa;
             $emprestimo->data_devolucao = date("Y-m-d");
             // TODO calcular / setar valor multa (se) devolução atrasada?
             if ($emprestimo->edita()) {
                 $this->messenger->append("Devolução realizada com sucesso.", 'success');
             } else {
                 $this->messenger->append("Aparentemente a devolução não foi cadastrada, por favor, tente novamente.", 'error');
             }
         }
     }
     $this->appendResponse('exemplar', $this->loadExemplar($reload = true));
 }