Commit 16e95954308e276dfebbd17295102292e7cc379e

Authored by Lucas Schmoeller da Silva
1 parent 6b88aed5
Exists in master

Adicionado opção para desenturmar em enturmações em lote

portabilis/ieducar#433
ieducar/intranet/educar_matriculas_turma_cad.php
@@ -86,6 +86,8 @@ class indice extends clsCadastro @@ -86,6 +86,8 @@ class indice extends clsCadastro
86 var $incluir_matricula; 86 var $incluir_matricula;
87 var $data_enturmacao; 87 var $data_enturmacao;
88 88
  89 + var $check_desenturma;
  90 +
89 function Inicializar() 91 function Inicializar()
90 { 92 {
91 @session_start(); 93 @session_start();
@@ -229,6 +231,7 @@ class indice extends clsCadastro @@ -229,6 +231,7 @@ class indice extends clsCadastro
229 } 231 }
230 232
231 if ($this->matriculas_turma) { 233 if ($this->matriculas_turma) {
  234 + $this->campoRotulo('titulo', 'Matr&iacute;culas', "<b>&nbsp;Alunos matriculados&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marque alunos para desenturmar</b><label style='display: block; width: 350px; margin-left: 196px;'><input type='checkbox' name='CheckTodos' onClick='marcarCheck(".'"check_desenturma[]"'.");'/>Marcar Todos</label>");
232 foreach ($this->matriculas_turma as $matricula => $campo) { 235 foreach ($this->matriculas_turma as $matricula => $campo) {
233 $obj_matricula = new clsPmieducarMatricula($matricula); 236 $obj_matricula = new clsPmieducarMatricula($matricula);
234 $det_matricula = $obj_matricula->detalhe(); 237 $det_matricula = $obj_matricula->detalhe();
@@ -239,7 +242,9 @@ class indice extends clsCadastro @@ -239,7 +242,9 @@ class indice extends clsCadastro
239 $nm_aluno = $det_aluno['nome_aluno']; 242 $nm_aluno = $det_aluno['nome_aluno'];
240 243
241 $this->campoTextoInv('ref_cod_matricula_' . $matricula, '', $nm_aluno, 244 $this->campoTextoInv('ref_cod_matricula_' . $matricula, '', $nm_aluno,
242 - 30, 255, FALSE, FALSE, FALSE, '', '', '', '', 'ref_cod_matricula'); 245 + 30, 255, FALSE, FALSE, TRUE, '', '', '', '', 'ref_cod_matricula');
  246 +
  247 + $this->campoCheck('check_desenturma['.$matricula.']','',$matricula);
243 } 248 }
244 } 249 }
245 250
@@ -292,6 +297,11 @@ class indice extends clsCadastro @@ -292,6 +297,11 @@ class indice extends clsCadastro
292 $this->data_enturmacao = Portabilis_Date_Utils::brToPgSQL($this->data_enturmacao); 297 $this->data_enturmacao = Portabilis_Date_Utils::brToPgSQL($this->data_enturmacao);
293 @session_write_close(); 298 @session_write_close();
294 299
  300 + // realiza desenturmações
  301 + foreach ($this->check_desenturma as $matricula) {
  302 + $this->removerEnturmacao($matricula,$this->ref_cod_turma);
  303 + }
  304 +
295 if ($this->matriculas_turma) { 305 if ($this->matriculas_turma) {
296 foreach ($this->ref_cod_matricula as $matricula => $campo) { 306 foreach ($this->ref_cod_matricula as $matricula => $campo) {
297 $obj = new clsPmieducarMatriculaTurma($matricula, $this->ref_cod_turma, 307 $obj = new clsPmieducarMatriculaTurma($matricula, $this->ref_cod_turma,
@@ -322,6 +332,34 @@ class indice extends clsCadastro @@ -322,6 +332,34 @@ class indice extends clsCadastro
322 function Excluir() 332 function Excluir()
323 { 333 {
324 } 334 }
  335 +
  336 + function removerEnturmacao($matriculaId, $turmaId) {
  337 + $sequencialEnturmacao = $this->getSequencialEnturmacaoByTurmaId($matriculaId, $turmaId);
  338 + $enturmacao = new clsPmieducarMatriculaTurma($matriculaId,
  339 + $turmaId,
  340 + $this->pessoa_logada,
  341 + NULL,
  342 + NULL,
  343 + NULL,
  344 + 0,
  345 + NULL,
  346 + $sequencialEnturmacao);
  347 +
  348 + return $enturmacao->edita();
  349 + }
  350 +
  351 +
  352 + function getSequencialEnturmacaoByTurmaId($matriculaId, $turmaId) {
  353 + $db = new clsBanco();
  354 + $sql = 'select coalesce(max(sequencial), 1) from pmieducar.matricula_turma where ativo = 1 and ref_cod_matricula = $1 and ref_cod_turma = $2';
  355 +
  356 + if ($db->execPreparedQuery($sql, array($matriculaId, $turmaId)) != false) {
  357 + $db->ProximoRegistro();
  358 + $sequencial = $db->Tupla();
  359 + return $sequencial[0];
  360 + }
  361 + return 1;
  362 + }
325 } 363 }
326 364
327 // Instancia objeto de página 365 // Instancia objeto de página
@@ -334,4 +372,31 @@ $miolo = new indice(); @@ -334,4 +372,31 @@ $miolo = new indice();
334 $pagina->addForm($miolo); 372 $pagina->addForm($miolo);
335 373
336 // Gera o código HTML 374 // Gera o código HTML
337 -$pagina->MakeAll();  
338 \ No newline at end of file 375 \ No newline at end of file
  376 +$pagina->MakeAll();
  377 +
  378 +?>
  379 +
  380 +<script type="text/javascript">
  381 +
  382 + function fixUpCheckBoxes(){
  383 + $j('input[name^=check_desenturma]').each(function(index, element){
  384 + element.id = 'check_desenturma[]';
  385 + element.checked = false;
  386 + });
  387 + }
  388 +
  389 + fixUpCheckBoxes();
  390 +
  391 + function marcarCheck(idValue) {
  392 + // testar com formcadastro
  393 + var contaForm = document.formcadastro.elements.length;
  394 + var campo = document.formcadastro;
  395 + var i;
  396 + for (i=0; i<contaForm; i++) {
  397 + if (campo.elements[i].id == idValue) {
  398 +
  399 + campo.elements[i].checked = campo.CheckTodos.checked;
  400 + }
  401 + }
  402 + }
  403 +</script>
ieducar/intranet/educar_matriculas_turma_lst.php
@@ -89,6 +89,7 @@ class indice extends clsListagem @@ -89,6 +89,7 @@ class indice extends clsListagem
89 $this->addBanner( "imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet" ); 89 $this->addBanner( "imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet" );
90 90
91 $lista_busca = array( 91 $lista_busca = array(
  92 + "Ano",
92 "Turma", 93 "Turma",
93 "S&eacute;rie", 94 "S&eacute;rie",
94 "Curso" 95 "Curso"
@@ -221,6 +222,7 @@ class indice extends clsListagem @@ -221,6 +222,7 @@ class indice extends clsListagem
221 } 222 }
222 223
223 $lista_busca = array( 224 $lista_busca = array(
  225 + "<a href=\"educar_matriculas_turma_cad.php?ref_cod_turma={$registro["cod_turma"]}\">{$registro["ano"]}</a>",
224 "<a href=\"educar_matriculas_turma_cad.php?ref_cod_turma={$registro["cod_turma"]}\">{$registro["nm_turma"]}</a>" 226 "<a href=\"educar_matriculas_turma_cad.php?ref_cod_turma={$registro["cod_turma"]}\">{$registro["nm_turma"]}</a>"
225 ); 227 );
226 228
ieducar/intranet/educar_turma_xml.php
@@ -39,7 +39,7 @@ @@ -39,7 +39,7 @@
39 { 39 {
40 $db = new clsBanco(); 40 $db = new clsBanco();
41 // $db->Consulta( "SELECT cod_turma, nm_turma FROM pmieducar.turma WHERE ref_ref_cod_escola = {$_GET["esc"]} AND ref_ref_cod_serie = {$_GET["ser"]} AND ativo = 1 ORDER BY nm_turma ASC" ); 41 // $db->Consulta( "SELECT cod_turma, nm_turma FROM pmieducar.turma WHERE ref_ref_cod_escola = {$_GET["esc"]} AND ref_ref_cod_serie = {$_GET["ser"]} AND ativo = 1 ORDER BY nm_turma ASC" );
42 - $db->Consulta( "SELECT cod_turma, nm_turma FROM pmieducar.turma WHERE ref_ref_cod_escola = {$_GET["esc"]} AND (ref_ref_cod_serie = {$_GET["ser"]} OR ref_ref_cod_serie_mult = {$_GET["ser"]}) AND ativo = 1 ORDER BY nm_turma ASC" ); 42 + $db->Consulta( "SELECT cod_turma, nm_turma FROM pmieducar.turma WHERE ref_ref_cod_escola = {$_GET["esc"]} AND (ref_ref_cod_serie = {$_GET["ser"]} OR ref_ref_cod_serie_mult = {$_GET["ser"]}) AND ativo = 1 AND turma.ano = ( SELECT ano FROM pmieducar.escola_ano_letivo enl WHERE enl.ref_cod_escola = turma.ref_ref_cod_escola AND andamento = 1) ORDER BY nm_turma ASC" );
43 while ( $db->ProximoRegistro() ) 43 while ( $db->ProximoRegistro() )
44 { 44 {
45 list( $cod, $nome ) = $db->Tupla(); 45 list( $cod, $nome ) = $db->Tupla();
ieducar/intranet/include/pmieducar/clsPmieducarTurma.inc.php
@@ -1919,12 +1919,8 @@ and e.cod_escola = t.ref_ref_cod_escola @@ -1919,12 +1919,8 @@ and e.cod_escola = t.ref_ref_cod_escola
1919 $whereAnd = " AND "; 1919 $whereAnd = " AND ";
1920 } 1920 }
1921 1921
1922 - $filtros .= "{$whereAnd} (ano = (SELECT max(ano)  
1923 - FROM pmieducar.escola_ano_letivo mat  
1924 - WHERE ativo = 1 and mat.andamento = 1) or ((t.ano is null) AND (select 1 from pmieducar.matricula_turma  
1925 - where ativo = 1 and date_part('year',data_cadastro) = (SELECT max(ano)  
1926 - FROM pmieducar.escola_ano_letivo  
1927 - WHERE ativo = 1 and andamento = 1) and t.cod_turma = ref_cod_turma limit 1) is not null))"; 1922 + // Retirar OR quando todas turmas tiverem a coluna ANO definido.
  1923 + $filtros .= "{$whereAnd} t.ano = ( SELECT ano FROM pmieducar.escola_ano_letivo enl WHERE enl.ref_cod_escola = t.ref_ref_cod_escola AND andamento = 1)";
1928 1924
1929 $db = new clsBanco(); 1925 $db = new clsBanco();
1930 $countCampos = count( explode( ",", $this->_campos_lista ) ); 1926 $countCampos = count( explode( ",", $this->_campos_lista ) );