Commit 6b85cbc0cc1c884faec0855583ea74de201e6865
1 parent
4393a922
Exists in
master
Adicionado novo método em {{{clsPmieducarServidor}}}:
* {{{getHorariosServidor()}}}: retorna um array com todos os horários de aula de um servidor * Página de visualização do cadastro de Servidor foi atualizada para exibir todos os horários de aula do servidor (caso o tenha em Quadro de horários)
Showing
2 changed files
with
153 additions
and
3 deletions
Show diff stats
ieducar/intranet/educar_servidor_det.php
... | ... | @@ -359,6 +359,54 @@ class indice extends clsDetalhe |
359 | 359 | "<a href='javascript:trocaDisplay(\"det_pree\");' >Mostrar detalhe</a><div id='det_pree' name='det_pree' style='display:none;'>".$tabela."</div>")); |
360 | 360 | } |
361 | 361 | |
362 | + // Horários do professor | |
363 | + $horarios = $tmp_obj->getHorariosServidor($registro['cod_servidor'], | |
364 | + $this->ref_cod_instituicao); | |
365 | + | |
366 | + if ($horarios) { | |
367 | + $tabela = " | |
368 | + <table cellspacing='0' cellpadding='0' border='0'> | |
369 | + <tr bgcolor='#A1B3BD' align='center'> | |
370 | + <td width='150'>Escola</td> | |
371 | + <td width='100'>Curso</td> | |
372 | + <td width='70'>Série</td> | |
373 | + <td width='70'>Turma</td> | |
374 | + <td width='100'>Componente curricular</td> | |
375 | + <td width='70'>Dia da semana</td> | |
376 | + <td width='70'>Hora inicial</td> | |
377 | + <td width='70'>Hora final</td> | |
378 | + </tr>"; | |
379 | + | |
380 | + foreach ($horarios as $horario) { | |
381 | + $class = $class == 'formlttd' ? 'formmdtd' : 'formlttd'; | |
382 | + | |
383 | + $tabela .= sprintf(' | |
384 | + <tr class="%s" align="center"> | |
385 | + <td>%s</td> | |
386 | + <td>%s</td> | |
387 | + <td>%s</td> | |
388 | + <td>%s</td> | |
389 | + <td>%s</td> | |
390 | + <td>%s</td> | |
391 | + <td>%s</td> | |
392 | + <td>%s</td> | |
393 | + </tr>', | |
394 | + $class, | |
395 | + $horario['nm_escola'], $horario['nm_curso'], $horario['nm_serie'], | |
396 | + $horario['nm_turma'], $horario['nome'], $dias_da_semana[$horario['dia_semana']], | |
397 | + $horario['hora_inicial'], $horario['hora_final'] | |
398 | + ); | |
399 | + } | |
400 | + | |
401 | + $tabela .= "</table>"; | |
402 | + | |
403 | + $this->addDetalhe(array( | |
404 | + 'Horários de aula', | |
405 | + "<a href='javascript:trocaDisplay(\"horarios\");' >Mostrar detalhes</a>" . | |
406 | + "<div id='horarios' name='det_pree' style='display:none;'>" . $tabela . "</div>" | |
407 | + )); | |
408 | + } | |
409 | + | |
362 | 410 | $obj_permissoes = new clsPermissoes(); |
363 | 411 | |
364 | 412 | if ($obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7)) { | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarServidor.inc.php
... | ... | @@ -974,6 +974,34 @@ class clsPmieducarServidor |
974 | 974 | return FALSE; |
975 | 975 | } |
976 | 976 | |
977 | + /** | |
978 | + * Retorna um array com os códigos de servidor e instituição, usando os | |
979 | + * valores dos parâmetros ou das propriedades da instância atual. | |
980 | + * | |
981 | + * @since Método disponível desde a versão 1.2.0 | |
982 | + * @param int $codServidor Código do servidor, caso não seja informado, | |
983 | + * usa o código disponível no objeto atual | |
984 | + * @param int $codInstituicao Código da instituição, caso não seja | |
985 | + * informado, usa o código disponível no objeto atual | |
986 | + * @return array|bool (codServidor => (int), codInstituicao => (int)) | |
987 | + */ | |
988 | + function _getCodServidorInstituicao($codServidor = NULL, $codInstituicao = NULL) | |
989 | + { | |
990 | + $codServidor = $codServidor != NULL ? $codServidor : $this->cod_servidor; | |
991 | + $codInstituicao = $codInstituicao != NULL ? $codInstituicao : $this->ref_cod_instituicao; | |
992 | + | |
993 | + // Se códigos não forem fornecidos, nem pela classe nem pelo código cliente, | |
994 | + // retorna FALSE | |
995 | + if ($codServidor == NULL || $codInstituicao == NULL) { | |
996 | + return FALSE; | |
997 | + } | |
998 | + | |
999 | + return array( | |
1000 | + 'codServidor' => $codServidor, | |
1001 | + 'codInstituicao' => $codInstituicao | |
1002 | + ); | |
1003 | + } | |
1004 | + | |
977 | 1005 | /** |
978 | 1006 | * Retorna um array com os códigos das disciplinas do servidor |
979 | 1007 | * |
... | ... | @@ -988,8 +1016,10 @@ class clsPmieducarServidor |
988 | 1016 | function getServidorDisciplinas($codServidor = NULL, |
989 | 1017 | $codInstituicao = NULL) |
990 | 1018 | { |
991 | - $codServidor = $codServidor != NULL ? $codServidor : $this->cod_servidor; | |
992 | - $codInstituicao = $codInstituicao != NULL ? $codInstituicao : $this->ref_cod_instituicao; | |
1019 | + $codigos = $this->_getCodServidorInstituicao($codServidor, $codInstituicao); | |
1020 | + if (! $codigos) { | |
1021 | + return FALSE; | |
1022 | + } | |
993 | 1023 | |
994 | 1024 | // Se códigos não forem fornecidos, nem pela classe nem pelo código cliente, |
995 | 1025 | // retorna FALSE |
... | ... | @@ -1002,7 +1032,7 @@ class clsPmieducarServidor |
1002 | 1032 | $sql .= 'WHERE sd.ref_cod_servidor = s.cod_servidor AND '; |
1003 | 1033 | $sql .= 'sd.ref_cod_servidor = \'%d\' AND sd.ref_ref_cod_instituicao = \'%d\''; |
1004 | 1034 | |
1005 | - $sql = sprintf($sql, $codServidor, $codInstituicao); | |
1035 | + $sql = sprintf($sql, $codigos['codServidor'], $codigos['codInstituicao']); | |
1006 | 1036 | |
1007 | 1037 | $db = new clsBanco(); |
1008 | 1038 | $db->Consulta($sql); |
... | ... | @@ -1022,6 +1052,78 @@ class clsPmieducarServidor |
1022 | 1052 | } |
1023 | 1053 | |
1024 | 1054 | /** |
1055 | + * Retorna os horários de aula do servidor na instituição. | |
1056 | + * | |
1057 | + * @since Método disponível desde a versão 1.0.2 | |
1058 | + * @param int $codServidor Código do servidor, caso não seja informado, | |
1059 | + * usa o código disponível no objeto atual | |
1060 | + * @param int $codInstituicao Código da instituição, caso não seja | |
1061 | + * informado, usa o código disponível no objeto atual | |
1062 | + * @return array|bool Array associativo com os índices nm_escola, nm_curso, | |
1063 | + * nm_serie, nm_turma, nome (componente curricular), dia_semana, | |
1064 | + * hora_inicial e hora_final. | |
1065 | + */ | |
1066 | + function getHorariosServidor($codServidor = NULL, $codInstituicao = NULL) | |
1067 | + { | |
1068 | + $codigos = $this->_getCodServidorInstituicao($codServidor, $codInstituicao); | |
1069 | + if (! $codigos) { | |
1070 | + return FALSE; | |
1071 | + } | |
1072 | + | |
1073 | + $sql = 'SELECT | |
1074 | + ec.nm_escola, | |
1075 | + c.nm_curso, | |
1076 | + s.nm_serie, | |
1077 | + t.nm_turma, | |
1078 | + cc.nome, | |
1079 | + qhh.dia_semana, | |
1080 | + qhh.hora_inicial, | |
1081 | + qhh.hora_final | |
1082 | + FROM | |
1083 | + pmieducar.quadro_horario_horarios qhh, | |
1084 | + pmieducar.quadro_horario qh, | |
1085 | + pmieducar.turma t, | |
1086 | + pmieducar.serie s, | |
1087 | + pmieducar.curso c, | |
1088 | + pmieducar.escola_complemento ec, | |
1089 | + modules.componente_curricular cc | |
1090 | + WHERE | |
1091 | + qh.cod_quadro_horario = qhh.ref_cod_quadro_horario | |
1092 | + AND qh.ref_cod_turma = t.cod_turma | |
1093 | + AND t.ref_ref_cod_serie = s.cod_serie | |
1094 | + AND s.ref_cod_curso = c.cod_curso | |
1095 | + AND qhh.ref_cod_escola = ec.ref_cod_escola | |
1096 | + AND qhh.ref_cod_disciplina = cc.id | |
1097 | + AND qh.ativo = 1 | |
1098 | + AND qhh.ativo = 1 | |
1099 | + AND t.ativo = 1 | |
1100 | + AND qhh.ref_servidor = %d | |
1101 | + AND qhh.ref_cod_instituicao_servidor = %d | |
1102 | + ORDER BY | |
1103 | + nm_escola, | |
1104 | + dia_semana, | |
1105 | + hora_inicial'; | |
1106 | + | |
1107 | + $sql = sprintf($sql, $codigos['codServidor'], $codigos['codInstituicao']); | |
1108 | + | |
1109 | + $db = new clsBanco(); | |
1110 | + $db->Consulta($sql); | |
1111 | + | |
1112 | + $horarios = array(); | |
1113 | + | |
1114 | + while ($db->ProximoRegistro() != FALSE) { | |
1115 | + $row = $db->Tupla(); | |
1116 | + $horarios[] = $row; | |
1117 | + } | |
1118 | + | |
1119 | + if (count($horarios)) { | |
1120 | + return $horarios; | |
1121 | + } | |
1122 | + | |
1123 | + return FALSE; | |
1124 | + } | |
1125 | + | |
1126 | + /** | |
1025 | 1127 | * Verifica se um servidor desempenha a função de professor. |
1026 | 1128 | * |
1027 | 1129 | * Primeiro, recuperamos todas as funções do servidor e procuramos | ... | ... |