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 |