Commit ad64726cfec4c83d2cb46cf3f08292bfe2e1a428
1 parent
b32808eb
Exists in
master
Criado controle de fechamento de turma e ordenação
portabilis/ieducar#114
Showing
4 changed files
with
84 additions
and
16 deletions
Show diff stats
ieducar/intranet/educar_turma_cad.php
| ... | ... | @@ -33,6 +33,7 @@ require_once 'include/clsCadastro.inc.php'; |
| 33 | 33 | require_once 'include/clsBanco.inc.php'; |
| 34 | 34 | require_once 'include/pmieducar/geral.inc.php'; |
| 35 | 35 | require_once 'Portabilis/String/Utils.php'; |
| 36 | +require_once 'lib/Portabilis/Date/Utils.php'; | |
| 36 | 37 | |
| 37 | 38 | /** |
| 38 | 39 | * clsIndexBase class. |
| ... | ... | @@ -85,6 +86,7 @@ class indice extends clsCadastro |
| 85 | 86 | var $hora_final; |
| 86 | 87 | var $hora_inicio_intervalo; |
| 87 | 88 | var $hora_fim_intervalo; |
| 89 | + var $data_fechamento; | |
| 88 | 90 | |
| 89 | 91 | var $ref_cod_instituicao; |
| 90 | 92 | var $ref_cod_curso; |
| ... | ... | @@ -319,6 +321,8 @@ class indice extends clsCadastro |
| 319 | 321 | |
| 320 | 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 | 326 | $ativo = isset($this->cod_turma) ? dbBool($this->visivel) : true; |
| 323 | 327 | $this->campoCheck('visivel', 'Ativo', $ativo); |
| 324 | 328 | |
| ... | ... | @@ -672,6 +676,8 @@ class indice extends clsCadastro |
| 672 | 676 | $this->pessoa_logada = $_SESSION['id_pessoa']; |
| 673 | 677 | @session_write_close(); |
| 674 | 678 | |
| 679 | + $this->data_fechamento = Portabilis_Date_Utils::brToPgSQL($this->data_fechamento); | |
| 680 | + | |
| 675 | 681 | if(! $this->canCreateTurma($this->ref_cod_escola, $this->ref_ref_cod_serie, $this->turma_turno_id)) |
| 676 | 682 | return false; |
| 677 | 683 | |
| ... | ... | @@ -705,7 +711,7 @@ class indice extends clsCadastro |
| 705 | 711 | $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente, |
| 706 | 712 | $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao, |
| 707 | 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 | 716 | $cadastrou = $obj->cadastra(); |
| 711 | 717 | |
| ... | ... | @@ -772,7 +778,7 @@ class indice extends clsCadastro |
| 772 | 778 | $this->ref_cod_regente, $this->ref_cod_instituicao_regente, |
| 773 | 779 | $this->ref_cod_instituicao, $this->ref_cod_curso, |
| 774 | 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 | 783 | $cadastrou = $obj->cadastra(); |
| 778 | 784 | |
| ... | ... | @@ -801,6 +807,8 @@ class indice extends clsCadastro |
| 801 | 807 | $this->pessoa_logada = $_SESSION['id_pessoa']; |
| 802 | 808 | @session_write_close(); |
| 803 | 809 | |
| 810 | + $this->data_fechamento = Portabilis_Date_Utils::brToPgSQL($this->data_fechamento); | |
| 811 | + | |
| 804 | 812 | if(is_numeric($this->ano_hidden)) |
| 805 | 813 | $this->ano = $this->ano_hidden; |
| 806 | 814 | |
| ... | ... | @@ -837,7 +845,7 @@ class indice extends clsCadastro |
| 837 | 845 | $this->visivel, |
| 838 | 846 | $this->turma_turno_id, |
| 839 | 847 | $this->tipo_boletim, |
| 840 | - $this->ano); | |
| 848 | + $this->ano, $this->data_fechamento); | |
| 841 | 849 | |
| 842 | 850 | $editou = $obj->edita(); |
| 843 | 851 | |
| ... | ... | @@ -908,7 +916,7 @@ class indice extends clsCadastro |
| 908 | 916 | $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente, |
| 909 | 917 | $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao, |
| 910 | 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 | 921 | $editou = $obj->edita(); |
| 914 | 922 | } | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php
| ... | ... | @@ -51,6 +51,7 @@ class clsPmieducarMatriculaTurma |
| 51 | 51 | var $ativo; |
| 52 | 52 | var $ref_cod_turma_transf; |
| 53 | 53 | var $sequencial; |
| 54 | + var $sequencial_fechamento; | |
| 54 | 55 | |
| 55 | 56 | /** |
| 56 | 57 | * Armazena o total de resultados obtidos na última chamada ao método lista(). |
| ... | ... | @@ -294,6 +295,14 @@ class clsPmieducarMatriculaTurma |
| 294 | 295 | $campos .= "{$gruda}data_enturmacao"; |
| 295 | 296 | $valores .= "{$gruda}'{$this->data_enturmacao}'"; |
| 296 | 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 | 308 | $db->Consulta("INSERT INTO {$this->_tabela} ($campos) VALUES ($valores)"); |
| ... | ... | @@ -1269,4 +1278,15 @@ class clsPmieducarMatriculaTurma |
| 1269 | 1278 | |
| 1270 | 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 | 54 | var $hora_fim_intervalo; |
| 55 | 55 | |
| 56 | 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 | 66 | // propriedades padrao |
| 66 | 67 | |
| 67 | 68 | /** |
| ... | ... | @@ -126,13 +127,13 @@ class clsPmieducarTurma |
| 126 | 127 | * |
| 127 | 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 | 132 | $db = new clsBanco(); |
| 132 | 133 | $this->_schema = "pmieducar."; |
| 133 | 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 | 138 | if( is_numeric( $ref_cod_turma_tipo ) ) |
| 138 | 139 | { |
| ... | ... | @@ -453,9 +454,10 @@ class clsPmieducarTurma |
| 453 | 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 | 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 | 627 | $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" ); |
| 620 | 628 | return $db->InsertId( "{$this->_tabela}_cod_turma_seq"); |
| 621 | 629 | } |
| ... | ... | @@ -801,6 +809,15 @@ class clsPmieducarTurma |
| 801 | 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 | 821 | if( $set ) |
| 805 | 822 | { |
| 806 | 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 @@ |
| 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 | 24 | \ No newline at end of file | ... | ... |