From de1582092e34d4ce581e64941b0508e546e5b1e5 Mon Sep 17 00:00:00 2001 From: Caroline Salib Date: Thu, 6 Oct 2016 21:31:52 -0300 Subject: [PATCH] Alterado processo de matricula/transferência e enturmação/remanejamento; portabilis/ieducar#157 --- ieducar/configuration/ieducar.ini | 3 +++ ieducar/intranet/educar_instituicao_cad.php | 17 +++++++++++++++++ ieducar/intranet/educar_matricula_cad.php | 7 +++++-- ieducar/intranet/educar_matricula_turma_cad.php | 7 ++++++- ieducar/intranet/educar_matriculas_turma_cad.php | 6 +++++- ieducar/intranet/educar_transferencia_solicitacao_cad.php | 2 ++ ieducar/intranet/include/pmieducar/clsPmieducarInstituicao.inc.php | 26 +++++++++++++++++++++++++- ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php | 41 ++++++++++++++++++++++++++++++++++++++++- ieducar/misc/database/migrations/20161007002450_add_columns_transferido_remanejado.php | 23 +++++++++++++++++++++++ ieducar/modules/Avaliacao/Assets/Javascripts/Diario.js | 23 ++++++++++++++++++++--- ieducar/modules/Avaliacao/Views/DiarioApiController.php | 7 +++++-- 11 files changed, 151 insertions(+), 11 deletions(-) create mode 100644 ieducar/misc/database/migrations/20161007002450_add_columns_transferido_remanejado.php diff --git a/ieducar/configuration/ieducar.ini b/ieducar/configuration/ieducar.ini index 8a45033..ad544b3 100644 --- a/ieducar/configuration/ieducar.ini +++ b/ieducar/configuration/ieducar.ini @@ -156,6 +156,9 @@ app.obriga_endereco_normalizado_pf = true ; Define que poderá ser feito matrícula para cursos diferentes (0 false, 1 true) app.matricula.multiplas_matriculas = 0 +; Define se será utilizado datas bases de deslocamento (0 false, 1 true) +app.instituicao.data_base_deslocamento = 1 + [development : production] ; Herda configurações de banco de dados diff --git a/ieducar/intranet/educar_instituicao_cad.php b/ieducar/intranet/educar_instituicao_cad.php index 2a91add..e654348 100644 --- a/ieducar/intranet/educar_instituicao_cad.php +++ b/ieducar/intranet/educar_instituicao_cad.php @@ -29,6 +29,8 @@ require_once ("include/clsCadastro.inc.php"); require_once ("include/clsBanco.inc.php"); require_once( "include/pmieducar/geral.inc.php" ); require_once ("include/Geral.inc.php"); +require_once 'includes/bootstrap.php'; +require_once 'Portabilis/Date/Utils.php'; class clsIndexBase extends clsBase { @@ -67,6 +69,8 @@ class indice extends clsCadastro var $data_exclusao; var $ativo; var $nm_instituicao; + var $data_base_transferencia; + var $data_base_remanejamento; function Inicializar() { @@ -172,6 +176,11 @@ class indice extends clsCadastro $this->campoTexto( "nm_responsavel", "Nome do Responsável", $this->nm_responsavel, 30, 255, true ); $this->campoNumero( "ddd_telefone", "DDD Telefone", $this->ddd_telefone, 2, 2 ); $this->campoNumero( "telefone", "Telefone", $this->telefone, 11, 11 ); + + if ($GLOBALS['coreExt']['Config']->app->instituicao->data_base_deslocamento) { + $this->campoData('data_base_transferencia', 'Data máxima para deslocamento', Portabilis_Date_Utils::pgSQLToBr($this->data_base_transferencia), null, null, false); + $this->campoData('data_base_remanejamento', 'Data máxima para troca de sala', Portabilis_Date_Utils::pgSQLToBr($this->data_base_remanejamento), null, null, false); + } } function Novo() @@ -181,6 +190,10 @@ class indice extends clsCadastro @session_write_close(); $obj = new clsPmieducarInstituicao( null, $this->ref_usuario_exc, $this->pessoa_logada, $this->ref_idtlog, $this->ref_sigla_uf, str_replace( "-", "", $this->cep ), $this->cidade, $this->bairro, $this->logradouro, $this->numero, $this->complemento, $this->nm_responsavel, $this->ddd_telefone, $this->telefone, $this->data_cadastro, $this->data_exclusao, 1, $this->nm_instituicao ); + + $obj->data_base_remanejamento = Portabilis_Date_Utils::brToPgSQL($this->data_base_remanejamento); + $obj->data_base_transferencia = Portabilis_Date_Utils::brToPgSQL($this->data_base_transferencia); + $cadastrou = $obj->cadastra(); if( $cadastrou ) { @@ -201,6 +214,10 @@ class indice extends clsCadastro $this->pessoa_logada = $_SESSION['id_pessoa']; @session_write_close(); $obj = new clsPmieducarInstituicao( $this->cod_instituicao, $this->ref_usuario_exc, $this->pessoa_logada, $this->ref_idtlog, $this->ref_sigla_uf, str_replace( "-", "", $this->cep ), $this->cidade, $this->bairro, $this->logradouro, $this->numero, $this->complemento, $this->nm_responsavel, $this->ddd_telefone, $this->telefone, $this->data_cadastro, $this->data_exclusao, 1, $this->nm_instituicao ); + + $obj->data_base_remanejamento = Portabilis_Date_Utils::brToPgSQL($this->data_base_remanejamento); + $obj->data_base_transferencia = Portabilis_Date_Utils::brToPgSQL($this->data_base_transferencia); + $editou = $obj->edita(); if( $editou ) { diff --git a/ieducar/intranet/educar_matricula_cad.php b/ieducar/intranet/educar_matricula_cad.php index f719278..dbc5ced 100644 --- a/ieducar/intranet/educar_matricula_cad.php +++ b/ieducar/intranet/educar_matricula_cad.php @@ -411,8 +411,7 @@ class indice extends clsCadastro // turma $cod_matricula = $cadastrou; - $this->enturmacaoMatricula($cod_matricula, $this->ref_cod_turma); - + if ($cadastrou) { $obj_transferencia = new clsPmieducarTransferenciaSolicitacao(); @@ -546,6 +545,8 @@ class indice extends clsCadastro } //} + $this->enturmacaoMatricula($cod_matricula, $this->ref_cod_turma); + #TODO set in $_SESSION['flash'] 'Aluno matriculado com sucesso' $this->mensagem .= 'Cadastro efetuado com sucesso.
'; header('Location: educar_aluno_det.php?cod_aluno=' . $this->ref_cod_aluno); @@ -579,6 +580,8 @@ class indice extends clsCadastro $enturmacao['sequencial']); if ($result && ! $enturmacao->edita()) $result = false; + else + $enturmacao->marcaAlunoTransferido($this->data_matricula); } } diff --git a/ieducar/intranet/educar_matricula_turma_cad.php b/ieducar/intranet/educar_matricula_turma_cad.php index a42b626..bea4cbc 100644 --- a/ieducar/intranet/educar_matricula_turma_cad.php +++ b/ieducar/intranet/educar_matricula_turma_cad.php @@ -183,7 +183,12 @@ class indice extends clsCadastro NULL, $sequencialEnturmacao); - return $enturmacao->edita(); + if ($enturmacao->edita()){ + $enturmacao->marcaAlunoRemanejado($this->data_enturmacao); + return true; + }else + return false; + } } diff --git a/ieducar/intranet/educar_matriculas_turma_cad.php b/ieducar/intranet/educar_matriculas_turma_cad.php index 6029f98..5065bd0 100644 --- a/ieducar/intranet/educar_matriculas_turma_cad.php +++ b/ieducar/intranet/educar_matriculas_turma_cad.php @@ -355,7 +355,11 @@ class indice extends clsCadastro NULL, $sequencialEnturmacao); - return $enturmacao->edita(); + if ($enturmacao->edita()){ + $enturmacao->marcaAlunoRemanejado($this->data_enturmacao); + return true; + }else + return false; } diff --git a/ieducar/intranet/educar_transferencia_solicitacao_cad.php b/ieducar/intranet/educar_transferencia_solicitacao_cad.php index ab4f79d..9b38301 100644 --- a/ieducar/intranet/educar_transferencia_solicitacao_cad.php +++ b/ieducar/intranet/educar_transferencia_solicitacao_cad.php @@ -246,6 +246,8 @@ class indice extends clsCadastro { $this->mensagem = "Não foi possível desativar as enturmações da matrícula."; return false; + }else{ + + $enturmacao->marcaAlunoTransferido($this->data_cancel); } } } diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarInstituicao.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarInstituicao.inc.php index 7231adc..dca962b 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarInstituicao.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarInstituicao.inc.php @@ -60,6 +60,8 @@ class clsPmieducarInstituicao var $data_exclusao; var $ativo; var $nm_instituicao; + var $data_base_remanejamento; + var $data_base_transferencia; /** * Armazena o total de resultados obtidos na última chamada ao método lista(). @@ -125,7 +127,7 @@ class clsPmieducarInstituicao $this->_schema = "pmieducar."; $this->_tabela = "{$this->_schema}instituicao"; - $this->_campos_lista = $this->_todos_campos = "cod_instituicao, ref_usuario_exc, ref_usuario_cad, ref_idtlog, ref_sigla_uf, cep, cidade, bairro, logradouro, numero, complemento, nm_responsavel, ddd_telefone, telefone, data_cadastro, data_exclusao, ativo, nm_instituicao"; + $this->_campos_lista = $this->_todos_campos = "cod_instituicao, ref_usuario_exc, ref_usuario_cad, ref_idtlog, ref_sigla_uf, cep, cidade, bairro, logradouro, numero, complemento, nm_responsavel, ddd_telefone, telefone, data_cadastro, data_exclusao, ativo, nm_instituicao, data_base_transferencia, data_base_remanejamento"; if (is_numeric($ref_usuario_cad)) { if (class_exists('clsPmieducarUsuario')) { @@ -362,6 +364,18 @@ class clsPmieducarInstituicao $gruda = ", "; } + if (is_string($this->data_base_remanejamento)) { + $campos .= "{$gruda}data_base_remanejamento"; + $valores .= "{$gruda}'{$this->data_base_remanejamento}'"; + $gruda = ", "; + } + + if (is_string($this->data_base_transferencia)) { + $campos .= "{$gruda}data_base_transferencia"; + $valores .= "{$gruda}'{$this->data_base_transferencia}'"; + $gruda = ", "; + } + $db->Consulta("INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )"); return $db->InsertId("{$this->_tabela}_cod_instituicao_seq"); } @@ -462,6 +476,16 @@ class clsPmieducarInstituicao $gruda = ", "; } + if (is_string($this->data_base_transferencia)) { + $set .= "{$gruda}data_base_transferencia = '{$this->data_base_transferencia}'"; + $gruda = ", "; + } + + if (is_string($this->data_base_remanejamento)) { + $set .= "{$gruda}data_base_remanejamento = '{$this->data_base_remanejamento}'"; + $gruda = ", "; + } + if ($set) { $db->Consulta("UPDATE {$this->_tabela} SET $set WHERE cod_instituicao = '{$this->cod_instituicao}'"); return TRUE; diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php index adbb574..c85e6f2 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarMatriculaTurma.inc.php @@ -115,7 +115,7 @@ class clsPmieducarMatriculaTurma $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, 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"; + $this->_campos_lista = $this->_todos_campos = "mt.ref_cod_matricula, mt.remanejado, mt.transferido, 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")) { @@ -345,6 +345,10 @@ class clsPmieducarMatriculaTurma if (is_numeric($this->ativo)) { $set .= "{$gruda}ativo = '{$this->ativo}'"; $gruda = ", "; + if ($this->ativo == 1){ + $set .= "{$gruda}remanejado = null, transferido = null"; + $gruda = ", "; + } } if (is_numeric($this->ref_cod_turma_transf)) { @@ -461,6 +465,9 @@ class clsPmieducarMatriculaTurma if ($int_ativo == 1) { $filtros .= "{$whereAnd} mt.ativo = '1'"; $whereAnd = " AND "; + }elseif ($int_ativo == 2) { + $filtros .= "{$whereAnd} (mt.ativo = '1' OR mt.transferido OR mt.remanejado)"; + $whereAnd = " AND "; } else { $filtros .= "{$whereAnd} mt.ativo = '0'"; @@ -1154,6 +1161,38 @@ class clsPmieducarMatriculaTurma return FALSE; } + function marcaAlunoRemanejado($data = null){ + + if ($this->ref_cod_matricula && $this->sequencial){ + $db = new clsBanco(); + $cod_instituicao = $db->CampoUnico("SELECT ref_cod_instituicao from pmieducar.escola + INNER JOIN pmieducar.matricula ON (ref_ref_cod_escola = cod_escola) + WHERE cod_matricula = {$this->ref_cod_matricula}"); + $dataBaseRemanejamento = $db->CampoUnico("SELECT data_base_remanejamento + FROM pmieducar.instituicao WHERE cod_instituicao = {$cod_instituicao}"); + $data = $data ? $data : date('Y-m-d'); + if ($dataBaseRemanejamento && strtotime($dataBaseRemanejamento) < strtotime($data) ) { + $db->CampoUnico("UPDATE pmieducar.matricula_turma SET remanejado = TRUE WHERE ref_cod_matricula = {$this->ref_cod_matricula} AND sequencial = {$this->sequencial}"); + } + } + } + + function marcaAlunoTransferido($data = null){ + + if ($this->ref_cod_matricula && $this->sequencial){ + $db = new clsBanco(); + $cod_instituicao = $db->CampoUnico("SELECT ref_cod_instituicao from pmieducar.escola + INNER JOIN pmieducar.matricula ON (ref_ref_cod_escola = cod_escola) + WHERE cod_matricula = {$this->ref_cod_matricula}"); + $dataBaseRemanejamento = $db->CampoUnico("SELECT data_base_transferencia + FROM pmieducar.instituicao WHERE cod_instituicao = {$cod_instituicao}"); + $data = $data ? $data : date('Y-m-d'); + if ($dataBaseRemanejamento && strtotime($dataBaseRemanejamento) < strtotime($data) ) { + $db->CampoUnico("UPDATE pmieducar.matricula_turma SET transferido = TRUE WHERE ref_cod_matricula = {$this->ref_cod_matricula} AND sequencial = {$this->sequencial}"); + } + } + } + function dadosAlunosNaoEnturmados($ref_cod_escola = NULL, $ref_cod_serie = NULL, $ref_cod_curso = NULL, $int_ano = NULL, $verificar_multiseriado = FALSE, $semestre = NULL) diff --git a/ieducar/misc/database/migrations/20161007002450_add_columns_transferido_remanejado.php b/ieducar/misc/database/migrations/20161007002450_add_columns_transferido_remanejado.php new file mode 100644 index 0000000..18b2755 --- /dev/null +++ b/ieducar/misc/database/migrations/20161007002450_add_columns_transferido_remanejado.php @@ -0,0 +1,23 @@ +execute("ALTER TABLE pmieducar.matricula_turma ADD COLUMN transferido boolean;"); + $this->execute("ALTER TABLE pmieducar.matricula_turma ADD COLUMN remanejado boolean;"); + $this->execute("ALTER TABLE pmieducar.instituicao ADD COLUMN data_base_remanejamento boolean;"); + $this->execute("ALTER TABLE pmieducar.instituicao ADD COLUMN data_base_transferencia boolean;"); + } + + public function down() + { + $this->execute("ALTER TABLE pmieducar.matricula_turma DROP COLUMN transferido;"); + $this->execute("ALTER TABLE pmieducar.matricula_turma DROP COLUMN remanejado;"); + $this->execute("ALTER TABLE pmieducar.instituicao DROP COLUMN data_base_remanejamento;"); + $this->execute("ALTER TABLE pmieducar.instituicao DROP COLUMN data_base_transferencia;"); + } +} diff --git a/ieducar/modules/Avaliacao/Assets/Javascripts/Diario.js b/ieducar/modules/Avaliacao/Assets/Javascripts/Diario.js index 34d2c19..360692d 100644 --- a/ieducar/modules/Avaliacao/Assets/Javascripts/Diario.js +++ b/ieducar/modules/Avaliacao/Assets/Javascripts/Diario.js @@ -542,13 +542,30 @@ function handleSearch($resultTable, dataResponse) { .attr('colspan', componenteCurricularSelected ? 0 : 4) .appendTo($linha); - if (componenteCurricularSelected && value.componentes_curriculares.length > 0) - updateComponenteCurricular($linha, value.matricula_id, value.componentes_curriculares[0]); + if (value.componentes_curriculares){ + if (componenteCurricularSelected && value.componentes_curriculares.length > 0) + updateComponenteCurricular($linha, value.matricula_id, value.componentes_curriculares[0]); + }else{ + if(value.situacao_deslocamento){ + var $situacaoTdDeslocamento = $j('').addClass('situacao-matricula-cc') + .attr('id', 'situacao-matricula-' + value.matricula_id) + .data('matricula_id', value.matricula_id) + .addClass('center') + .css('color', '#FF6600') + .html(value.situacao_deslocamento) + .appendTo($linha); + $j('').html('-').addClass('center').appendTo($linha); + $j('').html('-').addClass('center').appendTo($linha); + $j('').html('-').addClass('center').appendTo($linha); + $j('').html('-').addClass('center').appendTo($linha); + + } + } $linha.fadeIn('slow').appendTo($resultTable); $linha.appendTo($resultTable); - if (! componenteCurricularSelected) + if (! componenteCurricularSelected && value.componentes_curriculares) updateComponenteCurriculares($resultTable, value.matricula_id, value.componentes_curriculares); }); diff --git a/ieducar/modules/Avaliacao/Views/DiarioApiController.php b/ieducar/modules/Avaliacao/Views/DiarioApiController.php index a001568..54b155a 100644 --- a/ieducar/modules/Avaliacao/Views/DiarioApiController.php +++ b/ieducar/modules/Avaliacao/Views/DiarioApiController.php @@ -553,7 +553,7 @@ class DiarioApiController extends ApiCoreController NULL, NULL, NULL, - 1, + 2, $this->getRequest()->serie_id, $this->getRequest()->curso_id, $this->getRequest()->escola_id, @@ -587,10 +587,13 @@ class DiarioApiController extends ApiCoreController // seta id da matricula a ser usado pelo metodo serviceBoletim $this->setCurrentMatriculaId($matriculaId); - $matricula['componentes_curriculares'] = $this->loadComponentesCurricularesForMatricula($matriculaId); + if(! ($aluno['remanejado'] || $aluno['transferido'])) + $matricula['componentes_curriculares'] = $this->loadComponentesCurricularesForMatricula($matriculaId); + $matricula['matricula_id'] = $aluno['ref_cod_matricula']; $matricula['aluno_id'] = $aluno['ref_cod_aluno']; $matricula['nome'] = $this->safeString($aluno['nome_aluno']); + $matricula['situacao_deslocamento'] = ($aluno['remanejado'] ? 'Remanejado' : ($aluno['transferido'] ? 'Transferido' : null)); $matriculas[] = $matricula; } -- libgit2 0.21.2