Commit 9ccca106b9ffc0d0bf8e552432df65b7e397e125
1 parent
de6fdef1
Exists in
master
Atualizado CRUD de Servidores:
* Cadastro de servidor agora depende de {{{ComponenteCurricular_Model_Componente}}} quando este possui uma função de professor e tem componentes curriculares atribuídos a ele (anteriormente, disciplinas) * Corrigido bug que apagava as disciplinas/cursos de um servidor quando seu cadastro era editado (para função de professor) * SQL de listagem de servidores (em {{{clsPmieducarServidor::lista()}}} modificado para o caso de professor (quando flag {{{$boo_professor}}} != FALSE}}}), selecionando apenas um professor candidato que lecione os mesmos componentes curriculares nos mesmos cursos. Outras correções lógicas realizadas * Atualizado arquivo SQL de instalação, com novo delta criado (delta 17) * Alterações no schema de {{{pmieducar.servidor_disciplina}}} para refletir o novo schema de componentes curriculares, onde cada componente pode ser atribuído a diversos anos/séries escolares (anteriormente era uma relação 1-1): * Campo {{{ref_cod_curso}}} adicionado * ''Primary key'' atualizada para englobar o campo {{{ref_cod_curso}}}
Showing
9 changed files
with
481 additions
and
337 deletions
Show diff stats
ieducar/intranet/educar_disciplina_xml.php
... | ... | @@ -25,10 +25,10 @@ |
25 | 25 | * @license @@license@@ |
26 | 26 | * @package iEd_Pmieducar |
27 | 27 | * @since Arquivo disponível desde a versão 1.0.0 |
28 | - * @version $Id: /ieducar/branches/1.1.0-avaliacao/ieducar/intranet/educar_disciplina_xml.php 1021 2009-12-20T22:17:05.346011Z eriksencosta $ | |
28 | + * @version $Id$ | |
29 | 29 | */ |
30 | 30 | |
31 | -header( 'Content-type: text/xml; charset=ISO-8859-1'); | |
31 | +header('Content-type: text/xml; charset=ISO-8859-1'); | |
32 | 32 | |
33 | 33 | require_once 'include/clsBanco.inc.php'; |
34 | 34 | require_once 'include/funcoes.inc.php'; | ... | ... |
ieducar/intranet/educar_pesquisa_servidor_lst.php
... | ... | @@ -193,7 +193,7 @@ class indice extends clsListagem |
193 | 193 | |
194 | 194 | $hora_inicial_ = explode(':', $_SESSION['hora_inicial']); |
195 | 195 | $hora_final_ = explode(':', $_SESSION['hora_final']); |
196 | - $horas_ini = sprintf('%02d', (int) abs($hora_final_[0]) - abs($hora_inicial_[0])); | |
196 | + $horas_ini = sprintf('%02d', (int) abs($hora_final_[0]) - abs($hora_inicial_[0])); | |
197 | 197 | $minutos_ini = sprintf('%02d', (int) abs($hora_final_[1]) - abs($hora_inicial_[1])); |
198 | 198 | |
199 | 199 | $h_m_ini = ($hora_inicial_[0] * 60) + $hora_inicial_[1]; |
... | ... | @@ -246,7 +246,7 @@ class indice extends clsListagem |
246 | 246 | // aos professores e não selecionar aqueles em que o curso não seja |
247 | 247 | // globalizado e sem disciplinas cadastradas |
248 | 248 | $this->ref_cod_disciplina = $this->ref_cod_disciplina ? |
249 | - $this->ref_cod_disciplina : "NULL"; | |
249 | + $this->ref_cod_disciplina : NULL; | |
250 | 250 | |
251 | 251 | // Passa NULL para $alocacao_escola_instituicao senão o seu filtro anula |
252 | 252 | // um anterior (referente a selecionar somente servidores não alocados), |
... | ... | @@ -331,10 +331,10 @@ class indice extends clsListagem |
331 | 331 | if ($_SESSION['tipo']) { |
332 | 332 | if (is_string($_SESSION['campo1']) && is_string($_SESSION['campo2'])) { |
333 | 333 | if (is_string( $_SESSION['horario'])) { |
334 | - $script = " onclick=\"addVal1('{$_SESSION['campo1']}','{$registro['cod_servidor']}','{$registro['nome']}'); addVal1('{$_SESSION['campo2']}','{$registro['cod_servidor']}','{$registro['nome']}'); $setAll fecha();\""; | |
334 | + $script = " onclick=\"addVal1('{$_SESSION['campo1']}','{$registro['nome']}','{$registro['cod_servidor']}'); addVal1('{$_SESSION['campo2']}','{$registro['cod_servidor']}','{$registro['nome']}'); $setAll fecha();\""; | |
335 | 335 | } |
336 | 336 | else { |
337 | - $script = " onclick=\"addVal1('{$_SESSION['campo1']}','{$registro['cod_servidor']}',null); addVal1('{$_SESSION['campo2']}','{$registro['nome']}',null); $setAll fecha();\""; | |
337 | + $script = " onclick=\"addVal1('{$_SESSION['campo1']}','{$registro['cod_servidor']}', null); addVal1('{$_SESSION['campo2']}','{$registro['nome']}', null); $setAll fecha();\""; | |
338 | 338 | } |
339 | 339 | } |
340 | 340 | elseif (is_string($_SESSION['campo1'])) { |
... | ... | @@ -386,9 +386,9 @@ function addVal1(campo, valor, opcao) |
386 | 386 | { |
387 | 387 | if (window.parent.document.getElementById(campo)) { |
388 | 388 | if (window.parent.document.getElementById(campo).type == 'select-one') { |
389 | - obj = window.parent.document.getElementById( campo ); | |
389 | + obj = window.parent.document.getElementById(campo); | |
390 | 390 | novoIndice = obj.options.length; |
391 | - obj.options[novoIndice] = new Option( opcao ); | |
391 | + obj.options[novoIndice] = new Option(opcao); | |
392 | 392 | opcao = obj.options[novoIndice]; |
393 | 393 | opcao.value = valor; |
394 | 394 | opcao.selected = true; |
... | ... | @@ -396,7 +396,7 @@ function addVal1(campo, valor, opcao) |
396 | 396 | } |
397 | 397 | else if (window.parent.document.getElementById(campo)) { |
398 | 398 | obj = window.parent.document.getElementById(campo); |
399 | - obj.value = valor; | |
399 | + obj.value = opcao; | |
400 | 400 | } |
401 | 401 | } |
402 | 402 | } |
... | ... | @@ -424,7 +424,7 @@ function clearAll() |
424 | 424 | } |
425 | 425 | |
426 | 426 | for (var ct =0;ct < num_alocacao;ct++) { |
427 | - var elements = window.parent.document.getElementById('ref_cod_servidor_substituto_' + ct).value=''; | |
427 | + var elements = window.parent.document.getElementById('ref_cod_servidor_substituto_' + ct).value=''; | |
428 | 428 | } |
429 | 429 | } |
430 | 430 | ... | ... |
ieducar/intranet/educar_servidor_cad.php
1 | 1 | <?php |
2 | 2 | |
3 | -/* | |
4 | - * i-Educar - Sistema de gestão de escolas | |
3 | +/** | |
4 | + * i-Educar - Sistema de gestão escolar | |
5 | 5 | * |
6 | - * Copyright (c) 2006 Prefeitura Municipal de Itajaí | |
7 | - * <ctima@itajai.sc.gov.br> | |
6 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
7 | + * <ctima@itajai.sc.gov.br> | |
8 | 8 | * |
9 | - * Este programa é software livre; você pode redistribuÃí-lo e/ou modificá-lo | |
9 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
10 | 10 | * sob os termos da Licença Pública Geral GNU conforme publicada pela Free |
11 | 11 | * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) |
12 | 12 | * qualquer versão posterior. |
... | ... | @@ -19,16 +19,13 @@ |
19 | 19 | * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto |
20 | 20 | * com este programa; se não, escreva para a Free Software Foundation, Inc., no |
21 | 21 | * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. |
22 | - */ | |
23 | - | |
24 | -/** | |
25 | - * Formulário de cadastro de servidor | |
26 | 22 | * |
27 | - * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
28 | - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL | |
29 | - * @package Core | |
30 | - * @since Arquivo disponível desde a versão 1.0.0 | |
31 | - * @version $Id$ | |
23 | + * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
24 | + * @category i-Educar | |
25 | + * @license @@license@@ | |
26 | + * @package iEd_Pmieducar | |
27 | + * @since Arquivo disponível desde a versão 1.0.0 | |
28 | + * @version $Id$ | |
32 | 29 | */ |
33 | 30 | |
34 | 31 | require_once 'include/clsBase.inc.php'; |
... | ... | @@ -36,14 +33,35 @@ require_once 'include/clsCadastro.inc.php'; |
36 | 33 | require_once 'include/clsBanco.inc.php'; |
37 | 34 | require_once 'include/pmieducar/geral.inc.php'; |
38 | 35 | |
39 | - | |
40 | -class clsIndexBase extends clsBase { | |
41 | - public function Formular() { | |
42 | - $this->SetTitulo($this->_instituicao . " i-Educar - Servidor"); | |
43 | - $this->processoAp = "635"; | |
36 | +/** | |
37 | + * clsIndexBase class. | |
38 | + * | |
39 | + * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
40 | + * @category i-Educar | |
41 | + * @license @@license@@ | |
42 | + * @package iEd_Pmieducar | |
43 | + * @since Classe disponível desde a versão 1.0.0 | |
44 | + * @version @@package_version@@ | |
45 | + */ | |
46 | +class clsIndexBase extends clsBase | |
47 | +{ | |
48 | + function Formular() | |
49 | + { | |
50 | + $this->SetTitulo($this->_instituicao . ' i-Educar - Servidor'); | |
51 | + $this->processoAp = 635; | |
44 | 52 | } |
45 | 53 | } |
46 | 54 | |
55 | +/** | |
56 | + * indice class. | |
57 | + * | |
58 | + * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
59 | + * @category i-Educar | |
60 | + * @license @@license@@ | |
61 | + * @package iEd_Pmieducar | |
62 | + * @since Classe disponível desde a versão 1.0.0 | |
63 | + * @version @@package_version@@ | |
64 | + */ | |
47 | 65 | class indice extends clsCadastro |
48 | 66 | { |
49 | 67 | var $pessoa_logada; |
... | ... | @@ -98,14 +116,14 @@ class indice extends clsCadastro |
98 | 116 | } |
99 | 117 | |
100 | 118 | $db = new clsBanco(); |
101 | - $consulta = " | |
119 | + $consulta = sprintf(" | |
102 | 120 | SELECT |
103 | 121 | SUBSTR(COALESCE(SUM(carga_horaria), '00:00'), 0, 6) AS horas_utilizadas |
104 | 122 | FROM |
105 | 123 | pmieducar.servidor_alocacao |
106 | 124 | WHERE |
107 | - ref_cod_servidor = '{$this->cod_servidor}' AND | |
108 | - ativo = 1"; | |
125 | + ref_cod_servidor = '%d' AND | |
126 | + ativo = 1", $this->cod_servidor); | |
109 | 127 | |
110 | 128 | $this->total_horas_alocadas = $db->CampoUnico($consulta); |
111 | 129 | |
... | ... | @@ -247,15 +265,15 @@ class indice extends clsCadastro |
247 | 265 | } |
248 | 266 | |
249 | 267 | $this->campoTabelaInicio('funcao', 'Funções Servidor', |
250 | - array("Função", "Disciplinas", "Cursos"), ($this->ref_cod_funcao)); | |
268 | + array("Função", "Componentes Curriculares", "Cursos"), ($this->ref_cod_funcao)); | |
251 | 269 | |
252 | 270 | $funcao = 'popless()'; |
253 | 271 | |
254 | 272 | $this->campoLista('ref_cod_funcao', 'Função', $opcoes, $this->ref_cod_funcao, |
255 | 273 | 'funcaoChange(this)', '', '', ''); |
256 | 274 | |
257 | - $this->campoRotulo('disciplina', 'Disciplinas', | |
258 | - "<img src='imagens/lupa_antiga.png' border='0' style='cursor:pointer;' alt='Buscar Disciplina' title='Buscar Disciplina' onclick=\"$funcao\">"); | |
275 | + $this->campoRotulo('disciplina', 'Componentes Curriculares', | |
276 | + "<img src='imagens/lupa_antiga.png' border='0' style='cursor:pointer;' alt='Buscar Componente Curricular' title='Buscar Componente Curricular' onclick=\"$funcao\">"); | |
259 | 277 | |
260 | 278 | $funcao = 'popCurso()'; |
261 | 279 | |
... | ... | @@ -301,7 +319,9 @@ class indice extends clsCadastro |
301 | 319 | $obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 3, |
302 | 320 | 'educar_servidor_lst.php'); |
303 | 321 | |
304 | - $obj = new clsPmieducarServidor($this->cod_servidor, NULL, NULL, NULL, NULL, NULL, NULL, $this->ref_cod_instituicao ); | |
322 | + $obj = new clsPmieducarServidor($this->cod_servidor, NULL, NULL, NULL, NULL, | |
323 | + NULL, NULL, $this->ref_cod_instituicao); | |
324 | + | |
305 | 325 | if ($obj->detalhe()) { |
306 | 326 | $this->carga_horaria = str_replace(',', '.', $this->carga_horaria); |
307 | 327 | $obj = new clsPmieducarServidor($this->cod_servidor, |
... | ... | @@ -361,8 +381,10 @@ class indice extends clsCadastro |
361 | 381 | |
362 | 382 | if ($this->ref_cod_instituicao == $this->ref_cod_instituicao_original) { |
363 | 383 | $this->carga_horaria = str_replace(',', '.', $this->carga_horaria); |
384 | + | |
364 | 385 | $obj = new clsPmieducarServidor($this->cod_servidor, $this->ref_cod_deficiencia, |
365 | 386 | $this->ref_idesco, $this->carga_horaria, NULL, NULL, 1, $this->ref_cod_instituicao); |
387 | + | |
366 | 388 | $editou = $obj->edita(); |
367 | 389 | |
368 | 390 | if ($editou) { |
... | ... | @@ -483,15 +505,13 @@ class indice extends clsCadastro |
483 | 505 | { |
484 | 506 | @session_start(); |
485 | 507 | $cursos_disciplina = $_SESSION['cursos_disciplina']; |
486 | - $cursos_servidor = $_SESSION['cursos_servidor']; | |
508 | + $cursos_servidor = $_SESSION['cursos_servidor']; | |
487 | 509 | @session_write_close(); |
488 | 510 | |
489 | - $this->excluiFuncoes(); | |
490 | - $this->excluiCursos(); | |
491 | - | |
492 | 511 | $existe_funcao_professor = FALSE; |
493 | 512 | |
494 | 513 | if ($this->ref_cod_funcao) { |
514 | + $this->excluiFuncoes(); | |
495 | 515 | foreach ($this->ref_cod_funcao as $funcao) { |
496 | 516 | $funcao_professor = explode('-', $funcao); |
497 | 517 | $funcao = array_shift($funcao_professor); |
... | ... | @@ -511,11 +531,13 @@ class indice extends clsCadastro |
511 | 531 | |
512 | 532 | if ($existe_funcao_professor) { |
513 | 533 | if ($cursos_disciplina) { |
534 | + $this->excluiDisciplinas(); | |
514 | 535 | foreach ($cursos_disciplina as $curso => $disciplinas) { |
515 | 536 | if ($disciplinas) { |
516 | 537 | foreach ($disciplinas as $disciplina) { |
517 | 538 | $obj_servidor_disciplina = new clsPmieducarServidorDisciplina( |
518 | - $disciplina, $this->ref_cod_instituicao, $this->cod_servidor); | |
539 | + $disciplina, $this->ref_cod_instituicao, $this->cod_servidor, | |
540 | + $curso); | |
519 | 541 | |
520 | 542 | if (!$obj_servidor_disciplina->existe()) { |
521 | 543 | $obj_servidor_disciplina->cadastra(); |
... | ... | @@ -526,6 +548,7 @@ class indice extends clsCadastro |
526 | 548 | } |
527 | 549 | |
528 | 550 | if ($cursos_servidor) { |
551 | + $this->excluiCursos(); | |
529 | 552 | foreach ($cursos_servidor as $curso) { |
530 | 553 | $obj_curso_servidor = new clsPmieducarServidorCursoMinistra($curso, |
531 | 554 | $this->ref_cod_instituicao, $this->cod_servidor); |
... | ... | @@ -540,17 +563,20 @@ class indice extends clsCadastro |
540 | 563 | |
541 | 564 | function excluiFuncoes() |
542 | 565 | { |
543 | - $obj_servidor_disciplina = new clsPmieducarServidorDisciplina(NULL, | |
544 | - $this->ref_cod_instituicao,$this->cod_servidor); | |
545 | - | |
546 | - $obj_servidor_disciplina->excluirTodos(); | |
547 | - | |
548 | 566 | $obj_servidor_funcao = new clsPmieducarServidorFuncao($this->ref_cod_instituicao, |
549 | 567 | $this->cod_servidor); |
550 | 568 | |
551 | 569 | $obj_servidor_funcao->excluirTodos(); |
552 | 570 | } |
553 | 571 | |
572 | + function excluiDisciplinas() | |
573 | + { | |
574 | + $obj_servidor_disciplina = new clsPmieducarServidorDisciplina(NULL, | |
575 | + $this->ref_cod_instituicao, $this->cod_servidor); | |
576 | + | |
577 | + $obj_servidor_disciplina->excluirTodos(); | |
578 | + } | |
579 | + | |
554 | 580 | function excluiCursos() |
555 | 581 | { |
556 | 582 | $obj_servidor_curso = new clsPmieducarServidorCursoMinistra(NULL, |
... | ... | @@ -577,7 +603,8 @@ $pagina->MakeAll(); |
577 | 603 | /** |
578 | 604 | * Carrega as opções de um campo select de funções via Ajax |
579 | 605 | */ |
580 | -function getFuncao(id_campo) { | |
606 | +function getFuncao(id_campo) | |
607 | +{ | |
581 | 608 | var campoInstituicao = document.getElementById('ref_cod_instituicao').value; |
582 | 609 | var campoFuncao = document.getElementById(id_campo); |
583 | 610 | campoFuncao.length = 1; |
... | ... | @@ -598,7 +625,8 @@ function getFuncao(id_campo) { |
598 | 625 | * Parse de resultado da chamada Ajax de getFuncao(). Adiciona cada item |
599 | 626 | * retornado como option do select |
600 | 627 | */ |
601 | -function atualizaLstFuncao(xml) { | |
628 | +function atualizaLstFuncao(xml) | |
629 | +{ | |
602 | 630 | var campoFuncao = document.getElementById(arguments[1]); |
603 | 631 | |
604 | 632 | campoFuncao.length = 1; |
... | ... | @@ -628,7 +656,8 @@ function atualizaLstFuncao(xml) { |
628 | 656 | * |
629 | 657 | * É um toggle on/off |
630 | 658 | */ |
631 | -function funcaoChange(campo) { | |
659 | +function funcaoChange(campo) | |
660 | +{ | |
632 | 661 | var valor = campo.value.split("-"); |
633 | 662 | var id = /[0-9]+/.exec(campo.id)[0]; |
634 | 663 | var professor = (valor[1] == true); |
... | ... | @@ -711,7 +740,8 @@ function getArrayHora(hora) { |
711 | 740 | return array_h; |
712 | 741 | } |
713 | 742 | |
714 | -function acao2() { | |
743 | +function acao2() | |
744 | +{ | |
715 | 745 | var total_horas_alocadas = getArrayHora(document.getElementById('total_horas_alocadas').value); |
716 | 746 | var carga_horaria = (document.getElementById('carga_horaria').value).replace(',', '.'); |
717 | 747 | |
... | ... | @@ -730,19 +760,22 @@ if (document.getElementById('total_horas_alocadas')) { |
730 | 760 | } |
731 | 761 | |
732 | 762 | |
733 | -function popless() { | |
763 | +function popless() | |
764 | +{ | |
734 | 765 | var campoInstituicao = document.getElementById('ref_cod_instituicao').value; |
735 | 766 | var campoServidor = document.getElementById('cod_servidor').value; |
736 | 767 | pesquisa_valores_popless1('educar_servidor_disciplina_lst.php?ref_cod_servidor='+campoServidor+'&ref_cod_instituicao='+campoInstituicao, ''); |
737 | 768 | } |
738 | 769 | |
739 | -function popCurso() { | |
770 | +function popCurso() | |
771 | +{ | |
740 | 772 | var campoInstituicao = document.getElementById('ref_cod_instituicao').value; |
741 | 773 | var campoServidor = document.getElementById('cod_servidor').value; |
742 | 774 | pesquisa_valores_popless('educar_servidor_curso_lst.php?ref_cod_servidor='+campoServidor+'&ref_cod_instituicao='+campoInstituicao, ''); |
743 | 775 | } |
744 | 776 | |
745 | -function pesquisa_valores_popless1(caminho, campo) { | |
777 | +function pesquisa_valores_popless1(caminho, campo) | |
778 | +{ | |
746 | 779 | new_id = DOM_divs.length; |
747 | 780 | div = 'div_dinamico_' + new_id; |
748 | 781 | if (caminho.indexOf('?') == -1) { | ... | ... |
ieducar/intranet/educar_servidor_det.php
1 | 1 | <?php |
2 | 2 | |
3 | -/* | |
3 | +/** | |
4 | 4 | * i-Educar - Sistema de gestão escolar |
5 | 5 | * |
6 | 6 | * Copyright (C) 2006 Prefeitura Municipal de Itajaí |
... | ... | @@ -19,45 +19,57 @@ |
19 | 19 | * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto |
20 | 20 | * com este programa; se não, escreva para a Free Software Foundation, Inc., no |
21 | 21 | * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. |
22 | - */ | |
23 | - | |
24 | -/** | |
25 | - * Mostra detalhes do cadastro de um servidor junto com ações de cadastro | |
26 | 22 | * |
27 | - * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
28 | - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL | |
29 | - * @package Core | |
30 | - * @subpackage Servidor | |
31 | - * @since Disponível desde a versão 1.0.0 | |
32 | - * @version $Id$ | |
23 | + * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
24 | + * @category i-Educar | |
25 | + * @license @@license@@ | |
26 | + * @package iEd_Pmieducar | |
27 | + * @since Arquivo disponível desde a versão 1.0.0 | |
28 | + * @version $Id$ | |
33 | 29 | */ |
34 | 30 | |
35 | 31 | require_once 'include/clsBase.inc.php'; |
36 | 32 | require_once 'include/clsDetalhe.inc.php'; |
37 | 33 | require_once 'include/clsBanco.inc.php'; |
38 | 34 | require_once 'include/pmieducar/geral.inc.php'; |
35 | +require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php'; | |
39 | 36 | |
40 | - | |
37 | +/** | |
38 | + * clsIndexBase class. | |
39 | + * | |
40 | + * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
41 | + * @category i-Educar | |
42 | + * @license @@license@@ | |
43 | + * @package iEd_Pmieducar | |
44 | + * @since Classe disponível desde a versão 1.0.0 | |
45 | + * @version @@package_version@@ | |
46 | + */ | |
41 | 47 | class clsIndexBase extends clsBase { |
42 | - public function Formular() { | |
48 | + function Formular() | |
49 | + { | |
43 | 50 | $this->SetTitulo($this->_instituicao . ' i-Educar - Servidor'); |
44 | - $this->processoAp = '635'; | |
51 | + $this->processoAp = 635; | |
45 | 52 | } |
46 | 53 | } |
47 | 54 | |
48 | - | |
49 | -class indice extends clsDetalhe { | |
50 | - | |
51 | - /** | |
52 | - * Título da página | |
53 | - * @var string | |
54 | - */ | |
55 | - public $titulo; | |
55 | +/** | |
56 | + * indice class. | |
57 | + * | |
58 | + * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
59 | + * @category i-Educar | |
60 | + * @license @@license@@ | |
61 | + * @package iEd_Pmieducar | |
62 | + * @since Classe disponível desde a versão 1.0.0 | |
63 | + * @version @@package_version@@ | |
64 | + */ | |
65 | +class indice extends clsDetalhe | |
66 | +{ | |
67 | + var $titulo; | |
56 | 68 | |
57 | 69 | /** |
58 | 70 | * Atributos de dados |
59 | 71 | */ |
60 | - public | |
72 | + var | |
61 | 73 | $cod_servidor = NULL, |
62 | 74 | $ref_cod_deficiencia = NULL, |
63 | 75 | $ref_idesco = NULL, |
... | ... | @@ -69,23 +81,25 @@ class indice extends clsDetalhe { |
69 | 81 | $ref_cod_instituicao = NULL, |
70 | 82 | $alocacao_array = array(); |
71 | 83 | |
72 | - | |
73 | - | |
74 | 84 | /** |
75 | 85 | * Implementação do método Gerar() |
76 | 86 | */ |
77 | - public function Gerar() { | |
87 | + function Gerar() | |
88 | + { | |
78 | 89 | session_start(); |
79 | 90 | $this->pessoa_logada = $_SESSION['id_pessoa']; |
80 | 91 | session_write_close(); |
81 | 92 | |
82 | 93 | $this->titulo = 'Servidor - Detalhe'; |
83 | - $this->addBanner('imagens/nvp_top_intranet.jpg', 'imagens/nvp_vert_intranet.jpg', 'Intranet'); | |
94 | + $this->addBanner('imagens/nvp_top_intranet.jpg', 'imagens/nvp_vert_intranet.jpg', | |
95 | + 'Intranet'); | |
96 | + | |
97 | + $this->cod_servidor = $_GET['cod_servidor']; | |
98 | + $this->ref_cod_instituicao = $_GET['ref_cod_instituicao']; | |
84 | 99 | |
85 | - $this->cod_servidor = $_GET["cod_servidor"]; | |
86 | - $this->ref_cod_instituicao = $_GET["ref_cod_instituicao"]; | |
100 | + $tmp_obj = new clsPmieducarServidor($this->cod_servidor, NULL, NULL, NULL, | |
101 | + NULL, NULL, NULL, $this->ref_cod_instituicao); | |
87 | 102 | |
88 | - $tmp_obj = new clsPmieducarServidor( $this->cod_servidor,null,null,null,null,null,null,$this->ref_cod_instituicao ); | |
89 | 103 | $registro = $tmp_obj->detalhe(); |
90 | 104 | |
91 | 105 | if (!$registro) { |
... | ... | @@ -126,7 +140,7 @@ class indice extends clsDetalhe { |
126 | 140 | $obj = new clsPmieducarServidorAlocacao(); |
127 | 141 | $obj->setOrderby('periodo, carga_horaria'); |
128 | 142 | $lista = $obj->lista(NULL, $this->ref_cod_instituicao, NULL, NULL, NULL, |
129 | - $this->cod_servidor, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ,1); | |
143 | + $this->cod_servidor, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1); | |
130 | 144 | |
131 | 145 | if ($lista) { |
132 | 146 | // Passa todos os valores do registro para atributos do objeto |
... | ... | @@ -149,7 +163,7 @@ class indice extends clsDetalhe { |
149 | 163 | } |
150 | 164 | |
151 | 165 | if ($registro['matricula']) { |
152 | - $this->addDetalhe(array('Matrícula', $registro['matricula'])); | |
166 | + $this->addDetalhe(array('Matrícula', $registro['matricula'])); | |
153 | 167 | } |
154 | 168 | |
155 | 169 | if ($registro['nome']) { |
... | ... | @@ -157,11 +171,11 @@ class indice extends clsDetalhe { |
157 | 171 | } |
158 | 172 | |
159 | 173 | if ($registro['ref_cod_instituicao']) { |
160 | - $this->addDetalhe( array( "Instituição", $registro['ref_cod_instituicao'])); | |
174 | + $this->addDetalhe( array( "Instituição", $registro['ref_cod_instituicao'])); | |
161 | 175 | } |
162 | 176 | |
163 | 177 | if ($registro['ref_cod_deficiencia']) { |
164 | - $this->addDetalhe(array('Deficiéncia', $registro['ref_cod_deficiencia'])); | |
178 | + $this->addDetalhe(array('Deficiência', $registro['ref_cod_deficiencia'])); | |
165 | 179 | } |
166 | 180 | |
167 | 181 | if( $registro['ref_idesco']) { |
... | ... | @@ -176,7 +190,7 @@ class indice extends clsDetalhe { |
176 | 190 | } |
177 | 191 | |
178 | 192 | if ($registro['ref_cod_funcao']) { |
179 | - $this->addDetalhe(array('Função', $registro['ref_cod_funcao'])); | |
193 | + $this->addDetalhe(array('Função', $registro['ref_cod_funcao'])); | |
180 | 194 | } |
181 | 195 | |
182 | 196 | $obj_funcao = new clsPmieducarServidorFuncao(); |
... | ... | @@ -186,10 +200,10 @@ class indice extends clsDetalhe { |
186 | 200 | $tabela .= " |
187 | 201 | <table cellspacing='0' cellpadding='0' border='0'> |
188 | 202 | <tr bgcolor='#A1B3BD' align='center'> |
189 | - <td width='150'>Função</td> | |
203 | + <td width='150'>Função</td> | |
190 | 204 | </tr>"; |
191 | 205 | |
192 | - $class = "formlttd"; | |
206 | + $class = 'formlttd'; | |
193 | 207 | |
194 | 208 | $tab_disc = NULL; |
195 | 209 | |
... | ... | @@ -203,16 +217,16 @@ class indice extends clsDetalhe { |
203 | 217 | $class2 = $class2 == "formlttd" ? "formmdtd" : "formlttd" ; |
204 | 218 | $tab_disc .= " |
205 | 219 | <tr> |
206 | - <td bgcolor='#A1B3BD' align='center'>Disciplinas</td> | |
220 | + <td bgcolor='#A1B3BD' align='center'>Componentes Curriculares</td> | |
207 | 221 | </tr>"; |
208 | 222 | |
223 | + $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper(); | |
209 | 224 | foreach ($lst_disciplina_servidor as $disciplina) { |
210 | - $obj_disciplina = new clsPmieducarDisciplina($disciplina['ref_cod_disciplina']); | |
211 | - $det_disciplina = $obj_disciplina->detalhe(); | |
225 | + $componente = $componenteMapper->find($disciplina['ref_cod_disciplina']); | |
212 | 226 | |
213 | 227 | $tab_disc .= " |
214 | 228 | <tr class='$class2' align='center'> |
215 | - <td align='left'>{$det_disciplina['nm_disciplina']}</td> | |
229 | + <td align='left'>{$componente->nome}</td> | |
216 | 230 | </tr>"; |
217 | 231 | |
218 | 232 | $class2 = $class2 == "formlttd" ? "formmdtd" : "formlttd" ; |
... | ... | @@ -225,7 +239,7 @@ class indice extends clsDetalhe { |
225 | 239 | $lst_servidor_curso = $obj_servidor_curso->lista(NULL, |
226 | 240 | $this->ref_cod_instituicao, $this->cod_servidor); |
227 | 241 | |
228 | - if($lst_servidor_curso) { | |
242 | + if ($lst_servidor_curso) { | |
229 | 243 | $tab_curso .= "<table cellspacing='0' cellpadding='0' width='200' border='0' style='border:1px dotted #000000'>"; |
230 | 244 | |
231 | 245 | $class2 = $class2 == "formlttd" ? "formmdtd" : "formlttd" ; |
... | ... | @@ -279,7 +293,7 @@ class indice extends clsDetalhe { |
279 | 293 | } |
280 | 294 | |
281 | 295 | $tabela .= "</table>"; |
282 | - $this->addDetalhe(array('Função', | |
296 | + $this->addDetalhe(array('Função', | |
283 | 297 | "<a href='javascript:trocaDisplay(\"det_f\");' >Mostrar detalhe</a><div id='det_f' name='det_f' style='display:none;'>".$tabela."</div>")); |
284 | 298 | } |
285 | 299 | |
... | ... | @@ -293,25 +307,25 @@ class indice extends clsDetalhe { |
293 | 307 | $horas = (int)$cargaHoraria; |
294 | 308 | $minutos = round(($cargaHoraria - $horas) * 60); |
295 | 309 | $cargaHoraria = sprintf('%02d:%02d', $horas, $minutos); |
296 | - $this->addDetalhe(array('Carga Horária', $cargaHoraria)); | |
310 | + $this->addDetalhe(array('Carga Horária', $cargaHoraria)); | |
297 | 311 | } |
298 | 312 | |
299 | 313 | $dias_da_semana = array( |
300 | 314 | '' => 'Selecione', |
301 | 315 | 1 => 'Domingo', |
302 | 316 | 2 => 'Segunda', |
303 | - 3 => 'Terça', | |
317 | + 3 => 'Terça', | |
304 | 318 | 4 => 'Quarta', |
305 | 319 | 5 => 'Quinta', |
306 | 320 | 6 => 'Sexta', |
307 | - 7 => 'Sábado'); | |
321 | + 7 => 'Sábado'); | |
308 | 322 | |
309 | 323 | if ($this->alocacao_array) { |
310 | 324 | $tabela .= " |
311 | 325 | <table cellspacing='0' cellpadding='0' border='0'> |
312 | 326 | <tr bgcolor='#A1B3BD' align='center'> |
313 | - <td width='150'>Carga Horaria</td> | |
314 | - <td width='80'>Periodo</td> | |
327 | + <td width='150'>Carga Horária</td> | |
328 | + <td width='80'>Período</td> | |
315 | 329 | <td width='150'>Escola</td> |
316 | 330 | </tr>"; |
317 | 331 | |
... | ... | @@ -341,7 +355,7 @@ class indice extends clsDetalhe { |
341 | 355 | |
342 | 356 | $tabela .= "</table>"; |
343 | 357 | |
344 | - $this->addDetalhe(array('Horários de trabalho', | |
358 | + $this->addDetalhe(array('Horários de trabalho', | |
345 | 359 | "<a href='javascript:trocaDisplay(\"det_pree\");' >Mostrar detalhe</a><div id='det_pree' name='det_pree' style='display:none;'>".$tabela."</div>")); |
346 | 360 | } |
347 | 361 | |
... | ... | @@ -357,10 +371,10 @@ class indice extends clsDetalhe { |
357 | 371 | $this->array_botao = array(); |
358 | 372 | $this->array_botao_url_script = array(); |
359 | 373 | |
360 | - $this->array_botao[] = 'Avaliação de Desempenho'; | |
374 | + $this->array_botao[] = 'Avaliação de Desempenho'; | |
361 | 375 | $this->array_botao_url_script[] = "go(\"educar_avaliacao_desempenho_lst.php?{$get_padrao}\");"; |
362 | 376 | |
363 | - $this->array_botao[] = 'Formação'; | |
377 | + $this->array_botao[] = 'Formação'; | |
364 | 378 | $this->array_botao_url_script[] = "go(\"educar_servidor_formacao_lst.php?{$get_padrao}\");"; |
365 | 379 | |
366 | 380 | $this->array_botao[] = 'Faltas/Atrasos'; |
... | ... | @@ -378,7 +392,7 @@ class indice extends clsDetalhe { |
378 | 392 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1); |
379 | 393 | |
380 | 394 | if ($lista) { |
381 | - $this->array_botao[] = 'Substituir Horário Servidor'; | |
395 | + $this->array_botao[] = 'Substituir Horário Servidor'; | |
382 | 396 | $this->array_botao_url_script[] = "go(\"educar_servidor_substituicao_cad.php?{$get_padrao}\");"; |
383 | 397 | } |
384 | 398 | |
... | ... | @@ -412,14 +426,15 @@ $pagina->addForm($miolo); |
412 | 426 | // Gera o HTML |
413 | 427 | $pagina->MakeAll(); |
414 | 428 | ?> |
415 | - | |
416 | 429 | <script type="text/javascript"> |
417 | -function trocaDisplay(id) { | |
430 | +function trocaDisplay(id) | |
431 | +{ | |
418 | 432 | var element = document.getElementById(id); |
419 | - element.style.display = (element.style.display == "none") ? "inline" : "none"; | |
433 | + element.style.display = (element.style.display == 'none') ? 'inline' : 'none'; | |
420 | 434 | } |
421 | 435 | |
422 | -function popless() { | |
436 | +function popless() | |
437 | +{ | |
423 | 438 | var campoServidor = <?=$_GET["cod_servidor"];?>; |
424 | 439 | var campoInstituicao = <?=$_GET["ref_cod_instituicao"];?>; |
425 | 440 | pesquisa_valores_popless('educar_servidor_nivel_cad.php?ref_cod_servidor='+campoServidor+'&ref_cod_instituicao='+campoInstituicao, ''); | ... | ... |
ieducar/intranet/educar_servidor_disciplina_lst.php
... | ... | @@ -32,6 +32,8 @@ require_once 'include/clsBase.inc.php'; |
32 | 32 | require_once 'include/clsCadastro.inc.php'; |
33 | 33 | require_once 'include/clsBanco.inc.php'; |
34 | 34 | require_once 'include/pmieducar/geral.inc.php'; |
35 | +require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php'; | |
36 | +require_once 'ComponenteCurricular/Model/AnoEscolarDataMapper.php'; | |
35 | 37 | |
36 | 38 | /** |
37 | 39 | * clsIndexBase class. |
... | ... | @@ -48,9 +50,9 @@ class clsIndexBase extends clsBase |
48 | 50 | function Formular() |
49 | 51 | { |
50 | 52 | $this->SetTitulo($this->_instituicao . ' i-Educar - Servidor Disciplina'); |
51 | - $this->processoAp = 0; | |
52 | - $this->renderBanner = FALSE; | |
53 | - $this->renderMenu = FALSE; | |
53 | + $this->processoAp = 0; | |
54 | + $this->renderBanner = FALSE; | |
55 | + $this->renderMenu = FALSE; | |
54 | 56 | $this->renderMenuSuspenso = FALSE; |
55 | 57 | } |
56 | 58 | } |
... | ... | @@ -114,13 +116,14 @@ class indice extends clsCadastro |
114 | 116 | if (!$this->cursos_disciplina) { |
115 | 117 | $obj_servidor_disciplina = new clsPmieducarServidorDisciplina(); |
116 | 118 | $lst_servidor_disciplina = $obj_servidor_disciplina->lista(NULL, |
117 | - $this->ref_cod_instituicao,$this->cod_servidor); | |
119 | + $this->ref_cod_instituicao, $this->cod_servidor); | |
118 | 120 | |
119 | 121 | if ($lst_servidor_disciplina) { |
120 | 122 | foreach ($lst_servidor_disciplina as $disciplina) { |
121 | - $obj_disciplina = new clsPmieducarDisciplina($disciplina['ref_cod_disciplina']); | |
122 | - $det_disciplina = $obj_disciplina->detalhe(); | |
123 | - $this->cursos_disciplina[$det_disciplina['ref_cod_curso']][$disciplina['ref_cod_disciplina']] = $disciplina['ref_cod_disciplina']; | |
123 | + $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper(); | |
124 | + $componente = $componenteMapper->find($disciplina['ref_cod_disciplina']); | |
125 | + | |
126 | + $this->cursos_disciplina[$disciplina['ref_cod_curso']][$disciplina['ref_cod_disciplina']] = $disciplina['ref_cod_disciplina']; | |
124 | 127 | } |
125 | 128 | } |
126 | 129 | } |
... | ... | @@ -148,7 +151,7 @@ class indice extends clsCadastro |
148 | 151 | $obj_cursos->setOrderby('nm_curso'); |
149 | 152 | $lst_cursos = $obj_cursos->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
150 | 153 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
151 | - NULL, NULL, NULL,1, NULL,$this->ref_cod_instituicao); | |
154 | + NULL, NULL, NULL,1, NULL, $this->ref_cod_instituicao); | |
152 | 155 | |
153 | 156 | if ($lst_cursos) { |
154 | 157 | foreach ($lst_cursos as $curso) { |
... | ... | @@ -161,11 +164,12 @@ class indice extends clsCadastro |
161 | 164 | $lst_opcoes = array(); |
162 | 165 | $arr_valores = array(); |
163 | 166 | |
164 | - if($this->cursos_disciplina) { | |
167 | + | |
168 | + if ($this->cursos_disciplina) { | |
165 | 169 | foreach ($this->cursos_disciplina as $curso => $disciplinas) { |
166 | 170 | if ($disciplinas) { |
167 | 171 | foreach ($disciplinas as $disciplina) { |
168 | - $arr_valores[] = array($curso,$disciplina); | |
172 | + $arr_valores[] = array($curso, $disciplina); | |
169 | 173 | } |
170 | 174 | } |
171 | 175 | } |
... | ... | @@ -177,21 +181,27 @@ class indice extends clsCadastro |
177 | 181 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, $curso, |
178 | 182 | $this->ref_cod_instituicao); |
179 | 183 | |
184 | + $componenteAnoDataMapper = new ComponenteCurricular_Model_AnoEscolarDataMapper(); | |
185 | + $componentes = $componenteAnoDataMapper->findComponentePorCurso($curso); | |
186 | + | |
180 | 187 | $opcoes_disc = array(); |
181 | - foreach ($lst_disciplinas as $disciplina) { | |
182 | - $opcoes_disc[$disciplina['cod_disciplina']] = $disciplina['nm_disciplina']; | |
188 | + foreach ($componentes as $componente) { | |
189 | + $opcoes_disc[$componente->id] = $componente->nome; | |
183 | 190 | } |
184 | 191 | |
185 | - $lst_opcoes[] = array($opcoes_curso,$opcoes_disc); | |
192 | + $lst_opcoes[] = array($opcoes_curso, $opcoes_disc); | |
186 | 193 | } |
187 | 194 | } |
188 | 195 | |
189 | - $this->campoTabelaInicio('funcao', 'Disciplinas', array('Curso','Disciplina'), | |
196 | + $this->campoTabelaInicio('funcao', 'Componentes Curriculares', array('Curso', 'Componente Curricular'), | |
190 | 197 | $arr_valores, '', $lst_opcoes); |
191 | 198 | |
199 | + // Cursos | |
192 | 200 | $this->campoLista('ref_cod_curso', 'Curso', $opcoes_curso, |
193 | 201 | $this->ref_cod_curso, 'trocaCurso(this)', '', '', ''); |
194 | - $this->campoLista('ref_cod_disciplina', 'Disciplina', $opcoes, | |
202 | + | |
203 | + // Disciplinas | |
204 | + $this->campoLista('ref_cod_disciplina', 'Componente Curricular', $opcoes, | |
195 | 205 | $this->ref_cod_disciplina, '', '', '', ''); |
196 | 206 | |
197 | 207 | $this->campoTabelaFim(); | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarServidor.inc.php
... | ... | @@ -107,7 +107,7 @@ class clsPmieducarServidor |
107 | 107 | /** |
108 | 108 | * Construtor. |
109 | 109 | */ |
110 | - public function clsPmieducarServidor( | |
110 | + function clsPmieducarServidor( | |
111 | 111 | $cod_servidor = NULL, $ref_cod_deficiencia = NULL, $ref_idesco = NULL, |
112 | 112 | $carga_horaria = NULL, $data_cadastro = NULL, $data_exclusao = NULL, |
113 | 113 | $ativo = NULL, $ref_cod_instituicao = NULL, $ref_cod_subnivel = NULL) |
... | ... | @@ -408,7 +408,7 @@ class clsPmieducarServidor |
408 | 408 | * @return array|bool Array com os resultados da query SELECT ou FALSE caso |
409 | 409 | * nenhum registro tenha sido encontrado |
410 | 410 | */ |
411 | - public function lista( | |
411 | + function lista( | |
412 | 412 | $int_cod_servidor = NULL, |
413 | 413 | $int_ref_cod_deficiencia = NULL, |
414 | 414 | $int_ref_idesco = NULL, |
... | ... | @@ -551,168 +551,176 @@ class clsPmieducarServidor |
551 | 551 | |
552 | 552 | $whereAnd = " AND "; |
553 | 553 | } |
554 | + else { | |
555 | + if (is_numeric($alocacao_escola_instituicao)) { | |
556 | + $filtros .= " | |
557 | + {$whereAnd} s.cod_servidor IN | |
558 | + (SELECT a.ref_cod_servidor | |
559 | + FROM pmieducar.servidor_alocacao a | |
560 | + WHERE "; | |
554 | 561 | |
555 | - if (is_numeric($alocacao_escola_instituicao)) { | |
556 | - $filtros .= " | |
557 | - {$whereAnd} s.cod_servidor IN | |
558 | - (SELECT a.ref_cod_servidor | |
559 | - FROM pmieducar.servidor_alocacao a | |
560 | - WHERE "; | |
562 | + if (is_numeric($int_ref_cod_instituicao)) { | |
563 | + $filtros .= $whereAnd . " a.ref_ref_cod_instituicao = '{$int_ref_cod_instituicao}'"; | |
564 | + } | |
561 | 565 | |
562 | - if (is_numeric($int_ref_cod_instituicao)) { | |
563 | - $filtros .= " a.ref_ref_cod_instituicao = '{$int_ref_cod_instituicao}'"; | |
564 | - } | |
566 | + if (is_numeric($int_ref_cod_escola)) { | |
567 | + $filtros .= $whereAnd . " and ref_cod_escola = '{$int_ref_cod_escola}' "; | |
568 | + } | |
565 | 569 | |
566 | - if (is_numeric($int_ref_cod_escola)) { | |
567 | - $filtros .= " and ref_cod_escola = '{$int_ref_cod_escola}' "; | |
570 | + $filtros .= ') '; | |
568 | 571 | } |
569 | 572 | |
570 | - $filtros .= ') '; | |
571 | - } | |
573 | + if (is_array($array_horario)) { | |
574 | + $cond = "AND"; | |
575 | + if (is_numeric($int_ref_cod_instituicao)) { | |
576 | + $where .= " {$cond} a.ref_ref_cod_instituicao = '{$int_ref_cod_instituicao}' "; | |
577 | + $cond = "AND"; | |
578 | + } | |
572 | 579 | |
573 | - if (is_array($array_horario)) { | |
574 | - $cond = ""; | |
575 | - if (is_numeric($int_ref_cod_instituicao)) { | |
576 | - $where .= " {$cond} a.ref_ref_cod_instituicao = '{$int_ref_cod_instituicao}' "; | |
577 | - $cond = "AND"; | |
578 | - } | |
580 | + if (is_numeric($int_ref_cod_escola)) { | |
581 | + $where .= " {$cond} a.ref_cod_escola = '{$int_ref_cod_escola}' "; | |
582 | + $cond = "AND"; | |
583 | + } | |
579 | 584 | |
580 | - if (is_numeric($int_ref_cod_escola)) { | |
581 | - $where .= " {$cond} a.ref_cod_escola = '{$int_ref_cod_escola}' "; | |
585 | + $where .= " {$cond} a.ativo = '1'"; | |
582 | 586 | $cond = "AND"; |
583 | - } | |
584 | 587 | |
585 | - $where .= " {$cond} a.ativo = '1'"; | |
586 | - $cond = "AND"; | |
588 | + $hora_ini = explode(":", $array_horario[1]); | |
589 | + $hora_fim = explode(":", $array_horario[2]); | |
590 | + $horas = sprintf("%02d", (int) abs($hora_fim[0]) - abs($hora_ini[0])); | |
591 | + $minutos = sprintf("%02d", (int) abs($hora_fim[1]) - abs($hora_ini[1])); | |
587 | 592 | |
588 | - $hora_ini = explode(":", $array_horario[1]); | |
589 | - $hora_fim = explode(":", $array_horario[2]); | |
590 | - $horas = sprintf("%02d", (int) abs($hora_fim[0]) - abs($hora_ini[0])); | |
591 | - $minutos = sprintf("%02d", (int) abs($hora_fim[1]) - abs($hora_ini[1])); | |
593 | + // Remove qualquer AND que esteja no início da cláusula SQL | |
594 | + $wherePieces = explode(' ', trim($where)); | |
595 | + if ('AND' == $wherePieces[0]) { | |
596 | + array_shift($wherePieces); | |
597 | + $where = implode(' ', $wherePieces); | |
598 | + } | |
592 | 599 | |
593 | - if ($matutino) { | |
594 | - if (is_string($str_horario) && $str_horario == "S") { | |
595 | - // A somatória retorna nulo | |
596 | - $filtros .= " | |
597 | - {$whereAnd} s.cod_servidor IN (SELECT a.ref_cod_servidor | |
598 | - FROM pmieducar.servidor_alocacao a | |
599 | - WHERE $where | |
600 | - AND a.periodo = 1 | |
601 | - AND a.carga_horaria >= COALESCE( | |
602 | - (SELECT SUM(qhh.hora_final - qhh.hora_inicial) | |
603 | - FROM pmieducar.quadro_horario_horarios qhh | |
604 | - WHERE qhh.ref_cod_instituicao_servidor = '$int_ref_cod_instituicao' | |
605 | - AND qhh.ref_cod_escola = '$int_ref_cod_escola' | |
606 | - AND hora_inicial >= '08:00' | |
607 | - AND hora_inicial <= '12:00' | |
608 | - AND qhh.ativo = '1' | |
609 | - AND qhh.dia_semana <> '$int_dia_semana' | |
610 | - AND qhh.ref_servidor = a.ref_cod_servidor | |
611 | - GROUP BY qhh.ref_servidor) ,'00:00') + '$str_hr_mat' + COALESCE( | |
612 | - (SELECT SUM( qhha.hora_final - qhha.hora_inicial ) | |
613 | - FROM pmieducar.quadro_horario_horarios_aux qhha | |
614 | - WHERE qhha.ref_cod_instituicao_servidor = '$int_ref_cod_instituicao' | |
615 | - AND qhha.ref_cod_escola = $int_ref_cod_escola | |
600 | + if ($matutino) { | |
601 | + if (is_string($str_horario) && $str_horario == "S") { | |
602 | + // A somatória retorna nulo | |
603 | + $filtros .= " | |
604 | + {$whereAnd} s.cod_servidor IN (SELECT a.ref_cod_servidor | |
605 | + FROM pmieducar.servidor_alocacao a | |
606 | + WHERE $where | |
607 | + AND a.periodo = 1 | |
608 | + AND a.carga_horaria >= COALESCE( | |
609 | + (SELECT SUM(qhh.hora_final - qhh.hora_inicial) | |
610 | + FROM pmieducar.quadro_horario_horarios qhh | |
611 | + WHERE qhh.ref_cod_instituicao_servidor = '$int_ref_cod_instituicao' | |
612 | + AND qhh.ref_cod_escola = '$int_ref_cod_escola' | |
616 | 613 | AND hora_inicial >= '08:00' |
617 | 614 | AND hora_inicial <= '12:00' |
618 | - AND qhha.ref_servidor = a.ref_cod_servidor | |
619 | - AND identificador = '$int_identificador' | |
620 | - GROUP BY qhha.ref_servidor),'00:00'))"; | |
615 | + AND qhh.ativo = '1' | |
616 | + AND qhh.dia_semana <> '$int_dia_semana' | |
617 | + AND qhh.ref_servidor = a.ref_cod_servidor | |
618 | + GROUP BY qhh.ref_servidor) ,'00:00') + '$str_hr_mat' + COALESCE( | |
619 | + (SELECT SUM( qhha.hora_final - qhha.hora_inicial ) | |
620 | + FROM pmieducar.quadro_horario_horarios_aux qhha | |
621 | + WHERE qhha.ref_cod_instituicao_servidor = '$int_ref_cod_instituicao' | |
622 | + AND qhha.ref_cod_escola = $int_ref_cod_escola | |
623 | + AND hora_inicial >= '08:00' | |
624 | + AND hora_inicial <= '12:00' | |
625 | + AND qhha.ref_servidor = a.ref_cod_servidor | |
626 | + AND identificador = '$int_identificador' | |
627 | + GROUP BY qhha.ref_servidor),'00:00'))"; | |
628 | + } | |
629 | + else { | |
630 | + $filtros .= " | |
631 | + {$whereAnd} s.cod_servidor NOT IN (SELECT a.ref_cod_servidor | |
632 | + FROM pmieducar.servidor_alocacao a | |
633 | + WHERE $where | |
634 | + AND a.periodo = 1)"; | |
635 | + } | |
621 | 636 | } |
622 | - else { | |
623 | - $filtros .= " | |
624 | - {$whereAnd} s.cod_servidor NOT IN (SELECT a.ref_cod_servidor | |
625 | - FROM pmieducar.servidor_alocacao a | |
626 | - WHERE $where | |
627 | - AND a.periodo = 1)"; | |
637 | + | |
638 | + if ($vespertino) { | |
639 | + if (is_string($str_horario) && $str_horario == "S") { | |
640 | + $filtros .= " | |
641 | + {$whereAnd} s.cod_servidor IN | |
642 | + (SELECT a.ref_cod_servidor | |
643 | + FROM pmieducar.servidor_alocacao a | |
644 | + WHERE $where | |
645 | + AND a.periodo = 2 | |
646 | + AND a.carga_horaria >= COALESCE( | |
647 | + (SELECT SUM( qhh.hora_final - qhh.hora_inicial ) | |
648 | + FROM pmieducar.quadro_horario_horarios qhh | |
649 | + WHERE qhh.ref_cod_instituicao_servidor = '$int_ref_cod_instituicao' | |
650 | + AND qhh.ref_cod_escola = '$int_ref_cod_escola' | |
651 | + AND qhh.ativo = '1' | |
652 | + AND hora_inicial >= '12:00' | |
653 | + AND hora_inicial <= '18:00' | |
654 | + AND qhh.dia_semana <> '$int_dia_semana' | |
655 | + AND qhh.ref_servidor = a.ref_cod_servidor | |
656 | + GROUP BY qhh.ref_servidor ),'00:00') + '$str_hr_ves' + COALESCE( | |
657 | + (SELECT SUM( qhha.hora_final - qhha.hora_inicial ) | |
658 | + FROM pmieducar.quadro_horario_horarios_aux qhha | |
659 | + WHERE qhha.ref_cod_instituicao_servidor = '$int_ref_cod_instituicao' | |
660 | + AND qhha.ref_cod_escola = '$int_ref_cod_escola' | |
661 | + AND qhha.ref_servidor = a.ref_cod_servidor | |
662 | + AND hora_inicial >= '12:00' | |
663 | + AND hora_inicial <= '18:00' | |
664 | + AND identificador = '$int_identificador' | |
665 | + GROUP BY qhha.ref_servidor),'00:00') )"; | |
666 | + } | |
667 | + else { | |
668 | + $filtros .= " | |
669 | + {$whereAnd} s.cod_servidor NOT IN ( SELECT a.ref_cod_servidor | |
670 | + FROM pmieducar.servidor_alocacao a | |
671 | + WHERE $where | |
672 | + AND a.periodo = 2 )"; | |
673 | + } | |
628 | 674 | } |
629 | - } | |
630 | 675 | |
631 | - if ($vespertino) { | |
632 | - if (is_string($str_horario) && $str_horario == "S") { | |
676 | + if ($noturno) { | |
677 | + if (is_string($str_horario) && $str_horario == "S") { | |
633 | 678 | $filtros .= " |
634 | - {$whereAnd} s.cod_servidor IN | |
635 | - (SELECT a.ref_cod_servidor | |
679 | + {$whereAnd} s.cod_servidor IN ( SELECT a.ref_cod_servidor | |
636 | 680 | FROM pmieducar.servidor_alocacao a |
637 | 681 | WHERE $where |
638 | - AND a.periodo = 2 | |
682 | + AND a.periodo = 3 | |
639 | 683 | AND a.carga_horaria >= COALESCE( |
640 | - (SELECT SUM( qhh.hora_final - qhh.hora_inicial ) | |
684 | + (SELECT SUM(qhh.hora_final - qhh.hora_inicial) | |
641 | 685 | FROM pmieducar.quadro_horario_horarios qhh |
642 | 686 | WHERE qhh.ref_cod_instituicao_servidor = '$int_ref_cod_instituicao' |
643 | 687 | AND qhh.ref_cod_escola = '$int_ref_cod_escola' |
644 | 688 | AND qhh.ativo = '1' |
645 | - AND hora_inicial >= '12:00' | |
646 | - AND hora_inicial <= '18:00' | |
689 | + AND hora_inicial >= '18:00' | |
690 | + AND hora_inicial <= '23:00' | |
647 | 691 | AND qhh.dia_semana <> '$int_dia_semana' |
648 | - AND qhh.ref_servidor = a.ref_cod_servidor | |
649 | - GROUP BY qhh.ref_servidor ),'00:00') + '$str_hr_ves' + COALESCE( | |
650 | - (SELECT SUM( qhha.hora_final - qhha.hora_inicial ) | |
692 | + GROUP BY qhh.ref_servidor ),'00:00') + '$str_hr_not' + COALESCE( | |
693 | + (SELECT SUM( qhha.hora_final - qhha.hora_inicial ) | |
651 | 694 | FROM pmieducar.quadro_horario_horarios_aux qhha |
652 | 695 | WHERE qhha.ref_cod_instituicao_servidor = '$int_ref_cod_instituicao' |
653 | 696 | AND qhha.ref_cod_escola = '$int_ref_cod_escola' |
654 | 697 | AND qhha.ref_servidor = a.ref_cod_servidor |
655 | - AND hora_inicial >= '12:00' | |
656 | - AND hora_inicial <= '18:00' | |
698 | + AND hora_inicial >= '18:00' | |
699 | + AND hora_inicial <= '23:00' | |
657 | 700 | AND identificador = '$int_identificador' |
658 | 701 | GROUP BY qhha.ref_servidor),'00:00') )"; |
702 | + } | |
703 | + else { | |
704 | + $filtros .= " | |
705 | + {$whereAnd} s.cod_servidor NOT IN ( | |
706 | + SELECT a.ref_cod_servidor | |
707 | + FROM pmieducar.servidor_alocacao a | |
708 | + WHERE $where | |
709 | + AND a.periodo = 3 )"; | |
710 | + } | |
659 | 711 | } |
660 | - else { | |
661 | - $filtros .= " | |
662 | - {$whereAnd} s.cod_servidor NOT IN ( SELECT a.ref_cod_servidor | |
663 | - FROM pmieducar.servidor_alocacao a | |
664 | - WHERE $where | |
665 | - AND a.periodo = 2 )"; | |
666 | - } | |
667 | - } | |
668 | 712 | |
669 | - if ($noturno) { | |
670 | 713 | if (is_string($str_horario) && $str_horario == "S") { |
671 | - $filtros .= " | |
672 | - {$whereAnd} s.cod_servidor IN ( SELECT a.ref_cod_servidor | |
673 | - FROM pmieducar.servidor_alocacao a | |
674 | - WHERE $where | |
675 | - AND a.periodo = 3 | |
676 | - AND a.carga_horaria >= COALESCE( | |
677 | - (SELECT SUM(qhh.hora_final - qhh.hora_inicial) | |
678 | - FROM pmieducar.quadro_horario_horarios qhh | |
679 | - WHERE qhh.ref_cod_instituicao_servidor = '$int_ref_cod_instituicao' | |
680 | - AND qhh.ref_cod_escola = '$int_ref_cod_escola' | |
681 | - AND qhh.ativo = '1' | |
682 | - AND hora_inicial >= '18:00' | |
683 | - AND hora_inicial <= '23:00' | |
684 | - AND qhh.dia_semana <> '$int_dia_semana' | |
685 | - GROUP BY qhh.ref_servidor ),'00:00') + '$str_hr_not' + COALESCE( | |
686 | - (SELECT SUM( qhha.hora_final - qhha.hora_inicial ) | |
687 | - FROM pmieducar.quadro_horario_horarios_aux qhha | |
688 | - WHERE qhha.ref_cod_instituicao_servidor = '$int_ref_cod_instituicao' | |
689 | - AND qhha.ref_cod_escola = '$int_ref_cod_escola' | |
690 | - AND qhha.ref_servidor = a.ref_cod_servidor | |
691 | - AND hora_inicial >= '18:00' | |
692 | - AND hora_inicial <= '23:00' | |
693 | - AND identificador = '$int_identificador' | |
694 | - GROUP BY qhha.ref_servidor),'00:00') )"; | |
695 | 714 | } |
696 | 715 | else { |
697 | 716 | $filtros .= " |
698 | - {$whereAnd} s.cod_servidor NOT IN ( | |
699 | - SELECT a.ref_cod_servidor | |
700 | - FROM pmieducar.servidor_alocacao a | |
701 | - WHERE $where | |
702 | - AND a.periodo = 3 )"; | |
717 | + {$whereAnd} s.carga_horaria >= COALESCE( | |
718 | + (SELECT sum(hora_final - hora_inicial) + '" . abs($horas) . ":" . abs($minutos)."' | |
719 | + FROM pmieducar.servidor_alocacao sa | |
720 | + WHERE sa.ref_cod_servidor = s.cod_servidor | |
721 | + AND sa.ref_ref_cod_instituicao ='{$int_ref_cod_instituicao}'),'00:00') "; | |
703 | 722 | } |
704 | 723 | } |
705 | - | |
706 | - if (is_string($str_horario) && $str_horario == "S") { | |
707 | - } | |
708 | - else { | |
709 | - $filtros .= " | |
710 | - {$whereAnd} s.carga_horaria >= COALESCE( | |
711 | - (SELECT sum(hora_final - hora_inicial) + '" . abs($horas) . ":" . abs($minutos)."' | |
712 | - FROM pmieducar.servidor_alocacao sa | |
713 | - WHERE sa.ref_cod_servidor = s.cod_servidor | |
714 | - AND sa.ref_ref_cod_instituicao ='{$int_ref_cod_instituicao}'),'00:00') "; | |
715 | - } | |
716 | 724 | } |
717 | 725 | |
718 | 726 | if ((is_array($array_horario) && $str_not_in_servidor) || (is_string($str_tipo) && $str_not_in_servidor)) { |
... | ... | @@ -723,42 +731,53 @@ class clsPmieducarServidor |
723 | 731 | $obj_curso = new clsPmieducarCurso($int_ref_cod_curso); |
724 | 732 | $det_curso = $obj_curso->detalhe(); |
725 | 733 | |
726 | - if ($det_curso['falta_ch_globalizada']) { | |
727 | - // Busca professores independentemente da disciplina, somente verifica | |
728 | - // se é professor e se ministra a disciplina para o curso | |
729 | - $filtros .= " | |
730 | - {$whereAnd} EXISTS | |
731 | - (SELECT 1 | |
732 | - FROM pmieducar.servidor_curso_ministra scm | |
733 | - WHERE scm.ref_cod_curso = $int_ref_cod_curso AND | |
734 | - scm.ref_ref_cod_instituicao = s.ref_cod_instituicao AND | |
735 | - s.cod_servidor = scm.ref_cod_servidor)"; | |
736 | - $whereAnd = " AND "; | |
737 | - } | |
738 | - else { | |
739 | - // Verifica se o professor está habilitado para ministrar a disciplina | |
740 | - if (is_numeric($int_ref_cod_disciplina)) { | |
741 | - $filtros .= " | |
742 | - {$whereAnd} EXISTS | |
743 | - (SELECT 1 | |
744 | - FROM pmieducar.servidor_disciplina sd | |
745 | - WHERE sd.ref_cod_disciplina = $int_ref_cod_disciplina AND | |
746 | - sd.ref_ref_cod_instituicao = s.ref_cod_instituicao AND | |
747 | - s.cod_servidor = sd.ref_cod_servidor)"; | |
748 | - $whereAnd = " AND "; | |
749 | - } | |
750 | - } | |
751 | - | |
752 | 734 | // Seleciona apenas servidor cuja uma de suas funções seja a de professor |
735 | + // @todo Extract method | |
753 | 736 | if ($boo_professor) { |
737 | + /* | |
738 | + * Caso os códigos de disciplina e de curso não sejam informado, mas o de | |
739 | + * servidor para não buscar sim, seleciona as disciplinas deste servidor | |
740 | + * com o qual o professor candidato terá que lecionar para ser retornado | |
741 | + * na query. | |
742 | + */ | |
743 | + if (!$int_ref_cod_disciplina && !$int_ref_cod_curso) { | |
744 | + $servidorDisciplina = new clsPmieducarServidorDisciplina(); | |
745 | + $disciplinas = $servidorDisciplina->lista(NULL, NULL, $str_not_in_servidor); | |
746 | + $servidorDisciplinas = array(); | |
747 | + | |
748 | + if (is_array($disciplinas)) { | |
749 | + foreach ($disciplinas as $disciplina) { | |
750 | + $servidorDisciplinas[] = sprintf( | |
751 | + '(sd.ref_cod_disciplina = %d AND sd.ref_cod_curso = %d)', | |
752 | + $disciplina['ref_cod_disciplina'], $disciplina['ref_cod_curso']); | |
753 | + } | |
754 | + | |
755 | + $servidorDisciplinas = sprintf('AND (%s)', implode(' AND ', $servidorDisciplinas)); | |
756 | + } | |
757 | + else { | |
758 | + $servidorDisciplinas = ''; | |
759 | + } | |
760 | + } | |
761 | + else { | |
762 | + $servidorDisciplinas = sprintf( | |
763 | + 'AND sd.ref_cod_disciplina = %d AND sd.ref_cod_curso = %d', | |
764 | + $int_ref_cod_disciplina, $int_ref_cod_curso); | |
765 | + } | |
766 | + | |
754 | 767 | $filtros .= " |
755 | 768 | {$whereAnd} EXISTS |
756 | - (SELECT 1 | |
757 | - FROM pmieducar.servidor_funcao sf, pmieducar.funcao f | |
758 | - WHERE f.cod_funcao = sf.ref_cod_funcao AND | |
769 | + (SELECT | |
770 | + 1 | |
771 | + FROM | |
772 | + pmieducar.servidor_funcao sf, pmieducar.funcao f, pmieducar.servidor_disciplina sd | |
773 | + WHERE | |
774 | + f.cod_funcao = sf.ref_cod_funcao AND | |
759 | 775 | f.professor = 1 AND |
760 | 776 | sf.ref_ref_cod_instituicao = s.ref_cod_instituicao AND |
761 | - s.cod_servidor = sf.ref_cod_servidor)"; | |
777 | + s.cod_servidor = sf.ref_cod_servidor AND | |
778 | + s.cod_servidor = sd.ref_cod_servidor AND | |
779 | + s.ref_cod_instituicao = sd.ref_ref_cod_instituicao | |
780 | + {$servidorDisciplinas})"; | |
762 | 781 | $whereAnd = " AND "; |
763 | 782 | } |
764 | 783 | |
... | ... | @@ -796,9 +815,6 @@ class clsPmieducarServidor |
796 | 815 | $sql = "SELECT {$this->_campos_lista2} FROM {$this->_schema}servidor s{$tabela_compl} {$filtros}" . |
797 | 816 | $this->getOrderby() . $this->getLimite(); |
798 | 817 | |
799 | - #print '<pre>' . $sql; | |
800 | - #print PHP_EOL . PHP_EOL . "SELECT COUNT(0) FROM {$this->_schema}servidor s{$tabela_compl} {$filtros}"; | |
801 | - #exit(); | |
802 | 818 | $this->_total = $db->CampoUnico("SELECT COUNT(0) FROM {$this->_schema}servidor s{$tabela_compl} {$filtros}"); |
803 | 819 | |
804 | 820 | // Executa a query |
... | ... | @@ -891,7 +907,7 @@ class clsPmieducarServidor |
891 | 907 | * função. O array interno contém o nome da função e se a função desempenha |
892 | 908 | * um papel de professor |
893 | 909 | */ |
894 | - public function getServidorFuncoes() | |
910 | + function getServidorFuncoes() | |
895 | 911 | { |
896 | 912 | $db = new clsBanco(); |
897 | 913 | |
... | ... | @@ -928,7 +944,7 @@ class clsPmieducarServidor |
928 | 944 | * @return array|bool Array com códigos das disciplinas ordenados ou FALSE |
929 | 945 | * caso o servidor não tenha disciplinas |
930 | 946 | */ |
931 | - public function getServidorDisciplinasQuadroHorarioHorarios($codServidor = NULL, | |
947 | + function getServidorDisciplinasQuadroHorarioHorarios($codServidor = NULL, | |
932 | 948 | $codInstituicao = NULL) |
933 | 949 | { |
934 | 950 | |
... | ... | @@ -970,7 +986,7 @@ class clsPmieducarServidor |
970 | 986 | * @return array|bool Array com códigos das disciplinas ordenados ou FALSE |
971 | 987 | * caso o servidor não tenha disciplinas |
972 | 988 | */ |
973 | - public function getServidorDisciplinas($codServidor = NULL, | |
989 | + function getServidorDisciplinas($codServidor = NULL, | |
974 | 990 | $codInstituicao = NULL) |
975 | 991 | { |
976 | 992 | $codServidor = $codServidor != NULL ? $codServidor : $this->cod_servidor; |
... | ... | @@ -1015,7 +1031,7 @@ class clsPmieducarServidor |
1015 | 1031 | * @since Método disponível desde a versão 1.0.2 |
1016 | 1032 | * @return bool TRUE caso o servidor desempenhe a função de professor |
1017 | 1033 | */ |
1018 | - public function isProfessor() | |
1034 | + function isProfessor() | |
1019 | 1035 | { |
1020 | 1036 | $funcoes = $this->getServidorFuncoes(); |
1021 | 1037 | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarServidorDisciplina.inc.php
... | ... | @@ -29,6 +29,7 @@ |
29 | 29 | */ |
30 | 30 | |
31 | 31 | require_once 'include/pmieducar/geral.inc.php'; |
32 | +require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php'; | |
32 | 33 | |
33 | 34 | /** |
34 | 35 | * clsPmieducarServidorDisciplina class. |
... | ... | @@ -45,6 +46,7 @@ class clsPmieducarServidorDisciplina |
45 | 46 | var $ref_cod_disciplina; |
46 | 47 | var $ref_ref_cod_instituicao; |
47 | 48 | var $ref_cod_servidor; |
49 | + var $ref_cod_curso; | |
48 | 50 | |
49 | 51 | /** |
50 | 52 | * Armazena o total de resultados obtidos na última chamada ao método lista(). |
... | ... | @@ -99,55 +101,41 @@ class clsPmieducarServidorDisciplina |
99 | 101 | /** |
100 | 102 | * Construtor. |
101 | 103 | */ |
102 | - function clsPmieducarServidorDisciplina( $ref_cod_disciplina = null, $ref_ref_cod_instituicao = null, $ref_cod_servidor = null ) | |
104 | + function clsPmieducarServidorDisciplina($ref_cod_disciplina = NULL, | |
105 | + $ref_ref_cod_instituicao = NULL, $ref_cod_servidor = NULL, $ref_cod_curso = NULL) | |
103 | 106 | { |
104 | 107 | $db = new clsBanco(); |
105 | 108 | $this->_schema = 'pmieducar.'; |
106 | 109 | $this->_tabela = $this->_schema . 'servidor_disciplina'; |
107 | 110 | |
108 | - $this->_campos_lista = $this->_todos_campos = 'ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor'; | |
111 | + $this->_campos_lista = $this->_todos_campos = 'ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor, ref_cod_curso'; | |
109 | 112 | |
110 | 113 | if (is_numeric($ref_cod_servidor) && is_numeric($ref_ref_cod_instituicao)) { |
111 | - if (class_exists('clsPmieducarServidor')) { | |
112 | - $tmp_obj = new clsPmieducarServidor($ref_cod_servidor, NULL, NULL, NULL, | |
113 | - NULL, NULL, NULL, $ref_ref_cod_instituicao); | |
114 | - | |
115 | - if (method_exists($tmp_obj, 'existe')) { | |
116 | - if ($tmp_obj->existe()) { | |
117 | - $this->ref_cod_servidor = $ref_cod_servidor; | |
118 | - $this->ref_ref_cod_instituicao = $ref_ref_cod_instituicao; | |
119 | - } | |
120 | - } | |
121 | - elseif (method_exists($tmp_obj, 'detalhe')) { | |
122 | - if ($tmp_obj->detalhe()) { | |
123 | - $this->ref_cod_servidor = $ref_cod_servidor; | |
124 | - $this->ref_ref_cod_instituicao = $ref_ref_cod_instituicao; | |
125 | - } | |
126 | - } | |
127 | - } | |
128 | - elseif ($db->CampoUnico("SELECT 1 FROM pmieducar.servidor WHERE cod_servidor = '{$ref_cod_servidor}' AND ref_cod_instituicao = '{$ref_ref_cod_instituicao}'")) { | |
114 | + $servidor = new clsPmieducarServidor($ref_cod_servidor, NULL, NULL, NULL, | |
115 | + NULL, NULL, NULL, $ref_ref_cod_instituicao); | |
116 | + | |
117 | + if ($servidor->existe()) { | |
129 | 118 | $this->ref_cod_servidor = $ref_cod_servidor; |
130 | 119 | $this->ref_ref_cod_instituicao = $ref_ref_cod_instituicao; |
131 | 120 | } |
132 | 121 | } |
133 | 122 | |
134 | 123 | if (is_numeric($ref_cod_disciplina)) { |
135 | - if (class_exists('clsPmieducarDisciplina')) { | |
136 | - $tmp_obj = new clsPmieducarDisciplina($ref_cod_disciplina); | |
137 | - if (method_exists($tmp_obj, 'existe')) { | |
138 | - if ($tmp_obj->existe()) { | |
139 | - $this->ref_cod_disciplina = $ref_cod_disciplina; | |
140 | - } | |
141 | - } | |
142 | - elseif (method_exists($tmp_obj, 'detalhe')) { | |
143 | - if ($tmp_obj->detalhe()) { | |
144 | - $this->ref_cod_disciplina = $ref_cod_disciplina; | |
145 | - } | |
146 | - } | |
147 | - } | |
148 | - elseif ($db->CampoUnico("SELECT 1 FROM pmieducar.disciplina WHERE cod_disciplina = '{$ref_cod_disciplina}'")) { | |
124 | + $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper(); | |
125 | + try { | |
126 | + $componenteMapper->find($ref_cod_disciplina); | |
149 | 127 | $this->ref_cod_disciplina = $ref_cod_disciplina; |
150 | 128 | } |
129 | + catch (Exception $e) { | |
130 | + } | |
131 | + } | |
132 | + | |
133 | + if (is_numeric($ref_cod_curso)) { | |
134 | + $curso = new clsPmieducarCurso($ref_cod_curso); | |
135 | + | |
136 | + if ($curso->existe()) { | |
137 | + $this->ref_cod_curso = $ref_cod_curso; | |
138 | + } | |
151 | 139 | } |
152 | 140 | } |
153 | 141 | |
... | ... | @@ -159,13 +147,14 @@ class clsPmieducarServidorDisciplina |
159 | 147 | { |
160 | 148 | if (is_numeric($this->ref_cod_disciplina) && |
161 | 149 | is_numeric($this->ref_ref_cod_instituicao) && |
162 | - is_numeric($this->ref_cod_servidor) | |
150 | + is_numeric($this->ref_cod_servidor) && | |
151 | + is_numeric($this->ref_cod_curso) | |
163 | 152 | ) { |
164 | 153 | $db = new clsBanco(); |
165 | 154 | |
166 | - $campos = ''; | |
155 | + $campos = ''; | |
167 | 156 | $valores = ''; |
168 | - $gruda = ''; | |
157 | + $gruda = ''; | |
169 | 158 | |
170 | 159 | if (is_numeric($this->ref_cod_disciplina)) { |
171 | 160 | $campos .= "{$gruda}ref_cod_disciplina"; |
... | ... | @@ -185,6 +174,12 @@ class clsPmieducarServidorDisciplina |
185 | 174 | $gruda = ", "; |
186 | 175 | } |
187 | 176 | |
177 | + if (is_numeric($this->ref_cod_curso)) { | |
178 | + $campos .= "{$gruda}ref_cod_curso"; | |
179 | + $valores .= "{$gruda}'{$this->ref_cod_curso}'"; | |
180 | + $gruda = ", "; | |
181 | + } | |
182 | + | |
188 | 183 | $db->Consulta("INSERT INTO {$this->_tabela} ($campos) VALUES ($valores)"); |
189 | 184 | return TRUE; |
190 | 185 | } |
... | ... | @@ -199,13 +194,15 @@ class clsPmieducarServidorDisciplina |
199 | 194 | function edita() |
200 | 195 | { |
201 | 196 | if (is_numeric($this->ref_cod_disciplina) && |
202 | - is_numeric($this->ref_ref_cod_instituicao) && is_numeric($this->ref_cod_servidor) | |
197 | + is_numeric($this->ref_ref_cod_instituicao) && | |
198 | + is_numeric($this->ref_cod_servidor) && | |
199 | + is_numeric($this->ref_cod_curso) | |
203 | 200 | ) { |
204 | 201 | $db = new clsBanco(); |
205 | 202 | $set = ''; |
206 | 203 | |
207 | 204 | if ($set) { |
208 | - $db->Consulta("UPDATE {$this->_tabela} SET $set WHERE ref_cod_disciplina = '{$this->ref_cod_disciplina}' AND ref_ref_cod_instituicao = '{$this->ref_ref_cod_instituicao}' AND ref_cod_servidor = '{$this->ref_cod_servidor}'"); | |
205 | + $db->Consulta("UPDATE {$this->_tabela} SET $set WHERE ref_cod_disciplina = '{$this->ref_cod_disciplina}' AND ref_ref_cod_instituicao = '{$this->ref_ref_cod_instituicao}' AND ref_cod_servidor = '{$this->ref_cod_servidor}' AND ref_cod_curso = '{$this->ref_cod_curso}'"); | |
209 | 206 | return TRUE; |
210 | 207 | } |
211 | 208 | } |
... | ... | @@ -218,7 +215,7 @@ class clsPmieducarServidorDisciplina |
218 | 215 | * @return array |
219 | 216 | */ |
220 | 217 | function lista($int_ref_cod_disciplina = NULL, $int_ref_ref_cod_instituicao = NULL, |
221 | - $int_ref_cod_servidor = NULL) | |
218 | + $int_ref_cod_servidor = NULL, $int_ref_cod_curso = NULL) | |
222 | 219 | { |
223 | 220 | $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela}"; |
224 | 221 | $filtros = ""; |
... | ... | @@ -240,6 +237,11 @@ class clsPmieducarServidorDisciplina |
240 | 237 | $whereAnd = " AND "; |
241 | 238 | } |
242 | 239 | |
240 | + if (is_numeric($int_ref_cod_curso)) { | |
241 | + $filtros .= "{$whereAnd} ref_cod_curso = '{$int_ref_cod_curso}'"; | |
242 | + $whereAnd = " AND "; | |
243 | + } | |
244 | + | |
243 | 245 | $db = new clsBanco(); |
244 | 246 | $countCampos = count(explode(',', $this->_campos_lista)); |
245 | 247 | $resultado = array(); |
... | ... | @@ -278,8 +280,10 @@ class clsPmieducarServidorDisciplina |
278 | 280 | function detalhe() |
279 | 281 | { |
280 | 282 | if (is_numeric($this->ref_cod_disciplina) && |
281 | - is_numeric($this->ref_ref_cod_instituicao) && is_numeric($this->ref_cod_servidor)) | |
282 | - { | |
283 | + is_numeric($this->ref_ref_cod_instituicao) && | |
284 | + is_numeric($this->ref_cod_servidor) && | |
285 | + is_numeric($this->ref_cod_curso) | |
286 | + ) { | |
283 | 287 | $db = new clsBanco(); |
284 | 288 | $db->Consulta("SELECT {$this->_todos_campos} FROM {$this->_tabela} WHERE ref_cod_disciplina = '{$this->ref_cod_disciplina}' AND ref_ref_cod_instituicao = '{$this->ref_ref_cod_instituicao}' AND ref_cod_servidor = '{$this->ref_cod_servidor}'"); |
285 | 289 | $db->ProximoRegistro(); |
... | ... | @@ -296,10 +300,12 @@ class clsPmieducarServidorDisciplina |
296 | 300 | function existe() |
297 | 301 | { |
298 | 302 | if (is_numeric($this->ref_cod_disciplina) && |
299 | - is_numeric($this->ref_ref_cod_instituicao) && is_numeric($this->ref_cod_servidor) | |
303 | + is_numeric($this->ref_ref_cod_instituicao) && | |
304 | + is_numeric($this->ref_cod_servidor) && | |
305 | + is_numeric($this->ref_cod_curso) | |
300 | 306 | ) { |
301 | 307 | $db = new clsBanco(); |
302 | - $db->Consulta("SELECT 1 FROM {$this->_tabela} WHERE ref_cod_disciplina = '{$this->ref_cod_disciplina}' AND ref_ref_cod_instituicao = '{$this->ref_ref_cod_instituicao}' AND ref_cod_servidor = '{$this->ref_cod_servidor}'"); | |
308 | + $db->Consulta("SELECT 1 FROM {$this->_tabela} WHERE ref_cod_disciplina = '{$this->ref_cod_disciplina}' AND ref_ref_cod_instituicao = '{$this->ref_ref_cod_instituicao}' AND ref_cod_servidor = '{$this->ref_cod_servidor}' AND ref_cod_curso = '{$this->ref_cod_curso}'"); | |
303 | 309 | if ($db->ProximoRegistro()) { |
304 | 310 | return TRUE; |
305 | 311 | } |
... | ... | @@ -313,9 +319,11 @@ class clsPmieducarServidorDisciplina |
313 | 319 | */ |
314 | 320 | function excluir() |
315 | 321 | { |
316 | - if (is_numeric($this->ref_cod_disciplina) && is_numeric($this->ref_ref_cod_instituicao) && | |
317 | - is_numeric($this->ref_cod_servidor)) | |
318 | - { | |
322 | + if (is_numeric($this->ref_cod_disciplina) && | |
323 | + is_numeric($this->ref_ref_cod_instituicao) && | |
324 | + is_numeric($this->ref_cod_servidor) && | |
325 | + is_numeric($this->ref_cod_curso) | |
326 | + ) { | |
319 | 327 | } |
320 | 328 | return FALSE; |
321 | 329 | } | ... | ... |
ieducar/misc/database/deltas/17_adiciona_campo_curso_componente_ano_escolar_e_atualiza_constraint_servidor_disciplina.sql
0 → 100644
... | ... | @@ -0,0 +1,60 @@ |
1 | +-- // | |
2 | + | |
3 | +-- | |
4 | +-- Atualiza a foreign key constraint de pmieducar.serie_disciplina | |
5 | +-- para referenciar modules.componente_curricular. | |
6 | +-- | |
7 | +-- Adiciona referências a pmieducar.curso na tabela | |
8 | +-- pmieducar.servidor_disciplina. | |
9 | +-- | |
10 | +-- Essa medida faz parte da tarefa de substituição do sistema de notas/faltas | |
11 | +-- por um módulo mais robusto e parametrizável. | |
12 | +-- | |
13 | +-- @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br> | |
14 | +-- @license @@license@@ | |
15 | +-- @version $Id$ | |
16 | +-- | |
17 | + | |
18 | +ALTER TABLE "pmieducar"."servidor_disciplina" | |
19 | + DROP CONSTRAINT servidor_disciplina_ref_cod_disciplina_fkey; | |
20 | + | |
21 | +ALTER TABLE "pmieducar"."servidor_disciplina" | |
22 | + ADD CONSTRAINT servidor_disciplina_ref_cod_disciplina_fkey | |
23 | + FOREIGN KEY (ref_cod_disciplina) | |
24 | + REFERENCES modules.componente_curricular(id) | |
25 | + ON DELETE RESTRICT | |
26 | + ON UPDATE RESTRICT; | |
27 | + | |
28 | +ALTER TABLE "pmieducar"."servidor_disciplina" | |
29 | + DROP CONSTRAINT servidor_disciplina_pkey; | |
30 | + | |
31 | +ALTER TABLE "pmieducar"."servidor_disciplina" | |
32 | + ADD COLUMN ref_cod_curso integer; | |
33 | + | |
34 | +ALTER TABLE "pmieducar"."servidor_disciplina" | |
35 | + ADD CONSTRAINT servidor_disciplina_pkey | |
36 | + PRIMARY KEY (ref_cod_disciplina, ref_ref_cod_instituicao, | |
37 | + ref_cod_servidor, ref_cod_curso); | |
38 | + | |
39 | +-- //@UNDO | |
40 | + | |
41 | +ALTER TABLE "pmieducar"."servidor_disciplina" | |
42 | + DROP CONSTRAINT escola_serie_disciplina_ref_cod_disciplina_fkey; | |
43 | + | |
44 | +ALTER TABLE "pmieducar"."servidor_disciplina" | |
45 | + ADD CONSTRAINT servidor_disciplina_ref_cod_disciplina_fkey | |
46 | + FOREIGN KEY (ref_cod_disciplina) | |
47 | + REFERENCES pmieducar.disciplina(cod_disciplina) | |
48 | + ON DELETE RESTRICT | |
49 | + ON UPDATE RESTRICT; | |
50 | + | |
51 | +ALTER TABLE "pmieducar"."servidor_disciplina" | |
52 | + DROP CONSTRAINT servidor_disciplina_pkey; | |
53 | + | |
54 | +ALTER TABLE "pmieducar"."servidor_disciplina" | |
55 | + ADD CONSTRAINT servidor_disciplina_pkey | |
56 | + PRIMARY KEY (ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor); | |
57 | + | |
58 | +ALTER TABLE "pmieducar"."servidor_disciplina" DROP COLUMN ref_cod_curso; | |
59 | + | |
60 | +-- // | |
0 | 61 | \ No newline at end of file | ... | ... |
ieducar/misc/database/ieducar.sql
... | ... | @@ -14321,7 +14321,8 @@ CREATE TABLE servidor_curso_ministra ( |
14321 | 14321 | CREATE TABLE servidor_disciplina ( |
14322 | 14322 | ref_cod_disciplina integer NOT NULL, |
14323 | 14323 | ref_ref_cod_instituicao integer NOT NULL, |
14324 | - ref_cod_servidor integer NOT NULL | |
14324 | + ref_cod_servidor integer NOT NULL, | |
14325 | + ref_cod_curso integer NOT NULL | |
14325 | 14326 | ); |
14326 | 14327 | |
14327 | 14328 | |
... | ... | @@ -19941,6 +19942,7 @@ INSERT INTO changelog VALUES (13, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '13_adic |
19941 | 19942 | INSERT INTO changelog VALUES (14, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '14_adiciona_campo_etapa_modules_nota_componente_curricular_media.sql'); |
19942 | 19943 | INSERT INTO changelog VALUES (15, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '15_atualiza_foreign_key_modules_falta_geral.sql'); |
19943 | 19944 | INSERT INTO changelog VALUES (16, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '16_permissoes_para_modules_e_correcao_menus.sql'); |
19945 | +INSERT INTO changelog VALUES (17, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '17_adiciona_campo_curso_componente_ano_escolar_e_atualiza_constraint_servidor_disciplina.sql'); | |
19944 | 19946 | |
19945 | 19947 | |
19946 | 19948 | -- |
... | ... | @@ -27879,7 +27881,7 @@ ALTER TABLE ONLY servidor_curso_ministra |
27879 | 27881 | -- |
27880 | 27882 | |
27881 | 27883 | ALTER TABLE ONLY servidor_disciplina |
27882 | - ADD CONSTRAINT servidor_disciplina_pkey PRIMARY KEY (ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor); | |
27884 | + ADD CONSTRAINT servidor_disciplina_pkey PRIMARY KEY (ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor, ref_cod_curso); | |
27883 | 27885 | |
27884 | 27886 | |
27885 | 27887 | -- |
... | ... | @@ -28754,7 +28756,7 @@ CREATE UNIQUE INDEX componente_curricular_id_key ON componente_curricular USING |
28754 | 28756 | |
28755 | 28757 | |
28756 | 28758 | -- |
28757 | --- Name: regra_avaliacao_id_key; Type: INDEX; Schema: modules; Owner: -; Tablespace: | |
28759 | +-- Name: regra_avaliacao_id_key; Type: INDEX; Schema: modules; Owner: -; Tablespace: | |
28758 | 28760 | -- |
28759 | 28761 | |
28760 | 28762 | CREATE UNIQUE INDEX regra_avaliacao_id_key ON regra_avaliacao USING btree (id); |
... | ... | @@ -35368,7 +35370,7 @@ ALTER TABLE ONLY servidor_curso_ministra |
35368 | 35370 | -- |
35369 | 35371 | |
35370 | 35372 | ALTER TABLE ONLY servidor_disciplina |
35371 | - ADD CONSTRAINT servidor_disciplina_ref_cod_disciplina_fkey FOREIGN KEY (ref_cod_disciplina) REFERENCES disciplina(cod_disciplina) ON UPDATE RESTRICT ON DELETE RESTRICT; | |
35373 | + ADD CONSTRAINT servidor_disciplina_ref_cod_disciplina_fkey FOREIGN KEY (ref_cod_disciplina) REFERENCES modules.componente_curricular(id) ON UPDATE RESTRICT ON DELETE RESTRICT; | |
35372 | 35374 | |
35373 | 35375 | |
35374 | 35376 | -- | ... | ... |