From ad64726cfec4c83d2cb46cf3f08292bfe2e1a428 Mon Sep 17 00:00:00 2001 From: Lucas Schmoeller da Silva Date: Wed, 18 Mar 2015 16:51:55 -0300 Subject: [PATCH] Criado controle de fechamento de turma e ordenação --- ieducar/intranet/educar_turma_cad.php | 16 ++++++++++++---- ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php | 20 ++++++++++++++++++++ ieducar/intranet/include/pmieducar/clsPmieducarTurma.inc.php | 41 +++++++++++++++++++++++++++++------------ ieducar/misc/database/deltas/portabilis/68_cria_processo_fechamento_turma.sql | 23 +++++++++++++++++++++++ 4 files changed, 84 insertions(+), 16 deletions(-) create mode 100644 ieducar/misc/database/deltas/portabilis/68_cria_processo_fechamento_turma.sql diff --git a/ieducar/intranet/educar_turma_cad.php b/ieducar/intranet/educar_turma_cad.php index bda67a8..3eaa0ab 100644 --- a/ieducar/intranet/educar_turma_cad.php +++ b/ieducar/intranet/educar_turma_cad.php @@ -33,6 +33,7 @@ require_once 'include/clsCadastro.inc.php'; require_once 'include/clsBanco.inc.php'; require_once 'include/pmieducar/geral.inc.php'; require_once 'Portabilis/String/Utils.php'; +require_once 'lib/Portabilis/Date/Utils.php'; /** * clsIndexBase class. @@ -85,6 +86,7 @@ class indice extends clsCadastro var $hora_final; var $hora_inicio_intervalo; var $hora_fim_intervalo; + var $data_fechamento; var $ref_cod_instituicao; var $ref_cod_curso; @@ -319,6 +321,8 @@ class indice extends clsCadastro $this->campoNumero('max_aluno', 'Máximo de Alunos', $this->max_aluno, 3, 3, TRUE); + $this->inputsHelper()->date('data_fechamento', array('required' => false,'label' => 'Data de fechamento' ,'value' => Portabilis_Date_Utils::pgSQLToBr($this->data_fechamento))); + $ativo = isset($this->cod_turma) ? dbBool($this->visivel) : true; $this->campoCheck('visivel', 'Ativo', $ativo); @@ -672,6 +676,8 @@ class indice extends clsCadastro $this->pessoa_logada = $_SESSION['id_pessoa']; @session_write_close(); + $this->data_fechamento = Portabilis_Date_Utils::brToPgSQL($this->data_fechamento); + if(! $this->canCreateTurma($this->ref_cod_escola, $this->ref_ref_cod_serie, $this->turma_turno_id)) return false; @@ -705,7 +711,7 @@ class indice extends clsCadastro $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente, $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao, $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, - $this->visivel, $this->turma_turno_id, $this->tipo_boletim, $this->ano); + $this->visivel, $this->turma_turno_id, $this->tipo_boletim, $this->ano, $this->data_fechamento); $cadastrou = $obj->cadastra(); @@ -772,7 +778,7 @@ class indice extends clsCadastro $this->ref_cod_regente, $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao, $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, $this->visivel, - $this->turma_turno_id, $this->tipo_boletim, $this->ano); + $this->turma_turno_id, $this->tipo_boletim, $this->ano, $this->data_fechamento); $cadastrou = $obj->cadastra(); @@ -801,6 +807,8 @@ class indice extends clsCadastro $this->pessoa_logada = $_SESSION['id_pessoa']; @session_write_close(); + $this->data_fechamento = Portabilis_Date_Utils::brToPgSQL($this->data_fechamento); + if(is_numeric($this->ano_hidden)) $this->ano = $this->ano_hidden; @@ -837,7 +845,7 @@ class indice extends clsCadastro $this->visivel, $this->turma_turno_id, $this->tipo_boletim, - $this->ano); + $this->ano, $this->data_fechamento); $editou = $obj->edita(); @@ -908,7 +916,7 @@ class indice extends clsCadastro $this->hora_inicio_intervalo, $this->hora_fim_intervalo, $this->ref_cod_regente, $this->ref_cod_instituicao_regente, $this->ref_cod_instituicao, $this->ref_cod_curso, $this->ref_ref_cod_serie_mult, $this->ref_cod_escola, - $this->visivel, $this->turma_turno_id, $this->tipo_boletim, $this->ano); + $this->visivel, $this->turma_turno_id, $this->tipo_boletim, $this->ano, $this->data_fechamento); $editou = $obj->edita(); } diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php index b630b34..adbb574 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php @@ -51,6 +51,7 @@ class clsPmieducarMatriculaTurma var $ativo; var $ref_cod_turma_transf; var $sequencial; + var $sequencial_fechamento; /** * Armazena o total de resultados obtidos na última chamada ao método lista(). @@ -294,6 +295,14 @@ class clsPmieducarMatriculaTurma $campos .= "{$gruda}data_enturmacao"; $valores .= "{$gruda}'{$this->data_enturmacao}'"; $gruda = ", "; + } + + $this->sequencial_fechamento = $this->getSequencialFechamento($this->ref_cod_matricula, $this->ref_cod_turma, $this->data_enturmacao); + + if(is_numeric($this->sequencial_fechamento)){ + $campos .= "{$gruda}sequencial_fechamento"; + $valores .= "{$gruda}'{$this->sequencial_fechamento}'"; + $gruda = ", "; } $db->Consulta("INSERT INTO {$this->_tabela} ($campos) VALUES ($valores)"); @@ -1269,4 +1278,15 @@ class clsPmieducarMatriculaTurma return FALSE; } + function getSequencialFechamento($matriculaId, $turmaId, $dataEnturmacao){ + $db = new clsBanco(); + $possui_fechamento = $db->CampoUnico("SELECT data_fechamento FROM pmieducar.turma WHERE cod_turma = {$turmaId}"); + if (is_string($possui_fechamento)){ + if (strtotime($possui_fechamento) < strtotime($dataEnturmacao)) + return $db->CampoUnico("SELECT MAX(sequencial_fechamento)+1 FROM {$this->_tabela} where ref_cod_turma = {$turmaId}"); + else + return 0; + }else + return 0; + } } diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarTurma.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarTurma.inc.php index 2c7bd91..dbfb93b 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarTurma.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarTurma.inc.php @@ -54,14 +54,15 @@ class clsPmieducarTurma var $hora_fim_intervalo; var $ref_cod_regente; - var $ref_cod_instituicao_regente; + var $ref_cod_instituicao_regente; - var $ref_cod_instituicao; - var $ref_cod_curso; + var $ref_cod_instituicao; + var $ref_cod_curso; - var $ref_ref_cod_serie_mult; - var $ref_ref_cod_escola_mult; - var $visivel; + var $ref_ref_cod_serie_mult; + var $ref_ref_cod_escola_mult; + var $visivel; + var $data_fechamento; // propriedades padrao /** @@ -126,13 +127,13 @@ class clsPmieducarTurma * * @return object */ - 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) - { + 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) + { $db = new clsBanco(); $this->_schema = "pmieducar."; $this->_tabela = "{$this->_schema}turma"; - $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"; + $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 "; if( is_numeric( $ref_cod_turma_tipo ) ) { @@ -453,9 +454,10 @@ class clsPmieducarTurma $this->visivel = dbBool($visivel); } - $this->turma_turno_id = $turma_turno_id; - $this->tipo_boletim = $tipo_boletim; - $this->ano = $ano; + $this->turma_turno_id = $turma_turno_id; + $this->tipo_boletim = $tipo_boletim; + $this->ano = $ano; + $this->data_fechamento = $data_fechamento; } /** @@ -616,6 +618,12 @@ class clsPmieducarTurma $gruda = ", "; } + if(is_string($this->data_fechamento) && $this->data_fechamento!=''){ + $campos .= "{$gruda}data_fechamento"; + $valores .= "{$gruda}'{$this->data_fechamento}'"; + $gruda = ", "; + } + $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" ); return $db->InsertId( "{$this->_tabela}_cod_turma_seq"); } @@ -801,6 +809,15 @@ class clsPmieducarTurma $gruda = ", "; } + if(is_string($this->data_fechamento) && $this->data_fechamento!='') { + $set .= "{$gruda}data_fechamento = '{$this->data_fechamento}'"; + $gruda = ", "; + } + else { + $set .= "{$gruda}data_fechamento = NULL"; + $gruda = ", "; + } + if( $set ) { $db->Consulta( "UPDATE {$this->_tabela} SET $set WHERE cod_turma = '{$this->cod_turma}'" ); diff --git a/ieducar/misc/database/deltas/portabilis/68_cria_processo_fechamento_turma.sql b/ieducar/misc/database/deltas/portabilis/68_cria_processo_fechamento_turma.sql new file mode 100644 index 0000000..f637d9a --- /dev/null +++ b/ieducar/misc/database/deltas/portabilis/68_cria_processo_fechamento_turma.sql @@ -0,0 +1,23 @@ + -- // + + -- + -- Cria coluna para data de enturmação + -- + -- @author Lucas Schmoeller da Silva + -- @license @@license@@ + -- @version $Id$ + + ALTER TABLE pmieducar.matricula_turma ALTER COLUMN data_enturmacao SET NOT NULL; + + ALTER TABLE pmieducar.matricula_turma + add COLUMN sequencial_fechamento INTEGER NOT NULL default 0; + + ALTER TABLE pmieducar.turma + add COLUMN data_fechamento date; + + -- //@UNDO + + ALTER TABLE pmieducar.matricula_turma DROP COLUMN sequencial_fechamento; + ALTER TABLE pmieducar.turma DROP COLUMN data_fechamento; + + -- // \ No newline at end of file -- libgit2 0.21.2