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 35  
36 36 require_once 'App/Date/Utils.php';
37 37  
  38 +require_once 'ComponenteCurricular/Model/TurmaDataMapper.php';
  39 +
38 40 /**
39 41 * clsIndexBase class.
40 42 *
... ... @@ -281,8 +283,11 @@ class indice extends clsCadastro
281 283 $this->ano_letivo_modulo = unserialize(urldecode($this->ano_letivo_modulo));
282 284  
283 285 if ($this->ano_letivo_modulo) {
  286 +
  287 + $this->copiarTurmasUltimoAno($this->ref_ref_cod_escola, $this->ref_ano);
  288 +
284 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 293 $cadastrou = $obj->cadastra();
... ... @@ -434,6 +439,122 @@ class indice extends clsCadastro
434 439  
435 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 560 // Instancia objeto de página
... ... @@ -450,7 +571,7 @@ $pagina->MakeAll();
450 571 ?>
451 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 576 function incluir()
456 577 {
... ...
ieducar/intranet/educar_turma_cad.php
... ... @@ -226,6 +226,10 @@ class indice extends clsCadastro
226 226 $this->campoLista('ref_ref_cod_serie', 'Série', $opcoes_serie, $this->ref_ref_cod_serie,
227 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 233 // Infra prédio cômodo
230 234 $opcoes = array('' => 'Selecione');
231 235  
... ... @@ -302,7 +306,8 @@ class indice extends clsCadastro
302 306  
303 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 312 $this->campoCheck('multiseriada', 'Multi-Seriada', $this->multiseriada, '',
308 313 FALSE, FALSE);
... ... @@ -687,7 +692,7 @@ class indice extends clsCadastro
687 692 $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente,
688 693 $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao,
689 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 697 $cadastrou = $obj->cadastra();
693 698  
... ... @@ -753,7 +758,7 @@ class indice extends clsCadastro
753 758 $this->ref_cod_regente, $this->ref_cod_instituicao_regente,
754 759 $this->ref_cod_instituicao, $this->ref_cod_curso,
755 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 763 $cadastrou = $obj->cadastra();
759 764  
... ... @@ -814,7 +819,8 @@ class indice extends clsCadastro
814 819 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola,
815 820 $this->visivel,
816 821 $this->turma_turno_id,
817   - $this->tipo_boletim);
  822 + $this->tipo_boletim,
  823 + $this->ano);
818 824  
819 825 $editou = $obj->edita();
820 826  
... ... @@ -885,7 +891,7 @@ class indice extends clsCadastro
885 891 $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente,
886 892 $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao,
887 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 896 $editou = $obj->edita();
891 897 }
... ...
ieducar/intranet/educar_turma_lst.php
... ... @@ -109,6 +109,7 @@ class indice extends clsListagem
109 109 $this->addBanner( "imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet" );
110 110  
111 111 $lista_busca = array(
  112 + "Ano",
112 113 "Turma",
113 114 "Turno",
114 115 "S&eacute;rie",
... ... @@ -121,7 +122,7 @@ class indice extends clsListagem
121 122 if ($nivel_usuario == 1)
122 123 {
123 124 $lista_busca[] = "Escola";
124   - $lista_busca[] = "Institui&ccedil;&atilde;o";
  125 + //$lista_busca[] = "Institui&ccedil;&atilde;o";
125 126 }
126 127 else if ($nivel_usuario == 2)
127 128 {
... ... @@ -142,8 +143,11 @@ class indice extends clsListagem
142 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 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 151 // Paginador
148 152 $this->limite = 20;
149 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 191 null,
188 192 $this->ref_cod_curso,
189 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 197 $total = $obj_turma->_total;
... ... @@ -250,6 +254,7 @@ class indice extends clsListagem
250 254  
251 255  
252 256 $lista_busca = array(
  257 + "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["ano"]}</a>",
253 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 281 else
277 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 286 else if ($nivel_usuario == 2)
282 287 {
... ... @@ -291,7 +296,7 @@ class indice extends clsListagem
291 296 }
292 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 301 $this->addLinhas($lista_busca);
297 302 }
... ...
ieducar/intranet/include/clsCadastro.inc.php
... ... @@ -725,7 +725,7 @@ class clsCadastro extends clsCampos
725 725 }
726 726  
727 727  
728   - public function inputsHelper() {
  728 + protected function inputsHelper() {
729 729 if (! isset($this->_inputsHelper))
730 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 35 }
36 36  
37 37 require_once 'Portabilis/View/Helper/Application.php';
  38 +require_once 'Portabilis/View/Helper/Inputs.php';
38 39  
39 40 define('alTopLeft', 'valign=top align=left');
40 41 define('alTopCenter', 'valign=top align=center');
... ... @@ -745,4 +746,11 @@ class clsListagem extends clsCampos
745 746 {
746 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 107 *
108 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 112 $db = new clsBanco();
113 113 $this->_schema = "pmieducar.";
114 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 118 if( is_numeric( $ref_usuario_exc ) )
119 119 {
... ... @@ -222,6 +222,7 @@ class clsPmieducarEscolaAnoLetivo
222 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 264 $valores .= "{$gruda}'{$this->andamento}'";
264 265 $gruda = ", ";
265 266 }
  267 +
266 268 $campos .= "{$gruda}data_cadastro";
267 269 $valores .= "{$gruda}NOW()";
268 270 $gruda = ", ";
  271 +
269 272 $campos .= "{$gruda}ativo";
270 273 $valores .= "{$gruda}'1'";
271 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 283 $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" );
275 284 return true;
... ...
ieducar/intranet/include/pmieducar/clsPmieducarTurma.inc.php
... ... @@ -126,13 +126,13 @@ class clsPmieducarTurma
126 126 *
127 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 131 $db = new clsBanco();
132 132 $this->_schema = "pmieducar.";
133 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 137 if( is_numeric( $ref_cod_turma_tipo ) )
138 138 {
... ... @@ -455,7 +455,7 @@ class clsPmieducarTurma
455 455  
456 456 $this->turma_turno_id = $turma_turno_id;
457 457 $this->tipo_boletim = $tipo_boletim;
458   -
  458 + $this->ano = $ano;
459 459 }
460 460  
461 461 /**
... ... @@ -610,6 +610,12 @@ class clsPmieducarTurma
610 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 619 $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" );
614 620 return $db->InsertId( "{$this->_tabela}_cod_turma_seq");
615 621 }
... ... @@ -762,7 +768,7 @@ class clsPmieducarTurma
762 768 $set .= "{$gruda}visivel = TRUE";
763 769 $gruda = ", ";
764 770 }
765   - else
  771 + else
766 772 {
767 773 $set .= "{$gruda}visivel = FALSE";
768 774 $gruda = ", ";
... ... @@ -786,6 +792,15 @@ class clsPmieducarTurma
786 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 804 if( $set )
790 805 {
791 806 $db->Consulta( "UPDATE {$this->_tabela} SET $set WHERE cod_turma = '{$this->cod_turma}'" );
... ... @@ -1131,7 +1146,7 @@ class clsPmieducarTurma
1131 1146 *
1132 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 1152 $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela} t";
... ... @@ -1335,7 +1350,7 @@ class clsPmieducarTurma
1335 1350 $filtros .= "{$whereAnd} t.visivel = TRUE";
1336 1351 $whereAnd = " AND ";
1337 1352 }
1338   - else
  1353 + else
1339 1354 {
1340 1355 $filtros .= "{$whereAnd} t.visivel = FALSE";
1341 1356 $whereAnd = " AND ";
... ... @@ -1346,17 +1361,27 @@ class clsPmieducarTurma
1346 1361 $filtros .= "{$whereAnd} t.visivel IN (".implode(",", $visivel).")";
1347 1362 $whereAnd = " AND ";
1348 1363 }
1349   - else
  1364 + else
1350 1365 {
1351 1366 $filtros .= "{$whereAnd} t.visivel = TRUE";
1352 1367 $whereAnd = " AND ";
1353 1368 }
1354   - if( is_numeric( $turma_turno_id ) )
1355   - {
  1369 +
  1370 + if( is_numeric( $turma_turno_id ) ) {
1356 1371 $filtros .= "{$whereAnd} t.turma_turno_id = '{$turma_turno_id}'";
1357 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 1385 $db = new clsBanco();
1361 1386 $countCampos = count( explode( ",", $this->_campos_lista ) );
1362 1387 $resultado = array();
... ... @@ -1398,7 +1423,7 @@ class clsPmieducarTurma
1398 1423 *
1399 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 1429 /*$nm_escola = "(
... ... @@ -1595,7 +1620,7 @@ and e.cod_escola = t.ref_ref_cod_escola
1595 1620 $filtros .= "{$whereAnd} t.visivel = TRUE";
1596 1621 $whereAnd = " AND ";
1597 1622 }
1598   - else
  1623 + else
1599 1624 {
1600 1625 $filtros .= "{$whereAnd} t.visivel = FALSE";
1601 1626 $whereAnd = " AND ";
... ... @@ -1606,12 +1631,26 @@ and e.cod_escola = t.ref_ref_cod_escola
1606 1631 $filtros .= "{$whereAnd} t.visivel IN (".implode(",", $visivel).")";
1607 1632 $whereAnd = " AND ";
1608 1633 }
1609   - else
  1634 + else
1610 1635 {
1611 1636 $filtros .= "{$whereAnd} t.visivel = TRUE";
1612 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 1655 $db = new clsBanco();
1617 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 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 53 protected function loadResourceAssets($dispatcher){
61 54 $rootPath = $_SERVER['DOCUMENT_ROOT'];
62 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 53 $instituicaoId = $this->getInstituicaoId($options['instituicaoId']);
54 54 $escolaId = $this->getEscolaId($options['escolaId']);
55 55 $serieId = $this->getSerieId($options['serieId']);
56   - //$cursoId = $this->getCursoId($options['cursoId']);
  56 + $ano = $this->viewInstance->ano;
  57 +
57 58 $userId = $this->getCurrentUserId();
58 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 65 elseif ($escolaId && $serieId && empty($resources))
65 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 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 95 public function turma($options = array()) {
71 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 @@
  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 7  
8 8 var $serieField = getElementFor('serie');
9 9 var $turmaField = getElementFor('turma');
  10 + var $ano = getElementFor('ano');
10 11  
11 12 var handleGetTurmas = function(response) {
12 13 var selectOptions = jsonResourcesToSelectOptions(response['options']);
... ... @@ -20,9 +21,10 @@
20 21 $turmaField.children().first().html('Aguarde carregando...');
21 22  
22 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 30 var options = {
... ...
ieducar/modules/DynamicInput/Views/TurmaController.php
... ... @@ -55,12 +55,22 @@ class TurmaController extends ApiCoreController
55 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 67 protected function getTurmas() {
59 68 if ($this->canGetTurmas()) {
60 69 $userId = $this->getSession()->id_pessoa;
61 70 $instituicaoId = $this->getRequest()->instituicao_id;
62 71 $escolaId = $this->getRequest()->escola_id;
63 72 $serieId = $this->getRequest()->serie_id;
  73 + $ano = $this->getRequest()->ano;
64 74  
65 75 $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId);
66 76  
... ... @@ -68,13 +78,27 @@ class TurmaController extends ApiCoreController
68 78 $turmas = Portabilis_Business_Professor::turmasAlocado($escolaId, $serieId, $userId);
69 79  
70 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 82 and (ref_ref_cod_serie = $2 or ref_ref_cod_serie_mult = $2) and ativo = 1 and
73 83 visivel != 'f' order by nm_turma asc";
74 84  
75 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 102 $options = array();
79 103 foreach ($turmas as $turma)
80 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 256 onClickSelectAllEvent ? $selectAllButton.click(onClickSelectAllEvent) : $selectAllButton.hide();
257 257 onClickActionEvent ? $actionButton.click(onClickActionEvent) : $actionButton.hide();
258 258 onClickDeleteEvent ? $deleteButton.click(onClickDeleteEvent) : $deleteButton.hide();
259   -
260   - fixupFieldsWidth();
261 259 }); // ready
262 260 })(jQuery);
... ...