/**
  * Implementação do método clsCadastro::Editar()
  *
  * Esse método é chamado quando o usuário "Retorna um servidor". Dessa forma,
  * caso seja professor, precisa atualizar a sua alocação na tabela
  * pmieducar.quadro_horario_horarios, apagando os valores dos campos
  * ref_cod_instituicao_ e ref_cod_servidor_ -substituto
  *
  * @see ieducar/intranet/include/clsCadastro#Editar()
  */
 public function Editar()
 {
     session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $urlPermite = sprintf('educar_servidor_det.php?cod_servidor=%d&ref_cod_instituicao=%d', $this->ref_cod_servidor, $this->ref_cod_instituicao);
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7, $urlPermite);
     $obj = new clsPmieducarServidorAfastamento($this->ref_cod_servidor, $this->sequencial, $this->ref_cod_motivo_afastamento, $this->pessoa_logada, NULL, NULL, NULL, $this->data_retorno, unserialize($this->data_saida), 0, $this->ref_cod_instituicao);
     $editou = $obj->edita();
     if ($editou) {
         if (is_array($_POST['ref_cod_servidor_substituto'])) {
             foreach ($_POST['ref_cod_servidor_substituto'] as $key => $valor) {
                 $ref_cod_servidor_substituto = $valor;
                 $ref_cod_escola = $_POST["ref_cod_escola_{$key}"];
                 $dia_semana = $_POST["dia_semana_{$key}"];
                 $hora_inicial = urldecode($_POST["hora_inicial_{$key}"]);
                 $hora_final = urldecode($_POST["hora_final_{$key}"]);
                 if (is_numeric($ref_cod_servidor_substituto) && is_numeric($ref_cod_escola) && is_numeric($dia_semana) && is_string($hora_inicial) && is_string($hora_final)) {
                     $obj_horarios = new clsPmieducarQuadroHorarioHorarios(NULL, NULL, $ref_cod_escola, NULL, NULL, NULL, $this->ref_cod_instituicao, $ref_cod_servidor_substituto, $this->ref_cod_servidor, $hora_inicial, $hora_final, NULL, NULL, 1, $dia_semana);
                     $det_horarios = $obj_horarios->detalhe($ref_cod_escola);
                     // Os valores NULL apagam os campos ref_cod_instituicao_ e
                     // ref_cod_servidor_ -substituto da tabela pmieducar.
                     // quadro_horario_horarios
                     $obj_horario = new clsPmieducarQuadroHorarioHorarios($det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_cod_serie"], $det_horarios["ref_cod_escola"], $det_horarios["ref_cod_disciplina"], $det_horarios["sequencial"], NULL, $det_horarios["ref_cod_instituicao_servidor"], NULL, $this->ref_cod_servidor);
                     if (!$obj_horario->edita()) {
                         $this->mensagem = "Cadastro n&atilde;o realizado.<br>";
                         return FALSE;
                     }
                 }
             }
         }
         $this->mensagem .= "Edi&ccedil;&atilde;o efetuada com sucesso.<br>";
         header("Location: educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}");
         die;
     }
     $this->mensagem = "Edi&ccedil;&atilde;o n&atilde;o realizada.<br>";
     return FALSE;
 }