Commit d7c57e885157322511f71b43c290f7bd91aa82bc
Committed by
GitHub
Exists in
2.9
and in
7 other branches
Merge pull request #6199 from portabilis/issue-5882
Ajusta limitação de filtros para usuários que são "apenas" professores
Showing
9 changed files
with
423 additions
and
494 deletions
Show diff stats
ieducar/lib/Portabilis/Business/Professor.php
... | ... | @@ -32,6 +32,23 @@ class Portabilis_Business_Professor |
32 | 32 | return self::fetchPreparedQuery($sql, $options) == '1'; |
33 | 33 | } |
34 | 34 | |
35 | + public static function isOnlyProfessor($instituicaoId, $userId) | |
36 | + { | |
37 | + $sql = " | |
38 | + SELECT DISTINCT funcao.professor | |
39 | + FROM pmieducar.servidor_funcao, pmieducar.funcao | |
40 | + WHERE funcao.cod_funcao = servidor_funcao.ref_cod_funcao | |
41 | + AND servidor_funcao.ref_cod_servidor = {$userId} | |
42 | + "; | |
43 | + | |
44 | + if (is_numeric($instituicaoId)) { | |
45 | + $sql .= " AND servidor_funcao.ref_ref_cod_instituicao = {$instituicaoId}"; | |
46 | + } | |
47 | + | |
48 | + $funcoes = self::fetchPreparedQuery($sql); | |
49 | + return count($funcoes) == 1 && $funcoes[0]['professor']; | |
50 | + } | |
51 | + | |
35 | 52 | public static function escolasAlocado($instituicaoId, $userId) |
36 | 53 | { |
37 | 54 | if (self::necessarioVinculoTurma($instituicaoId)) { | ... | ... |
ieducar/lib/Portabilis/View/Helper/DynamicInput/Curso.php
... | ... | @@ -16,9 +16,9 @@ class Portabilis_View_Helper_DynamicInput_Curso extends Portabilis_View_Helper_D |
16 | 16 | $instituicaoId = $this->getInstituicaoId($options['instituicaoId'] ?? null); |
17 | 17 | $escolaId = $this->getEscolaId($options['escolaId'] ?? null); |
18 | 18 | $userId = $this->getCurrentUserId(); |
19 | - $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId); | |
19 | + $isOnlyProfessor = Portabilis_Business_Professor::isOnlyProfessor($instituicaoId, $userId); | |
20 | 20 | |
21 | - if ($instituicaoId && $escolaId && empty($resources) && $isProfessor) { | |
21 | + if ($instituicaoId && $escolaId && empty($resources) && $isOnlyProfessor) { | |
22 | 22 | $cursos = Portabilis_Business_Professor::cursosAlocado($instituicaoId, $escolaId, $userId); |
23 | 23 | $resources = Portabilis_Array_Utils::setAsIdValue($cursos, 'id', 'nome'); |
24 | 24 | } elseif ($escolaId && empty($resources)) { | ... | ... |
ieducar/lib/Portabilis/View/Helper/DynamicInput/Serie.php
... | ... | @@ -17,10 +17,10 @@ class Portabilis_View_Helper_DynamicInput_Serie extends Portabilis_View_Helper_D |
17 | 17 | $escolaId = $this->getEscolaId($options['escolaId'] ?? null); |
18 | 18 | $cursoId = $this->getCursoId($options['cursoId'] ?? null); |
19 | 19 | $userId = $this->getCurrentUserId(); |
20 | - $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId); | |
20 | + $isOnlyProfessor = Portabilis_Business_Professor::isOnlyProfessor($instituicaoId, $userId); | |
21 | 21 | |
22 | - if ($isProfessor && Portabilis_Business_Professor::canLoadSeriesAlocado($instituicaoId)) { | |
23 | - $series = Portabilis_Business_Professor::seriesAlocado($instituicaoId, $escolaId, $serieId, $userId); | |
22 | + if ($isOnlyProfessor && Portabilis_Business_Professor::canLoadSeriesAlocado($instituicaoId)) { | |
23 | + $resources = Portabilis_Business_Professor::seriesAlocado($instituicaoId, $escolaId, $cursoId, $userId); | |
24 | 24 | } elseif ($escolaId && $cursoId && empty($resources)) { |
25 | 25 | $resources = App_Model_IedFinder::getSeries($instituicaoId = null, $escolaId, $cursoId); |
26 | 26 | } | ... | ... |
ieducar/lib/Portabilis/View/Helper/DynamicInput/Turma.php
... | ... | @@ -19,9 +19,9 @@ class Portabilis_View_Helper_DynamicInput_Turma extends Portabilis_View_Helper_D |
19 | 19 | $naoFiltrarAno = $this->viewInstance->nao_filtrar_ano ?? null; |
20 | 20 | |
21 | 21 | $userId = $this->getCurrentUserId(); |
22 | - $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId); | |
22 | + $isOnlyProfessor = Portabilis_Business_Professor::isOnlyProfessor($instituicaoId, $userId); | |
23 | 23 | |
24 | - if ($escolaId and $serieId and empty($resources) and $isProfessor) { | |
24 | + if ($escolaId and $serieId and empty($resources) and $isOnlyProfessor) { | |
25 | 25 | $resources = Portabilis_Business_Professor::turmasAlocado($instituicaoId, $escolaId, $serieId, $userId); |
26 | 26 | } elseif ($escolaId && $serieId && empty($resources)) { |
27 | 27 | $resources = App_Model_IedFinder::getTurmas($escolaId, $serieId); | ... | ... |
ieducar/modules/Avaliacao/Views/DiarioController.php
1 | 1 | <?php |
2 | 2 | |
3 | -#error_reporting(E_ALL); | |
4 | -#ini_set("display_errors", 1); | |
5 | - | |
6 | -/** | |
7 | - * i-Educar - Sistema de gestão escolar | |
8 | - * | |
9 | - * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
10 | - * <ctima@itajai.sc.gov.br> | |
11 | - * | |
12 | - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
13 | - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
14 | - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
15 | - * qualquer versão posterior. | |
16 | - * | |
17 | - * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
18 | - * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
19 | - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
20 | - * do GNU para mais detalhes. | |
21 | - * | |
22 | - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
23 | - * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
24 | - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
25 | - * | |
26 | - * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
27 | - * @category i-Educar | |
28 | - * @license @@license@@ | |
29 | - * @package Avaliacao | |
30 | - * @subpackage Modules | |
31 | - * @since Arquivo disponível desde a versão ? | |
32 | - * @version $Id$ | |
33 | - */ | |
34 | - | |
35 | 3 | require_once 'Portabilis/Controller/Page/ListController.php'; |
36 | 4 | require_once 'lib/Portabilis/View/Helper/Application.php'; |
37 | 5 | require_once 'Portabilis/Business/Professor.php'; |
38 | 6 | |
39 | -/** | |
40 | - * DiarioController class. | |
41 | - * | |
42 | - * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
43 | - * @category i-Educar | |
44 | - * @license @@license@@ | |
45 | - * @package Avaliacao | |
46 | - * @subpackage Modules | |
47 | - * @since Classe disponível desde a versão 1.1.0 | |
48 | - * @version @@package_version@@ | |
49 | - */ | |
50 | - | |
51 | 7 | class DiarioController extends Portabilis_Controller_Page_ListController |
52 | 8 | { |
53 | - protected $_titulo = 'Lançamento por turma'; | |
54 | - protected $_processoAp = 642; | |
55 | - | |
56 | - public function Gerar() { | |
57 | - | |
58 | - $userId = Portabilis_Utils_User::currentUserId(); | |
59 | - $componenteRequired = $isProfessor = Portabilis_Business_Professor::isProfessor(false, $userId); | |
60 | - | |
61 | - $this->inputsHelper()->input('ano', 'ano'); | |
62 | - $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'curso', 'serie', 'turma', 'etapa')); | |
63 | - $this->inputsHelper()->dynamic(array('componenteCurricularForDiario'), array('required' => $componenteRequired)); | |
64 | - $this->inputsHelper()->dynamic(array('matricula'), array('required' => FALSE )); | |
9 | + protected $_titulo = 'Lançamento por turma'; | |
10 | + protected $_processoAp = 642; | |
65 | 11 | |
66 | - $navegacaoTab = array('1' => 'Horizontal(padrão)', | |
67 | - '2' => 'Vertical',); | |
12 | + public function Gerar() | |
13 | + { | |
14 | + $userId = Portabilis_Utils_User::currentUserId(); | |
15 | + $componenteRequired = Portabilis_Business_Professor::isOnlyProfessor(false, $userId); | |
68 | 16 | |
69 | - $options = array('label' =>'Navegação do cursor(tab)', | |
70 | - 'resources' => $navegacaoTab, | |
71 | - 'required' => false, | |
72 | - 'inline' => true, | |
73 | - 'value' => $navegacaoTab[1]); | |
17 | + $this->inputsHelper()->input('ano', 'ano'); | |
18 | + $this->inputsHelper()->dynamic(['instituicao', 'escola', 'curso', 'serie', 'turma', 'etapa']); | |
19 | + $this->inputsHelper()->dynamic(['componenteCurricularForDiario'], ['required' => $componenteRequired]); | |
20 | + $this->inputsHelper()->dynamic(['matricula'], ['required' => false ]); | |
74 | 21 | |
75 | - $this->inputsHelper()->select('navegacao_tab', $options); | |
22 | + $navegacaoTab = [ | |
23 | + '1' => 'Horizontal(padrão)', | |
24 | + '2' => 'Vertical', | |
25 | + ]; | |
76 | 26 | |
77 | - $this->inputsHelper()->hidden('mostrar_botao_replicar_todos', array('value' => $teste = config('legacy.app.faltas_notas.mostrar_botao_replicar'))); | |
27 | + $options = [ | |
28 | + 'label' =>'Navegação do cursor(tab)', | |
29 | + 'resources' => $navegacaoTab, | |
30 | + 'required' => false, | |
31 | + 'inline' => true, | |
32 | + 'value' => $navegacaoTab[1], | |
33 | + ]; | |
78 | 34 | |
79 | - $this->loadResourceAssets($this->getDispatcher()); | |
80 | - } | |
35 | + $this->inputsHelper()->select('navegacao_tab', $options); | |
81 | 36 | |
82 | - protected function _preRender(){ | |
37 | + $this->inputsHelper()->hidden('mostrar_botao_replicar_todos', ['value' => $teste = config('legacy.app.faltas_notas.mostrar_botao_replicar')]); | |
83 | 38 | |
84 | - parent::_preRender(); | |
39 | + $this->loadResourceAssets($this->getDispatcher()); | |
40 | + } | |
85 | 41 | |
86 | - $localizacao = new LocalizacaoSistema(); | |
42 | + protected function _preRender() | |
43 | + { | |
44 | + parent::_preRender(); | |
87 | 45 | |
88 | - $localizacao->entradaCaminhos( array( | |
89 | - $_SERVER['SERVER_NAME']."/intranet" => "Início", | |
90 | - "educar_index.php" => "Escola", | |
91 | - "" => "Lançamento de notas" | |
92 | - )); | |
93 | - $this->enviaLocalizacao($localizacao->montar(), true); | |
94 | - } | |
46 | + $this->breadcrumb('Lançamento de faltas e notas', ['/intranet/educar_index.php' => 'Escola']); | |
47 | + } | |
95 | 48 | } |
96 | 49 | ?> |
97 | 50 | ... | ... |
ieducar/modules/DynamicInput/Views/ComponenteCurricularController.php
1 | 1 | <?php |
2 | 2 | |
3 | -#error_reporting(E_ALL); | |
4 | -#ini_set("display_errors", 1); | |
5 | - | |
6 | -/** | |
7 | - * i-Educar - Sistema de gestão escolar | |
8 | - * | |
9 | - * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
10 | - * <ctima@itajai.sc.gov.br> | |
11 | - * | |
12 | - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
13 | - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
14 | - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
15 | - * qualquer versão posterior. | |
16 | - * | |
17 | - * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
18 | - * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
19 | - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
20 | - * do GNU para mais detalhes. | |
21 | - * | |
22 | - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
23 | - * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
24 | - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
25 | - * | |
26 | - * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
27 | - * @category i-Educar | |
28 | - * @license @@license@@ | |
29 | - * @package Avaliacao | |
30 | - * @subpackage Modules | |
31 | - * @since Arquivo disponível desde a versão ? | |
32 | - * @version $Id$ | |
33 | - */ | |
34 | - | |
35 | 3 | require_once 'lib/Portabilis/Controller/ApiCoreController.php'; |
36 | 4 | require_once 'Portabilis/Business/Professor.php'; |
37 | 5 | |
38 | -/** | |
39 | - * ComponenteCurricularController class. | |
40 | - * | |
41 | - * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
42 | - * @category i-Educar | |
43 | - * @license @@license@@ | |
44 | - * @package Avaliacao | |
45 | - * @subpackage Modules | |
46 | - * @since Classe disponível desde a versão 1.1.0 | |
47 | - * @version @@package_version@@ | |
48 | - */ | |
49 | 6 | class ComponenteCurricularController extends ApiCoreController |
50 | 7 | { |
51 | - | |
52 | - protected function canGetComponentesCurriculares() { | |
53 | - return $this->validatesId('turma') && | |
54 | - $this->validatesPresenceOf('ano'); | |
55 | - } | |
56 | - | |
57 | - private function agrupaComponentesCurriculares($componentesCurriculares){ | |
58 | - $options = array(); | |
59 | - | |
60 | - foreach ($componentesCurriculares as $componenteCurricular) { | |
61 | - $areaConhecimento = (($componenteCurricular['secao_area_conhecimento'] != '') ? $componenteCurricular['secao_area_conhecimento'] . ' - ' : '') . $componenteCurricular['area_conhecimento']; | |
62 | - $options['__' . $componenteCurricular['id']] = array( | |
63 | - 'value' => mb_strtoupper($componenteCurricular['nome'], 'UTF-8'), | |
64 | - 'group' => mb_strtoupper($areaConhecimento, 'UTF-8') | |
65 | - ); | |
8 | + protected function canGetComponentesCurriculares() | |
9 | + { | |
10 | + return | |
11 | + $this->validatesId('turma') && | |
12 | + $this->validatesPresenceOf('ano'); | |
66 | 13 | } |
67 | 14 | |
68 | - return $options; | |
69 | - | |
70 | - } | |
71 | - | |
72 | - protected function getComponentesCurricularesForDiario(){ | |
73 | - if ($this->canGetComponentesCurriculares()) { | |
74 | - $userId = $this->getSession()->id_pessoa; | |
75 | - $instituicaoId = $this->getRequest()->instituicao_id; | |
76 | - $turmaId = $this->getRequest()->turma_id; | |
77 | - $ano = $this->getRequest()->ano; | |
78 | - $etapa = $this->getRequest()->etapa; | |
15 | + private function agrupaComponentesCurriculares($componentesCurriculares) | |
16 | + { | |
17 | + $options = []; | |
18 | + | |
19 | + foreach ($componentesCurriculares as $componenteCurricular) { | |
20 | + $areaConhecimento = (($componenteCurricular['secao_area_conhecimento'] != '') ? $componenteCurricular['secao_area_conhecimento'] . ' - ' : '') . $componenteCurricular['area_conhecimento']; | |
21 | + $options[ | |
22 | + '__' . $componenteCurricular['id'] | |
23 | + ] = [ | |
24 | + 'value' => mb_strtoupper($componenteCurricular['nome'], 'UTF-8'), | |
25 | + 'group' => mb_strtoupper($areaConhecimento, 'UTF-8') | |
26 | + ]; | |
27 | + } | |
79 | 28 | |
80 | - if($etapa == ""){ | |
81 | - $etapa = "0"; | |
29 | + return $options; | |
82 | 30 | } |
83 | 31 | |
84 | - $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId); | |
85 | - | |
86 | - if ($isProfessor) { | |
87 | - $componentesCurriculares = Portabilis_Business_Professor::componentesCurricularesAlocado($instituicaoId, $turmaId, $ano, $userId); | |
88 | - } | |
89 | - else{ | |
90 | - $sql = "select cc.id, | |
91 | - cc.nome, | |
92 | - ac.nome as area_conhecimento, | |
93 | - ac.secao as area_conhecimento_secao, | |
94 | - cc.ordenamento | |
95 | - from pmieducar.turma, | |
96 | - modules.componente_curricular_turma as cct, | |
97 | - modules.componente_curricular as cc, | |
98 | - modules.area_conhecimento as ac, | |
99 | - pmieducar.escola_ano_letivo as al | |
100 | - where turma.cod_turma = $1 and | |
101 | - cct.turma_id = turma.cod_turma and | |
102 | - cct.componente_curricular_id = cc.id and al.ano = $2 and | |
103 | - turma.ref_ref_cod_escola = al.ref_cod_escola and | |
104 | - cc.area_conhecimento_id = ac.id and | |
105 | - (turma.ref_cod_disciplina_dispensada <> cc.id OR turma.ref_cod_disciplina_dispensada is null) and | |
106 | - (case when cct.etapas_especificas = 1 then $3 = ANY (string_to_array(cct.etapas_utilizadas,',')::int[]) else true end) | |
107 | - order by ac.secao, ac.nome, cc.ordenamento, cc.nome"; | |
108 | - | |
109 | - $componentesCurriculares = $this->fetchPreparedQuery($sql, array($turmaId, $ano, $etapa)); | |
110 | - | |
111 | - if (count($componentesCurriculares) < 1) { | |
112 | - $sql = "select cc.id, | |
113 | - cc.nome, | |
114 | - ac.nome as area_conhecimento, | |
115 | - ac.secao as secao_area_conhecimento, | |
116 | - cc.ordenamento | |
117 | - from pmieducar.turma as t | |
118 | - inner join pmieducar.escola_serie_disciplina esd on (esd.ref_ref_cod_escola = t.ref_ref_cod_escola) | |
119 | - inner join modules.componente_curricular cc on (esd.ref_cod_disciplina = cc.id) | |
120 | - inner join modules.area_conhecimento ac on (cc.area_conhecimento_id = ac.id) | |
121 | - inner join pmieducar.escola_ano_letivo al on (esd.ref_ref_cod_escola = al.ref_cod_escola) | |
122 | - where t.cod_turma = $1 and | |
123 | - esd.ref_ref_cod_serie = t.ref_ref_cod_serie and | |
124 | - al.ano = $2 and | |
125 | - t.ativo = 1 and | |
126 | - esd.ativo = 1 and | |
127 | - al.ativo = 1 and | |
128 | - $2 = ANY(esd.anos_letivos) and | |
129 | - (t.ref_cod_disciplina_dispensada <> cc.id OR t.ref_cod_disciplina_dispensada is null) and | |
130 | - (case when esd.etapas_especificas = 1 then $3 = ANY (string_to_array(esd.etapas_utilizadas,',')::int[]) else true end) | |
131 | - order by ac.secao, ac.nome, cc.ordenamento, cc.nome"; | |
132 | - | |
133 | - $componentesCurriculares = $this->fetchPreparedQuery($sql, array($turmaId, $ano, $etapa)); | |
32 | + protected function getComponentesCurricularesForDiario() | |
33 | + { | |
34 | + if ($this->canGetComponentesCurriculares()) { | |
35 | + $userId = $this->getSession()->id_pessoa; | |
36 | + $instituicaoId = $this->getRequest()->instituicao_id; | |
37 | + $turmaId = $this->getRequest()->turma_id; | |
38 | + $ano = $this->getRequest()->ano; | |
39 | + $etapa = $this->getRequest()->etapa; | |
40 | + | |
41 | + if ($etapa == '') { | |
42 | + $etapa = '0'; | |
43 | + } | |
44 | + | |
45 | + $isOnlyProfessor = Portabilis_Business_Professor::isOnlyProfessor($instituicaoId, $userId); | |
46 | + | |
47 | + if ($isOnlyProfessor) { | |
48 | + $componentesCurriculares = Portabilis_Business_Professor::componentesCurricularesAlocado($instituicaoId, $turmaId, $ano, $userId); | |
49 | + } else { | |
50 | + $sql = " | |
51 | + SELECT | |
52 | + cc.id, | |
53 | + cc.nome, | |
54 | + ac.nome as area_conhecimento, | |
55 | + ac.secao as area_conhecimento_secao, | |
56 | + cc.ordenamento | |
57 | + FROM | |
58 | + pmieducar.turma, | |
59 | + modules.componente_curricular_turma as cct, | |
60 | + modules.componente_curricular as cc, | |
61 | + modules.area_conhecimento as ac, | |
62 | + pmieducar.escola_ano_letivo as al | |
63 | + WHERE turma.cod_turma = $1 | |
64 | + AND cct.turma_id = turma.cod_turma | |
65 | + AND cct.componente_curricular_id = cc.id | |
66 | + AND al.ano = $2 | |
67 | + AND turma.ref_ref_cod_escola = al.ref_cod_escola | |
68 | + AND cc.area_conhecimento_id = ac.id | |
69 | + AND (turma.ref_cod_disciplina_dispensada <> cc.id OR turma.ref_cod_disciplina_dispensada is null) | |
70 | + AND ( | |
71 | + CASE | |
72 | + WHEN cct.etapas_especificas = 1 | |
73 | + THEN $3 = ANY (string_to_array(cct.etapas_utilizadas,',')::int[]) | |
74 | + ELSE true | |
75 | + END | |
76 | + ) | |
77 | + ORDER BY | |
78 | + ac.secao, | |
79 | + ac.nome, | |
80 | + cc.ordenamento, | |
81 | + cc.nome | |
82 | + "; | |
83 | + | |
84 | + $componentesCurriculares = $this->fetchPreparedQuery($sql, [$turmaId, $ano, $etapa]); | |
85 | + | |
86 | + if (count($componentesCurriculares) < 1) { | |
87 | + $sql = " | |
88 | + SELECT | |
89 | + cc.id, | |
90 | + cc.nome, | |
91 | + ac.nome as area_conhecimento, | |
92 | + ac.secao as secao_area_conhecimento, | |
93 | + cc.ordenamento | |
94 | + FROM pmieducar.turma as t | |
95 | + INNER JOIN pmieducar.escola_serie_disciplina esd on (esd.ref_ref_cod_escola = t.ref_ref_cod_escola) | |
96 | + INNER JOIN modules.componente_curricular cc on (esd.ref_cod_disciplina = cc.id) | |
97 | + INNER JOIN modules.area_conhecimento ac on (cc.area_conhecimento_id = ac.id) | |
98 | + INNER JOIN pmieducar.escola_ano_letivo al on (esd.ref_ref_cod_escola = al.ref_cod_escola) | |
99 | + WHERE t.cod_turma = $1 | |
100 | + AND esd.ref_ref_cod_serie = t.ref_ref_cod_serie | |
101 | + AND al.ano = $2 | |
102 | + AND t.ativo = 1 | |
103 | + AND esd.ativo = 1 | |
104 | + AND al.ativo = 1 | |
105 | + AND $2 = ANY(esd.anos_letivos) | |
106 | + AND (t.ref_cod_disciplina_dispensada <> cc.id OR t.ref_cod_disciplina_dispensada is null) | |
107 | + AND ( | |
108 | + CASE | |
109 | + WHEN esd.etapas_especificas = 1 | |
110 | + THEN $3 = ANY (string_to_array(esd.etapas_utilizadas,',')::int[]) | |
111 | + ELSE true | |
112 | + END | |
113 | + ) | |
114 | + ORDER BY | |
115 | + ac.secao, | |
116 | + ac.nome, | |
117 | + cc.ordenamento, | |
118 | + cc.nome | |
119 | + "; | |
120 | + | |
121 | + $componentesCurriculares = $this->fetchPreparedQuery($sql, [$turmaId, $ano, $etapa]); | |
122 | + } | |
123 | + } | |
124 | + | |
125 | + $options = []; | |
126 | + $options = $this->agrupaComponentesCurriculares($componentesCurriculares); | |
127 | + | |
128 | + return ['options' => $options]; | |
134 | 129 | } |
135 | - } | |
136 | - | |
137 | - $options = array(); | |
138 | - $options = $this->agrupaComponentesCurriculares($componentesCurriculares); | |
139 | - return array('options' => $options); | |
140 | 130 | } |
141 | - } | |
142 | - | |
143 | - | |
144 | - protected function getComponentesCurriculares() { | |
145 | - if ($this->canGetComponentesCurriculares()) { | |
146 | - | |
147 | - $userId = $this->getSession()->id_pessoa; | |
148 | - $instituicaoId = $this->getRequest()->instituicao_id; | |
149 | - $turmaId = $this->getRequest()->turma_id; | |
150 | - $ano = $this->getRequest()->ano; | |
151 | - | |
152 | - $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId); | |
153 | - | |
154 | - if ($isProfessor) { | |
155 | - $componentesCurriculares = Portabilis_Business_Professor::componentesCurricularesAlocado($instituicaoId, $turmaId, $ano, $userId); | |
156 | - } | |
157 | - else{ | |
158 | - $sql = "select cc.id, | |
159 | - cc.nome, | |
160 | - ac.nome as area_conhecimento, | |
161 | - ac.secao as area_conhecimento_secao, | |
162 | - cc.ordenamento | |
163 | - from pmieducar.turma, | |
164 | - modules.componente_curricular_turma as cct, | |
165 | - modules.componente_curricular as cc, | |
166 | - modules.area_conhecimento as ac, | |
167 | - pmieducar.escola_ano_letivo as al | |
168 | - where turma.cod_turma = $1 and | |
169 | - cct.turma_id = turma.cod_turma and | |
170 | - cct.escola_id = turma.ref_ref_cod_escola and | |
171 | - cct.componente_curricular_id = cc.id and al.ano = $2 and | |
172 | - cct.escola_id = al.ref_cod_escola and | |
173 | - cc.area_conhecimento_id = ac.id | |
174 | - order by ac.secao, ac.nome, cc.ordenamento, cc.nome"; | |
175 | - | |
176 | - | |
177 | - $componentesCurriculares = $this->fetchPreparedQuery($sql, array($turmaId, $ano)); | |
178 | - | |
179 | - if (count($ComponentesCurriculares) < 1) { | |
180 | - $sql = "select cc.id, | |
181 | - cc.nome, | |
182 | - ac.nome as area_conhecimento, | |
183 | - ac.secao as secao_area_conhecimento, | |
184 | - cc.ordenamento | |
185 | - from pmieducar.turma as t, | |
186 | - pmieducar.escola_serie_disciplina as esd, | |
187 | - modules.componente_curricular as cc, | |
188 | - modules.area_conhecimento as ac, | |
189 | - pmieducar.escola_ano_letivo as al | |
190 | - where t.cod_turma = $1 and | |
191 | - esd.ref_ref_cod_escola = t.ref_ref_cod_escola and | |
192 | - esd.ref_ref_cod_serie = t.ref_ref_cod_serie and | |
193 | - esd.ref_cod_disciplina = cc.id and al.ano = $2 and | |
194 | - esd.ref_ref_cod_escola = al.ref_cod_escola and t.ativo = 1 and | |
195 | - esd.ativo = 1 and | |
196 | - al.ativo = 1 and | |
197 | - $2 = ANY(esd.anos_letivos) AND | |
198 | - cc.area_conhecimento_id = ac.id | |
199 | - order by ac.secao, ac.nome, cc.ordenamento, cc.nome"; | |
200 | - | |
201 | - $componentesCurriculares = $this->fetchPreparedQuery($sql, array($turmaId, $ano)); | |
131 | + | |
132 | + protected function getComponentesCurriculares() | |
133 | + { | |
134 | + if ($this->canGetComponentesCurriculares()) { | |
135 | + $userId = $this->getSession()->id_pessoa; | |
136 | + $instituicaoId = $this->getRequest()->instituicao_id; | |
137 | + $turmaId = $this->getRequest()->turma_id; | |
138 | + $ano = $this->getRequest()->ano; | |
139 | + | |
140 | + $isOnlyProfessor = Portabilis_Business_Professor::isOnlyProfessor($instituicaoId, $userId); | |
141 | + | |
142 | + if ($isOnlyProfessor) { | |
143 | + $componentesCurriculares = Portabilis_Business_Professor::componentesCurricularesAlocado($instituicaoId, $turmaId, $ano, $userId); | |
144 | + } else { | |
145 | + $sql = " | |
146 | + SELECT | |
147 | + cc.id, | |
148 | + cc.nome, | |
149 | + ac.nome as area_conhecimento, | |
150 | + ac.secao as area_conhecimento_secao, | |
151 | + cc.ordenamento | |
152 | + FROM | |
153 | + pmieducar.turma, | |
154 | + modules.componente_curricular_turma as cct, | |
155 | + modules.componente_curricular as cc, | |
156 | + modules.area_conhecimento as ac, | |
157 | + pmieducar.escola_ano_letivo as al | |
158 | + WHERE turma.cod_turma = $1 | |
159 | + AND cct.turma_id = turma.cod_turma | |
160 | + AND cct.escola_id = turma.ref_ref_cod_escola | |
161 | + AND cct.componente_curricular_id = cc.id | |
162 | + AND al.ano = $2 | |
163 | + AND cct.escola_id = al.ref_cod_escola | |
164 | + AND cc.area_conhecimento_id = ac.id | |
165 | + ORDER BY | |
166 | + ac.secao, | |
167 | + ac.nome, | |
168 | + cc.ordenamento, | |
169 | + cc.nome | |
170 | + "; | |
171 | + | |
172 | + $componentesCurriculares = $this->fetchPreparedQuery($sql, [$turmaId, $ano]); | |
173 | + | |
174 | + if (count($componentesCurriculares) < 1) { | |
175 | + $sql = " | |
176 | + SELECT | |
177 | + cc.id, | |
178 | + cc.nome, | |
179 | + ac.nome as area_conhecimento, | |
180 | + ac.secao as secao_area_conhecimento, | |
181 | + cc.ordenamento | |
182 | + FROM | |
183 | + pmieducar.turma as t, | |
184 | + pmieducar.escola_serie_disciplina as esd, | |
185 | + modules.componente_curricular as cc, | |
186 | + modules.area_conhecimento as ac, | |
187 | + pmieducar.escola_ano_letivo as al | |
188 | + WHERE t.cod_turma = $1 | |
189 | + AND esd.ref_ref_cod_escola = t.ref_ref_cod_escola | |
190 | + AND esd.ref_ref_cod_serie = t.ref_ref_cod_serie | |
191 | + AND esd.ref_cod_disciplina = cc.id | |
192 | + AND al.ano = $2 | |
193 | + AND esd.ref_ref_cod_escola = al.ref_cod_escola | |
194 | + AND t.ativo = 1 | |
195 | + AND esd.ativo = 1 | |
196 | + AND al.ativo = 1 | |
197 | + AND $2 = ANY(esd.anos_letivos) | |
198 | + AND cc.area_conhecimento_id = ac.id | |
199 | + ORDER BY | |
200 | + ac.secao, | |
201 | + ac.nome, | |
202 | + cc.ordenamento, | |
203 | + cc.nome | |
204 | + "; | |
205 | + | |
206 | + $componentesCurriculares = $this->fetchPreparedQuery($sql, [$turmaId, $ano]); | |
207 | + } | |
208 | + } | |
209 | + | |
210 | + $options = []; | |
211 | + $options = $this->agrupaComponentesCurriculares($componentesCurriculares); | |
212 | + | |
213 | + return ['options' => $options]; | |
202 | 214 | } |
203 | - } | |
215 | + } | |
204 | 216 | |
205 | - $options = array(); | |
206 | - $options = $this->agrupaComponentesCurriculares($componentesCurriculares); | |
207 | - return array('options' => $options); | |
217 | + public function Gerar() | |
218 | + { | |
219 | + if ($this->isRequestFor('get', 'componentesCurriculares')) { | |
220 | + $this->appendResponse($this->getComponentesCurriculares()); | |
221 | + } elseif ($this->isRequestFor('get', 'componentesCurricularesForDiario')) { | |
222 | + $this->appendResponse($this->getComponentesCurricularesForDiario()); | |
223 | + } else { | |
224 | + $this->notImplementedOperationError(); | |
225 | + } | |
208 | 226 | } |
209 | - } | |
210 | - | |
211 | - public function Gerar() { | |
212 | - if ($this->isRequestFor('get', 'componentesCurriculares')) | |
213 | - $this->appendResponse($this->getComponentesCurriculares()); | |
214 | - elseif($this->isRequestFor('get', 'componentesCurricularesForDiario')) | |
215 | - $this->appendResponse($this->getComponentesCurricularesForDiario()); | |
216 | - else | |
217 | - $this->notImplementedOperationError(); | |
218 | - } | |
219 | 227 | } | ... | ... |
ieducar/modules/DynamicInput/Views/CursoController.php
1 | 1 | <?php |
2 | 2 | |
3 | -#error_reporting(E_ALL); | |
4 | -#ini_set("display_errors", 1); | |
5 | - | |
6 | -/** | |
7 | - * i-Educar - Sistema de gestão escolar | |
8 | - * | |
9 | - * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
10 | - * <ctima@itajai.sc.gov.br> | |
11 | - * | |
12 | - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
13 | - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
14 | - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
15 | - * qualquer versão posterior. | |
16 | - * | |
17 | - * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
18 | - * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
19 | - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
20 | - * do GNU para mais detalhes. | |
21 | - * | |
22 | - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
23 | - * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
24 | - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
25 | - * | |
26 | - * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
27 | - * @category i-Educar | |
28 | - * @license @@license@@ | |
29 | - * @package Avaliacao | |
30 | - * @subpackage Modules | |
31 | - * @since Arquivo disponível desde a versão ? | |
32 | - * @version $Id$ | |
33 | - */ | |
34 | - | |
35 | -require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | |
36 | -require_once 'Portabilis/Business/Professor.php'; | |
37 | - | |
38 | -/** | |
39 | - * CursoController class. | |
40 | - * | |
41 | - * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
42 | - * @category i-Educar | |
43 | - * @license @@license@@ | |
44 | - * @package Avaliacao | |
45 | - * @subpackage Modules | |
46 | - * @since Classe disponível desde a versão 1.1.0 | |
47 | - * @version @@package_version@@ | |
48 | - */ | |
49 | 3 | class CursoController extends ApiCoreController |
50 | 4 | { |
5 | + protected function canGetCursos() | |
6 | + { | |
7 | + return | |
8 | + $this->validatesId('instituicao') && | |
9 | + $this->validatesId('escola'); | |
10 | + } | |
51 | 11 | |
52 | - protected function canGetCursos() { | |
53 | - return $this->validatesId('instituicao') && | |
54 | - $this->validatesId('escola'); | |
55 | - } | |
12 | + protected function getCursos() | |
13 | + { | |
14 | + if ($this->canGetCursos()) { | |
15 | + $userId = $this->getSession()->id_pessoa; | |
16 | + $instituicaoId = $this->getRequest()->instituicao_id; | |
17 | + $escolaId = $this->getRequest()->escola_id; | |
18 | + $ano = $this->getRequest()->ano; | |
56 | 19 | |
57 | - protected function getCursos() { | |
58 | - if ($this->canGetCursos()) { | |
59 | - $userId = $this->getSession()->id_pessoa; | |
60 | - $instituicaoId = $this->getRequest()->instituicao_id; | |
61 | - $escolaId = $this->getRequest()->escola_id; | |
62 | - $ano = $this->getRequest()->ano; | |
20 | + $isOnlyProfessor = Portabilis_Business_Professor::isOnlyProfessor($instituicaoId, $userId); | |
63 | 21 | |
64 | - $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId); | |
22 | + if ($isOnlyProfessor) { | |
23 | + $cursos = Portabilis_Business_Professor::cursosAlocado($instituicaoId, $escolaId, $userId); | |
24 | + } else { | |
25 | + $params = [ $escolaId ]; | |
65 | 26 | |
66 | - if ($isProfessor) | |
67 | - $cursos = Portabilis_Business_Professor::cursosAlocado($instituicaoId, $escolaId, $userId); | |
27 | + $sql = ' | |
28 | + SELECT | |
29 | + c.cod_curso as id, | |
30 | + c.nm_curso as nome | |
31 | + FROM | |
32 | + pmieducar.curso c, | |
33 | + pmieducar.escola_curso ec | |
34 | + WHERE ec.ref_cod_escola = $1 | |
35 | + AND ec.ref_cod_curso = c.cod_curso | |
36 | + AND ec.ativo = 1 AND c.ativo = 1 | |
37 | + '; | |
68 | 38 | |
69 | - else { | |
70 | - $params = [ $escolaId ]; | |
39 | + if (!empty($ano)) { | |
40 | + $params[] = $ano; | |
41 | + $sql .= ' AND $2 = ANY(ec.anos_letivos) '; | |
42 | + } | |
71 | 43 | |
72 | - $sql = ' SELECT c.cod_curso as id, c.nm_curso as nome | |
73 | - FROM pmieducar.curso c, pmieducar.escola_curso ec | |
74 | - WHERE ec.ref_cod_escola = $1 AND ec.ref_cod_curso = | |
75 | - c.cod_curso AND ec.ativo = 1 AND c.ativo = 1 '; | |
44 | + $sql .= ' ORDER BY c.nm_curso ASC '; | |
76 | 45 | |
77 | - if (!empty($ano)) { | |
78 | - $params[] = $ano; | |
79 | - $sql .= ' AND $2 = ANY(ec.anos_letivos) '; | |
80 | - } | |
81 | - $sql .= ' ORDER BY c.nm_curso ASC '; | |
46 | + $cursos = $this->fetchPreparedQuery($sql, $params); | |
47 | + } | |
82 | 48 | |
83 | - $cursos = $this->fetchPreparedQuery($sql, $params); | |
84 | - } | |
49 | + $options = []; | |
50 | + foreach ($cursos as $curso) { | |
51 | + $options['__' . $curso['id']] = $this->toUtf8($curso['nome']); | |
52 | + } | |
85 | 53 | |
86 | - $options = array(); | |
87 | - foreach ($cursos as $curso) | |
88 | - $options['__' . $curso['id']] = $this->toUtf8($curso['nome']); | |
89 | - | |
90 | - return array('options' => $options); | |
54 | + return ['options' => $options]; | |
55 | + } | |
91 | 56 | } |
92 | - } | |
93 | 57 | |
94 | - public function Gerar() { | |
95 | - if ($this->isRequestFor('get', 'cursos')) | |
96 | - $this->appendResponse($this->getCursos()); | |
97 | - else | |
98 | - $this->notImplementedOperationError(); | |
99 | - } | |
100 | -} | |
101 | 58 | \ No newline at end of file |
59 | + public function Gerar() | |
60 | + { | |
61 | + if ($this->isRequestFor('get', 'cursos')) { | |
62 | + $this->appendResponse($this->getCursos()); | |
63 | + } else { | |
64 | + $this->notImplementedOperationError(); | |
65 | + } | |
66 | + } | |
67 | +} | ... | ... |
ieducar/modules/DynamicInput/Views/SerieController.php
... | ... | @@ -22,10 +22,10 @@ class SerieController extends ApiCoreController |
22 | 22 | $cursoId = $this->getRequest()->curso_id; |
23 | 23 | $ano = $this->getRequest()->ano; |
24 | 24 | |
25 | - $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId); | |
25 | + $isOnlyProfessor = Portabilis_Business_Professor::isOnlyProfessor($instituicaoId, $userId); | |
26 | 26 | $canLoadSeriesAlocado = Portabilis_Business_Professor::canLoadSeriesAlocado($instituicaoId); |
27 | 27 | |
28 | - if ($isProfessor && $canLoadSeriesAlocado) { | |
28 | + if ($isOnlyProfessor && $canLoadSeriesAlocado) { | |
29 | 29 | $resources = Portabilis_Business_Professor::seriesAlocado($instituicaoId, $escolaId, $cursoId, $userId); |
30 | 30 | $resources = Portabilis_Array_Utils::setAsIdValue($resources, 'id', 'nome'); |
31 | 31 | } elseif ($escolaId && $cursoId && empty($resources)) { | ... | ... |
ieducar/modules/DynamicInput/Views/TurmaController.php
1 | 1 | <?php |
2 | 2 | |
3 | -#error_reporting(E_ALL); | |
4 | -#ini_set("display_errors", 1); | |
5 | - | |
6 | -/** | |
7 | - * i-Educar - Sistema de gestão escolar | |
8 | - * | |
9 | - * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
10 | - * <ctima@itajai.sc.gov.br> | |
11 | - * | |
12 | - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
13 | - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
14 | - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
15 | - * qualquer versão posterior. | |
16 | - * | |
17 | - * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
18 | - * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
19 | - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
20 | - * do GNU para mais detalhes. | |
21 | - * | |
22 | - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
23 | - * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
24 | - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
25 | - * | |
26 | - * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
27 | - * @category i-Educar | |
28 | - * @license @@license@@ | |
29 | - * @package Avaliacao | |
30 | - * @subpackage Modules | |
31 | - * @since Arquivo disponível desde a versão ? | |
32 | - * @version $Id$ | |
33 | - */ | |
34 | - | |
35 | 3 | require_once 'lib/Portabilis/Controller/ApiCoreController.php'; |
36 | 4 | require_once 'Portabilis/Business/Professor.php'; |
37 | 5 | |
38 | -/** | |
39 | - * CursoController class. | |
40 | - * | |
41 | - * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
42 | - * @category i-Educar | |
43 | - * @license @@license@@ | |
44 | - * @package Avaliacao | |
45 | - * @subpackage Modules | |
46 | - * @since Classe disponível desde a versão 1.1.0 | |
47 | - * @version @@package_version@@ | |
48 | - */ | |
49 | 6 | class TurmaController extends ApiCoreController |
50 | 7 | { |
8 | + protected function canGetTurmas() | |
9 | + { | |
10 | + return | |
11 | + $this->validatesId('instituicao') && | |
12 | + $this->validatesId('escola') && | |
13 | + $this->validatesId('serie'); | |
14 | + } | |
51 | 15 | |
52 | - protected function canGetTurmas() { | |
53 | - return $this->validatesId('instituicao') && | |
54 | - $this->validatesId('escola') && | |
55 | - $this->validatesId('serie'); | |
56 | - } | |
57 | - | |
58 | - protected function turmasPorAno($escolaId, $ano) { | |
59 | - $anoLetivo = new clsPmieducarEscolaAnoLetivo(); | |
60 | - $anoLetivo->ref_cod_escola = $escolaId; | |
61 | - $anoLetivo->ano = $ano; | |
62 | - $anoLetivo = $anoLetivo->detalhe(); | |
63 | - | |
64 | - return ($anoLetivo['turmas_por_ano'] == 1); | |
65 | - } | |
66 | - | |
67 | - protected function getTurmas() { | |
68 | - if ($this->canGetTurmas()) { | |
69 | - $userId = $this->getSession()->id_pessoa; | |
70 | - $instituicaoId = $this->getRequest()->instituicao_id; | |
71 | - $escolaId = $this->getRequest()->escola_id; | |
72 | - $serieId = $this->getRequest()->serie_id; | |
73 | - $ano = $this->getRequest()->ano; | |
74 | - $anoEmAndamento = $this->getRequest()->ano_em_andamento; | |
75 | - | |
76 | - $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId); | |
77 | - | |
78 | - if ($isProfessor) | |
79 | - $turmas = Portabilis_Business_Professor::turmasAlocado($instituicaoId, $escolaId, $serieId, $userId); | |
80 | - | |
81 | - else { | |
82 | - if(is_numeric($ano)){ | |
83 | -$sql = "select cod_turma as id, nm_turma || ' - ' || COALESCE(ano::varchar,'SEM ANO') as nome from pmieducar.turma where ref_ref_cod_escola = $1 | |
84 | - and (ref_ref_cod_serie = $2 or ref_ref_cod_serie_mult = $2) and ativo = 1 and | |
85 | - visivel != 'f' and turma.ano = $3 order by nm_turma asc"; | |
86 | - | |
87 | - $turmas = $this->fetchPreparedQuery($sql, array($escolaId, $serieId, $ano)); | |
88 | - }else{ | |
89 | - $sql = "select cod_turma as id, nm_turma || ' - ' || COALESCE(ano::varchar,'SEM ANO') as nome from pmieducar.turma where ref_ref_cod_escola = $1 | |
90 | - and (ref_ref_cod_serie = $2 or ref_ref_cod_serie_mult = $2) and ativo = 1 and | |
91 | - visivel != 'f' order by nm_turma asc"; | |
92 | - | |
93 | - $turmas = $this->fetchPreparedQuery($sql, array($escolaId, $serieId)); | |
94 | - } | |
95 | - | |
96 | - } | |
97 | - | |
98 | - // caso no ano letivo esteja definido para filtrar turmas por ano, | |
99 | - // somente retorna as turmas do ano letivo. | |
16 | + protected function turmasPorAno($escolaId, $ano) | |
17 | + { | |
18 | + $anoLetivo = new clsPmieducarEscolaAnoLetivo(); | |
19 | + $anoLetivo->ref_cod_escola = $escolaId; | |
20 | + $anoLetivo->ano = $ano; | |
21 | + $anoLetivo = $anoLetivo->detalhe(); | |
100 | 22 | |
101 | - if ($ano && $this->turmasPorAno($escolaId, $ano)) { | |
102 | - foreach ($turmas as $index => $t) { | |
103 | - $turma = new clsPmieducarTurma(); | |
104 | - $turma->cod_turma = $t['id']; | |
105 | - $turma = $turma->detalhe(); | |
23 | + return ($anoLetivo['turmas_por_ano'] == 1); | |
24 | + } | |
106 | 25 | |
107 | - if ($turma['ano'] != $ano) | |
108 | - unset($turmas[$index]); | |
26 | + protected function getTurmas() | |
27 | + { | |
28 | + if ($this->canGetTurmas()) { | |
29 | + $userId = $this->getSession()->id_pessoa; | |
30 | + $instituicaoId = $this->getRequest()->instituicao_id; | |
31 | + $escolaId = $this->getRequest()->escola_id; | |
32 | + $serieId = $this->getRequest()->serie_id; | |
33 | + $ano = $this->getRequest()->ano; | |
34 | + $anoEmAndamento = $this->getRequest()->ano_em_andamento; | |
35 | + | |
36 | + $isOnlyProfessor = Portabilis_Business_Professor::isOnlyProfessor($instituicaoId, $userId); | |
37 | + | |
38 | + if ($isOnlyProfessor) { | |
39 | + $turmas = Portabilis_Business_Professor::turmasAlocado($instituicaoId, $escolaId, $serieId, $userId); | |
40 | + } else { | |
41 | + if (is_numeric($ano)) { | |
42 | + $sql = " | |
43 | + SELECT | |
44 | + cod_turma AS id, | |
45 | + nm_turma || ' - ' || COALESCE(ano::varchar,'SEM ANO') AS nome | |
46 | + FROM pmieducar.turma | |
47 | + WHERE ref_ref_cod_escola = $1 | |
48 | + AND ( | |
49 | + ref_ref_cod_serie = $2 | |
50 | + OR ref_ref_cod_serie_mult = $2 | |
51 | + ) | |
52 | + AND ativo = 1 | |
53 | + AND visivel != 'f' | |
54 | + AND turma.ano = $3 | |
55 | + ORDER BY nm_turma asc | |
56 | + "; | |
57 | + | |
58 | + $turmas = $this->fetchPreparedQuery($sql, [$escolaId, $serieId, $ano]); | |
59 | + } else { | |
60 | + $sql = " | |
61 | + SELECT | |
62 | + cod_turma AS id, | |
63 | + nm_turma || ' - ' || COALESCE(ano::varchar,'SEM ANO') AS nome | |
64 | + FROM pmieducar.turma | |
65 | + WHERE ref_ref_cod_escola = $1 | |
66 | + AND ( | |
67 | + ref_ref_cod_serie = $2 | |
68 | + OR ref_ref_cod_serie_mult = $2 | |
69 | + ) and ativo = 1 | |
70 | + AND visivel != 'f' | |
71 | + ORDER BY nm_turma asc | |
72 | + "; | |
73 | + | |
74 | + $turmas = $this->fetchPreparedQuery($sql, [$escolaId, $serieId]); | |
75 | + } | |
76 | + } | |
77 | + | |
78 | + // caso no ano letivo esteja definido para filtrar turmas por ano, | |
79 | + // somente retorna as turmas do ano letivo. | |
80 | + | |
81 | + if ($ano && $this->turmasPorAno($escolaId, $ano)) { | |
82 | + foreach ($turmas as $index => $t) { | |
83 | + $turma = new clsPmieducarTurma(); | |
84 | + $turma->cod_turma = $t['id']; | |
85 | + $turma = $turma->detalhe(); | |
86 | + | |
87 | + if ($turma['ano'] != $ano) { | |
88 | + unset($turmas[$index]); | |
89 | + } | |
90 | + } | |
91 | + } | |
92 | + | |
93 | + if ($anoEmAndamento == 1) { | |
94 | + foreach ($turmas as $index => $t) { | |
95 | + $turma = new clsPmieducarTurma(); | |
96 | + $turma->cod_turma = $t['id']; | |
97 | + $turma = $turma->checaAnoLetivoEmAndamento(); | |
98 | + | |
99 | + if (!$turma) { | |
100 | + unset($turmas[$index]); | |
101 | + } | |
102 | + } | |
103 | + } | |
104 | + | |
105 | + $options = []; | |
106 | + foreach ($turmas as $turma) { | |
107 | + $options['__' . $turma['id']] = mb_strtoupper($turma['nome'], 'UTF-8'); | |
108 | + } | |
109 | + | |
110 | + return ['options' => $options]; | |
109 | 111 | } |
110 | - } | |
111 | - | |
112 | - if ($anoEmAndamento == 1) { | |
113 | - foreach ($turmas as $index => $t) { | |
114 | - $turma = new clsPmieducarTurma(); | |
115 | - $turma->cod_turma = $t['id']; | |
116 | - $turma = $turma->checaAnoLetivoEmAndamento(); | |
112 | + } | |
117 | 113 | |
118 | - if (!$turma) | |
119 | - unset($turmas[$index]); | |
114 | + public function Gerar() | |
115 | + { | |
116 | + if ($this->isRequestFor('get', 'turmas')) { | |
117 | + $this->appendResponse($this->getTurmas()); | |
118 | + } else { | |
119 | + $this->notImplementedOperationError(); | |
120 | 120 | } |
121 | - } | |
122 | - | |
123 | - $options = array(); | |
124 | - foreach ($turmas as $turma) | |
125 | - $options['__' . $turma['id']] = mb_strtoupper($turma['nome'], 'UTF-8'); | |
126 | - | |
127 | - return array('options' => $options); | |
128 | 121 | } |
129 | - } | |
130 | - | |
131 | - public function Gerar() { | |
132 | - if ($this->isRequestFor('get', 'turmas')) | |
133 | - $this->appendResponse($this->getTurmas()); | |
134 | - else | |
135 | - $this->notImplementedOperationError(); | |
136 | - } | |
137 | 122 | } | ... | ... |