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,6 +359,54 @@ class indice extends clsDetalhe | ||
359 | "<a href='javascript:trocaDisplay(\"det_pree\");' >Mostrar detalhe</a><div id='det_pree' name='det_pree' style='display:none;'>".$tabela."</div>")); | 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 | $obj_permissoes = new clsPermissoes(); | 410 | $obj_permissoes = new clsPermissoes(); |
363 | 411 | ||
364 | if ($obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7)) { | 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,6 +974,34 @@ class clsPmieducarServidor | ||
974 | return FALSE; | 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 | * Retorna um array com os códigos das disciplinas do servidor | 1006 | * Retorna um array com os códigos das disciplinas do servidor |
979 | * | 1007 | * |
@@ -988,8 +1016,10 @@ class clsPmieducarServidor | @@ -988,8 +1016,10 @@ class clsPmieducarServidor | ||
988 | function getServidorDisciplinas($codServidor = NULL, | 1016 | function getServidorDisciplinas($codServidor = NULL, |
989 | $codInstituicao = NULL) | 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 | // Se códigos não forem fornecidos, nem pela classe nem pelo código cliente, | 1024 | // Se códigos não forem fornecidos, nem pela classe nem pelo código cliente, |
995 | // retorna FALSE | 1025 | // retorna FALSE |
@@ -1002,7 +1032,7 @@ class clsPmieducarServidor | @@ -1002,7 +1032,7 @@ class clsPmieducarServidor | ||
1002 | $sql .= 'WHERE sd.ref_cod_servidor = s.cod_servidor AND '; | 1032 | $sql .= 'WHERE sd.ref_cod_servidor = s.cod_servidor AND '; |
1003 | $sql .= 'sd.ref_cod_servidor = \'%d\' AND sd.ref_ref_cod_instituicao = \'%d\''; | 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 | $db = new clsBanco(); | 1037 | $db = new clsBanco(); |
1008 | $db->Consulta($sql); | 1038 | $db->Consulta($sql); |
@@ -1022,6 +1052,78 @@ class clsPmieducarServidor | @@ -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 | * Verifica se um servidor desempenha a função de professor. | 1127 | * Verifica se um servidor desempenha a função de professor. |
1026 | * | 1128 | * |
1027 | * Primeiro, recuperamos todas as funções do servidor e procuramos | 1129 | * Primeiro, recuperamos todas as funções do servidor e procuramos |