/**
  * Implementação do método clsCadastro::Gerar()
  * @see ieducar/intranet/include/clsCadastro#Gerar()
  */
 public function Gerar()
 {
     $this->campoOculto('ref_cod_servidor', $this->ref_cod_servidor);
     $this->campoOculto('sequencial', $this->sequencial);
     $this->campoOculto('ref_cod_instituicao', $this->ref_cod_instituicao);
     $opcoes = array('' => 'Selecione');
     $objTemp = new clsPmieducarMotivoAfastamento();
     $lista = $objTemp->lista();
     if (is_array($lista) && count($lista) > 0) {
         foreach ($lista as $registro) {
             $opcoes[$registro['cod_motivo_afastamento']] = $registro['nm_motivo'];
         }
     } else {
         $opcoes = array('' => 'Nenhum motivo de afastamento cadastrado');
     }
     if ($this->status == 'N') {
         $this->campoLista('ref_cod_motivo_afastamento', 'Motivo Afastamento', $opcoes, $this->ref_cod_motivo_afastamento);
     } elseif ($this->status == 'E') {
         $this->campoLista('ref_cod_motivo_afastamento', 'Motivo Afastamento', $opcoes, $this->ref_cod_motivo_afastamento, '', FALSE, '', '', TRUE);
     }
     // Datas para registro
     // Se novo registro
     if ($this->status == 'N') {
         $this->campoData('data_saida', 'Data de Afastamento', $this->data_saida, TRUE);
     } elseif ($this->status == 'E') {
         $this->campoRotulo('data_saida', 'Data de Afastamento', $this->data_saida);
     }
     // Se edição, mostra campo para entrar com data de retorno
     if ($this->status == 'E') {
         $this->campoData('data_retorno', 'Data de Retorno', $this->data_retorno, FALSE);
     }
     $obj_servidor = new clsPmieducarServidor($this->ref_cod_servidor, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
     $det_servidor = $obj_servidor->detalhe();
     if ($det_servidor) {
         $obj_funcao = new clsPmieducarFuncao($det_servidor['ref_cod_funcao'], NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
         // Se for professor
         if (TRUE == $obj_servidor->isProfessor()) {
             $obj = new clsPmieducarQuadroHorarioHorarios();
             // Pega a lista de aulas alocadas para este servidor
             $lista = $obj->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, $this->ref_cod_instituicao, NULL, $this->ref_cod_servidor, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL);
             if ($lista) {
                 // Passa todos os valores obtidos no registro para atributos do objeto
                 foreach ($lista as $campo => $val) {
                     $temp = array();
                     $temp['hora_inicial'] = $val['hora_inicial'];
                     $temp['hora_final'] = $val['hora_final'];
                     $temp['dia_semana'] = $val['dia_semana'];
                     $temp['ref_cod_escola'] = $val['ref_cod_escola'];
                     $temp['ref_cod_disciplina'] = $val['ref_cod_disciplina'];
                     $temp['ref_cod_substituto'] = $val['ref_servidor_substituto'];
                     $this->alocacao_array[] = $temp;
                 }
                 if ($this->alocacao_array) {
                     $tamanho = sizeof($alocacao);
                     $script = "<script>\nvar num_alocacao = {$tamanho};\n";
                     $script .= "var array_servidores = Array();\n";
                     foreach ($this->alocacao_array as $key => $alocacao) {
                         $script .= "array_servidores[{$key}] = new Array();\n";
                         $hora_ini = explode(":", $alocacao['hora_inicial']);
                         $hora_fim = explode(":", $alocacao['hora_final']);
                         $horas_utilizadas = $hora_fim[0] - $hora_ini[0];
                         $minutos_utilizados = $hora_fim[1] - $hora_ini[1];
                         $horas = sprintf('%02d', (int) $horas_utilizadas);
                         $minutos = sprintf('%02d', (int) $minutos_utilizados);
                         $str_horas_utilizadas = "{$horas}:{$minutos}";
                         $script .= "array_servidores[{$key}][0] = '{$str_horas_utilizadas}';\n";
                         $script .= "array_servidores[{$key}][1] = '';\n\n";
                         $obj_escola = new clsPmieducarEscola($alocacao['ref_cod_escola']);
                         $det_escola = $obj_escola->detalhe();
                         $det_escola = $det_escola['nome'];
                         $nm_dia_semana = $this->dias_da_semana[$alocacao['dia_semana']];
                         $obj_subst = new clsPessoa_($alocacao['ref_cod_substituto']);
                         $det_subst = $obj_subst->detalhe();
                         if ($this->status == 'N') {
                             $this->campoTextoInv("dia_semana_{$key}_", '', $nm_dia_semana, 8, 8, FALSE, FALSE, TRUE, '', '', '', '', 'dia_semana');
                             $this->campoTextoInv("hora_inicial_{$key}_", '', $alocacao['hora_inicial'], 5, 5, FALSE, FALSE, TRUE, '', '', '', '', 'ds_hora_inicial_');
                             $this->campoTextoInv("hora_final_{$key}_", '', $alocacao['hora_final'], 5, 5, FALSE, FALSE, TRUE, '', '', '', '', 'ds_hora_final_');
                             $this->campoTextoInv("ref_cod_escola_{$key}", '', $det_escola, 30, 255, FALSE, FALSE, TRUE, '', '', '', '', 'ref_cod_escola_');
                             $this->campoTextoInv("ref_cod_servidor_substituto_{$key}_", '', $det_subst['nome'], 30, 255, FALSE, FALSE, FALSE, '', "<span name=\"ref_cod_servidor_substituto\" id=\"ref_cod_servidor_substituicao_{$key}\"><img border='0'  onclick=\"pesquisa_valores_popless('educar_pesquisa_servidor_lst.php?campo1=ref_cod_servidor_substituto[{$key}]&campo2=ref_cod_servidor_substituto_{$key}_&ref_cod_instituicao={$this->ref_cod_instituicao}&dia_semana={$alocacao["dia_semana"]}&hora_inicial={$alocacao["hora_inicial"]}&hora_final={$alocacao["hora_final"]}&ref_cod_servidor={$this->ref_cod_servidor}&professor=1&ref_cod_escola={$alocacao['ref_cod_escola']}&horario=S&ref_cod_disciplina={$alocacao['ref_cod_disciplina']}', 'nome')\" src=\"imagens/lupa.png\" ></span>", '', '', 'ref_cod_servidor_substituto');
                         }
                         $this->campoOculto("dia_semana_{$key}", $alocacao['dia_semana']);
                         $this->campoOculto("hora_inicial_{$key}", $alocacao['hora_inicial']);
                         $this->campoOculto("hora_final_{$key}", $alocacao['hora_final']);
                         $this->campoOculto("ref_cod_escola_{$key}", $alocacao['ref_cod_escola']);
                         $this->campoOculto("ref_cod_servidor_substituto[{$key}]", $alocacao['ref_cod_substituto']);
                     }
                     $script .= "\n</script>";
                     // Print do Javascript
                     print $script;
                 }
             }
         }
     }
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Motivo Afastamento - Listagem";
     foreach ($_GET as $var => $val) {
         // passa todos os valores obtidos no GET para atributos do objeto
         $this->{$var} = $val === "" ? null : $val;
     }
     $lista_busca = array("Motivo de Afastamento");
     $obj_permissoes = new clsPermissoes();
     $nivel_usuario = $obj_permissoes->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         //$lista_busca[] = "Escola";
         $lista_busca[] = "Institui&ccedil;&atilde;o";
     }
     $this->addCabecalhos($lista_busca);
     // Filtros de Foreign Keys
     // outros Filtros
     $get_escola = false;
     include "include/pmieducar/educar_campo_lista.php";
     $this->campoTexto("nm_motivo", "Motivo de Afastamento", $this->nm_motivo, 30, 255, false);
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET["pagina_{$this->nome}"] ? $_GET["pagina_{$this->nome}"] * $this->limite - $this->limite : 0;
     $obj_motivo_afastamento = new clsPmieducarMotivoAfastamento();
     $obj_motivo_afastamento->setOrderby("nm_motivo ASC");
     $obj_motivo_afastamento->setLimite($this->limite, $this->offset);
     $lista = $obj_motivo_afastamento->lista(null, null, null, $this->nm_motivo, null, null, null, null, null, 1, $this->ref_cod_instituicao);
     $total = $obj_motivo_afastamento->_total;
     // monta a lista
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             //$obj_ins = new clsPmieducarEscola( $registro["ref_cod_escola"] );
             //$det_ins = $obj_ins->detalhe();
             //	$ref_cod_instituicao = $det_ins["ref_cod_instituicao"];
             $obj_instituicao = new clsPmieducarInstituicao($registro['ref_cod_instituicao']);
             $det_instituicao = $obj_instituicao->detalhe();
             $lista_busca = array("<a href=\"educar_motivo_afastamento_det.php?cod_motivo_afastamento={$registro["cod_motivo_afastamento"]}\">{$registro["nm_motivo"]}</a>");
             if ($nivel_usuario == 1) {
                 //$lista_busca[] = "<a href=\"educar_motivo_afastamento_det.php?cod_motivo_afastamento={$registro["cod_motivo_afastamento"]}\">{$det_ins["nome"]}</a>";
                 $lista_busca[] = "<a href=\"educar_motivo_afastamento_det.php?cod_motivo_afastamento={$registro["cod_motivo_afastamento"]}\">{$det_instituicao["nm_instituicao"]}</a>";
             }
             $this->addLinhas($lista_busca);
         }
     }
     $this->addPaginador2("educar_motivo_afastamento_lst.php", $total, $_GET, $this->nome, $this->limite);
     $obj_permissoes = new clsPermissoes();
     if ($obj_permissoes->permissao_cadastra(633, $this->pessoa_logada, 7)) {
         $this->acao = "go(\"educar_motivo_afastamento_cad.php\")";
         $this->nome_acao = "Novo";
     }
     $this->largura = "100%";
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Listagem de motivos de afastamento"));
     $this->enviaLocalizacao($localizacao->montar());
 }
 function Excluir()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_excluir(633, $this->pessoa_logada, 7, "educar_motivo_afastamento_lst.php");
     $obj = new clsPmieducarMotivoAfastamento($this->cod_motivo_afastamento, $this->pessoa_logada, NULL, $this->nm_motivo, $this->descricao, NULL, NULL, 0, $this->ref_cod_instituicao);
     $excluiu = $obj->excluir();
     if ($excluiu) {
         $this->mensagem .= "Exclus&atilde;o efetuada com sucesso.<br>";
         header("Location: educar_motivo_afastamento_lst.php");
         die;
         return true;
     }
     $this->mensagem = "Exclus&atilde;o n&atilde;o realizada.<br>";
     echo "<!--\nErro ao excluir clsPmieducarMotivoAfastamento\nvalores obrigatorios\nif( is_numeric( {$this->cod_motivo_afastamento} ) && is_numeric( {$this->pessoa_logada} ) )\n-->";
     return false;
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Motivo Afastamento - Detalhe";
     $this->cod_motivo_afastamento = $_GET["cod_motivo_afastamento"];
     $tmp_obj = new clsPmieducarMotivoAfastamento($this->cod_motivo_afastamento);
     $registro = $tmp_obj->detalhe();
     if (!$registro) {
         header("location: educar_motivo_afastamento_lst.php");
         die;
     }
     /*	if( class_exists( "clsPmieducarEscola" ) )
     		{
     			$obj_ref_cod_escola = new clsPmieducarEscola( $registro["ref_cod_escola"] );
     			$det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
     			$nm_escola = $det_ref_cod_escola["nome"];
     			$ref_cod_instituicao = $det_ref_cod_escola["ref_cod_instituicao"];
     		}
     		else
     		{
     			$registro["ref_cod_escola"] = "Erro na geracao";
     			echo "<!--\nErro\nClasse nao existente: clsPmieducarEscola\n-->";
     		}*/
     if (class_exists("clsPmieducarInstituicao")) {
         $obj_ref_cod_instituicao = new clsPmieducarInstituicao($registro['ref_cod_instituicao']);
         $det_ref_cod_instituicao = $obj_ref_cod_instituicao->detalhe();
     } else {
         $registro["ref_cod_escola"] = "Erro na gera&ccedil;&atilde;o";
         echo "<!--\nErro\nClasse n&atilde;o existente: clsPmieducarEscola\n-->";
     }
     $obj_permissao = new clsPermissoes();
     $nivel_usuario = $obj_permissao->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         if ($det_ref_cod_instituicao["nm_instituicao"]) {
             $this->addDetalhe(array("Institui&ccedil;&atilde;o", "{$det_ref_cod_instituicao["nm_instituicao"]}"));
         }
     }
     /*	if ($nivel_usuario == 1 || $nivel_usuario == 2)
     		{
     			if( $nm_escola )
     			{
     				$this->addDetalhe( array( "Escola", "{$nm_escola}") );
     			}
     		}*/
     if ($registro["nm_motivo"]) {
         $this->addDetalhe(array("Motivo de Afastamento", "{$registro["nm_motivo"]}"));
     }
     if ($registro["descricao"]) {
         $this->addDetalhe(array("Descri&ccedil;&atilde;o", "{$registro["descricao"]}"));
     }
     $obj_permissoes = new clsPermissoes();
     if ($obj_permissoes->permissao_cadastra(633, $this->pessoa_logada, 7)) {
         $this->url_novo = "educar_motivo_afastamento_cad.php";
         $this->url_editar = "educar_motivo_afastamento_cad.php?cod_motivo_afastamento={$registro["cod_motivo_afastamento"]}";
     }
     $this->url_cancelar = "educar_motivo_afastamento_lst.php";
     $this->largura = "100%";
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Detalhe do motivo de afastamento"));
     $this->enviaLocalizacao($localizacao->montar());
 }