From c964d52dcb4411724427e6c987a1badb5377c794 Mon Sep 17 00:00:00 2001 From: Lucas D'Avila Date: Tue, 12 Mar 2013 17:14:29 -0300 Subject: [PATCH] Permitido desfazer abandono matricula. --- ieducar/intranet/educar_matricula_det.php | 26 +++++++++++++++++++++++--- ieducar/modules/Api/Views/MatriculaController.php | 23 ++++++++++++++++++++--- ieducar/modules/Cadastro/Assets/Javascripts/MatriculaShow.js | 22 ++++++++++++++++++++++ ieducar/modules/Portabilis/Assets/Javascripts/Utils.js | 2 +- 4 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 ieducar/modules/Cadastro/Assets/Javascripts/MatriculaShow.js diff --git a/ieducar/intranet/educar_matricula_det.php b/ieducar/intranet/educar_matricula_det.php index ac6b50c..4cf1e00 100644 --- a/ieducar/intranet/educar_matricula_det.php +++ b/ieducar/intranet/educar_matricula_det.php @@ -33,6 +33,9 @@ require_once 'include/clsDetalhe.inc.php'; require_once 'include/clsBanco.inc.php'; require_once 'include/pmieducar/geral.inc.php'; +require_once 'App/Model/MatriculaSituacao.php'; +require_once 'Portabilis/View/Helper/Application.php'; + /** * clsIndexBase class. * @@ -80,6 +83,12 @@ class indice extends clsDetalhe function Gerar() { + + // carrega estilo para feedback messages, exibindo msgs da api. + + $style = "/modules/Portabilis/Assets/Stylesheets/Frontend.css"; + Portabilis_View_Helper_Application::loadStylesheet($this, $style); + @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; session_write_close(); @@ -285,14 +294,25 @@ class indice extends clsDetalhe $this->array_botao_url_script[] = "go(\"educar_transferencia_solicitacao_cad.php?ref_cod_matricula={$registro['cod_matricula']}&ref_cod_aluno={$registro['ref_cod_aluno']}&cancela=true&reabrir_matricula=true\")"; } - if ($registro['aprovado'] == 4 || $det_transferencia) { - $this->array_botao[] = 'Imprimir Atestado Frequência'; - $this->array_botao_url_script[] = "showExpansivelImprimir(400, 200, \"educar_relatorio_atestado_frequencia.php?cod_matricula={$registro['cod_matricula']}\",[], \"Relatório Atestado de Freqüência\")"; + if ($registro['aprovado'] == App_Model_MatriculaSituacao::ABANDONO) { + $this->array_botao[] = "Desfazer abandono"; + $this->array_botao_url_script[] = "deleteAbandono({$registro['cod_matricula']})"; } } $this->url_cancelar = 'educar_aluno_det.php?cod_aluno=' . $registro['ref_cod_aluno']; $this->largura = '100%'; + + // js + Portabilis_View_Helper_Application::loadJQueryLib($this); + + $scripts = array( + '/modules/Portabilis/Assets/Javascripts/Utils.js', + '/modules/Portabilis/Assets/Javascripts/ClientApi.js', + '/modules/Cadastro/Assets/Javascripts/MatriculaShow.js' + ); + + Portabilis_View_Helper_Application::loadJavascript($this, $scripts); } diff --git a/ieducar/modules/Api/Views/MatriculaController.php b/ieducar/modules/Api/Views/MatriculaController.php index 4a473fb..3f86696 100644 --- a/ieducar/modules/Api/Views/MatriculaController.php +++ b/ieducar/modules/Api/Views/MatriculaController.php @@ -1,8 +1,5 @@ validatesId('aluno'); } + protected function canDeleteAbandono() { + return $this->validatesPresenceOf('id') && + $this->validatesExistenceOf('matricula', $this->getRequest()->id); + } + // search options protected function searchOptions() { @@ -189,6 +192,17 @@ class MatriculaController extends ApiCoreController } } + protected function deleteAbandono() { + if ($this->canDeleteAbandono()) { + $matriculaId = $this->getRequest()->id; + $situacaoAndamento = App_Model_MatriculaSituacao::EM_ANDAMENTO; + + $sql = 'update pmieducar.matricula set aprovado = $1 where cod_matricula = $2'; + $this->fetchPreparedQuery($sql, array($situacaoAndamento, $matriculaId)); + + $this->messenger->append('Abandono desfeito.', 'success'); + } + } public function Gerar() { if ($this->isRequestFor('get', 'matricula')) @@ -200,6 +214,9 @@ class MatriculaController extends ApiCoreController elseif ($this->isRequestFor('get', 'matricula-search')) $this->appendResponse($this->search()); + elseif ($this->isRequestFor('delete', 'abandono')) + $this->appendResponse($this->deleteAbandono()); + else $this->notImplementedOperationError(); } diff --git a/ieducar/modules/Cadastro/Assets/Javascripts/MatriculaShow.js b/ieducar/modules/Cadastro/Assets/Javascripts/MatriculaShow.js new file mode 100644 index 0000000..dfc9069 --- /dev/null +++ b/ieducar/modules/Cadastro/Assets/Javascripts/MatriculaShow.js @@ -0,0 +1,22 @@ +var apiUrlBase = '/module/Api/matricula'; + +var handleDeleteAbandono = function(dataResponse) { + handleMessages(dataResponse.msgs); + location.reload(); +} + +function deleteAbandono(matriculaId) { + if (! confirm(stringUtils.toUtf8('Deseja desfazer o abandono?'))) + return false; + + var options = { + url : deleteResourceUrlBuilder.buildUrl(apiUrlBase, 'abandono'), + dataType : 'json', + data : { + id : matriculaId + }, + success : handleDeleteAbandono + }; + + deleteResource(options); +} \ No newline at end of file diff --git a/ieducar/modules/Portabilis/Assets/Javascripts/Utils.js b/ieducar/modules/Portabilis/Assets/Javascripts/Utils.js index fcdd718..9aa0920 100644 --- a/ieducar/modules/Portabilis/Assets/Javascripts/Utils.js +++ b/ieducar/modules/Portabilis/Assets/Javascripts/Utils.js @@ -277,7 +277,7 @@ var handleMessages = messageUtils.handleMessages; $(document).ready(function() { // add div for feedback messages - $j('
').attr('id', 'feedback-messages').appendTo($j('form').last().parent()); + $j('
').attr('id', 'feedback-messages').appendTo($j('#corpo')); }); // ready })(jQuery); -- libgit2 0.21.2