From 41bed8827ad8adbaec8ba569f65674c518c11f5e Mon Sep 17 00:00:00 2001 From: Lucas Schmoeller da Silva Date: Wed, 18 Mar 2015 16:35:14 -0300 Subject: [PATCH] Criado campo para data efetiva de enturmação --- ieducar/intranet/educar_matricula_cad.php | 3 ++- ieducar/intranet/educar_matricula_turma_cad.php | 5 +++++ ieducar/intranet/educar_matricula_turma_det.php | 6 ++++++ ieducar/intranet/educar_matriculas_turma_cad.php | 5 +++++ ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php | 19 +++++++++++++++++-- ieducar/misc/database/deltas/portabilis/67_cria_coluna_data_enturmacao.sql | 43 +++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 ieducar/misc/database/deltas/portabilis/67_cria_coluna_data_enturmacao.sql diff --git a/ieducar/intranet/educar_matricula_cad.php b/ieducar/intranet/educar_matricula_cad.php index d21f1fa..409e01e 100644 --- a/ieducar/intranet/educar_matricula_cad.php +++ b/ieducar/intranet/educar_matricula_cad.php @@ -608,7 +608,7 @@ class indice extends clsCadastro // Coloca as matrículas anteriores em andamento $obj_transferencia_antiga = new clsPmieducarTransferenciaSolicitacao(); $lista_transferencia = $obj_transferencia_antiga->lista(null,null,null,null,null,$this->cod_matricula); - if (is_array($lista_transferencia))){ + if (is_array($lista_transferencia)){ foreach ($lista_transferencia as $transf) { $obj_mat = new clsPmieducarMatricula($transf['ref_cod_matricula_saida']); @@ -710,6 +710,7 @@ class indice extends clsCadastro NULL, NULL, 1); + $enturmacao->data_enturmacao = $this->data_matricula; return $enturmacao->cadastra(); } return false; diff --git a/ieducar/intranet/educar_matricula_turma_cad.php b/ieducar/intranet/educar_matricula_turma_cad.php index 2e5e238..e00cd18 100644 --- a/ieducar/intranet/educar_matricula_turma_cad.php +++ b/ieducar/intranet/educar_matricula_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 'include/pmieducar/clsPmieducarMatricula.inc.php'; +require_once 'lib/Portabilis/Date/Utils.php'; /** * clsIndexBase class. @@ -78,6 +79,7 @@ class indice extends clsCadastro var $ref_cod_turma_origem; var $ref_cod_turma_destino; var $ref_cod_curso; + var $data_enturmacao; var $sequencial; @@ -97,6 +99,8 @@ class indice extends clsCadastro $this->$key = $value; } + $this->data_enturmacao = Portabilis_Date_Utils::brToPgSQL($this->data_enturmacao); + $obj_permissoes = new clsPermissoes(); $obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7, 'educar_matricula_lst.php'); @@ -144,6 +148,7 @@ class indice extends clsCadastro NULL, NULL, 1); + $enturmacao->data_enturmacao = $this->data_enturmacao; return $enturmacao->cadastra(); } return false; diff --git a/ieducar/intranet/educar_matricula_turma_det.php b/ieducar/intranet/educar_matricula_turma_det.php index a4af235..01c521e 100644 --- a/ieducar/intranet/educar_matricula_turma_det.php +++ b/ieducar/intranet/educar_matricula_turma_det.php @@ -78,6 +78,7 @@ class indice extends clsDetalhe var $ref_cod_escola; var $ref_cod_turma_origem; var $ref_cod_curso; + var $data_enturmacao; var $sequencial; @@ -239,6 +240,9 @@ class indice extends clsDetalhe $this->addDetalhe(array('Enturmação', $selectEnturmacoes)); } + if(!$this->possuiEnturmacaoTurmaDestino) + $this->addDetalhe(array('Data da enturmação', '')); + $this->addDetalhe(array( '-', sprintf(' @@ -248,6 +252,7 @@ class indice extends clsDetalhe + ', $this->ref_cod_turma_origem, $this->sequencial) @@ -289,6 +294,7 @@ class indice extends clsDetalhe document.formcadastro.ref_cod_matricula.value = ref_cod_matricula; document.formcadastro.ref_cod_turma_destino.value = ref_cod_turma_destino; + document.formcadastro.data_enturmacao.value = document.getElementById("data_enturmacao").value; document.formcadastro.submit(); } diff --git a/ieducar/intranet/educar_matriculas_turma_cad.php b/ieducar/intranet/educar_matriculas_turma_cad.php index a868571..3701e1f 100644 --- a/ieducar/intranet/educar_matriculas_turma_cad.php +++ b/ieducar/intranet/educar_matriculas_turma_cad.php @@ -32,6 +32,7 @@ require_once 'include/clsBase.inc.php'; require_once 'include/clsCadastro.inc.php'; require_once 'include/clsBanco.inc.php'; require_once 'include/pmieducar/geral.inc.php'; +require_once 'lib/Portabilis/Date/Utils.php'; /** * clsIndexBase class. @@ -83,6 +84,7 @@ class indice extends clsCadastro var $matriculas_turma; var $incluir_matricula; + var $data_enturmacao; function Inicializar() { @@ -263,6 +265,7 @@ class indice extends clsCadastro } if (count($opcoes)) { + $this->inputsHelper()->date('data_enturmacao', array('label' => 'Data da enturmação', 'value' => date('Y-m-d'))); asort($opcoes); foreach ($opcoes as $key => $aluno) { $this->campoCheck('ref_cod_matricula[' . $key . ']', 'Aluno', $key, @@ -286,6 +289,7 @@ class indice extends clsCadastro { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; + $this->data_enturmacao = Portabilis_Date_Utils::brToPgSQL($this->data_enturmacao); @session_write_close(); if ($this->matriculas_turma) { @@ -296,6 +300,7 @@ class indice extends clsCadastro $existe = $obj->existe(); if (!$existe) { + $obj->data_enturmacao = $this->data_enturmacao; $cadastrou = $obj->cadastra(); if (!$cadastrou) { diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php index b84ff15..b630b34 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php @@ -108,13 +108,13 @@ class clsPmieducarMatriculaTurma function clsPmieducarMatriculaTurma($ref_cod_matricula = NULL, $ref_cod_turma = NULL, $ref_usuario_exc = NULL, $ref_usuario_cad = NULL, $data_cadastro = NULL, $data_exclusao = NULL, $ativo = NULL, - $ref_cod_turma_transf = NULL,$sequencial = NULL + $ref_cod_turma_transf = NULL,$sequencial = NULL, $data_enturmacao = NULL ) { $db = new clsBanco(); $this->_schema = "pmieducar."; $this->_tabela = "{$this->_schema}matricula_turma"; - $this->_campos_lista = $this->_todos_campos = "mt.ref_cod_matricula, mt.ref_cod_turma, mt.ref_usuario_exc, mt.ref_usuario_cad, mt.data_cadastro, mt.data_exclusao, mt.ativo, mt.sequencial, (SELECT pes.nome FROM cadastro.pessoa pes, pmieducar.aluno alu, pmieducar.matricula mat WHERE pes.idpes = alu.ref_idpes AND mat.ref_cod_aluno = alu.cod_aluno AND mat.cod_matricula = mt.ref_cod_matricula ) AS nome, (SELECT to_ascii(pes.nome) FROM cadastro.pessoa pes, pmieducar.aluno alu, pmieducar.matricula mat WHERE pes.idpes = alu.ref_idpes AND mat.ref_cod_aluno = alu.cod_aluno AND mat.cod_matricula = mt.ref_cod_matricula ) AS nome_ascii"; + $this->_campos_lista = $this->_todos_campos = "mt.ref_cod_matricula, mt.ref_cod_turma, mt.ref_usuario_exc, mt.ref_usuario_cad, mt.data_cadastro, mt.data_exclusao, mt.ativo, mt.sequencial, mt.data_enturmacao, (SELECT pes.nome FROM cadastro.pessoa pes, pmieducar.aluno alu, pmieducar.matricula mat WHERE pes.idpes = alu.ref_idpes AND mat.ref_cod_aluno = alu.cod_aluno AND mat.cod_matricula = mt.ref_cod_matricula ) AS nome, (SELECT to_ascii(pes.nome) FROM cadastro.pessoa pes, pmieducar.aluno alu, pmieducar.matricula mat WHERE pes.idpes = alu.ref_idpes AND mat.ref_cod_aluno = alu.cod_aluno AND mat.cod_matricula = mt.ref_cod_matricula ) AS nome_ascii"; if (is_numeric($ref_usuario_exc)) { if (class_exists("clsPmieducarUsuario")) { @@ -237,6 +237,10 @@ class clsPmieducarMatriculaTurma if (is_numeric($sequencial)) { $this->sequencial = $sequencial; } + + if (is_string($data_enturmacao)) { + $this->data_enturmacao = $data_enturmacao; + } } /** @@ -286,6 +290,12 @@ class clsPmieducarMatriculaTurma $valores .= "{$gruda}'1'"; $gruda = ", "; + if (is_string($this->data_enturmacao)) { + $campos .= "{$gruda}data_enturmacao"; + $valores .= "{$gruda}'{$this->data_enturmacao}'"; + $gruda = ", "; + } + $db->Consulta("INSERT INTO {$this->_tabela} ($campos) VALUES ($valores)"); return TRUE; @@ -333,6 +343,11 @@ class clsPmieducarMatriculaTurma $gruda = ", "; } + if (is_string($this->data_enturmacao)) { + $set .= "{$gruda}data_enturmacao = '{$this->data_enturmacao}'"; + $gruda = ", "; + } + if ($set) { $db->Consulta("UPDATE {$this->_tabela} SET $set WHERE ref_cod_matricula = '{$this->ref_cod_matricula}' AND ref_cod_turma = '{$this->ref_cod_turma}' and sequencial = '$this->sequencial' "); return TRUE; diff --git a/ieducar/misc/database/deltas/portabilis/67_cria_coluna_data_enturmacao.sql b/ieducar/misc/database/deltas/portabilis/67_cria_coluna_data_enturmacao.sql new file mode 100644 index 0000000..fdb9f3f --- /dev/null +++ b/ieducar/misc/database/deltas/portabilis/67_cria_coluna_data_enturmacao.sql @@ -0,0 +1,43 @@ + -- // + + -- + -- Cria colunas para armazenar data dos processos da matrícula + -- + -- @author Lucas Schmoeller da Silva + -- @license @@license@@ + -- @version $Id$ + + ALTER TABLE pmieducar.matricula ADD COLUMN data_matricula timestamp without time zone; + ALTER TABLE pmieducar.matricula ADD COLUMN data_cancel timestamp without time zone; + + CREATE OR REPLACE FUNCTION retira_data_cancel_matricula_fun() + RETURNS trigger AS + $func$ + BEGIN + + UPDATE pmieducar.matricula + SET data_cancel = NULL + WHERE cod_matricula = new.cod_matricula + AND data_cancel IS DISTINCT FROM NULL + AND aprovado = 3 + AND (SELECT 1 FROM pmieducar.transferencia_solicitacao WHERE ativo = 1 AND ref_cod_matricula_saida = new.cod_matricula limit 1) is null; + + RETURN NULL; + END + $func$ LANGUAGE plpgsql; + + CREATE TRIGGER retira_data_cancel_matricula_trg + AFTER UPDATE ON pmieducar.matricula + FOR EACH ROW + EXECUTE PROCEDURE retira_data_cancel_matricula_fun(); + + -- //@UNDO + + ALTER TABLE pmieducar.matricula DROP COLUMN data_matricula; + ALTER TABLE pmieducar.matricula DROP COLUMN data_cancel; + + DROP TRIGGER retira_data_cancel_matricula_trg ON pmieducar.matricula; + + DROP FUNCTION public.retira_data_cancel_matricula_fun(); + + -- // \ No newline at end of file -- libgit2 0.21.2