Commit 6f9462a0299efb600bdd20a8eafc4ab2b3e25388

Authored by Lucas D'Avila
1 parent 677912db
Exists in master

Vinculado turma a ano letivo close #4

ieducar/intranet/educar_ano_letivo_modulo_cad.php
@@ -35,6 +35,8 @@ require_once 'include/pmieducar/geral.inc.php'; @@ -35,6 +35,8 @@ require_once 'include/pmieducar/geral.inc.php';
35 35
36 require_once 'App/Date/Utils.php'; 36 require_once 'App/Date/Utils.php';
37 37
  38 +require_once 'ComponenteCurricular/Model/TurmaDataMapper.php';
  39 +
38 /** 40 /**
39 * clsIndexBase class. 41 * clsIndexBase class.
40 * 42 *
@@ -281,8 +283,11 @@ class indice extends clsCadastro @@ -281,8 +283,11 @@ class indice extends clsCadastro
281 $this->ano_letivo_modulo = unserialize(urldecode($this->ano_letivo_modulo)); 283 $this->ano_letivo_modulo = unserialize(urldecode($this->ano_letivo_modulo));
282 284
283 if ($this->ano_letivo_modulo) { 285 if ($this->ano_letivo_modulo) {
  286 +
  287 + $this->copiarTurmasUltimoAno($this->ref_ref_cod_escola, $this->ref_ano);
  288 +
284 $obj = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, 289 $obj = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola,
285 - $this->ref_ano, $this->pessoa_logada, NULL, 0, NULL, NULL, 1 290 + $this->ref_ano, $this->pessoa_logada, NULL, 0, NULL, NULL, 1, 1
286 ); 291 );
287 292
288 $cadastrou = $obj->cadastra(); 293 $cadastrou = $obj->cadastra();
@@ -434,6 +439,122 @@ class indice extends clsCadastro @@ -434,6 +439,122 @@ class indice extends clsCadastro
434 439
435 return TRUE; 440 return TRUE;
436 } 441 }
  442 +
  443 + function copiarTurmasUltimoAno($escolaId, $anoDestino) {
  444 + $sql = 'select ano, turmas_por_ano from pmieducar.escola_ano_letivo where ref_cod_escola = $1 ' .
  445 + 'and ativo = 1 and ano in (select max(ano) from pmieducar.escola_ano_letivo where ' .
  446 + 'ref_cod_escola = $1 and ativo = 1)';
  447 +
  448 + $ultimoAnoLetivo = Portabilis_Utils_Database::selectRow($sql, $escolaId);
  449 +
  450 + $anoTurmasPorAno = $ultimoAnoLetivo['turmas_por_ano'] == 1 ? $ultimoAnoLetivo['ano'] : null;
  451 +
  452 + $turmasEscola = new clsPmieducarTurma();
  453 + $turmasEscola = $turmasEscola->lista(null, null, null, null, $escolaId, null, null, null,
  454 + null, null, null, null, null, null, 1, null, null,
  455 + null, null, null, null, null, null, null, null, null,
  456 + null, null, null, null, null, false, null, true, null,
  457 + null, $anoTurmasPorAno);
  458 +
  459 + foreach ($turmasEscola as $turma)
  460 + $this->copiarTurma($turma, $ultimoAnoLetivo['ano'], $anoDestino);
  461 + }
  462 +
  463 + function copiarTurma($turmaOrigem, $anoOrigem, $anoDestino) {
  464 + $sql = "select 1 from turma where ativo = 1 and visivel = true
  465 + and ref_ref_cod_escola = $1 and nm_turma = $2 and ref_ref_cod_serie = $3 and ano = $4 limit 1";
  466 +
  467 + $params = array(
  468 + $turmaOrigem['ref_ref_cod_escola'],
  469 + $turmaOrigem['nm_turma'],
  470 + $turmaOrigem['ref_ref_cod_serie'],
  471 + $anoDestino
  472 + );
  473 +
  474 + $existe = Portabilis_Utils_Database::selectField($sql, $params);
  475 +
  476 + if ($existe != 1) {
  477 + $fields = array('ref_usuario_exc', 'ref_usuario_cad', 'ref_ref_cod_serie', 'ref_ref_cod_escola',
  478 + 'ref_cod_infra_predio_comodo', 'nm_turma', 'sgl_turma', 'max_aluno', 'multiseriada',
  479 + 'data_cadastro', 'data_exclusao', 'ativo', 'ref_cod_turma_tipo', 'hora_inicial', 'hora_final',
  480 + 'hora_inicio_intervalo', 'hora_fim_intervalo', 'ref_cod_regente', 'ref_cod_instituicao_regente',
  481 + 'ref_cod_instituicao', 'ref_cod_curso', 'ref_ref_cod_serie_mult', 'ref_ref_cod_escola_mult',
  482 + 'visivel', 'turma_turno_id', 'tipo_boletim', 'ano');
  483 +
  484 + $turmaDestino = new clsPmieducarTurma();
  485 +
  486 + foreach ($fields as $fieldName)
  487 + $turmaDestino->$fieldName = $turmaOrigem[$fieldName];
  488 +
  489 + $turmaDestino->ano = $anoDestino;
  490 + $turmaDestinoId = $turmaDestino->cadastra();
  491 +
  492 + $this->copiarComponenteCurricularTurma($turmaOrigem['cod_turma'], $turmaDestinoId);
  493 + $this->copiarModulosTurma($turmaOrigem['cod_turma'], $turmaDestinoId, $anoOrigem, $anoDestino);
  494 + $this->copiarDiasSemanaTurma($turmaOrigem['cod_turma'], $turmaDestinoId);
  495 + }
  496 + }
  497 +
  498 + function copiarComponenteCurricularTurma($turmaOrigemId, $turmaDestinoId) {
  499 + $dataMapper = new ComponenteCurricular_Model_TurmaDataMapper();
  500 + $componentesTurmaOrigem = $dataMapper->findAll(array(), array('turma' => $turmaOrigemId));
  501 +
  502 + foreach ($componentesTurmaOrigem as $componenteTurmaOrigem) {
  503 + $data = array(
  504 + 'componenteCurricular' => $componenteTurmaOrigem->get('componenteCurricular'),
  505 + 'escola' => $componenteTurmaOrigem->get('escola'),
  506 + 'cargaHoraria' => $componenteTurmaOrigem->get('cargaHoraria'),
  507 + 'turma' => $turmaDestinoId,
  508 +
  509 + // está sendo mantido o mesmo ano_escolar_id, uma vez que não foi
  510 + // foi encontrado de onde o valor deste campo é obtido.
  511 + 'anoEscolar' => $componenteTurmaOrigem->get('anoEscolar')
  512 + );
  513 +
  514 + $componenteTurmaDestino = $dataMapper->createNewEntityInstance($data);
  515 + $dataMapper->save($componenteTurmaDestino);
  516 + }
  517 + }
  518 +
  519 + function copiarModulosTurma($turmaOrigemId, $turmaDestinoId, $anoOrigem, $anoDestino) {
  520 + $modulosTurmaOrigem = new clsPmieducarTurmaModulo();
  521 + $modulosTurmaOrigem = $modulosTurmaOrigem->lista($turmaOrigemId);
  522 +
  523 + foreach ($modulosTurmaOrigem as $moduloOrigem) {
  524 + $moduloDestino = new clsPmieducarTurmaModulo();
  525 +
  526 + $moduloDestino->ref_cod_modulo = $moduloOrigem['ref_cod_modulo'];
  527 + $moduloDestino->sequencial = $moduloOrigem['sequencial'];
  528 + $moduloDestino->ref_cod_turma = $turmaDestinoId;
  529 +
  530 + $moduloDestino->data_inicio = str_replace(
  531 + $anoOrigem, $anoDestino, $moduloOrigem['data_inicio']
  532 + );
  533 +
  534 + $moduloDestino->data_fim = str_replace(
  535 + $anoOrigem, $anoDestino, $moduloOrigem['data_fim']
  536 + );
  537 +
  538 + $moduloDestino->cadastra();
  539 + }
  540 + }
  541 +
  542 + function copiarDiasSemanaTurma($turmaOrigemId, $turmaDestinoId) {
  543 + $diasSemanaTurmaOrigem = new clsPmieducarTurmaDiaSemana();
  544 + $diasSemanaTurmaOrigem = $diasSemanaTurmaOrigem->lista(null, $turmaOrigemId);
  545 +
  546 + $fields = array('dia_semana', 'hora_inicial', 'hora_final');
  547 +
  548 + foreach ($diasSemanaTurmaOrigem as $diaSemanaOrigem) {
  549 + $diaSemanaDestino = new clsPmieducarTurmaDiaSemana();
  550 +
  551 + foreach ($fields as $fieldName)
  552 + $diaSemanaDestino->$fieldName = $diaSemanaOrigem[$fieldName];
  553 +
  554 + $diaSemanaDestino->ref_cod_turma = $turmaDestinoId;
  555 + $diaSemanaDestino->cadastra();
  556 + }
  557 + }
437 } 558 }
438 559
439 // Instancia objeto de página 560 // Instancia objeto de página
@@ -450,7 +571,7 @@ $pagina->MakeAll(); @@ -450,7 +571,7 @@ $pagina->MakeAll();
450 ?> 571 ?>
451 <script type="text/javascript"> 572 <script type="text/javascript">
452 /** 573 /**
453 - * Realiza validação client-side do formulário. 574 + * Realiza validação client-side do forComponenteCurricular_Model_TurmaDataMappermulário.
454 */ 575 */
455 function incluir() 576 function incluir()
456 { 577 {
ieducar/intranet/educar_turma_cad.php
@@ -226,6 +226,10 @@ class indice extends clsCadastro @@ -226,6 +226,10 @@ class indice extends clsCadastro
226 $this->campoLista('ref_ref_cod_serie', 'Série', $opcoes_serie, $this->ref_ref_cod_serie, 226 $this->campoLista('ref_ref_cod_serie', 'Série', $opcoes_serie, $this->ref_ref_cod_serie,
227 '', FALSE, '', $script); 227 '', FALSE, '', $script);
228 228
  229 + // o campo ano somente é exibido para turmas novas ou cadastradas após inclusão deste campo.
  230 + if (! isset($this->cod_turma) || isset($this->ano))
  231 + $this->inputsHelper()->dynamic('anoLetivo');
  232 +
229 // Infra prédio cômodo 233 // Infra prédio cômodo
230 $opcoes = array('' => 'Selecione'); 234 $opcoes = array('' => 'Selecione');
231 235
@@ -302,7 +306,8 @@ class indice extends clsCadastro @@ -302,7 +306,8 @@ class indice extends clsCadastro
302 306
303 $this->campoNumero('max_aluno', 'Máximo de Alunos', $this->max_aluno, 3, 3, TRUE); 307 $this->campoNumero('max_aluno', 'Máximo de Alunos', $this->max_aluno, 3, 3, TRUE);
304 308
305 - $this->campoCheck('visivel', 'Ativo', dbBool($this->visivel)); 309 + $ativo = isset($this->cod_turma) ? dbBool($this->visivel) : true;
  310 + $this->campoCheck('visivel', 'Ativo', $ativo);
306 311
307 $this->campoCheck('multiseriada', 'Multi-Seriada', $this->multiseriada, '', 312 $this->campoCheck('multiseriada', 'Multi-Seriada', $this->multiseriada, '',
308 FALSE, FALSE); 313 FALSE, FALSE);
@@ -687,7 +692,7 @@ class indice extends clsCadastro @@ -687,7 +692,7 @@ class indice extends clsCadastro
687 $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente, 692 $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente,
688 $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao, 693 $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao,
689 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, 694 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola,
690 - $this->visivel, $this->turma_turno_id, $this->tipo_boletim); 695 + $this->visivel, $this->turma_turno_id, $this->tipo_boletim, $this->ano);
691 696
692 $cadastrou = $obj->cadastra(); 697 $cadastrou = $obj->cadastra();
693 698
@@ -753,7 +758,7 @@ class indice extends clsCadastro @@ -753,7 +758,7 @@ class indice extends clsCadastro
753 $this->ref_cod_regente, $this->ref_cod_instituicao_regente, 758 $this->ref_cod_regente, $this->ref_cod_instituicao_regente,
754 $this->ref_cod_instituicao, $this->ref_cod_curso, 759 $this->ref_cod_instituicao, $this->ref_cod_curso,
755 $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, $this->visivel, 760 $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, $this->visivel,
756 - $this->turma_turno_id, $this->tipo_boletim); 761 + $this->turma_turno_id, $this->tipo_boletim, $this->ano);
757 762
758 $cadastrou = $obj->cadastra(); 763 $cadastrou = $obj->cadastra();
759 764
@@ -814,7 +819,8 @@ class indice extends clsCadastro @@ -814,7 +819,8 @@ class indice extends clsCadastro
814 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, 819 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola,
815 $this->visivel, 820 $this->visivel,
816 $this->turma_turno_id, 821 $this->turma_turno_id,
817 - $this->tipo_boletim); 822 + $this->tipo_boletim,
  823 + $this->ano);
818 824
819 $editou = $obj->edita(); 825 $editou = $obj->edita();
820 826
@@ -885,7 +891,7 @@ class indice extends clsCadastro @@ -885,7 +891,7 @@ class indice extends clsCadastro
885 $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente, 891 $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente,
886 $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao, 892 $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao,
887 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, 893 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola,
888 - $this->visivel, $this->turma_turno_id, $this->tipo_boletim); 894 + $this->visivel, $this->turma_turno_id, $this->tipo_boletim, $this->ano);
889 895
890 $editou = $obj->edita(); 896 $editou = $obj->edita();
891 } 897 }
ieducar/intranet/educar_turma_lst.php
@@ -109,6 +109,7 @@ class indice extends clsListagem @@ -109,6 +109,7 @@ class indice extends clsListagem
109 $this->addBanner( "imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet" ); 109 $this->addBanner( "imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet" );
110 110
111 $lista_busca = array( 111 $lista_busca = array(
  112 + "Ano",
112 "Turma", 113 "Turma",
113 "Turno", 114 "Turno",
114 "S&eacute;rie", 115 "S&eacute;rie",
@@ -121,7 +122,7 @@ class indice extends clsListagem @@ -121,7 +122,7 @@ class indice extends clsListagem
121 if ($nivel_usuario == 1) 122 if ($nivel_usuario == 1)
122 { 123 {
123 $lista_busca[] = "Escola"; 124 $lista_busca[] = "Escola";
124 - $lista_busca[] = "Institui&ccedil;&atilde;o"; 125 + //$lista_busca[] = "Institui&ccedil;&atilde;o";
125 } 126 }
126 else if ($nivel_usuario == 2) 127 else if ($nivel_usuario == 2)
127 { 128 {
@@ -142,8 +143,11 @@ class indice extends clsListagem @@ -142,8 +143,11 @@ class indice extends clsListagem
142 $this->ref_ref_cod_escola = $this->ref_cod_escola; 143 $this->ref_ref_cod_escola = $this->ref_cod_escola;
143 } 144 }
144 145
  146 + $helperOptions = array();
  147 + $this->inputsHelper()->dynamic('anoLetivo', array(), $helperOptions);
  148 +
145 $this->campoTexto( "nm_turma", "Turma", $this->nm_turma, 30, 255, false ); 149 $this->campoTexto( "nm_turma", "Turma", $this->nm_turma, 30, 255, false );
146 - $this->campoLista("visivel", "Situação", array("" => "Selecione", "1" => "Visível", "2" => "Invisível"), $this->visivel); 150 + $this->campoLista("visivel", "Situação", array("" => "Selecione", "1" => "Ativo", "2" => "Inativo"), $this->visivel);
147 // Paginador 151 // Paginador
148 $this->limite = 20; 152 $this->limite = 20;
149 $this->offset = ( $_GET["pagina_{$this->nome}"] ) ? $_GET["pagina_{$this->nome}"]*$this->limite-$this->limite: 0; 153 $this->offset = ( $_GET["pagina_{$this->nome}"] ) ? $_GET["pagina_{$this->nome}"]*$this->limite-$this->limite: 0;
@@ -187,7 +191,7 @@ class indice extends clsListagem @@ -187,7 +191,7 @@ class indice extends clsListagem
187 null, 191 null,
188 $this->ref_cod_curso, 192 $this->ref_cod_curso,
189 $this->ref_cod_instituicao, 193 $this->ref_cod_instituicao,
190 - null, null, null, null, null, $visivel 194 + null, null, null, null, null, $visivel, null, null, $this->ano
191 ); 195 );
192 196
193 $total = $obj_turma->_total; 197 $total = $obj_turma->_total;
@@ -250,6 +254,7 @@ class indice extends clsListagem @@ -250,6 +254,7 @@ class indice extends clsListagem
250 254
251 255
252 $lista_busca = array( 256 $lista_busca = array(
  257 + "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["ano"]}</a>",
253 "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["nm_turma"]}</a>" 258 "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["nm_turma"]}</a>"
254 ); 259 );
255 260
@@ -276,7 +281,7 @@ class indice extends clsListagem @@ -276,7 +281,7 @@ class indice extends clsListagem
276 else 281 else
277 $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">-</a>"; 282 $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">-</a>";
278 283
279 - $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["nm_instituicao"]}</a>"; 284 + //$lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["nm_instituicao"]}</a>";
280 } 285 }
281 else if ($nivel_usuario == 2) 286 else if ($nivel_usuario == 2)
282 { 287 {
@@ -291,7 +296,7 @@ class indice extends clsListagem @@ -291,7 +296,7 @@ class indice extends clsListagem
291 } 296 }
292 else 297 else
293 { 298 {
294 - $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">Desativo</a>"; 299 + $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">Inativo</a>";
295 } 300 }
296 $this->addLinhas($lista_busca); 301 $this->addLinhas($lista_busca);
297 } 302 }
ieducar/intranet/include/clsCadastro.inc.php
@@ -725,7 +725,7 @@ class clsCadastro extends clsCampos @@ -725,7 +725,7 @@ class clsCadastro extends clsCampos
725 } 725 }
726 726
727 727
728 - public function inputsHelper() { 728 + protected function inputsHelper() {
729 if (! isset($this->_inputsHelper)) 729 if (! isset($this->_inputsHelper))
730 $this->_inputsHelper = new Portabilis_View_Helper_Inputs($this); 730 $this->_inputsHelper = new Portabilis_View_Helper_Inputs($this);
731 731
ieducar/intranet/include/clsListagem.inc.php
@@ -35,6 +35,7 @@ if (class_exists(&#39;clsPmiajudaPagina&#39;)) { @@ -35,6 +35,7 @@ if (class_exists(&#39;clsPmiajudaPagina&#39;)) {
35 } 35 }
36 36
37 require_once 'Portabilis/View/Helper/Application.php'; 37 require_once 'Portabilis/View/Helper/Application.php';
  38 +require_once 'Portabilis/View/Helper/Inputs.php';
38 39
39 define('alTopLeft', 'valign=top align=left'); 40 define('alTopLeft', 'valign=top align=left');
40 define('alTopCenter', 'valign=top align=center'); 41 define('alTopCenter', 'valign=top align=center');
@@ -745,4 +746,11 @@ class clsListagem extends clsCampos @@ -745,4 +746,11 @@ class clsListagem extends clsCampos
745 { 746 {
746 die("<div style='width: 300px; height: 100px; font: 700 11px Arial,Helv,Sans; background-color: #f6f6f6; color: #e11; position: absolute; left: 50%; top: 50%; margin-top: -20px; margin-left: -100px; text-align: center; border: solid 1px #a1a1f1;'>{$msg}</div><script>setTimeout('window.location=\'$redir\'',5000);</script>"); 747 die("<div style='width: 300px; height: 100px; font: 700 11px Arial,Helv,Sans; background-color: #f6f6f6; color: #e11; position: absolute; left: 50%; top: 50%; margin-top: -20px; margin-left: -100px; text-align: center; border: solid 1px #a1a1f1;'>{$msg}</div><script>setTimeout('window.location=\'$redir\'',5000);</script>");
747 } 748 }
  749 +
  750 + public function inputsHelper() {
  751 + if (! isset($this->_inputsHelper))
  752 + $this->_inputsHelper = new Portabilis_View_Helper_Inputs($this);
  753 +
  754 + return $this->_inputsHelper;
  755 + }
748 } 756 }
ieducar/intranet/include/pmieducar/clsPmieducarEscolaAnoLetivo.inc.php
@@ -107,13 +107,13 @@ class clsPmieducarEscolaAnoLetivo @@ -107,13 +107,13 @@ class clsPmieducarEscolaAnoLetivo
107 * 107 *
108 * @return object 108 * @return object
109 */ 109 */
110 - function clsPmieducarEscolaAnoLetivo( $ref_cod_escola = null, $ano = null, $ref_usuario_cad = null, $ref_usuario_exc = null, $andamento = null, $data_cadastro = null, $data_exclusao = null, $ativo = null ) 110 + function clsPmieducarEscolaAnoLetivo( $ref_cod_escola = null, $ano = null, $ref_usuario_cad = null, $ref_usuario_exc = null, $andamento = null, $data_cadastro = null, $data_exclusao = null, $ativo = null, $turmas_por_ano = null )
111 { 111 {
112 $db = new clsBanco(); 112 $db = new clsBanco();
113 $this->_schema = "pmieducar."; 113 $this->_schema = "pmieducar.";
114 $this->_tabela = "{$this->_schema}escola_ano_letivo"; 114 $this->_tabela = "{$this->_schema}escola_ano_letivo";
115 115
116 - $this->_campos_lista = $this->_todos_campos = "ref_cod_escola, ano, ref_usuario_cad, ref_usuario_exc, andamento, data_cadastro, data_exclusao, ativo"; 116 + $this->_campos_lista = $this->_todos_campos = "ref_cod_escola, ano, ref_usuario_cad, ref_usuario_exc, andamento, data_cadastro, data_exclusao, ativo, turmas_por_ano";
117 117
118 if( is_numeric( $ref_usuario_exc ) ) 118 if( is_numeric( $ref_usuario_exc ) )
119 { 119 {
@@ -222,6 +222,7 @@ class clsPmieducarEscolaAnoLetivo @@ -222,6 +222,7 @@ class clsPmieducarEscolaAnoLetivo
222 $this->ativo = $ativo; 222 $this->ativo = $ativo;
223 } 223 }
224 224
  225 + $this->turmas_por_ano = $turmas_por_ano;
225 } 226 }
226 227
227 /** 228 /**
@@ -263,13 +264,21 @@ class clsPmieducarEscolaAnoLetivo @@ -263,13 +264,21 @@ class clsPmieducarEscolaAnoLetivo
263 $valores .= "{$gruda}'{$this->andamento}'"; 264 $valores .= "{$gruda}'{$this->andamento}'";
264 $gruda = ", "; 265 $gruda = ", ";
265 } 266 }
  267 +
266 $campos .= "{$gruda}data_cadastro"; 268 $campos .= "{$gruda}data_cadastro";
267 $valores .= "{$gruda}NOW()"; 269 $valores .= "{$gruda}NOW()";
268 $gruda = ", "; 270 $gruda = ", ";
  271 +
269 $campos .= "{$gruda}ativo"; 272 $campos .= "{$gruda}ativo";
270 $valores .= "{$gruda}'1'"; 273 $valores .= "{$gruda}'1'";
271 $gruda = ", "; 274 $gruda = ", ";
272 275
  276 + if( is_numeric( $this->turmas_por_ano ) )
  277 + {
  278 + $campos .= "{$gruda}turmas_por_ano";
  279 + $valores .= "{$gruda}'{$this->turmas_por_ano}'";
  280 + $gruda = ", ";
  281 + }
273 282
274 $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" ); 283 $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" );
275 return true; 284 return true;
ieducar/intranet/include/pmieducar/clsPmieducarTurma.inc.php
@@ -126,13 +126,13 @@ class clsPmieducarTurma @@ -126,13 +126,13 @@ class clsPmieducarTurma
126 * 126 *
127 * @return object 127 * @return object
128 */ 128 */
129 - function clsPmieducarTurma( $cod_turma = null, $ref_usuario_exc = null, $ref_usuario_cad = null, $ref_ref_cod_serie = null, $ref_ref_cod_escola = null, $ref_cod_infra_predio_comodo = null, $nm_turma = null, $sgl_turma = null, $max_aluno = null, $multiseriada = null, $data_cadastro = null, $data_exclusao = null, $ativo = null, $ref_cod_turma_tipo = null, $hora_inicial = null, $hora_final = null, $hora_inicio_intervalo = null, $hora_fim_intervalo = null, $ref_cod_regente = null, $ref_cod_instituicao_regente = null, $ref_cod_instituicao = null, $ref_cod_curso = null, $ref_ref_cod_serie_mult = null, $ref_ref_cod_escola_mult = null, $visivel = null, $turma_turno_id = null, $tipo_boletim = null) 129 + function clsPmieducarTurma( $cod_turma = null, $ref_usuario_exc = null, $ref_usuario_cad = null, $ref_ref_cod_serie = null, $ref_ref_cod_escola = null, $ref_cod_infra_predio_comodo = null, $nm_turma = null, $sgl_turma = null, $max_aluno = null, $multiseriada = null, $data_cadastro = null, $data_exclusao = null, $ativo = null, $ref_cod_turma_tipo = null, $hora_inicial = null, $hora_final = null, $hora_inicio_intervalo = null, $hora_fim_intervalo = null, $ref_cod_regente = null, $ref_cod_instituicao_regente = null, $ref_cod_instituicao = null, $ref_cod_curso = null, $ref_ref_cod_serie_mult = null, $ref_ref_cod_escola_mult = null, $visivel = null, $turma_turno_id = null, $tipo_boletim = null, $ano = null)
130 { 130 {
131 $db = new clsBanco(); 131 $db = new clsBanco();
132 $this->_schema = "pmieducar."; 132 $this->_schema = "pmieducar.";
133 $this->_tabela = "{$this->_schema}turma"; 133 $this->_tabela = "{$this->_schema}turma";
134 134
135 - $this->_campos_lista = $this->_todos_campos = "t.cod_turma, t.ref_usuario_exc, t.ref_usuario_cad, t.ref_ref_cod_serie, t.ref_ref_cod_escola, t.ref_cod_infra_predio_comodo, t.nm_turma, t.sgl_turma, t.max_aluno, t.multiseriada, t.data_cadastro, t.data_exclusao, t.ativo, t.ref_cod_turma_tipo, t.hora_inicial, t.hora_final, t.hora_inicio_intervalo, t.hora_fim_intervalo, t.ref_cod_regente, t.ref_cod_instituicao_regente,t.ref_cod_instituicao, t.ref_cod_curso, t.ref_ref_cod_serie_mult, t.ref_ref_cod_escola_mult, t.visivel, t.turma_turno_id, t.tipo_boletim"; 135 + $this->_campos_lista = $this->_todos_campos = "t.cod_turma, t.ref_usuario_exc, t.ref_usuario_cad, t.ref_ref_cod_serie, t.ref_ref_cod_escola, t.ref_cod_infra_predio_comodo, t.nm_turma, t.sgl_turma, t.max_aluno, t.multiseriada, t.data_cadastro, t.data_exclusao, t.ativo, t.ref_cod_turma_tipo, t.hora_inicial, t.hora_final, t.hora_inicio_intervalo, t.hora_fim_intervalo, t.ref_cod_regente, t.ref_cod_instituicao_regente,t.ref_cod_instituicao, t.ref_cod_curso, t.ref_ref_cod_serie_mult, t.ref_ref_cod_escola_mult, t.visivel, t.turma_turno_id, t.tipo_boletim, t.ano";
136 136
137 if( is_numeric( $ref_cod_turma_tipo ) ) 137 if( is_numeric( $ref_cod_turma_tipo ) )
138 { 138 {
@@ -455,7 +455,7 @@ class clsPmieducarTurma @@ -455,7 +455,7 @@ class clsPmieducarTurma
455 455
456 $this->turma_turno_id = $turma_turno_id; 456 $this->turma_turno_id = $turma_turno_id;
457 $this->tipo_boletim = $tipo_boletim; 457 $this->tipo_boletim = $tipo_boletim;
458 - 458 + $this->ano = $ano;
459 } 459 }
460 460
461 /** 461 /**
@@ -610,6 +610,12 @@ class clsPmieducarTurma @@ -610,6 +610,12 @@ class clsPmieducarTurma
610 $gruda = ", "; 610 $gruda = ", ";
611 } 611 }
612 612
  613 + if(is_numeric($this->ano)){
  614 + $campos .= "{$gruda}ano";
  615 + $valores .= "{$gruda}'{$this->ano}'";
  616 + $gruda = ", ";
  617 + }
  618 +
613 $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" ); 619 $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" );
614 return $db->InsertId( "{$this->_tabela}_cod_turma_seq"); 620 return $db->InsertId( "{$this->_tabela}_cod_turma_seq");
615 } 621 }
@@ -762,7 +768,7 @@ class clsPmieducarTurma @@ -762,7 +768,7 @@ class clsPmieducarTurma
762 $set .= "{$gruda}visivel = TRUE"; 768 $set .= "{$gruda}visivel = TRUE";
763 $gruda = ", "; 769 $gruda = ", ";
764 } 770 }
765 - else 771 + else
766 { 772 {
767 $set .= "{$gruda}visivel = FALSE"; 773 $set .= "{$gruda}visivel = FALSE";
768 $gruda = ", "; 774 $gruda = ", ";
@@ -786,6 +792,15 @@ class clsPmieducarTurma @@ -786,6 +792,15 @@ class clsPmieducarTurma
786 $gruda = ", "; 792 $gruda = ", ";
787 } 793 }
788 794
  795 + if(is_numeric($this->ano)) {
  796 + $set .= "{$gruda}ano = '{$this->ano}'";
  797 + $gruda = ", ";
  798 + }
  799 + else {
  800 + $set .= "{$gruda}ano = NULL";
  801 + $gruda = ", ";
  802 + }
  803 +
789 if( $set ) 804 if( $set )
790 { 805 {
791 $db->Consulta( "UPDATE {$this->_tabela} SET $set WHERE cod_turma = '{$this->cod_turma}'" ); 806 $db->Consulta( "UPDATE {$this->_tabela} SET $set WHERE cod_turma = '{$this->cod_turma}'" );
@@ -1131,7 +1146,7 @@ class clsPmieducarTurma @@ -1131,7 +1146,7 @@ class clsPmieducarTurma
1131 * 1146 *
1132 * @return array 1147 * @return array
1133 */ 1148 */
1134 - function lista( $int_cod_turma = null, $int_ref_usuario_exc = null, $int_ref_usuario_cad = null, $int_ref_ref_cod_serie = null, $int_ref_ref_cod_escola = null, $int_ref_cod_infra_predio_comodo = null, $str_nm_turma = null, $str_sgl_turma = null, $int_max_aluno = null, $int_multiseriada = null, $date_data_cadastro_ini = null, $date_data_cadastro_fim = null, $date_data_exclusao_ini = null, $date_data_exclusao_fim = null, $int_ativo = null, $int_ref_cod_turma_tipo = null, $time_hora_inicial_ini = null, $time_hora_inicial_fim = null, $time_hora_final_ini = null, $time_hora_final_fim = null, $time_hora_inicio_intervalo_ini = null, $time_hora_inicio_intervalo_fim = null, $time_hora_fim_intervalo_ini = null, $time_hora_fim_intervalo_fim = null, $int_ref_cod_curso = null, $int_ref_cod_instituicao = null, $int_ref_cod_regente = null, $int_ref_cod_instituicao_regente = null, $int_ref_ref_cod_escola_mult = null, $int_ref_ref_cod_serie_mult = null, $int_qtd_min_alunos_matriculados = null, $bool_verifica_serie_multiseriada = false, $bool_tem_alunos_aguardando_nota = null, $visivel = null, $turma_turno_id = null) 1149 + function lista( $int_cod_turma = null, $int_ref_usuario_exc = null, $int_ref_usuario_cad = null, $int_ref_ref_cod_serie = null, $int_ref_ref_cod_escola = null, $int_ref_cod_infra_predio_comodo = null, $str_nm_turma = null, $str_sgl_turma = null, $int_max_aluno = null, $int_multiseriada = null, $date_data_cadastro_ini = null, $date_data_cadastro_fim = null, $date_data_exclusao_ini = null, $date_data_exclusao_fim = null, $int_ativo = null, $int_ref_cod_turma_tipo = null, $time_hora_inicial_ini = null, $time_hora_inicial_fim = null, $time_hora_final_ini = null, $time_hora_final_fim = null, $time_hora_inicio_intervalo_ini = null, $time_hora_inicio_intervalo_fim = null, $time_hora_fim_intervalo_ini = null, $time_hora_fim_intervalo_fim = null, $int_ref_cod_curso = null, $int_ref_cod_instituicao = null, $int_ref_cod_regente = null, $int_ref_cod_instituicao_regente = null, $int_ref_ref_cod_escola_mult = null, $int_ref_ref_cod_serie_mult = null, $int_qtd_min_alunos_matriculados = null, $bool_verifica_serie_multiseriada = false, $bool_tem_alunos_aguardando_nota = null, $visivel = null, $turma_turno_id = null, $tipo_boletim = null, $ano = null)
1135 { 1150 {
1136 1151
1137 $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela} t"; 1152 $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela} t";
@@ -1335,7 +1350,7 @@ class clsPmieducarTurma @@ -1335,7 +1350,7 @@ class clsPmieducarTurma
1335 $filtros .= "{$whereAnd} t.visivel = TRUE"; 1350 $filtros .= "{$whereAnd} t.visivel = TRUE";
1336 $whereAnd = " AND "; 1351 $whereAnd = " AND ";
1337 } 1352 }
1338 - else 1353 + else
1339 { 1354 {
1340 $filtros .= "{$whereAnd} t.visivel = FALSE"; 1355 $filtros .= "{$whereAnd} t.visivel = FALSE";
1341 $whereAnd = " AND "; 1356 $whereAnd = " AND ";
@@ -1346,17 +1361,27 @@ class clsPmieducarTurma @@ -1346,17 +1361,27 @@ class clsPmieducarTurma
1346 $filtros .= "{$whereAnd} t.visivel IN (".implode(",", $visivel).")"; 1361 $filtros .= "{$whereAnd} t.visivel IN (".implode(",", $visivel).")";
1347 $whereAnd = " AND "; 1362 $whereAnd = " AND ";
1348 } 1363 }
1349 - else 1364 + else
1350 { 1365 {
1351 $filtros .= "{$whereAnd} t.visivel = TRUE"; 1366 $filtros .= "{$whereAnd} t.visivel = TRUE";
1352 $whereAnd = " AND "; 1367 $whereAnd = " AND ";
1353 } 1368 }
1354 - if( is_numeric( $turma_turno_id ) )  
1355 - { 1369 +
  1370 + if( is_numeric( $turma_turno_id ) ) {
1356 $filtros .= "{$whereAnd} t.turma_turno_id = '{$turma_turno_id}'"; 1371 $filtros .= "{$whereAnd} t.turma_turno_id = '{$turma_turno_id}'";
1357 $whereAnd = " AND "; 1372 $whereAnd = " AND ";
1358 } 1373 }
1359 1374
  1375 + if( is_numeric( $tipo_boletim ) ) {
  1376 + $filtros .= "{$whereAnd} t.tipo_boletim = '{$tipo_boletim}'";
  1377 + $whereAnd = " AND ";
  1378 + }
  1379 +
  1380 + if( is_numeric( $ano ) ) {
  1381 + $filtros .= "{$whereAnd} t.ano = '{$ano}'";
  1382 + $whereAnd = " AND ";
  1383 + }
  1384 +
1360 $db = new clsBanco(); 1385 $db = new clsBanco();
1361 $countCampos = count( explode( ",", $this->_campos_lista ) ); 1386 $countCampos = count( explode( ",", $this->_campos_lista ) );
1362 $resultado = array(); 1387 $resultado = array();
@@ -1398,7 +1423,7 @@ class clsPmieducarTurma @@ -1398,7 +1423,7 @@ class clsPmieducarTurma
1398 * 1423 *
1399 * @return array 1424 * @return array
1400 */ 1425 */
1401 - function lista2( $int_cod_turma = null, $int_ref_usuario_exc = null, $int_ref_usuario_cad = null, $int_ref_ref_cod_serie = null, $int_ref_ref_cod_escola = null, $int_ref_cod_infra_predio_comodo = null, $str_nm_turma = null, $str_sgl_turma = null, $int_max_aluno = null, $int_multiseriada = null, $date_data_cadastro_ini = null, $date_data_cadastro_fim = null, $date_data_exclusao_ini = null, $date_data_exclusao_fim = null, $int_ativo = null, $int_ref_cod_turma_tipo = null, $time_hora_inicial_ini = null, $time_hora_inicial_fim = null, $time_hora_final_ini = null, $time_hora_final_fim = null, $time_hora_inicio_intervalo_ini = null, $time_hora_inicio_intervalo_fim = null, $time_hora_fim_intervalo_ini = null, $time_hora_fim_intervalo_fim = null, $int_ref_cod_curso = null, $int_ref_cod_instituicao = null, $int_ref_cod_regente = null, $int_ref_cod_instituicao_regente = null, $int_ref_ref_cod_escola_mult = null, $int_ref_ref_cod_serie_mult = null, $int_qtd_min_alunos_matriculados = null, $visivel = null ) 1426 + function lista2( $int_cod_turma = null, $int_ref_usuario_exc = null, $int_ref_usuario_cad = null, $int_ref_ref_cod_serie = null, $int_ref_ref_cod_escola = null, $int_ref_cod_infra_predio_comodo = null, $str_nm_turma = null, $str_sgl_turma = null, $int_max_aluno = null, $int_multiseriada = null, $date_data_cadastro_ini = null, $date_data_cadastro_fim = null, $date_data_exclusao_ini = null, $date_data_exclusao_fim = null, $int_ativo = null, $int_ref_cod_turma_tipo = null, $time_hora_inicial_ini = null, $time_hora_inicial_fim = null, $time_hora_final_ini = null, $time_hora_final_fim = null, $time_hora_inicio_intervalo_ini = null, $time_hora_inicio_intervalo_fim = null, $time_hora_fim_intervalo_ini = null, $time_hora_fim_intervalo_fim = null, $int_ref_cod_curso = null, $int_ref_cod_instituicao = null, $int_ref_cod_regente = null, $int_ref_cod_instituicao_regente = null, $int_ref_ref_cod_escola_mult = null, $int_ref_ref_cod_serie_mult = null, $int_qtd_min_alunos_matriculados = null, $visivel = null, $turma_turno_id = null, $tipo_boletim = null, $ano = null )
1402 { 1427 {
1403 1428
1404 /*$nm_escola = "( 1429 /*$nm_escola = "(
@@ -1595,7 +1620,7 @@ and e.cod_escola = t.ref_ref_cod_escola @@ -1595,7 +1620,7 @@ and e.cod_escola = t.ref_ref_cod_escola
1595 $filtros .= "{$whereAnd} t.visivel = TRUE"; 1620 $filtros .= "{$whereAnd} t.visivel = TRUE";
1596 $whereAnd = " AND "; 1621 $whereAnd = " AND ";
1597 } 1622 }
1598 - else 1623 + else
1599 { 1624 {
1600 $filtros .= "{$whereAnd} t.visivel = FALSE"; 1625 $filtros .= "{$whereAnd} t.visivel = FALSE";
1601 $whereAnd = " AND "; 1626 $whereAnd = " AND ";
@@ -1606,12 +1631,26 @@ and e.cod_escola = t.ref_ref_cod_escola @@ -1606,12 +1631,26 @@ and e.cod_escola = t.ref_ref_cod_escola
1606 $filtros .= "{$whereAnd} t.visivel IN (".implode(",", $visivel).")"; 1631 $filtros .= "{$whereAnd} t.visivel IN (".implode(",", $visivel).")";
1607 $whereAnd = " AND "; 1632 $whereAnd = " AND ";
1608 } 1633 }
1609 - else 1634 + else
1610 { 1635 {
1611 $filtros .= "{$whereAnd} t.visivel = TRUE"; 1636 $filtros .= "{$whereAnd} t.visivel = TRUE";
1612 $whereAnd = " AND "; 1637 $whereAnd = " AND ";
1613 } 1638 }
1614 1639
  1640 + if( is_numeric( $turma_turno_id ) ) {
  1641 + $filtros .= "{$whereAnd} t.turma_turno_id = '{$turma_turno_id}'";
  1642 + $whereAnd = " AND ";
  1643 + }
  1644 +
  1645 + if( is_numeric( $tipo_boletim ) ) {
  1646 + $filtros .= "{$whereAnd} t.tipo_boletim = '{$tipo_boletim}'";
  1647 + $whereAnd = " AND ";
  1648 + }
  1649 +
  1650 + if( is_numeric( $ano ) ) {
  1651 + $filtros .= "{$whereAnd} t.ano = '{$ano}'";
  1652 + $whereAnd = " AND ";
  1653 + }
1615 1654
1616 $db = new clsBanco(); 1655 $db = new clsBanco();
1617 $countCampos = count( explode( ",", $this->_campos_lista ) ); 1656 $countCampos = count( explode( ",", $this->_campos_lista ) );
ieducar/lib/Portabilis/Controller/Page/ListController.php
@@ -50,13 +50,6 @@ class Portabilis_Controller_Page_ListController extends Core_Controller_Page_Lis @@ -50,13 +50,6 @@ class Portabilis_Controller_Page_ListController extends Core_Controller_Page_Lis
50 parent::__construct(); 50 parent::__construct();
51 } 51 }
52 52
53 - protected function inputsHelper() {  
54 - if (! isset($this->_inputsHelper))  
55 - $this->_inputsHelper = new Portabilis_View_Helper_Inputs($this);  
56 -  
57 - return $this->_inputsHelper;  
58 - }  
59 -  
60 protected function loadResourceAssets($dispatcher){ 53 protected function loadResourceAssets($dispatcher){
61 $rootPath = $_SERVER['DOCUMENT_ROOT']; 54 $rootPath = $_SERVER['DOCUMENT_ROOT'];
62 $controllerName = ucwords($dispatcher->getControllerName()); 55 $controllerName = ucwords($dispatcher->getControllerName());
ieducar/lib/Portabilis/View/Helper/DynamicInput/Turma.php
@@ -53,7 +53,8 @@ class Portabilis_View_Helper_DynamicInput_Turma extends Portabilis_View_Helper_D @@ -53,7 +53,8 @@ class Portabilis_View_Helper_DynamicInput_Turma extends Portabilis_View_Helper_D
53 $instituicaoId = $this->getInstituicaoId($options['instituicaoId']); 53 $instituicaoId = $this->getInstituicaoId($options['instituicaoId']);
54 $escolaId = $this->getEscolaId($options['escolaId']); 54 $escolaId = $this->getEscolaId($options['escolaId']);
55 $serieId = $this->getSerieId($options['serieId']); 55 $serieId = $this->getSerieId($options['serieId']);
56 - //$cursoId = $this->getCursoId($options['cursoId']); 56 + $ano = $this->viewInstance->ano;
  57 +
57 $userId = $this->getCurrentUserId(); 58 $userId = $this->getCurrentUserId();
58 $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId); 59 $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId);
59 60
@@ -64,9 +65,33 @@ class Portabilis_View_Helper_DynamicInput_Turma extends Portabilis_View_Helper_D @@ -64,9 +65,33 @@ class Portabilis_View_Helper_DynamicInput_Turma extends Portabilis_View_Helper_D
64 elseif ($escolaId && $serieId && empty($resources)) 65 elseif ($escolaId && $serieId && empty($resources))
65 $resources = App_Model_IedFinder::getTurmas($escolaId, $serieId); 66 $resources = App_Model_IedFinder::getTurmas($escolaId, $serieId);
66 67
  68 +
  69 + // caso no letivo esteja definido para filtrar turmas por ano,
  70 + // somente exibe as turmas do ano letivo.
  71 +
  72 + if ($escolaId && $ano && $this->turmasPorAno($escolaId, $ano)) {
  73 + foreach ($resources as $id => $nome) {
  74 + $turma = new clsPmieducarTurma();
  75 + $turma->cod_turma = $id;
  76 + $turma = $turma->detalhe();
  77 +
  78 + if ($turma['ano'] != $ano)
  79 + unset($resources[$id]);
  80 + }
  81 + }
  82 +
67 return $this->insertOption(null, "Selecione uma turma", $resources); 83 return $this->insertOption(null, "Selecione uma turma", $resources);
68 } 84 }
69 85
  86 + protected function turmasPorAno($escolaId, $ano) {
  87 + $anoLetivo = new clsPmieducarEscolaAnoLetivo();
  88 + $anoLetivo->ref_cod_escola = $escolaId;
  89 + $anoLetivo->ano = $ano;
  90 + $anoLetivo = $anoLetivo->detalhe();
  91 +
  92 + return ($anoLetivo['turmas_por_ano'] == 1);
  93 + }
  94 +
70 public function turma($options = array()) { 95 public function turma($options = array()) {
71 parent::select($options); 96 parent::select($options);
72 } 97 }
ieducar/misc/database/deltas/portabilis/50_adiciona_ano_em_turma_e_turmas_por_ano_em_escola_ano_letivo.sql 0 → 100644
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
  1 + -- //
  2 +
  3 + --
  4 + -- Adiciona ano em em pmieducar.turma e turmas_por_ano em pmieducar.escola_ano_letivo
  5 + -- @author Lucas D'Avila <lucasdavila@portabilis.com.br>
  6 + -- @license @@license@@
  7 + -- @version $Id$
  8 +
  9 + ALTER TABLE pmieducar.turma ADD COLUMN ano integer;
  10 + ALTER TABLE pmieducar.escola_ano_letivo ADD COLUMN turmas_por_ano smallint;
  11 +
  12 + -- //@UNDO
  13 +
  14 + ALTER TABLE pmieducar.turma DROP COLUMN ano;
  15 + ALTER TABLE pmieducar.escola_ano_letivo DROP COLUMN turmas_por_ano;
  16 +
  17 + -- //
ieducar/modules/DynamicInput/Assets/Javascripts/Turma.js
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 7
8 var $serieField = getElementFor('serie'); 8 var $serieField = getElementFor('serie');
9 var $turmaField = getElementFor('turma'); 9 var $turmaField = getElementFor('turma');
  10 + var $ano = getElementFor('ano');
10 11
11 var handleGetTurmas = function(response) { 12 var handleGetTurmas = function(response) {
12 var selectOptions = jsonResourcesToSelectOptions(response['options']); 13 var selectOptions = jsonResourcesToSelectOptions(response['options']);
@@ -20,9 +21,10 @@ @@ -20,9 +21,10 @@
20 $turmaField.children().first().html('Aguarde carregando...'); 21 $turmaField.children().first().html('Aguarde carregando...');
21 22
22 var urlForGetTurmas = getResourceUrlBuilder.buildUrl('/module/DynamicInput/turma', 'turmas', { 23 var urlForGetTurmas = getResourceUrlBuilder.buildUrl('/module/DynamicInput/turma', 'turmas', {
23 - instituicao_id : $instituicaoField.attr('value'),  
24 - escola_id : $escolaField.attr('value'),  
25 - serie_id : $serieField.attr('value') 24 + instituicao_id : $instituicaoField.val(),
  25 + escola_id : $escolaField.val(),
  26 + serie_id : $serieField.val(),
  27 + ano : $ano.val()
26 }); 28 });
27 29
28 var options = { 30 var options = {
ieducar/modules/DynamicInput/Views/TurmaController.php
@@ -55,12 +55,22 @@ class TurmaController extends ApiCoreController @@ -55,12 +55,22 @@ class TurmaController extends ApiCoreController
55 $this->validatesId('serie'); 55 $this->validatesId('serie');
56 } 56 }
57 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 +
58 protected function getTurmas() { 67 protected function getTurmas() {
59 if ($this->canGetTurmas()) { 68 if ($this->canGetTurmas()) {
60 $userId = $this->getSession()->id_pessoa; 69 $userId = $this->getSession()->id_pessoa;
61 $instituicaoId = $this->getRequest()->instituicao_id; 70 $instituicaoId = $this->getRequest()->instituicao_id;
62 $escolaId = $this->getRequest()->escola_id; 71 $escolaId = $this->getRequest()->escola_id;
63 $serieId = $this->getRequest()->serie_id; 72 $serieId = $this->getRequest()->serie_id;
  73 + $ano = $this->getRequest()->ano;
64 74
65 $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId); 75 $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId);
66 76
@@ -68,13 +78,27 @@ class TurmaController extends ApiCoreController @@ -68,13 +78,27 @@ class TurmaController extends ApiCoreController
68 $turmas = Portabilis_Business_Professor::turmasAlocado($escolaId, $serieId, $userId); 78 $turmas = Portabilis_Business_Professor::turmasAlocado($escolaId, $serieId, $userId);
69 79
70 else { 80 else {
71 - $sql = "select cod_turma as id, nm_turma as nome from pmieducar.turma where ref_ref_cod_escola = $1 81 + $sql = "select cod_turma as id, nm_turma as nome from pmieducar.turma where ref_ref_cod_escola = $1
72 and (ref_ref_cod_serie = $2 or ref_ref_cod_serie_mult = $2) and ativo = 1 and 82 and (ref_ref_cod_serie = $2 or ref_ref_cod_serie_mult = $2) and ativo = 1 and
73 visivel != 'f' order by nm_turma asc"; 83 visivel != 'f' order by nm_turma asc";
74 84
75 $turmas = $this->fetchPreparedQuery($sql, array($escolaId, $serieId)); 85 $turmas = $this->fetchPreparedQuery($sql, array($escolaId, $serieId));
76 } 86 }
77 87
  88 + // caso no ano letivo esteja definido para filtrar turmas por ano,
  89 + // somente retorna as turmas do ano letivo.
  90 +
  91 + if ($ano && $this->turmasPorAno($escolaId, $ano)) {
  92 + foreach ($turmas as $index => $t) {
  93 + $turma = new clsPmieducarTurma();
  94 + $turma->cod_turma = $t['id'];
  95 + $turma = $turma->detalhe();
  96 +
  97 + if ($turma['ano'] != $ano)
  98 + unset($turmas[$index]);
  99 + }
  100 + }
  101 +
78 $options = array(); 102 $options = array();
79 foreach ($turmas as $turma) 103 foreach ($turmas as $turma)
80 $options['__' . $turma['id']] = $this->toUtf8($turma['nome']); 104 $options['__' . $turma['id']] = $this->toUtf8($turma['nome']);
ieducar/modules/Portabilis/Assets/Javascripts/Frontend/Process.js
@@ -256,7 +256,5 @@ var $resultTable = $j(&#39;#form_resultado .tablelistagem&#39;).addClass(&#39;horizontal-exp @@ -256,7 +256,5 @@ var $resultTable = $j(&#39;#form_resultado .tablelistagem&#39;).addClass(&#39;horizontal-exp
256 onClickSelectAllEvent ? $selectAllButton.click(onClickSelectAllEvent) : $selectAllButton.hide(); 256 onClickSelectAllEvent ? $selectAllButton.click(onClickSelectAllEvent) : $selectAllButton.hide();
257 onClickActionEvent ? $actionButton.click(onClickActionEvent) : $actionButton.hide(); 257 onClickActionEvent ? $actionButton.click(onClickActionEvent) : $actionButton.hide();
258 onClickDeleteEvent ? $deleteButton.click(onClickDeleteEvent) : $deleteButton.hide(); 258 onClickDeleteEvent ? $deleteButton.click(onClickDeleteEvent) : $deleteButton.hide();
259 -  
260 - fixupFieldsWidth();  
261 }); // ready 259 }); // ready
262 })(jQuery); 260 })(jQuery);