From 4185f9bdc57411a93f41c8f506fcf73c6ec3c896 Mon Sep 17 00:00:00 2001 From: Lucas Schmoeller da Silva Date: Wed, 18 Mar 2015 15:00:20 -0300 Subject: [PATCH] Criados campos de data para processos --- ieducar/intranet/educar_abandono_cad.php | 18 ++++++++++++++++++ ieducar/intranet/educar_avancar_mod_cad.php | 7 ++++++- ieducar/intranet/educar_matricula_cad.php | 7 ++++++- ieducar/intranet/educar_matricula_reclassificar_cad.php | 23 +++++++++++++++++++++++ ieducar/intranet/educar_transferencia_solicitacao_cad.php | 30 +++++++++++++++++++++++++++++- ieducar/intranet/include/pmieducar/clsPmieducarMatricula.inc.php | 36 ++++++++++++++++++++++++++++++++++-- ieducar/misc/database/deltas/portabilis/66_cria_colunas_data_processos_matricula.sql | 43 +++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Api/Views/AlunoController.php | 4 ++-- ieducar/modules/Cadastro/Assets/Javascripts/AlunoShow.js | 3 +++ ieducar/modules/Portabilis/Assets/Version.php | 2 +- 10 files changed, 165 insertions(+), 8 deletions(-) create mode 100644 ieducar/misc/database/deltas/portabilis/66_cria_colunas_data_processos_matricula.sql diff --git a/ieducar/intranet/educar_abandono_cad.php b/ieducar/intranet/educar_abandono_cad.php index 9d1fb8e..cea36e4 100644 --- a/ieducar/intranet/educar_abandono_cad.php +++ b/ieducar/intranet/educar_abandono_cad.php @@ -37,6 +37,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'; class clsIndexBase extends clsBase { @@ -111,6 +112,8 @@ class indice extends clsCadastro $this->campoTexto( "nm_aluno", "Aluno", $this->nm_aluno, 30, 255, true,false,false,"","","","",true ); } + $this->inputsHelper()->date('data_cancel', array('label' => 'Data do abandono', 'placeholder' => 'dd/mm/yyyy', 'value' => date('d/m/Y'))); + // text $this->campoMemo( "observacao", "Observação", $this->observacao, 60, 5, false ); } @@ -125,9 +128,24 @@ class indice extends clsCadastro $obj_permissoes->permissao_cadastra( 578, $this->pessoa_logada, 7, "educar_matricula_det.php?cod_matricula={$this->ref_cod_matricula}" ); $obj_matricula = new clsPmieducarMatricula( $this->ref_cod_matricula,null,null,null,$this->pessoa_logada,null,null,6 ); + $obj_matricula->data_cancel = Portabilis_Date_Utils::brToPgSQL($this->data_cancel); $det_matricula = $obj_matricula->detalhe(); + if(is_null($det_matricula['data_matricula'])){ + + if(substr($det_matricula['data_cadastro'], 0, 10) > $obj_matricula->data_cancel){ + + $this->mensagem = "Data de abandono não pode ser inferior a data da matrícula.
"; + return false; + } + }else{ + if(substr($det_matricula['data_matricula'], 0, 10) > $obj_matricula->data_cancel){ + $this->mensagem = "Data de abandono não pode ser inferior a data da matrícula.
"; + return false; + } + } + if($obj_matricula->edita()) { diff --git a/ieducar/intranet/educar_avancar_mod_cad.php b/ieducar/intranet/educar_avancar_mod_cad.php index a37cc61..6266e06 100644 --- a/ieducar/intranet/educar_avancar_mod_cad.php +++ b/ieducar/intranet/educar_avancar_mod_cad.php @@ -35,6 +35,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'; class clsIndexBase extends clsBase { @@ -48,6 +49,7 @@ class clsIndexBase extends clsBase class indice extends clsCadastro { var $pessoa_logada; + var $data_matricula; function Inicializar() { @@ -66,6 +68,7 @@ class indice extends clsCadastro $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'curso', 'serie', 'turma')); $this->inputsHelper()->dynamic('anoLetivo', array('label' => 'Ano destino'), $anoLetivoHelperOptions); + $this->inputsHelper()->date('data_matricula', array('label' => 'Data da matrícula', 'placeholder' => 'dd/mm/yyyy')); } /** @@ -80,6 +83,8 @@ class indice extends clsCadastro $this->db = new clsBanco(); $this->db2 = new clsBanco(); + $this->data_matricula = Portabilis_Date_Utils::brToPgSQL($this->data_matricula); + $result = $this->rematricularALunos($this->ref_cod_escola, $this->ref_cod_curso, $this->ref_cod_serie, $this->ref_cod_turma, $_POST['ano']); @@ -175,7 +180,7 @@ class indice extends clsCadastro try { $this->db2->Consulta(sprintf("INSERT INTO pmieducar.matricula (ref_ref_cod_escola, ref_ref_cod_serie, ref_usuario_cad, ref_cod_aluno, aprovado, data_cadastro, ano, ref_cod_curso, ultima_matricula) VALUES ('%d', '%d', '%d', '%d', '3', 'NOW()', '%d', '%d', '1')", - $escolaId, $serieId, $this->pessoa_logada, $alunoId, $ano, $cursoId)); + $escolaId, $serieId, $this->pessoa_logada, $alunoId, $ano, $cursoId, $this->data_matricula)); } catch (Exception $e) { $this->mensagem = "Erro durante matrícula do aluno: $alunoId"; diff --git a/ieducar/intranet/educar_matricula_cad.php b/ieducar/intranet/educar_matricula_cad.php index 228618b..d21f1fa 100644 --- a/ieducar/intranet/educar_matricula_cad.php +++ b/ieducar/intranet/educar_matricula_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. @@ -78,6 +79,7 @@ class indice extends clsCadastro var $data_exclusao; var $ativo; var $ano; + var $data_matricula; var $ref_cod_instituicao; var $ref_cod_curso; @@ -161,6 +163,7 @@ class indice extends clsCadastro $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'curso', 'serie')); $this->inputsHelper()->dynamic('turma', array('required' => false, 'option value' => 'Selecione uma turma')); $this->inputsHelper()->dynamic('anoLetivo', array('label' => 'Ano destino'), $anoLetivoHelperOptions); + $this->inputsHelper()->date('data_matricula', array('label' => 'Data da matrícula', 'placeholder' => 'dd/mm/yyyy', 'value' => date('d/m/Y') )); if (is_numeric($this->ref_cod_curso)) { @@ -387,12 +390,14 @@ class indice extends clsCadastro if (! $this->removerFlagUltimaMatricula($this->ref_cod_aluno)) { return false; } + + $this->data_matricula = Portabilis_Date_Utils::brToPgSQL($this->data_matricula); $obj = new clsPmieducarMatricula(NULL, $this->ref_cod_reserva_vaga, $this->ref_cod_escola, $this->ref_cod_serie, NULL, $this->pessoa_logada, $this->ref_cod_aluno, 3, NULL, NULL, 1, $this->ano, 1, NULL, NULL, NULL, NULL, $this->ref_cod_curso, - $this->matricula_transferencia, $this->semestre); + $this->matricula_transferencia, $this->semestre, $this->data_matricula); $cadastrou = $obj->cadastra(); diff --git a/ieducar/intranet/educar_matricula_reclassificar_cad.php b/ieducar/intranet/educar_matricula_reclassificar_cad.php index 6ed30db..40ff0d3 100644 --- a/ieducar/intranet/educar_matricula_reclassificar_cad.php +++ b/ieducar/intranet/educar_matricula_reclassificar_cad.php @@ -28,6 +28,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'; class clsIndexBase extends clsBase { @@ -59,6 +60,7 @@ class indice extends clsCadastro var $data_exclusao; var $ativo; var $ano; + var $data_cancel; var $ref_cod_instituicao; var $ref_cod_curso; @@ -219,6 +221,7 @@ class indice extends clsCadastro $this->campoLista("ref_cod_curso","Curso",$cursos,$this->ref_cod_curso,"getSerie();"); $this->campoLista("ref_ref_cod_serie","Série",array('' => 'Selecione uma série'),''); //$this->campoOculto("ref_ref_cod_serie_antiga",$this->ref_ref_cod_serie); + $this->inputsHelper()->date('data_cancel', array('label' => 'Data da reclassificação', 'placeholder' => 'dd/mm/yyyy', 'value' => date('d/m/Y'))); $this->campoMemo("descricao_reclassificacao","Descrição",$this->descricao_reclassificacao,100,10,true); $this->acao_enviar = 'if(confirm("Deseja reclassificar está matrícula?"))acao();'; @@ -234,16 +237,36 @@ class indice extends clsCadastro $obj_permissoes = new clsPermissoes(); $obj_permissoes->permissao_cadastra( 578, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); + $this->data_cancel = Portabilis_Date_Utils::brToPgSQL($this->data_cancel); + if($this->ref_ref_cod_serie == $this->ref_ref_cod_serie_antiga) header("location: educar_matricula_det.php?cod_matricula={$this->cod_matricula}"); $obj_matricula = new clsPmieducarMatricula($this->cod_matricula); $det_matricula = $obj_matricula->detalhe(); + if(is_null($det_matricula['data_matricula'])){ + + if(substr($det_matricula['data_cadastro'], 0, 10) > $this->data_cancel){ + + $this->mensagem = "Data de abandono não pode ser inferior a data da matrícula.
"; + return false; + die(); + } + }else{ + if(substr($det_matricula['data_matricula'], 0, 10) > $this->data_cancel){ + $this->mensagem = "Data de abandono não pode ser inferior a data da matrícula.
"; + return false; + die(); + } + } + if(!$det_matricula || $det_matricula['aprovado'] != 3) header("location: educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}"); $obj_matricula = new clsPmieducarMatricula($this->cod_matricula,null,null,null,$this->pessoa_logada,null,null,5,null,null,1,null,0,null,null,$this->descricao_reclassificacao); + $obj_matricula->data_cancel = $this->data_cancel; + if(!$obj_matricula->edita()) { echo ""; diff --git a/ieducar/intranet/educar_transferencia_solicitacao_cad.php b/ieducar/intranet/educar_transferencia_solicitacao_cad.php index fa32324..fb125c3 100644 --- a/ieducar/intranet/educar_transferencia_solicitacao_cad.php +++ b/ieducar/intranet/educar_transferencia_solicitacao_cad.php @@ -28,6 +28,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'; class clsIndexBase extends clsBase { @@ -156,7 +157,7 @@ class indice extends clsCadastro $opcoes = array( "" => "Erro na geracao" ); } $this->campoLista( "ref_cod_transferencia_tipo", "Transferência Motivo", $opcoes, $this->ref_cod_transferencia_tipo ); - + $this->inputsHelper()->date('data_cancel', array('label' => 'Data da transferência', 'placeholder' => 'dd/mm/yyyy', 'value' => date('d/m/Y'))); // text $this->campoMemo( "observacao", "Observação", $this->observacao, 60, 5, false ); } @@ -179,6 +180,28 @@ class indice extends clsCadastro // escola externa + $this->data_cancel = Portabilis_Date_Utils::brToPgSQL($this->data_cancel); + $obj = new clsPmieducarMatricula( $this->ref_cod_matricula, null,null,null,$this->pessoa_logada); + $det_matricula = $obj->detalhe(); + + if(is_null($det_matricula['data_matricula'])){ + + if(substr($det_matricula['data_cadastro'], 0, 10) > $this->data_cancel){ + + $this->mensagem = "Data de abandono não pode ser inferior a data da matrícula.
"; + return false; + die(); + } + }else{ + if(substr($det_matricula['data_matricula'], 0, 10) > $this->data_cancel){ + $this->mensagem = "Data de abandono não pode ser inferior a data da matrícula.
"; + return false; + die(); + } + } + $editou = $obj->edita(); + + $obj->data_cancel = $this->data_cancel; if ($this->transferencia_tipo == 2) { $this->data_transferencia = date("Y-m-d"); @@ -222,6 +245,11 @@ class indice extends clsCadastro $cadastrou = $obj->cadastra(); if( $cadastrou ) { + + $obj = new clsPmieducarMatricula( $this->ref_cod_matricula, null,null,null,$this->pessoa_logada); + $det_matricula = $obj->detalhe(); + $obj->data_cancel = $this->data_cancel; + $obj->edita(); $this->mensagem .= "Cadastro efetuado com sucesso.
"; header( "Location: educar_matricula_det.php?cod_matricula={$this->ref_cod_matricula}" ); die(); diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarMatricula.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarMatricula.inc.php index 28d33d8..4380f3a 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarMatricula.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarMatricula.inc.php @@ -61,6 +61,8 @@ class clsPmieducarMatricula var $formando; var $ref_cod_curso; var $semestre; + var $data_matricula; + var $data_cancel; /** * caso seja a primeira matricula do aluno @@ -132,13 +134,14 @@ class clsPmieducarMatricula $data_cadastro = NULL, $data_exclusao = NULL, $ativo = NULL, $ano = NULL, $ultima_matricula = NULL, $modulo = NULL, $formando = NULL, $descricao_reclassificacao = NULL, $matricula_reclassificacao = NULL, - $ref_cod_curso = NULL, $matricula_transferencia = NULL, $semestre = NULL + $ref_cod_curso = NULL, $matricula_transferencia = NULL, $semestre = NULL, + $data_matricula = NULL, $data_cancel = NULL ) { $db = new clsBanco(); $this->_schema = 'pmieducar.'; $this->_tabela = $this->_schema . 'matricula'; - $this->_campos_lista = $this->_todos_campos = "m.cod_matricula, m.ref_cod_reserva_vaga, m.ref_ref_cod_escola, m.ref_ref_cod_serie, m.ref_usuario_exc, m.ref_usuario_cad, m.ref_cod_aluno, m.aprovado, m.data_cadastro, m.data_exclusao, m.ativo, m.ano, m.ultima_matricula, m.modulo,formando,descricao_reclassificacao,matricula_reclassificacao, m.ref_cod_curso,m.matricula_transferencia,m.semestre"; + $this->_campos_lista = $this->_todos_campos = "m.cod_matricula, m.ref_cod_reserva_vaga, m.ref_ref_cod_escola, m.ref_ref_cod_serie, m.ref_usuario_exc, m.ref_usuario_cad, m.ref_cod_aluno, m.aprovado, m.data_cadastro, m.data_exclusao, m.ativo, m.ano, m.ultima_matricula, m.modulo,formando,descricao_reclassificacao,matricula_reclassificacao, m.ref_cod_curso,m.matricula_transferencia,m.semestre, m.data_matricula, m.data_cancel"; if (is_numeric($ref_usuario_exc)) { if (class_exists("clsPmieducarUsuario")) { @@ -304,6 +307,13 @@ class clsPmieducarMatricula if (is_numeric($semestre)) { $this->semestre = $semestre; } + if (is_string($data_matricula)) { + $this->data_matricula = $data_matricula; + } + + if (is_string($data_cancel)) { + $this->data_cancel = $data_cancel; + } } /** @@ -420,6 +430,18 @@ class clsPmieducarMatricula $gruda = ", "; } + if (is_string($this->data_matricula)) { + $campos .= "{$gruda}data_matricula"; + $valores .= "{$gruda}'{$this->data_matricula}'"; + $gruda = ", "; + } + + if (is_string($this->data_cancel)) { + $campos .= "{$gruda}data_cancel"; + $valores .= "{$gruda}'{$this->data_cancel}'"; + $gruda = ", "; + } + $db->Consulta("INSERT INTO {$this->_tabela} ($campos) VALUES ($valores)"); return $db->InsertId("{$this->_tabela}_cod_matricula_seq"); } @@ -533,6 +555,16 @@ class clsPmieducarMatricula $gruda = ", "; } + if (is_string($this->data_matricula)) { + $set .= "{$gruda}data_matricula = '{$this->data_matricula}'"; + $gruda = ", "; + } + + if (is_string($this->data_cancel)) { + $set .= "{$gruda}data_cancel = '{$this->data_cancel}'"; + $gruda = ", "; + } + if ($set) { $db->Consulta("UPDATE {$this->_tabela} SET $set WHERE cod_matricula = '{$this->cod_matricula}'"); return TRUE; diff --git a/ieducar/misc/database/deltas/portabilis/66_cria_colunas_data_processos_matricula.sql b/ieducar/misc/database/deltas/portabilis/66_cria_colunas_data_processos_matricula.sql new file mode 100644 index 0000000..fdb9f3f --- /dev/null +++ b/ieducar/misc/database/deltas/portabilis/66_cria_colunas_data_processos_matricula.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 diff --git a/ieducar/modules/Api/Views/AlunoController.php b/ieducar/modules/Api/Views/AlunoController.php index c997915..fdb5b46 100644 --- a/ieducar/modules/Api/Views/AlunoController.php +++ b/ieducar/modules/Api/Views/AlunoController.php @@ -528,7 +528,7 @@ protected function createOrUpdateUniforme($id) { /* $sql = "select to_char(data_transferencia, 'DD/MM/YYYY') from pmieducar.transferencia_solicitacao where ref_cod_matricula_entrada = $1 and ativo = 1";*/ - $sql = "select to_char(data_cadastro, 'DD/MM/YYYY') from pmieducar.matricula + $sql = "select COALESCE(to_char(data_matricula,'DD/MM/YYYY'), to_char(data_cadastro, 'DD/MM/YYYY')) from pmieducar.matricula where cod_matricula=$1 and ativo = 1"; return Portabilis_Utils_Database::selectField($sql, $matriculaId); @@ -546,7 +546,7 @@ protected function createOrUpdateUniforme($id) { protected function loadTransferenciaDataSaida($matriculaId) { /*$sql = "select to_char(data_transferencia, 'DD/MM/YYYY') from pmieducar.transferencia_solicitacao where ref_cod_matricula_saida = $1 and ativo = 1";*/ - $sql = "select to_char(data_exclusao, 'DD/MM/YYYY') from pmieducar.matricula + $sql = "select COALESCE(to_char(data_cancel,'DD/MM/YYYY'), to_char(data_exclusao, 'DD/MM/YYYY')) from pmieducar.matricula where cod_matricula=$1 and ativo = 1 and (aprovado=4 or aprovado=6)"; return Portabilis_Utils_Database::selectField($sql, $matriculaId); diff --git a/ieducar/modules/Cadastro/Assets/Javascripts/AlunoShow.js b/ieducar/modules/Cadastro/Assets/Javascripts/AlunoShow.js index f048763..6551a10 100644 --- a/ieducar/modules/Cadastro/Assets/Javascripts/AlunoShow.js +++ b/ieducar/modules/Cadastro/Assets/Javascripts/AlunoShow.js @@ -47,6 +47,9 @@ var handleGetMatriculas = function(dataResponse) { else var linkToMatricula = ''; + if (!matricula.transferencia_em_aberto && matricula.situacao == 'Em andamento') + matricula.data_saida = ''; + $j('').html(linkToMatricula).appendTo($tr).addClass('center'); $j('').html(matricula.ano).appendTo($tr); $j('').html(matricula.situacao).appendTo($tr); diff --git a/ieducar/modules/Portabilis/Assets/Version.php b/ieducar/modules/Portabilis/Assets/Version.php index ea0eeff..583ddf8 100644 --- a/ieducar/modules/Portabilis/Assets/Version.php +++ b/ieducar/modules/Portabilis/Assets/Version.php @@ -4,7 +4,7 @@ usado pelo metodos loadJavascript e loadStylesheet do helper Portabilis_View_Helper_Application */ class Portabilis_Assets_Version { - const VERSION = '6'; + const VERSION = '7'; } ?> -- libgit2 0.21.2