Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /***
- * InclusaoexclusaoController - Criado em 14/09/2010
- *
- * @author Raphael Igor (raphaigor@yahoo.com.br)
- * @author Daniel de Aranda Lima (engcompdaniel@gmail.com)
- * @version 1.0.0
- *
- */
- class InclusaoexclusaoController extends Zend_Controller_Action
- {
- private $_codTurno;
- private $_usuario;
- private $_nomeAluno;
- private $_codFip;
- private $_codPeriodo;
- private $_codPessoa;
- private $_codCurso;
- private $_ultimoPeriodo;
- private $_dataBase;
- private $_sessao;
- private $_senha;
- private $_flagCurso;
- private $_codCombinacao;
- private $_codCurriculo;
- private $_codSituacao;
- private $_nroSerie;
- private $_siglaIe;
- private $_flagNucleo;
- private $_codTurma;
- private $_redeSaberes;
- private $_periodoInclusao;
- private $_padrao;
- private $_grupoFin;
- private $_url;
- private $_nroFormulario;
- private $_zSession;
- private $_inAtuais = array();
- private $_inIncluidas = array();
- private $_inExcluidas = array();
- private $_inDisciplina = array();
- public function init()
- {
- $this->initView();
- $this->view->baseUrl = $this->_request->getBaseUrl();
- $this->_zSession = new Zend_Session_Namespace('Zend_Auth');
- $this->_usuario = $this->_zSession->storage->USUARIO;
- $this->_nomeAluno = $this->_zSession->storage->NOME;
- $this->_codFip = $this->_zSession->storage->COD_UNIDADE;
- $this->_codPeriodo = $this->_zSession->storage->PERIODO_ATUAL;
- $this->_sessao = $this->_zSession->storage->COD_SESSAO;
- $this->_codPessoa = $this->_zSession->storage->COD_USUARIO;
- $this->_senha = $this->_zSession->storage->SENHA;
- $this->_codCurso = $this->_zSession->storage->COD_CURSO;
- $this->_ultimoPeriodo = $this->_zSession->storage->COD_PERIODO;
- $this->_flagCurso = $this->_zSession->storage->SITUACAO[$this->_codCurso][$this->_ultimoPeriodo]['FLAG_CURSO'];
- $this->_grupoFin = $this->_zSession->storage->GRUPO_FIN;
- $this->_url = $this->view->rootUrl();
- $this->_situacao = (isset($this->_zSession->storage->SITUACAO[$this->_codCurso][$this->_ultimoPeriodo]['SIT']) ?
- $this->_zSession->storage->SITUACAO[$this->_codCurso][$this->_ultimoPeriodo]['SIT'] : null);
- $this->_siglaIe = (isset($this->_zSession->storage->SIGLA_IE) ?
- $this->_zSession->storage->SIGLA_IE : null);
- $this->_codCombinacao = (isset($this->_zSession->storage->COD_COMBINACAO) ?
- $this->_zSession->storage->COD_COMBINACAO : null);
- $this->_codCurriculo = (isset($this->_zSession->storage->COD_CURRICULO) ?
- $this->_zSession->storage->COD_CURRICULO : null);
- $this->_nroSerie = (isset($this->_zSession->storage->NRO_SERIE) ?
- $this->_zSession->storage->NRO_SERIE : null);
- $this->_flagNucleo = (isset($this->_zSession->storage->FLAG_NUCLEO) ?
- $this->_zSession->storage->FLAG_NUCLEO : null);
- $this->_redeSaberes = (isset($this->_zSession->storage->REDE_SABERES) ?
- $this->_zSession->storage->REDE_SABERES : null);
- $this->_codCurso = (isset($this->_zSession->storage->COD_CURSO) ?
- $this->_zSession->storage->COD_CURSO : null);
- $this->_dataBase = (isset($this->_zSession->storage->DATA_BASE) ?
- $this->_zSession->storage->DATA_BASE : null);
- $this->_codTurno = (isset($this->_zSession->storage->COD_TURNO) ?
- $this->_zSession->storage->COD_TURNO : null);
- $this->_nroFormulario = (isset($this->_zSession->storage->NRO_FORMULARIO) ?
- $this->_zSession->storage->NRO_FORMULARIO : null);
- }
- /**
- * Action que valida a entrada do aluno na inclusao/exclusao
- *
- * @return null
- */
- public function indexAction()
- {
- $arr = $this->_validaEntrada();
- if ($arr['flg'] == false) {
- $this->view->msg = $arr['msg'];
- $this->_forward('error', 'inclusaoexclusao');
- }
- $objInclusao = InclusaoexclusaoMapper::getInstance(
- $this->_codPeriodo,
- NULL, NULL, NULL,
- $this->_codPessoa,
- NULL, NULL, NULL,
- $this->_codFip,
- NULL,
- $this->_codCurso
- );
- $arrFormulario = $objInclusao->wsGetProtocoloDispIncExc();
- $this->view->arrFormulario = $arrFormulario;
- $objProtocolo = AlunoprotocoloMapper::getInstance($this->_sessao,$this->_codPessoa,$this->_senha);
- $objProtocolo->wsGetDados();
- $protocoloSolicitado = $objProtocolo->wsGetProtocolos();
- $this->view->boletos = $this->_helper->incexc->gridBoleto($protocoloSolicitado,$this->view->rootUrl());
- $arrCursos = $objInclusao->wsGetCursoAlunoSit();
- $this->view->cursos =
- $this->_helper->formulario->montaDropDown(
- $arrCursos, array('COD_CURSO','COD_COMBINACAO','SIT'), array('COD_CURSO', 'DESC_OFICIAL_CURSO')
- );
- }
- /**
- * Método de validação da entrada do aluno em inclusao/exclusao
- *
- * @return array
- */
- private function _validaEntrada()
- {
- try {
- $objPlano = PlanoestudoMapper::getInstance(NULL, NULL, NULL, NULL);
- $datas = $objPlano->wsGetDataHoraAtual();
- $this->_zSession->storage->DATA_BASE = $datas['DATAF'];
- $this->_padrao = $this->_helper->calendario->convertePadrao($this->_codFip);
- $objInclusao = InclusaoexclusaoMapper::getInstance(
- $this->_codPeriodo,
- $this->_padrao,
- NULL, NULL,
- $this->_codPessoa,
- NULL, NULL,
- $datas['DATAF'],
- $this->_codFip,
- NULL,
- $this->_codCurso,
- NULL,
- $this->_sessao,
- $this->_grupoFin,
- $this->_ultimoPeriodo
- );
- if ($this->_situacao != 'MATRICULAD') {
- $arr['msg'] = NAO_MATRICULADO;
- $arr['flg'] = false;
- $this->_gravaLog($arr['msg']);
- return $arr;
- }
- $redeSaberes = $objInclusao->wsGetRedeSaberes();
- if ($redeSaberes['FLAG_NUCLEO'] != "N") {
- $arr['msg'] = REDE_SABERES;
- $arr['flg'] = false;
- $this->_gravaLog($arr['msg']);
- return $arr;
- }
- $verificaPeriodo = $objInclusao->wsGetPeriodo();
- $flag = 0;
- if (!is_null($verificaPeriodo)) {
- if ($datas['DATAF'] >= $verificaPeriodo['DT_INICIO'] &&
- $datas['DATAF'] <= $verificaPeriodo['DT_FIM']) {
- $flag = 1;
- }
- if ($flag != 1) {
- $arr['flg'] = false;
- $arr['msg'] = PERIODO_INC_EXC;
- $this->_gravaLog($arr['msg']);
- return $arr;
- }
- } else {
- $arr['flg'] = false;
- $arr['msg'] = PERIODO_INC_EXC2;
- $this->_gravaLog($arr['msg']);
- return $arr;
- }
- $ehProvavelFormando = $objInclusao->wsGetEhProvavelFormando();
- $this->_zSession->storage->FORMANDO = $ehProvavelFormando['FORMANDO'];
- $dadosAluno = $objInclusao->wsGetDadosAluno();
- $this->_zSession->storage->COD_COMBINACAO = $dadosAluno['COD_COMBINACAO'];
- $this->_zSession->storage->COD_CURRICULO = $dadosAluno['COD_CURRICULO'];
- $this->_zSession->storage->NRO_SERIE = $dadosAluno['NRO_SERIE'];
- $this->_zSession->storage->SIGLA_IE = $dadosAluno['SIGLA_IE'];
- $this->_zSession->storage->FLAG_NUCLEO = $dadosAluno['FLAG_NUCLEO'];
- $this->_zSession->storage->REDE_SABERES = $redeSaberes['FLAG_NUCLEO'];
- $this->_zSession->storage->COD_TURNO = $dadosAluno['COD_TURNO'];
- $arr['flg'] = true;
- return $arr;
- } catch ( Exception $e ) {
- $this->view->error = __METHOD__ . ' - ' . $e->getMessage();
- }
- }
- /**
- * Método faz a solicitação do protocolo de inclusão exclusão.
- *
- * @return null
- */
- public function solicitaincexcAction()
- {
- $params = $this->getRequest()->getParams();
- if (isset($params['codCurso'])) {
- $this->getHelper('layout')->disableLayout();
- $this->getHelper('ViewRenderer')->setNoRender();
- $codCurso = explode('#',$params['codCurso']);
- if ($codCurso[2] == 'M') {
- $objInclusao = InclusaoexclusaoMapper::getInstance(
- $this->_codPeriodo,
- NULL, NULL, NULL,
- $this->_codPessoa,
- $this->_siglaIe,
- $this->_nroSerie,
- $this->_dataBase,
- $this->_codFip,
- NULL,
- $this->_codCurso,
- $this->_codCombinacao,
- $this->_sessao
- );
- $objProtocolo = AlunoprotocoloMapper::getInstance($this->_sessao,$this->_codPessoa,$this->_senha);
- $dados['codProtocolo'] = 'IE';
- $dados['especificacao'] = 'Inclusão e Exclusão de Disciplinas';
- $dados['motivo'] = NULL;
- $dados['codDisc'] = NULL;
- $dados['codPeriodo'] = $this->_codPeriodo;
- $dados['codCombinacao'] = $codCurso[1];
- $grupoFin = $objProtocolo->wsGetGrupoFinComb($dados['codCombinacao']);
- $dados['grupoFin'] = $grupoFin['GRUPO_FIN'];
- $nroProtocolo = $objInclusao->wsSetProtocolo($dados);
- $objProtocolo->wsGetDados();
- $protocoloSolicitado = $objProtocolo->wsGetProtocolos($nroProtocolo);
- if($protocoloSolicitado[0]['PAGO'] == 'S') {
- $arr['ret'] = 1;
- }
- $arr['erro'] = false;
- $arr['html'] = $this->_helper->incexc->gridBoleto($protocoloSolicitado,$this->view->rootUrl());
- } else {
- $arr['erro'] = 1;
- $arr['msg'] = 'É necessário escolher um curso onde esteja Matriculado.';
- }
- } else {
- $this->view->msg = 'Acesso Negado.';
- $this->_forward('error', 'inclusaoexclusao');
- }
- $jsonData = Zend_Json::encode($arr);
- $this->getResponse()->setBody($jsonData);
- }
- /**
- * Método que exibe a tela de inclusao e exclusao
- *
- * @return null
- */
- public function inclusaoexclusaoAction()
- {
- try {
- $arr = $this->_validaEntrada();
- if ($arr['flg'] == false) {
- $this->view->msg = $arr['msg'];
- $this->_forward('error', 'inclusaoexclusao');
- }
- $params = $this->getRequest()->getParams();
- $objInclusao = InclusaoexclusaoMapper::getInstance();
- if (isset($params['codigo'])) {
- $codigo = explode('_', base64_decode($params['codigo']));
- $validaNroFormulario = $objInclusao->wsGetValidaNroFormulario(
- (isset($codigo[0]) ? $codigo[0] : null),
- (isset($codigo[1]) ? $codigo[1] : null)
- );
- if (is_null($validaNroFormulario)) {
- $this->view->msg = NRO_FORMULARIO_INVALIDO;
- $this->_forward('error', 'inclusaoexclusao');
- }
- } else {
- $this->view->msg = NRO_FORMULARIO_INVALIDO;
- $this->_forward('error', 'inclusaoexclusao');
- }
- $this->_zSession->storage->NRO_FORMULARIO = (isset($params['codigo']) ? $codigo[1] : null);
- $this->view->nroFormulario = (isset($params['codigo']) ? $codigo[1] : null);
- $textoLog = 'Foi permitido ao aluno acessar a tela principal de Inclusão/Exclusão.'.
- 'Número de Formulário utilizado nesta operação: '.
- (isset($params['codigo']) ? $codigo[1] : null).'.';
- $this->_gravaLog($textoLog);
- $objHorario = NotaFaltaHorarioMapper::getInstance(
- $this->_sessao,
- $this->_codCurso,
- $this->_codPessoa,
- $this->_senha,
- $this->_flagCurso,
- $this->_codFip,
- $this->_codPeriodo
- );
- $objHorario->wsGetNotas();
- $horariosAluno = $objInclusao->wsGetHorariosAluno();
- $horariosFip = $objInclusao->wsGetGradeHorariaFip($this->_codCombinacao);
- $this->view->gradeHorarioAluno = $this->_helper->horario->criaGridHorarios($horariosAluno, $horariosFip, $this->_url);
- $arrlista = $objInclusao->wsGetDisciplinasMatriculadas();
- $valoresDisciplinas = array();
- foreach ($arrlista as $result) {
- $valoresDisciplinas[$result['COD_DISC']]['DESC_OFICIAL_DISC'] = $result['DESC_OFICIAL_DISC'];
- $valoresDisciplinas[$result['COD_DISC']]['VALORES'] = $objInclusao->wsGetSimuladorValorDisc(
- $result['COD_DISC'],
- $this->_siglaIe,
- $result['COD_CURRICULO'],
- 'N',
- null,
- $this->_nroSerie,
- $result['CH_TOTAL']
- );
- }
- $this->view->valoresDisciplinas = $valoresDisciplinas;
- $this->view->disc =
- $this->_helper->formulario->montaDropDown(
- $arrlista, 'COD_DISCIPLINA', array('COD_DISC', 'DESC_OFICIAL_DISC', 'COD_TURMA')
- );
- $this->_pegaDadosDisc($objInclusao, $this->_url);
- $this->view->codFilial = $this->_codFip;
- $this->view->codCurso = $this->_codCurso;
- } catch ( Exception $e ) {
- $this->view->error = __METHOD__ . ' - ' . $e->getMessage();
- }
- }
- /**
- * Método que busca os dados das disciplinas passadas e/ou reprovadas do aluno.
- *
- * @param InclusaoexclusaoMapper $objInclusao é o objeto da mapper
- *
- * @return null
- */
- private function _pegaDadosDisc(InclusaoexclusaoMapper $objInclusao, $url)
- {
- try {
- $objInclusao->setCodCurriculo($this->_codCurriculo);
- $disciplinas = $objInclusao->wsGetDiscReprovado($this->_codCurriculo, $this->_siglaIe);
- $equivalentes = array();
- if (is_array($disciplinas)) {
- foreach ( $disciplinas as $disc ) {
- $atual = $objInclusao->wsGetDadosDisc($disc['COD_DISC']);
- $equiv = $objInclusao->wsGetDiscEquivalentesDoAluno($disc['COD_DISC']);
- $ndisc = array();
- foreach ($disc as $k => $a) {
- ($k != 'COD_DISC' ? $ndisc[$k] = $a : null);
- }
- if (is_array($atual)) {
- foreach ($atual as $k=>$a) {
- $atual[$k] = array_merge($ndisc, $a);
- }
- }
- if (is_array($equiv)) {
- foreach ($equiv as $k=>$e) {
- $equiv[$k] = array_merge($ndisc, $e);
- }
- }
- (!isset($equivalentes[$disc['COD_DISC']]) ?
- $equivalentes[$disc['COD_DISC']] = array() :
- null);
- if (is_array($equiv)) {
- $equivalentes[$disc['COD_DISC']] =
- array_merge($equivalentes[$disc['COD_DISC']],
- $equiv);
- }
- if (is_array($atual)) {
- $equivalentes[$disc['COD_DISC']] =
- array_merge($atual, $equivalentes[$disc['COD_DISC']]);
- }
- }
- $tipo = 'xREP';
- $this->view->acordeonRep = $this->_helper->horario->criaAcordeonDisc($disciplinas, $equivalentes, $tipo, $url);
- } else {
- $this->view->acordeonRep = '';
- }
- $disciplinas = $objInclusao->wsGetDiscPassadas($this->_codCurriculo, $this->_siglaIe, $this->_nroSerie);
- $equivalentes = array();
- if (is_array($disciplinas)) {
- foreach ($disciplinas as $disc) {
- $atual = $objInclusao->wsGetDadosDisc($disc['COD_DISC']);
- $equiv = $objInclusao->wsGetDiscEquivalentesDoAluno($disc['COD_DISC']);
- $ndisc = array();
- foreach ($disc as $k => $a) {
- ($k != 'COD_DISC' ? $ndisc[$k] = $a : null);
- }
- if (is_array($atual)) {
- foreach ($atual as $k=>$a) {
- $atual[$k] = array_merge($ndisc, $a);
- }
- }
- if (is_array($equiv)) {
- foreach ($equiv as $k=>$e) {
- $equiv[$k] = array_merge($ndisc, $e);
- }
- }
- (!isset($equivalentes[$disc['COD_DISC']]) ?
- $equivalentes[$disc['COD_DISC']] = array() :
- null);
- if (is_array($equiv)) {
- $equivalentes[$disc['COD_DISC']] =
- array_merge($equivalentes[$disc['COD_DISC']],
- $equiv);
- }
- if (is_array($atual)) {
- $equivalentes[$disc['COD_DISC']] =
- array_merge($atual, $equivalentes[$disc['COD_DISC']]);
- }
- }
- $tipo = 'xNCUR';
- $this->view->acordeonNCur = $this->_helper->horario->criaAcordeonDisc($disciplinas, $equivalentes, $tipo, $url);
- } else {
- $this->view->acordeonNCur = '';
- }
- } catch ( Exception $e ) {
- $this->view->error = __METHOD__ . " - " . $e->getMessage();
- }
- }
- /**
- * Método que gera uma subwindow para inclusao de disciplinas
- *
- * @return null
- */
- public function janelainclusaoAction()
- {
- try {
- $textoLog = 'Acesso à action "janelainclusao" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- $params = $this->getRequest()->getParams();
- $objInclusao = InclusaoexclusaoMapper::getInstance(
- $this->_codPeriodo,
- NULL, NULL, NULL,
- $this->_codPessoa,
- NULL, NULL, NULL,
- $this->_codFip
- );
- // Cria uma lista das disciplinas que não poderão ser incluidas
- $atuais = explode(',', $params['atuais']);
- $incluidas = explode(',', $params['incluidas']);
- $excluiDaLista = null;
- $exclui = '';
- if (is_array($atuais) && is_array($incluidas)) {
- $excluiDaLista = array_merge($atuais, $incluidas);
- } else if (is_array($atuais) && !is_array($incluidas)) {
- $excluiDaLista = array_merge($atuais, array($incluidas));
- } else if (!is_array($atuais) && is_array($incluidas)) {
- $excluiDaLista = array_merge(array($atuais), $incluidas);
- } else if (!is_array($atuais) && !is_array($incluidas)) {
- $excluiDaLista = array($atuais, $incluidas);
- }
- $optGroupPassadas = '';
- $optGroupReprovado = '';
- $optGroupFuturas = '';
- $optGroupOptativas = '';
- $disciplinasPassadas = $objInclusao->wsGetDiscPassadas($this->_codCurriculo, $this->_siglaIe, $this->_nroSerie, join(',', $excluiDaLista));
- if (!is_null($disciplinasPassadas)) {
- $select = $this->_helper->formulario->montaDropDown(
- $disciplinasPassadas,
- array('COD_DISC', 'COD_CURSO', 'COD_CURRICULO', 'CH', 'NRO_SERIE'),
- array('NRO_SERIE_DISC', 'COD_DISC', 'DESC_OFICIAL_DISC')
- );
- $label = 'Disciplinas de Séries Anteriores:';
- $optGroupPassadas = $this->_helper->formulario->optGroup($label, $select);
- }
- $disciplinasReprovado = $objInclusao->wsGetDiscReprovado($this->_codCurriculo, $this->_siglaIe);
- if (!is_null($disciplinasReprovado)) {
- $select = $this->_helper->formulario->montaDropDown(
- $disciplinasReprovado,
- array('COD_DISC', 'COD_CURSO', 'COD_CURRICULO', 'CH', 'NRO_SERIE'),
- array('NRO_SERIE_DISC', 'COD_DISC', 'DESC_OFICIAL_DISC')
- );
- $label = 'Disciplinas Reprovadas:';
- $optGroupReprovado = $this->_helper->formulario->optgroup($label, $select);
- }
- $disciplinasFuturas = $objInclusao->wsGetDiscFuturas($this->_codCurriculo, $this->_siglaIe, $this->_nroSerie);
- if (!is_null($disciplinasFuturas)) {
- $select = $this->_helper->formulario->montaDropDown(
- $disciplinasFuturas,
- array('COD_DISC', 'COD_CURSO', 'COD_CURRICULO', 'CH', 'NRO_SERIE'),
- array('NRO_SERIE_DISC', 'COD_DISC', 'DESC_OFICIAL_DISC')
- );
- $label = 'Disciplinas de Séries Futuras:';
- $optGroupFuturas = $this->_helper->formulario->optgroup($label, $select);
- }
- $disciplinasOptativas = $objInclusao->wsGetDiscsOptativas($this->_codCurriculo, $this->_siglaIe);
- if (!is_null($disciplinasOptativas)) {
- $select = $this->_helper->formulario->montaDropDown(
- $disciplinasOptativas,
- array('COD_DISC', 'COD_CURSO', 'COD_CURRICULO', 'CH', 'NRO_SERIE'),
- array('COD_DISC', 'DESC_OFICIAL_DISC')
- );
- $label = 'Disciplinas Optativas:';
- $optGroupOptativas = $this->_helper->formulario->optgroup($label, $select);
- }
- $this->view->selectDisciplinas = $optGroupPassadas.$optGroupReprovado.$optGroupFuturas.$optGroupOptativas;
- $this->view->codFip = $this->_codFip;
- $this->view->codPeriodo = $this->_codPeriodo;
- $this->getHelper('layout')->disableLayout();
- } catch ( Exception $e ) {
- $this->view->error = __METHOD__ . ' - ' . $e->getMessage();
- }
- }
- /**
- * Método que gera uma subwindow para inclusao de disciplinas de outros cursos
- *
- * @return null
- */
- public function janelainclusao2Action()
- {
- try {
- $textoLog = 'Acesso à action "janelainclusao2" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- $obj = CampusMapper::getInstance($this->_codFip, $this->_codPeriodo, $this->_codCurso);
- $listaCursos = $obj->listaCursos();
- $this->view->selectCursos = $this->_helper->formulario->montaDropDown(
- $listaCursos, array('COD_CURSO'), array('DESC_OFICIAL_CURSO')
- );
- $this->view->codFip = $this->_codFip;
- $this->view->codPeriodo = $this->_codPeriodo;
- $this->getHelper('layout')->disableLayout();
- } catch ( Exception $e ) {
- $this->view->error = __METHOD__ . ' - ' . $e->getMessage();
- }
- }
- /**
- * Método que busca as disciplinas de um curso
- *
- * @return null
- */
- public function buscadisciplinasAction()
- {
- try {
- $textoLog = 'Acesso à action "buscadisciplinas" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- $this->getHelper('layout')->disableLayout();
- $this->getHelper('ViewRenderer')->setNoRender();
- $params = $this->getRequest()->getParams();
- $objCampus = CampusMapper::getInstance(
- $this->_codFip,
- $this->_codPeriodo,
- $params['codCurso']
- );
- $arr['selectDisciplinas'] = $this->_helper->formulario->montaDropDown(
- $objCampus->listaDisciplinas(),
- array('COD_DISC_CONCAT'),
- array('NRO_SERIE_DISC','COD_DISC','DESC_OFICIAL_DISC')
- );
- $jsonData = Zend_Json::encode($arr);
- $this->getResponse()->setBody($jsonData);
- } catch ( Exception $e ) {
- $jsonData = Zend_Json::encode(array('erro' => __METHOD__ .
- ' - ' . $e->getMessage()));
- $this->getResponse()->setBody($jsonData);
- }
- }
- /**
- * Método que prepara os dados para validar a exclusao de uma disciplina
- *
- * @return null
- */
- public function preparaexclusaoAction()
- {
- try {
- $textoLog = 'Acesso à action "preparaexclusao" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- $this->getHelper('layout')->disableLayout();
- $this->getHelper('ViewRenderer')->setNoRender();
- $params = $this->getRequest()->getParams();
- $this->_inAtuais = (isset($params['atuais']) ? $params['atuais'] : array());
- $this->_inIncluidas = (isset($params['incluidas']) ? $params['incluidas'] : array());
- $disciplina = (isset($params['disc']) ? $params['disc'] : null);
- if (is_null($disciplina) || (count($this->_inAtuais) < 1 && count($this->_inIncluidas) < 1)) {
- $this->_forward('index', 'inclusaoexclusao');
- }
- $dadosDisc = explode('x', $disciplina);
- $this->_inDisciplina[1] = $dadosDisc[0];
- $this->_inDisciplina[3] = $dadosDisc[2];
- $arr = $this->_validaexclusao();
- $arr['disc'] = $dadosDisc[0];
- $jsonData = Zend_Json::encode($arr);
- $this->getResponse()->setBody($jsonData);
- } catch ( Exception $e ) {
- $jsonData = Zend_Json::encode(array('erro' => __METHOD__ .
- ' - ' . $e->getMessage()));
- $this->getResponse()->setBody($jsonData);
- }
- }
- /**
- * Método que valida a exclusao de uma disciplina
- *
- * @return array
- */
- private function _validaexclusao()
- {
- $objInclusao = InclusaoexclusaoMapper::getInstance();
- $discPosRequisito = $objInclusao->wsGetPosRequisito($this->_inDisciplina[1], $this->_inDisciplina[3]);
- $nomeDisc = $objInclusao->wsGetDisciplina($this->_inDisciplina[1]);
- $arrCodDiscAtuaisAluno = array();
- foreach($this->_inAtuais as $codDiscAtualAluno) {
- $codDiscAtualAluno = explode('x', $codDiscAtualAluno);
- $arrCodDiscAtuaisAluno[] = $codDiscAtualAluno[0];
- }
- $arrCodDiscIncluidasAluno = array();
- foreach($this->_inIncluidas as $codDiscIncluidaAluno) {
- $codDiscIncluidaAluno = explode('x', $codDiscIncluidaAluno);
- $arrCodDiscIncluidasAluno[] = $codDiscIncluidaAluno[0];
- }
- $arrTodosCodDiscAluno = array_merge($arrCodDiscAtuaisAluno, $arrCodDiscIncluidasAluno);
- $ehPreRequisito = 0;
- if (!is_null($discPosRequisito)) {
- foreach ($discPosRequisito as $discPosRequisito2) {
- if (in_array($discPosRequisito2['COD_DISC'],$arrTodosCodDiscAluno)) {
- $ehPreRequisito = 1;
- }
- }
- if ($ehPreRequisito == 1) {
- $arr['cod'] = 0;
- $arr['flg'] = false;
- $arr['msg'] = 'A disciplina '.$nomeDisc['DESC_OFICIAL_DISC'].' é pré-requisito de alguma outra existente em sua grade!';
- $this->_gravaLog($arr['msg']);
- } else {
- $arr['cod'] = 0;
- $arr['flg'] = true;
- $arr['msg'] = 'A disciplina '.$nomeDisc['DESC_OFICIAL_DISC'].' não é pré-requisito de nenhuma outra '.
- 'existente na grade do aluno e por isso pode ser excluída.';
- $this->_gravaLog($arr['msg']);
- }
- } else {
- $arr['cod'] = 0;
- $arr['flg'] = true;
- $arr['msg'] = 'A disciplina '.$nomeDisc['DESC_OFICIAL_DISC'].' não é pré-requisito de nenhuma outra '.
- 'disciplina e por isso pode ser excluída.';
- $this->_gravaLog($arr['msg']);
- }
- return $arr;
- }
- /**
- * Action que gera um jsom com as disciplinas equivalentes
- *
- * @return null
- */
- public function pegaDiscEquivalentesAction()
- {
- $textoLog = 'Acesso à action "pegaDiscEquivalentes" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- $this->getHelper('layout')->disableLayout();
- $this->getHelper('ViewRenderer')->setNoRender();
- $arr = array();
- $params = $this->getRequest()->getParams();
- $padrao = $this->_helper->calendario->convertePadrao($this->_codFip);
- $codDisc = (isset($params['disc']) ? $params['disc'] : null);
- $objInclusao = InclusaoexclusaoMapper::getInstance(
- $this->_codPeriodo,
- $padrao,
- $codDisc,
- $this->_codCurriculo,
- $this->_codPessoa,
- $this->_siglaIe,
- $this->_nroSerie,
- $this->_dataBase,
- $this->_codFip,
- NULL,
- NULL,
- $this->_codCombinacao,
- $this->_sessao
- );
- try {
- $arr = $objInclusao->wsGetDiscEquivalentesDoAluno();
- } catch ( Exception $e ) {
- $arr['erro'] = $e->getTraceAsString();
- }
- $jsonData = Zend_Json::encode($arr);
- $this->getResponse()->setBody($jsonData);
- }
- /**
- * Action que gera um json com os dados de uma disciplina
- *
- * @return null
- */
- public function pegaDadosDiscAction()
- {
- $textoLog = 'Acesso à action "pegaDadosDisc" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- $this->getHelper('layout')->disableLayout();
- $this->getHelper('ViewRenderer')->setNoRender();
- $arr = array();
- $params = $this->getRequest()->getParams();
- $padrao = $this->_helper->calendario->convertePadrao($this->_codFip);
- $codDisc = (isset($params['disc']) ? $params['disc'] : null);
- $objInclusao = InclusaoexclusaoMapper::getInstance(
- $this->_codPeriodo,
- $padrao,
- $codDisc,
- $params['curriculo'],
- $this->_codPessoa,
- $this->_siglaIe,
- $this->_nroSerie,
- $this->_dataBase,
- $this->_codFip,
- NULL,
- $this->_codCurso,
- $this->_codCombinacao,
- $this->_sessao
- );
- try {
- $arr = $objInclusao->wsGetTurmaEquivalente();
- } catch ( Exception $e ) {
- $arr['erro'] = $e->getMessage();
- }
- $jsonData = Zend_Json::encode($arr);
- $this->getResponse()->setBody($jsonData);
- }
- /**
- * Action que gera um json com os dados de horários de uma disciplina
- *
- * @return null
- */
- public function pegaDiscDiaHorarioAction()
- {
- $textoLog = 'Acesso à action "pegaDiscDiaHorario" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- $this->getHelper('layout')->disableLayout();
- $this->getHelper('ViewRenderer')->setNoRender();
- $arr = array();
- $params = $this->getRequest()->getParams();
- $padrao = $this->_helper->calendario->convertePadrao($this->_codFip);
- $codDisc = (isset($params['disc']) ? $params['disc'] : null);
- $codTurma = (isset($params['turma']) ? $params['turma'] : null);
- $objInclusao = InclusaoexclusaoMapper::getInstance(
- $this->_codPeriodo,
- $padrao,
- $codDisc,
- null,
- $this->_codPessoa,
- $this->_siglaIe,
- $this->_nroSerie,
- $this->_dataBase,
- $this->_codFip,
- $codTurma,
- $this->_codCurso,
- $this->_codCombinacao,
- $this->_sessao
- );
- try {
- $arr = $objInclusao->wsGetDiscDiaHorario();
- if (!$arr) {
- $arr = array('erro'=>'Nada foi encontrado!');
- }
- } catch ( Exception $e ) {
- $arr['erro'] = $e->getMessage();
- }
- $jsonData = Zend_Json::encode($arr);
- $this->getResponse()->setBody($jsonData);
- }
- /**
- * Método valida inclusão da disciplina.
- *
- *
- * @return array
- */
- public function validainclusaoAction()
- {
- $textoLog = 'Acesso à action "validainclusao" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- $this->getHelper('layout')->disableLayout();
- $this->getHelper('ViewRenderer')->setNoRender();
- $arr = array();
- $params = $this->getRequest()->getParams();
- $this->_inDisciplina = (isset($params['disciplina']) ? $params['disciplina'] : null);
- $this->_inAtuais = (isset($params['atuais']) ? $params['atuais'] : array());
- $this->_inIncluidas = (isset($params['incluidas']) ? $params['incluidas'] : array());
- if (is_null($this->_inDisciplina)) {
- $this->_forward('index', 'inclusaoexclusao');
- }
- try {
- $arr = $this->_verificaVagas();
- if ($arr['flg']) {
- $arr = $this->_verificaChoque();
- if ($arr['flg']) {
- $arr = $this->_verificaPreRequisitos();
- if ($arr['flg']) {
- $arr = $this->_verificaEnriqCurr();
- if ($arr['flg']) {
- $arr = $this->_verificaHorasSemanais();
- }
- }
- }
- }
- } catch ( Exception $e ) {
- $arr = array(
- 'cod' => 0,
- 'msg' => $e->getMessage(),
- 'flg' => false
- );
- }
- $jsonData = Zend_Json::encode($arr);
- $this->getResponse()->setBody($jsonData);
- }
- /**
- * Método verifica a existência de vagas em uma determinada turma,
- * a ser incluída.
- *
- * @return array
- */
- private function _verificaVagas()
- {
- $objInclusao = InclusaoexclusaoMapper::getInstance();
- $disc['codDisc'] = $this->_inDisciplina[1];
- $disc['codTurma'] = $this->_inDisciplina[2];
- $disc['codFip'] = $this->_codFip;
- $disc['codPeriodo'] = $this->_codPeriodo;
- $vaga = $objInclusao->wsGetVagas($disc);
- if ($vaga['LOTADA'] == 'N') {
- $arr['cod'] = 1;
- $arr['flg'] = true;
- $arr['msg'] = 'Há vagas na turma '.$this->_inDisciplina[2].' escolhida pelo aluno.';
- $this->_gravaLog($arr['msg']);
- } else {
- $arr['cod'] = 1;
- $arr['flg'] = false;
- $arr['msg'] = "A turma ".$this->_inDisciplina[2]." já está lotada. Selecione outra turma.";
- $this->_gravaLog($arr['msg']);
- }
- return $arr;
- }
- /**
- * Método verifica se há choque de horário, da disciplina incluida com as atuais.
- *
- *
- * @return array
- */
- private function _verificaChoque()
- {
- $codTurma = $this->_inDisciplina[2];
- $codDisc = $this->_inDisciplina[1];
- $obj = InclusaoexclusaoMapper::getInstance();
- $discCursadas = (isset($this->_inIncluidas) ? array_merge($this->_inAtuais,$this->_inIncluidas) : $this->_inAtuais);
- $arrDisciplinas = array();
- $arrDisc = array();
- foreach ($discCursadas as $discCursa) {
- $aux = explode('x', $discCursa);
- $arrDisc['COD_PERIODO'] = $this->_codPeriodo;
- $arrDisc['COD_COMBINACAO'] = $this->_codCombinacao;
- $arrDisc['COD_TURMA'] = $aux[1];
- $arrDisc['COD_FIP'] = $this->_codFip;
- $arrDisc['COD_DISC'] = $aux[0];
- $arrDisciplinas[] = $arrDisc;
- }
- $arrDisciplina = array();
- $arrDisciplina['COD_PERIODO'] = $this->_codPeriodo;
- $arrDisciplina['COD_COMBINACAO'] = $this->_codCombinacao;
- $arrDisciplina['COD_TURMA'] = $codTurma;
- $arrDisciplina['COD_FIP'] = $this->_codFip;
- $arrDisciplina['COD_DISC'] = $codDisc;
- $verificaChoque = array();
- if (count($arrDisciplinas) > 0) {
- $verificaChoque = $obj->wsGetVerificaChoqueHorario($arrDisciplinas, $arrDisciplina, $this->_dataBase);
- }
- if (!is_null($verificaChoque)) {
- if (count($verificaChoque) > 0) {
- $arr['cod'] = 2;
- $arr['flg'] = false;
- $arr['msg'] = "O horário da disciplina selecionada está em choque com a disciplina ".
- $verificaChoque[0]['DESC_OFICIAL_DISC'] . " às " . $verificaChoque[0]['HORARIO'] . " horas ".
- " de " . $verificaChoque[0]['DIA_SEMANA'];
- $this->_gravaLog($arr['msg']);
- } else {
- $arr['cod'] = 2;
- $arr['flg'] = true;
- $arr['msg'] = 'O horário da disciplina '.$this->_inDisciplina[1].' não está em choque com nenhum outro.';
- $this->_gravaLog($arr['msg']);
- }
- } else {
- $arr['cod'] = 2;
- $arr['flg'] = false;
- $arr['msg'] = "ERRO ao localizar informações da Disciplina/Turma.";
- $this->_gravaLog($arr['msg']);
- }
- return $arr;
- }
- /**
- * Método verifica se a disciplina incluida possui pré requisito,
- * e qual o status do aluno em tal disciplina.
- *
- *
- * @return array
- */
- private function _verificaPreRequisitos()
- {
- $this->_codCurriculo = $this->_zSession->storage->COD_CURRICULO;
- $obj = InclusaoexclusaoMapper::getInstance();
- $dis['codDisc'] = $this->_inDisciplina[1];
- $dis['codCurriculo'] = $this->_codCurriculo;
- $discPR = $obj->wsGetPreRequisito($dis);
- if (!empty($discPR)) {
- foreach ($discPR as $pr) {
- $disc = explode('x', $pr['COD_DISC_REQ']);
- $disciplinas[] = $disc[0];
- }
- $arr = $this->_verificaPRaprovado($disciplinas);
- } else {
- $arr['cod'] = 3;
- $arr['flg'] = true;
- $arr['msg'] = 'A disciplina '.$this->_inDisciplina[1].' não possui pré-requisitos.';
- $this->_gravaLog($arr['msg']);
- }
- return $arr;
- }
- /**
- * Método verifica o status do aluno na disciplina pre-requisito da incluida.
- *
- * @param Array
- *
- * @return array
- */
- private function _verificaPRaprovado($disc = Array())
- {
- $obj = InclusaoexclusaoMapper::getInstance();
- foreach ($disc as $disciplina) {
- $dadosDisc['codDisc'] = $disciplina;
- $dadosDisc['codPessoa'] = $this->_codPessoa;
- $dadosDisc['codPeriodo'] = $this->_codPeriodo;
- $prstatus = $obj->wsGetEquivalenteStatus($dadosDisc);
- $infDisc = $obj->wsGetDisciplina($disciplina);
- if (is_null($prstatus) || $prstatus['SITUACAO_FINAL'] == 'RF') {
- $arr['cod'] = 3;
- $arr['flg'] = false;
- $arr['msg'] = "Para cursar esta disciplina é necessário fazer a ".
- $infDisc['DESC_OFICIAL_DISC']. " primeiro.";
- $this->_gravaLog($arr['msg']);
- return $arr;
- } else if ($prstatus['SITUACAO_FINAL'] == 'RN') {
- if ($this->_verificaPRincluido($disciplina)) {
- $arr['cod'] = 3;
- $arr['flg'] = true;
- $arr['msg'] = 'O aluno já incluiu a disciplina '.$infDisc['DESC_OFICIAL_DISC'].' em sua grade.';
- $this->_gravaLog($arr['msg']);
- } else {
- $arr['cod'] = 3;
- $arr['flg'] = false;
- $arr['msg'] = "Para cursar esta disciplina é necessário fazer a ".
- $infDisc['DESC_OFICIAL_DISC']." antes ou concomitantemente.";
- $this->_gravaLog($arr['msg']);
- return $arr;
- }
- } else if ($prstatus['SITUACAO_FINAL'] == 'AP') {
- $arr['cod'] = 3;
- $arr['flg'] = true;
- $arr['msg'] = 'O aluno foi aprovado no pré-requisito '.$infDisc['DESC_OFICIAL_DISC'];
- $this->_gravaLog($arr['msg']);
- }
- }
- return $arr;
- }
- /**
- * Em caso onde o aluno foi reprovado por nota na disc pre-requisito,
- * ele tem de cursar as 2 discs concomitantemente, este método verifica
- * se isso ocorre.
- *
- * @param int
- *
- * @return array
- */
- private function _verificaPRincluido($disciplina)
- {
- $cursando = array_merge($this->_inAtuais, $this->_inIncluidas);
- foreach ($cursando as $cursa) {
- $aux = explode('x', $cursa);
- if ($aux[0] == $disciplina) {
- return true;
- }
- }
- return false;
- }
- /**
- * Método verifica a quantidade de disciplinas extraCurriculares do aluno.
- *
- *
- * @return array
- */
- private function _verificaEnriqCurr()
- {
- if( $this->_inDisciplina[3] != $this->_codCurriculo ) {
- $arrayDiscs = (isset($this->_inIncluidas) ? array_merge($this->_inAtuais,$this->_inIncluidas) : $this->_inAtuais);
- $countEnriqCurr = 0;
- foreach($arrayDiscs as $dadosDiscs) {
- $aux = explode('x', $dadosDiscs);
- $codCurr = $aux[2];
- if($this->_codCurriculo != $codCurr) {
- $countEnriqCurr++;
- }
- }
- if($countEnriqCurr < 2) {
- $arr['cod'] = 4;
- $arr['flg'] = true;
- $arr['msg'] = 'O aluno ainda não atingiu o máximo permitido de Disciplinas para Enriquecimento Curricular';
- $this->_gravaLog($arr['msg']);
- } else {
- $arr['cod'] = 4;
- $arr['flg'] = false;
- $arr['msg'] = "Você já adicionou o máximo permitido de Disciplinas para Enriquecimento Curricular";
- $this->_gravaLog($arr['msg']);
- }
- } else {
- $arr['cod'] = 4;
- $arr['flg'] = true;
- $arr['msg'] = 'Esta não é uma Disciplina para Enriquecimento Curricular';
- $this->_gravaLog($arr['msg']);
- }
- return $arr;
- }
- /**
- * Método verifica a quantidade de horas/aula semanais o aluno possui.
- *
- *
- * @return array
- */
- private function _verificaHorasSemanais()
- {
- $objInclusao = InclusaoexclusaoMapper::getInstance(
- $this->_codPeriodo,
- NULL,
- NULL,
- $this->_codCurriculo,
- $this->_codPessoa,
- $this->_siglaIe,
- $this->_nroSerie
- );
- $arrayDiscs = (isset($this->_inIncluidas) ? array_merge($this->_inAtuais, $this->_inIncluidas) : $this->_inAtuais);
- $arrCodDiscs = array();
- foreach ($arrayDiscs as $dadosDiscs) {
- $aux = explode('x', $dadosDiscs);
- $arrCodDiscs[] = $aux[0];
- }
- $arrCodDiscs[] = $this->_inDisciplina[1];
- $horasSemanais = $objInclusao->wsGetHorasDisciplinas($arrCodDiscs);
- // Limite 40 horas
- if($horasSemanais['AULAS_SEMANAIS'] > 40) {
- if($this->_zSession->storage->FORMANDO == 'N') {
- $arr['cod'] = 5;
- $arr['flg'] = false;
- $arr['msg'] = "Aluno NÃO FORMANDO passou do limite de 40 horas semanais";
- $this->_gravaLog($arr['msg']);
- } else {
- // Limite 44 horas
- if($horasSemanais['AULAS_SEMANAIS'] <= 44) {
- // Disciplinas Pendentes
- $arrDiscPendentes = array_merge($objInclusao->wsGetDiscReprovado(), $objInclusao->wsGetDiscPassadas(), $objInclusao->wsGetDiscFuturas());
- $arrCodDiscsPend = array();
- foreach ($arrDiscPendentes as $dadosDiscsPend) {
- $arrCodDiscsPend[] = $dadosDiscsPend['COD_DISC'];
- }
- // Disciplinas Incluidas
- $arrCodDiscsIncl = array();
- if(isset($this->_inIncluidas)) {
- foreach ($this->_inIncluidas as $dadosDiscsIncl) {
- $aux = explode('x', $dadosDiscsIncl);
- $arrCodDiscsIncl[] = $aux[0];
- }
- }
- $arrCodDiscsIncl[] = $this->_inDisciplina[1];
- // Verificação das Pendentes e Incluidas
- $countDiscsPend = count($arrCodDiscsPend);
- $countDiscsIncl = 0;
- foreach ($arrCodDiscsIncl as $codDisc) {
- if(in_array($codDisc, $arrCodDiscsPend)) {
- $countDiscsIncl++;
- }
- }
- if($countDiscsPend == $countDiscsIncl) {
- $arr['cod'] = 5;
- $arr['flg'] = true;
- $arr['msg'] = 'O aluno já incluiu todas as disciplinas pendentes.';
- $this->_gravaLog($arr['msg']);
- } else {
- $arr['cod'] = 5;
- $arr['flg'] = false;
- $arr['msg'] = "Aluno FORMANDO precisa incluir todas as disciplinas pendentes primeiro.";
- $this->_gravaLog($arr['msg']);
- }
- } else {
- $arr['cod'] = 5;
- $arr['flg'] = false;
- $arr['msg'] = "Aluno FORMANDO passou do limite de horas semanais.";
- $this->_gravaLog($arr['msg']);
- }
- }
- } else {
- $arr['cod'] = 5;
- $arr['flg'] = true;
- $arr['msg'] = 'O aluno possui menos de 40h semanais em sua grade.';
- $this->_gravaLog($arr['msg']);
- }
- return $arr;
- }
- /**
- * Método atualiza o grid de valores das disciplinas.
- *
- *
- * @return array
- */
- public function atualizaValoresAction()
- {
- $textoLog = 'Acesso à action "atualizaValores" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- $this->getHelper('layout')->disableLayout();
- $this->getHelper('ViewRenderer')->setNoRender();
- $objInclusao = InclusaoexclusaoMapper::getInstance(
- $this->_codPeriodo,
- NULL,NULL,NULL,
- $this->_codPessoa,
- NULL,NULL,NULL,
- $this->_codFip,
- NULL,NULL,NULL,NULL,
- $this->_grupoFin
- );
- $params = $this->getRequest()->getParams();
- $valores = $objInclusao->wsGetSimuladorValorDisc(
- $params['codDisc'],
- $this->_siglaIe,
- $params['codCurriculo'],
- 'N',
- NULL,
- $this->_nroSerie,
- $params['chTotal']
- );
- $arr['valores'] = $valores;
- $textoLog = 'A tabela de valores das disciplinas foi atualizada com sucesso.';
- $this->_gravaLog($textoLog);
- $jsonData = Zend_Json::encode($arr);
- $this->getResponse()->setBody($jsonData);
- }
- /**
- * Método controla as validações e salva no banco.
- *
- *
- * @return array
- */
- public function salvarAction()
- {
- $textoLog = 'Acesso à action salvar da controller inclusaoexclusao';
- $this->_gravaLog($textoLog);
- $this->getHelper('layout')->disableLayout();
- $this->getHelper('ViewRenderer')->setNoRender();
- $params = $this->getRequest()->getParams();
- $this->_inAtuais = (isset($params['atuais']) ? $params['atuais'] : array());
- $this->_inIncluidas = (isset($params['incluidas']) ? $params['incluidas'] : array());
- $this->_inExcluidas = (isset($params['excluidas']) ? $params['excluidas'] : array());
- if (count($this->_inAtuais) < 1 && count($this->_inIncluidas) < 1) {
- $this->_forward('index', 'inclusaoexclusao');
- }
- $arr['nroFormulario'] = $this->_nroFormulario;
- $arr['cod'] = 10;
- $arr['flg'] = true;
- $arr['msg'] = "Nenhuma alteração feita no formulário.";
- $this->_gravaLog($arr['msg']);
- foreach ($this->_inIncluidas as $inc) {
- $key = array_search($inc, $this->_inIncluidas);
- unset($this->_inIncluidas[$key]);
- $disc = explode('x', $inc);
- $this->_inDisciplina[1] = $disc[0];
- $this->_inDisciplina[2] = $disc[1];
- $this->_inDisciplina[3] = $disc[2];
- $arr = $this->_verificaVagas();
- if ($arr['flg']) {
- $arr = $this->_verificaChoque();
- if ($arr['flg']) {
- $arr = $this->_verificaPreRequisitos();
- if ($arr['flg']) {
- $arr = $this->_verificaEnriqCurr();
- if ($arr['flg']) {
- $arr = $this->_verificaHorasSemanais();
- }
- }
- }
- }
- if (!$arr['flg']) {
- break;
- }
- array_push($this->_inIncluidas, $inc);
- }
- if ($arr['flg']) {
- foreach ($this->_inExcluidas as $exc) {
- $disc = explode('x', $exc);
- $this->_inDisciplina[1] = $disc[0];
- $this->_inDisciplina[2] = $disc[1];
- $this->_inDisciplina[3] = $disc[2];
- $arr = $this->_validaexclusao();
- if (!$arr['flg']) {
- break;
- }
- }
- }
- if ($arr['flg'] && $arr['cod'] != 10) {
- $arr = $this->_salvarBD();
- }
- $jsonData = Zend_Json::encode($arr);
- $this->getResponse()->setBody($jsonData);
- }
- /**
- * Método percorre todas manipulações e faz as inserções no BD.
- * Valida e depois altera definitivo.
- *
- * @return array
- */
- private function _salvarBD()
- {
- $objInclusao = InclusaoexclusaoMapper::getInstance();
- $arr['flg'] = true;
- if ($arr['flg']) {
- //Salva incluídas
- foreach ($this->_inIncluidas as $inc) {
- if($arr['flg']) {
- $op = 'I';
- $disc = explode('x', $inc);
- $arr = $this->_setDiscIncExc($disc, $op, $this->_nroFormulario);
- }
- }
- if($arr['flg']) {
- //Salva excluídas
- foreach ($this->_inExcluidas as $exc) {
- if($arr['flg']) {
- $op = 'E';
- $disc = explode('x', $exc);
- $arr = $this->_setDiscIncExc($disc, $op, $this->_nroFormulario);
- }
- }
- }
- }
- $arrParametros['nroFormulario'] = $this->_nroFormulario;
- $arrParametros['codFip'] = $this->_codFip;
- $arrParametros['codPessoa'] = $this->_codPessoa;
- $arrParametros['codCurso'] = $this->_codCurso;
- $arrParametros['codTurno'] = $this->_codTurno;
- $arrParametros['dtFormulario'] = $this->_dataBase;
- $arrParametros['codCurriculo'] = $this->_codCurriculo;
- $arrParametros['siglaIe'] = $this->_siglaIe;
- $arrParametros['nroSerie'] = $this->_nroSerie;
- $erros = $objInclusao->wsGetValidaIncExc($arrParametros);
- if ($erros) {
- $arr['cod'] = 15;
- $arr['flg'] = false;
- $arr['msg'] = $erros;
- $this->_gravaLog($arr['msg']);
- return $arr;
- } else {
- $arrParametros['nroFormulario'] = $this->_nroFormulario;
- $arrParametros['codFip'] = $this->_codFip;
- $arrParametros['codPessoa'] = $this->_codPessoa;
- $arrParametros['codCurso'] = $this->_codCurso;
- $arrParametros['codTurno'] = $this->_codTurno;
- $arrParametros['dtFormulario'] = $this->_dataBase;
- $err = $objInclusao->wsSetGravaIncExc($arrParametros);
- if ($err) {
- $arr['cod'] = 16;
- $arr['flg'] = true;
- $arr['nroFormulario'] = $this->_nroFormulario;
- $arr['msg'] = 'As informações foram salvas com sucesso nas tabelas definitivas.';
- $this->_gravaLog($arr['msg']);
- } else {
- $arr['cod'] = 16;
- $arr['flg'] = false;
- $arr['msg'] = 'Erro ao matricular alunos nas Disciplinas.';
- $this->_gravaLog($arr['msg']);
- }
- }
- return $arr;
- }
- /**
- * Método insere as manipulações nas tabelas temporárias antes
- * de matricular o aluno.
- *
- * @param array
- * @param int
- * @param int
- *
- * @return array
- */
- private function _setDiscIncExc($disc, $op, $nroFormulario)
- {
- $objInclusao = InclusaoexclusaoMapper::getInstance();
- $objInclusao->setSiglaIe($this->_siglaIe);
- $disciplina['codDisc'] = $disc[0];
- $disciplina['codCurriculo'] = $this->_codCurriculo;
- $arrSave['NRO_FORMULARIO'] = $nroFormulario;
- $arrSave['COD_DISC'] = $disc[0];
- $arrSave['COD_TURMA'] = $disc[1];
- $arrSave['COD_PERIODO'] = $this->_codPeriodo;
- $arrSave['OPERACAO'] = $op;
- $arrSave['COD_TIPO_MATR_DISC'] = 'N';
- $arrSave['FLAG_VERIFICA_CHOQUE'] = 'S';
- $arrSave['OBS_ABRV_DIARIO'] = NULL;
- $arrSave['DT_LCTO'] = $this->_dataBase;
- $arrSave['HS_LCTO'] = 2521;
- $arrSave['USR_LCTO'] = $this->_usuario;
- $arrSave['COD_FIP'] = $this->_codFip;
- $arrSave['COD_FIP_TURMA'] = $this->_codFip;
- $flg = $objInclusao->wsSetDiscIncExc($arrSave);
- if ($flg) {
- $arr['cod'] = 12;
- $arr['flg'] = true;
- $arr['msg'] = 'Informações salvas na tabela temporária TA_CAD_DISC_INC_EXC';
- $this->_gravaLog($arr['msg']);
- } else {
- $arr['cod'] = 12;
- $arr['flg'] = false;
- $arr['msg'] = 'Erro ao manipular banco.';
- $this->_gravaLog($arr['msg']);
- return $arr;
- }
- $equiv = $objInclusao->wsGetVerificaEquivalente($disciplina);
- if ($equiv) {
- $arrSave1['NRO_FORMULARIO'] = $nroFormulario;
- $arrSave1['COD_DISC'] = $disc[0];
- $arrSave1['COD_TURMA'] = $disc[1];
- $arrSave1['COD_PERIODO'] = $this->_codPeriodo;
- $arrSave1['COD_DISC_EQUIV'] = $equiv['COD_DISC'];
- $arrSave1['COD_FIP'] = $this->_codFip;
- $arrSave1['COD_FIP_TURMA'] = $this->_codFip;
- $flg = $objInclusao->wsSetDiscEquivIncExc($arrSave1);
- if ($flg) {
- $arr['cod'] = 13;
- $arr['flg'] = true;
- $arr['msg'] = 'Informações salvas na tabela temporária TA_CAD_DISC_EQUIV_INC_EXC';
- $this->_gravaLog($arr['msg']);
- } else {
- $arr['cod'] = 13;
- $arr['flg'] = false;
- $arr['msg'] = 'Erro ao manipular banco.';
- $this->_gravaLog($arr['msg']);
- return $arr;
- }
- }
- return $arr;
- }
- /**
- * Método abre a tela final da Inclusão/Exclusão, com as opções para o aluno gerar
- * o novo Plano de Estudos ou gerar o recibo em PDF
- *
- **/
- public function finalAction()
- {
- $textoLog = 'Acesso à action "final" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- $params = $this->getRequest()->getParams();
- if ((!key_exists('cod', $params) || $params['cod'] != 16) || (!key_exists('flg', $params) || $params['flg'] != true)) {
- $this->view->msg = NAO_PERMITIDO;
- $this->_forward('error', 'inclusaoexclusao');
- }
- }
- /**
- * Método gera o recibo da Inclusão/Exclusão para o aluno
- *
- **/
- public function reciboAction()
- {
- $this->getHelper('layout')->disableLayout();
- $this->getHelper('ViewRenderer')->setNoRender();
- $textoLog = 'Acesso à action "recibo" da controller "inclusaoexclusao".';
- $this->_gravaLog($textoLog);
- if (!isset($this->_nroFormulario)) {
- $this->view->msg = NAO_PERMITIDO;
- $this->_forward('error', 'inclusaoexclusao');
- } else {
- $objPlano = PlanoestudoMapper::getInstance(NULL, NULL, NULL, NULL);
- $datahoraAtual = $objPlano->wsGetDataHoraAtual();
- $objInclusao = InclusaoexclusaoMapper::getInstance(
- $this->_codPeriodo,
- NULL, NULL, NULL,
- $this->_codPessoa, NULL, NULL,
- $datahoraAtual['DATAF'], $this->_codFip,
- NULL, $this->_codCurso, NULL, NULL,
- NULL, $this->_ultimoPeriodo
- );
- $dadosAluno = $objInclusao->wsGetDadosAluno();
- $discIncluidas = $objInclusao->wsGetDiscIncExc($this->_nroFormulario, 'I');
- $discExcluidas = $objInclusao->wsGetDiscIncExc($this->_nroFormulario, 'E');
- /* Criando Recibo */
- $pdf = new App_Pdf_ReciboIncExc();
- // ----- Cabeçalho --------------------------------------------------------------
- $pdf->SetCabecalho($dadosAluno, $datahoraAtual, $this->_nomeAluno);
- $pdf->AddPage();
- // ----- Dados Pessoais ---------------------------------------------------------
- $pdf->dadosPessoais($dadosAluno);
- // ----- Exclusão ---------------------------------------------------------------
- if(isset($discExcluidas)) {
- $pdf->discExcluidas($discExcluidas);
- }
- // ----- Inclusão ---------------------------------------------------------------
- if(isset($discIncluidas)) {
- $pdf->discIncluidas($discIncluidas);
- }
- $pdf->Output('Exclusão e Inclusão de Disciplinas '.$this->_codPeriodo.'.pdf','I');
- }
- }
- /*
- * Metodo simplificado de guardar log da inclusão e exclusão
- */
- private function _gravaLog($textoLog)
- {
- $objLog = LogCDUMapper::getInstance(
- $this->_codPessoa,
- $this->_codPeriodo,
- $this->_codFip,
- 1
- );
- $objLog->wsSetLogCDU($textoLog);
- return true;
- }
- /**
- * View para onde o aluno que não tenha permissão de entrar na tela é redirecionado,
- * caso tente entrar na Inclusão / Exclusão
- *
- * @author Daniel de Aranda Lima - engcompdaniel@gmail.com (18/07/2011)
- *
- * */
- public function errorAction()
- {
- }
- }
Add Comment
Please, Sign In to add comment