Commit ad64726cfec4c83d2cb46cf3f08292bfe2e1a428

Authored by Lucas Schmoeller da Silva
1 parent b32808eb
Exists in master

Criado controle de fechamento de turma e ordenação

portabilis/ieducar#114
ieducar/intranet/educar_turma_cad.php
@@ -33,6 +33,7 @@ require_once 'include/clsCadastro.inc.php'; @@ -33,6 +33,7 @@ require_once 'include/clsCadastro.inc.php';
33 require_once 'include/clsBanco.inc.php'; 33 require_once 'include/clsBanco.inc.php';
34 require_once 'include/pmieducar/geral.inc.php'; 34 require_once 'include/pmieducar/geral.inc.php';
35 require_once 'Portabilis/String/Utils.php'; 35 require_once 'Portabilis/String/Utils.php';
  36 +require_once 'lib/Portabilis/Date/Utils.php';
36 37
37 /** 38 /**
38 * clsIndexBase class. 39 * clsIndexBase class.
@@ -85,6 +86,7 @@ class indice extends clsCadastro @@ -85,6 +86,7 @@ class indice extends clsCadastro
85 var $hora_final; 86 var $hora_final;
86 var $hora_inicio_intervalo; 87 var $hora_inicio_intervalo;
87 var $hora_fim_intervalo; 88 var $hora_fim_intervalo;
  89 + var $data_fechamento;
88 90
89 var $ref_cod_instituicao; 91 var $ref_cod_instituicao;
90 var $ref_cod_curso; 92 var $ref_cod_curso;
@@ -319,6 +321,8 @@ class indice extends clsCadastro @@ -319,6 +321,8 @@ class indice extends clsCadastro
319 321
320 $this->campoNumero('max_aluno', 'Máximo de Alunos', $this->max_aluno, 3, 3, TRUE); 322 $this->campoNumero('max_aluno', 'Máximo de Alunos', $this->max_aluno, 3, 3, TRUE);
321 323
  324 + $this->inputsHelper()->date('data_fechamento', array('required' => false,'label' => 'Data de fechamento' ,'value' => Portabilis_Date_Utils::pgSQLToBr($this->data_fechamento)));
  325 +
322 $ativo = isset($this->cod_turma) ? dbBool($this->visivel) : true; 326 $ativo = isset($this->cod_turma) ? dbBool($this->visivel) : true;
323 $this->campoCheck('visivel', 'Ativo', $ativo); 327 $this->campoCheck('visivel', 'Ativo', $ativo);
324 328
@@ -672,6 +676,8 @@ class indice extends clsCadastro @@ -672,6 +676,8 @@ class indice extends clsCadastro
672 $this->pessoa_logada = $_SESSION['id_pessoa']; 676 $this->pessoa_logada = $_SESSION['id_pessoa'];
673 @session_write_close(); 677 @session_write_close();
674 678
  679 + $this->data_fechamento = Portabilis_Date_Utils::brToPgSQL($this->data_fechamento);
  680 +
675 if(! $this->canCreateTurma($this->ref_cod_escola, $this->ref_ref_cod_serie, $this->turma_turno_id)) 681 if(! $this->canCreateTurma($this->ref_cod_escola, $this->ref_ref_cod_serie, $this->turma_turno_id))
676 return false; 682 return false;
677 683
@@ -705,7 +711,7 @@ class indice extends clsCadastro @@ -705,7 +711,7 @@ class indice extends clsCadastro
705 $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente, 711 $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente,
706 $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao, 712 $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao,
707 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, 713 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola,
708 - $this->visivel, $this->turma_turno_id, $this->tipo_boletim, $this->ano); 714 + $this->visivel, $this->turma_turno_id, $this->tipo_boletim, $this->ano, $this->data_fechamento);
709 715
710 $cadastrou = $obj->cadastra(); 716 $cadastrou = $obj->cadastra();
711 717
@@ -772,7 +778,7 @@ class indice extends clsCadastro @@ -772,7 +778,7 @@ class indice extends clsCadastro
772 $this->ref_cod_regente, $this->ref_cod_instituicao_regente, 778 $this->ref_cod_regente, $this->ref_cod_instituicao_regente,
773 $this->ref_cod_instituicao, $this->ref_cod_curso, 779 $this->ref_cod_instituicao, $this->ref_cod_curso,
774 $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, $this->visivel, 780 $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, $this->visivel,
775 - $this->turma_turno_id, $this->tipo_boletim, $this->ano); 781 + $this->turma_turno_id, $this->tipo_boletim, $this->ano, $this->data_fechamento);
776 782
777 $cadastrou = $obj->cadastra(); 783 $cadastrou = $obj->cadastra();
778 784
@@ -801,6 +807,8 @@ class indice extends clsCadastro @@ -801,6 +807,8 @@ class indice extends clsCadastro
801 $this->pessoa_logada = $_SESSION['id_pessoa']; 807 $this->pessoa_logada = $_SESSION['id_pessoa'];
802 @session_write_close(); 808 @session_write_close();
803 809
  810 + $this->data_fechamento = Portabilis_Date_Utils::brToPgSQL($this->data_fechamento);
  811 +
804 if(is_numeric($this->ano_hidden)) 812 if(is_numeric($this->ano_hidden))
805 $this->ano = $this->ano_hidden; 813 $this->ano = $this->ano_hidden;
806 814
@@ -837,7 +845,7 @@ class indice extends clsCadastro @@ -837,7 +845,7 @@ class indice extends clsCadastro
837 $this->visivel, 845 $this->visivel,
838 $this->turma_turno_id, 846 $this->turma_turno_id,
839 $this->tipo_boletim, 847 $this->tipo_boletim,
840 - $this->ano); 848 + $this->ano, $this->data_fechamento);
841 849
842 $editou = $obj->edita(); 850 $editou = $obj->edita();
843 851
@@ -908,7 +916,7 @@ class indice extends clsCadastro @@ -908,7 +916,7 @@ class indice extends clsCadastro
908 $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente, 916 $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente,
909 $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao, 917 $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao,
910 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, 918 $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola,
911 - $this->visivel, $this->turma_turno_id, $this->tipo_boletim, $this->ano); 919 + $this->visivel, $this->turma_turno_id, $this->tipo_boletim, $this->ano, $this->data_fechamento);
912 920
913 $editou = $obj->edita(); 921 $editou = $obj->edita();
914 } 922 }
ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php
@@ -51,6 +51,7 @@ class clsPmieducarMatriculaTurma @@ -51,6 +51,7 @@ class clsPmieducarMatriculaTurma
51 var $ativo; 51 var $ativo;
52 var $ref_cod_turma_transf; 52 var $ref_cod_turma_transf;
53 var $sequencial; 53 var $sequencial;
  54 + var $sequencial_fechamento;
54 55
55 /** 56 /**
56 * Armazena o total de resultados obtidos na última chamada ao método lista(). 57 * Armazena o total de resultados obtidos na última chamada ao método lista().
@@ -294,6 +295,14 @@ class clsPmieducarMatriculaTurma @@ -294,6 +295,14 @@ class clsPmieducarMatriculaTurma
294 $campos .= "{$gruda}data_enturmacao"; 295 $campos .= "{$gruda}data_enturmacao";
295 $valores .= "{$gruda}'{$this->data_enturmacao}'"; 296 $valores .= "{$gruda}'{$this->data_enturmacao}'";
296 $gruda = ", "; 297 $gruda = ", ";
  298 + }
  299 +
  300 + $this->sequencial_fechamento = $this->getSequencialFechamento($this->ref_cod_matricula, $this->ref_cod_turma, $this->data_enturmacao);
  301 +
  302 + if(is_numeric($this->sequencial_fechamento)){
  303 + $campos .= "{$gruda}sequencial_fechamento";
  304 + $valores .= "{$gruda}'{$this->sequencial_fechamento}'";
  305 + $gruda = ", ";
297 } 306 }
298 307
299 $db->Consulta("INSERT INTO {$this->_tabela} ($campos) VALUES ($valores)"); 308 $db->Consulta("INSERT INTO {$this->_tabela} ($campos) VALUES ($valores)");
@@ -1269,4 +1278,15 @@ class clsPmieducarMatriculaTurma @@ -1269,4 +1278,15 @@ class clsPmieducarMatriculaTurma
1269 1278
1270 return FALSE; 1279 return FALSE;
1271 } 1280 }
  1281 + function getSequencialFechamento($matriculaId, $turmaId, $dataEnturmacao){
  1282 + $db = new clsBanco();
  1283 + $possui_fechamento = $db->CampoUnico("SELECT data_fechamento FROM pmieducar.turma WHERE cod_turma = {$turmaId}");
  1284 + if (is_string($possui_fechamento)){
  1285 + if (strtotime($possui_fechamento) < strtotime($dataEnturmacao))
  1286 + return $db->CampoUnico("SELECT MAX(sequencial_fechamento)+1 FROM {$this->_tabela} where ref_cod_turma = {$turmaId}");
  1287 + else
  1288 + return 0;
  1289 + }else
  1290 + return 0;
  1291 + }
1272 } 1292 }
ieducar/intranet/include/pmieducar/clsPmieducarTurma.inc.php
@@ -54,14 +54,15 @@ class clsPmieducarTurma @@ -54,14 +54,15 @@ class clsPmieducarTurma
54 var $hora_fim_intervalo; 54 var $hora_fim_intervalo;
55 55
56 var $ref_cod_regente; 56 var $ref_cod_regente;
57 - var $ref_cod_instituicao_regente; 57 + var $ref_cod_instituicao_regente;
58 58
59 - var $ref_cod_instituicao;  
60 - var $ref_cod_curso; 59 + var $ref_cod_instituicao;
  60 + var $ref_cod_curso;
61 61
62 - var $ref_ref_cod_serie_mult;  
63 - var $ref_ref_cod_escola_mult;  
64 - var $visivel; 62 + var $ref_ref_cod_serie_mult;
  63 + var $ref_ref_cod_escola_mult;
  64 + var $visivel;
  65 + var $data_fechamento;
65 // propriedades padrao 66 // propriedades padrao
66 67
67 /** 68 /**
@@ -126,13 +127,13 @@ class clsPmieducarTurma @@ -126,13 +127,13 @@ class clsPmieducarTurma
126 * 127 *
127 * @return object 128 * @return object
128 */ 129 */
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 + 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, $data_fechamento = NULL)
  131 + {
131 $db = new clsBanco(); 132 $db = new clsBanco();
132 $this->_schema = "pmieducar."; 133 $this->_schema = "pmieducar.";
133 $this->_tabela = "{$this->_schema}turma"; 134 $this->_tabela = "{$this->_schema}turma";
134 135
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 + $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, t.data_fechamento ";
136 137
137 if( is_numeric( $ref_cod_turma_tipo ) ) 138 if( is_numeric( $ref_cod_turma_tipo ) )
138 { 139 {
@@ -453,9 +454,10 @@ class clsPmieducarTurma @@ -453,9 +454,10 @@ class clsPmieducarTurma
453 $this->visivel = dbBool($visivel); 454 $this->visivel = dbBool($visivel);
454 } 455 }
455 456
456 - $this->turma_turno_id = $turma_turno_id;  
457 - $this->tipo_boletim = $tipo_boletim;  
458 - $this->ano = $ano; 457 + $this->turma_turno_id = $turma_turno_id;
  458 + $this->tipo_boletim = $tipo_boletim;
  459 + $this->ano = $ano;
  460 + $this->data_fechamento = $data_fechamento;
459 } 461 }
460 462
461 /** 463 /**
@@ -616,6 +618,12 @@ class clsPmieducarTurma @@ -616,6 +618,12 @@ class clsPmieducarTurma
616 $gruda = ", "; 618 $gruda = ", ";
617 } 619 }
618 620
  621 + if(is_string($this->data_fechamento) && $this->data_fechamento!=''){
  622 + $campos .= "{$gruda}data_fechamento";
  623 + $valores .= "{$gruda}'{$this->data_fechamento}'";
  624 + $gruda = ", ";
  625 + }
  626 +
619 $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" ); 627 $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" );
620 return $db->InsertId( "{$this->_tabela}_cod_turma_seq"); 628 return $db->InsertId( "{$this->_tabela}_cod_turma_seq");
621 } 629 }
@@ -801,6 +809,15 @@ class clsPmieducarTurma @@ -801,6 +809,15 @@ class clsPmieducarTurma
801 $gruda = ", "; 809 $gruda = ", ";
802 } 810 }
803 811
  812 + if(is_string($this->data_fechamento) && $this->data_fechamento!='') {
  813 + $set .= "{$gruda}data_fechamento = '{$this->data_fechamento}'";
  814 + $gruda = ", ";
  815 + }
  816 + else {
  817 + $set .= "{$gruda}data_fechamento = NULL";
  818 + $gruda = ", ";
  819 + }
  820 +
804 if( $set ) 821 if( $set )
805 { 822 {
806 $db->Consulta( "UPDATE {$this->_tabela} SET $set WHERE cod_turma = '{$this->cod_turma}'" ); 823 $db->Consulta( "UPDATE {$this->_tabela} SET $set WHERE cod_turma = '{$this->cod_turma}'" );
ieducar/misc/database/deltas/portabilis/68_cria_processo_fechamento_turma.sql 0 → 100644
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
  1 + -- //
  2 +
  3 + --
  4 + -- Cria coluna para data de enturmação
  5 + --
  6 + -- @author Lucas Schmoeller da Silva <lucas@portabilis.com.br>
  7 + -- @license @@license@@
  8 + -- @version $Id$
  9 +
  10 + ALTER TABLE pmieducar.matricula_turma ALTER COLUMN data_enturmacao SET NOT NULL;
  11 +
  12 + ALTER TABLE pmieducar.matricula_turma
  13 + add COLUMN sequencial_fechamento INTEGER NOT NULL default 0;
  14 +
  15 + ALTER TABLE pmieducar.turma
  16 + add COLUMN data_fechamento date;
  17 +
  18 + -- //@UNDO
  19 +
  20 + ALTER TABLE pmieducar.matricula_turma DROP COLUMN sequencial_fechamento;
  21 + ALTER TABLE pmieducar.turma DROP COLUMN data_fechamento;
  22 +
  23 + -- //
0 \ No newline at end of file 24 \ No newline at end of file