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 | ... | ... |