From 6e96203a7bb1604b7d8c22482caf4d9c15508438 Mon Sep 17 00:00:00 2001 From: Eriksen Costa Date: Thu, 22 Jul 2010 16:12:25 -0300 Subject: [PATCH] Refactoring para coding standards --- ieducar/intranet/educar_matricula_cad.php | 1607 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 1 file changed, 845 insertions(+), 762 deletions(-) diff --git a/ieducar/intranet/educar_matricula_cad.php b/ieducar/intranet/educar_matricula_cad.php index 7b64a49..2684b88 100644 --- a/ieducar/intranet/educar_matricula_cad.php +++ b/ieducar/intranet/educar_matricula_cad.php @@ -1,804 +1,887 @@ + * + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) + * qualquer versão posterior. + * + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral + * do GNU para mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto + * com este programa; se não, escreva para a Free Software Foundation, Inc., no + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + * + * @author Prefeitura Municipal de Itajaí + * @category i-Educar + * @license @@license@@ + * @package iEd_Pmieducar + * @since Arquivo disponível desde a versão 1.0.0 + * @version $Id$ + */ + +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'; + +/** + * clsIndexBase class. + * + * @author Prefeitura Municipal de Itajaí + * @category i-Educar + * @license @@license@@ + * @package iEd_Pmieducar + * @since Classe disponível desde a versão 1.0.0 + * @version @@package_version@@ + */ class clsIndexBase extends clsBase { - function Formular() - { - $this->SetTitulo( "{$this->_instituicao} i-Educar - Matrícula" ); - $this->processoAp = "578"; - } + function Formular() + { + $this->SetTitulo($this->_instituicao . ' i-Educar - Matrícula'); + $this->processoAp = 578; + } } +/** + * indice class. + * + * @author Prefeitura Municipal de Itajaí + * @category i-Educar + * @license @@license@@ + * @package iEd_Pmieducar + * @since Classe disponível desde a versão 1.0.0 + * @version @@package_version@@ + */ class indice extends clsCadastro { - /** - * Referencia pega da session para o idpes do usuario atual - * - * @var int - */ - var $pessoa_logada; - - var $cod_matricula; - var $ref_cod_reserva_vaga; - var $ref_ref_cod_escola; - var $ref_ref_cod_serie; - var $ref_usuario_exc; - var $ref_usuario_cad; - var $ref_cod_aluno; - var $aprovado; - var $data_cadastro; - var $data_exclusao; - var $ativo; - var $ano; - - var $ref_cod_instituicao; - var $ref_cod_curso; - var $ref_cod_escola; - - var $matricula_transferencia; - var $semestre; - var $is_padrao; - - function Inicializar() - { - $retorno = "Novo"; - @session_start(); - $this->pessoa_logada = $_SESSION['id_pessoa']; - @session_write_close(); - -// die('Serviço indisponivel temporariamente!'); - - $this->cod_matricula=$_GET["cod_matricula"]; - $this->ref_cod_aluno=$_GET["ref_cod_aluno"]; - - $obj_aluno = new clsPmieducarAluno($this->ref_cod_aluno); - if(!$obj_aluno->existe()) - { - header("location: educar_matricula_lst.php"); - die; - } - - $obj_permissoes = new clsPermissoes(); - $obj_permissoes->permissao_cadastra( 578, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); - - if ( is_numeric( $this->cod_matricula ) ) - { - if( $obj_permissoes->permissao_excluir( 578, $this->pessoa_logada, 7 ) ) - { - $this->Excluir(); - } - } -// else{ -// header("location: educar_matricula_lst.php"); -// die; -// } - $this->url_cancelar = "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}"; - $this->nome_url_cancelar = "Cancelar"; - return $retorno; - } - - function Gerar() - { - // primary keys - $this->campoOculto( "cod_matricula", $this->cod_matricula ); - $this->campoOculto( "ref_cod_aluno", $this->ref_cod_aluno ); - - $obj_aluno = new clsPmieducarAluno(); - $lst_aluno = $obj_aluno->lista( $this->ref_cod_aluno,null,null,null,null,null,null,null,null,null,1 ); - if ( is_array($lst_aluno) ) - { - $det_aluno = array_shift($lst_aluno); - $this->nm_aluno = $det_aluno["nome_aluno"]; -// $this->campoRotulo( "nm_aluno", "Aluno", $this->nm_aluno, 30, 255, false,false,false,"","","","",true ); - $this->campoRotulo( "nm_aluno", "Aluno", $this->nm_aluno ); - } - - /** - * verifica se nao existem matriculas - * e exibe campo check para informar - * se a matricula vem de transferencia - * ex: um aluno esta sendo matriculado no 3º ano - * ele veio de outra escola mas nao vem como transferencia - * isto eh necessario para o relatorio de movimentacao mensal - */ - - $obj_matricula = new clsPmieducarMatricula(); - $lst_matricula = $obj_matricula->lista(null, null, null, null, null, null, $this->ref_cod_aluno); - - if(!$lst_matricula) - { - /** - * primeira matricula do sistema exibe campo check - */ - - $this->campoCheck("matricula_transferencia", "Matrícula de Transferência","","Caso seja transfência externa por favor marque esta opção."); - } - - // foreign keys -// $obrigatorio = true; - $instituicao_obrigatorio = true; - $curso_obrigatorio = true; - $escola_curso_obrigatorio = true; - $get_escola = true; - $get_curso = true; -// $get_escola_curso = true; - $get_escola_curso_serie = true; - $get_matricula = true; - $sem_padrao = true; - - include("include/pmieducar/educar_campo_lista.php"); - - if (is_numeric($this->ref_cod_curso)) - { - $obj_curso = new clsPmieducarCurso($this->ref_cod_curso); - $det_curso = $obj_curso->detalhe(); - if (is_numeric($det_curso["ref_cod_tipo_avaliacao"])) - { - $this->campoOculto("apagar_radios", $det_curso["padrao_ano_escolar"]); - $this->campoOculto("is_padrao", $det_curso["padrao_ano_escolar"]); - } - } - - if ( $this->ref_cod_escola ) - { - $this->ref_ref_cod_escola = $this->ref_cod_escola; - } - - $this->acao_enviar = "valida()"; - } - - function Novo() - { - @session_start(); - $this->pessoa_logada = $_SESSION['id_pessoa']; - @session_write_close(); - - $obj_permissoes = new clsPermissoes(); - $obj_permissoes->permissao_cadastra( 578, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); - - $obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo(); - $lst_escola_ano_letivo = $obj_escola_ano_letivo->lista( $this->ref_cod_escola,null,null,null,1,null,null,null,null,1 ); - if ( is_array($lst_escola_ano_letivo) ) - { - $det_escola_ano_letivo = array_shift($lst_escola_ano_letivo); - $this->ano = $det_escola_ano_letivo["ano"]; - - $obj_reserva_vaga = new clsPmieducarReservaVaga(); - $lst_reserva_vaga = $obj_reserva_vaga->lista( null,$this->ref_cod_escola,$this->ref_ref_cod_serie,null,null,$this->ref_cod_aluno,null,null,null,null,1 ); - // verifica se existe reserva de vaga para o aluno - if ( is_array($lst_reserva_vaga) ) - { - $det_reserva_vaga = array_shift($lst_reserva_vaga); - $this->ref_cod_reserva_vaga = $det_reserva_vaga["cod_reserva_vaga"]; - - $obj_reserva_vaga = new clsPmieducarReservaVaga( $this->ref_cod_reserva_vaga,null,null,$this->pessoa_logada,null,null,null,null,0 ); - $editou = $obj_reserva_vaga->edita(); - if ( !$editou ) - { - $this->mensagem = "Edição não realizada.
"; - echo ""; - return false; - } - } - - $vagas_restantes = 1; - - if ( !$this->ref_cod_reserva_vaga ) - { - $obj_turmas = new clsPmieducarTurma(); - $lst_turmas = $obj_turmas->lista( null,null,null,$this->ref_ref_cod_serie, $this->ref_cod_escola,null,null,null,null,null,null,null,null,null,1,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,true ); - //,$this->ref_cod_escola,$this->ref_ref_cod_serie - //echo "$lst_turmas = $obj_turmas->lista( null,null,null,$this->ref_ref_cod_serie, $this->ref_cod_escola,null,null,null,null,null,null,null,null,null,1 );" - //print_r($lst_turmas);die; - - if ( is_array($lst_turmas) ) - { - $total_vagas = 0; - foreach ( $lst_turmas AS $turmas ) - { - $total_vagas += $turmas["max_aluno"]; - } - } - else - { - $this->mensagem = "Série não possui nenhuma Turma cadastrada.
"; - return false; - } - - $obj_matricula = new clsPmieducarMatricula(); - $lst_matricula = $obj_matricula->lista( null,null,$this->ref_cod_escola,$this->ref_ref_cod_serie,null,null,null,3,null,null,null,null,1,$this->ano,$this->ref_cod_curso,$this->ref_cod_instituicao,1 ); - if ( is_array($lst_matricula) ) - { - $matriculados = count($lst_matricula); - } - - $obj_reserva_vaga = new clsPmieducarReservaVaga(); - $lst_reserva_vaga = $obj_reserva_vaga->lista( null,$this->ref_cod_escola,$this->ref_ref_cod_serie,null,null,null,null,null,null,null,1,$this->ref_cod_instituicao,$this->ref_cod_curso ); - if ( is_array($lst_reserva_vaga) ) - { - $reservados = count($lst_reserva_vaga); - } - - $vagas_restantes = $total_vagas - ($matriculados + $reservados); - } - - if ($vagas_restantes <= 0) - { - echo ""; -// return; - } - - $obj_matricula_aluno = new clsPmieducarMatricula(); - $lst_matricula_aluno = $obj_matricula_aluno->lista(null, null, null, null, null, null, $this->ref_cod_aluno); - if(!$lst_matricula_aluno) - { - /** - * primeira matricula do sistema - consistencia - - */ - $this->matricula_transferencia = $this->matricula_transferencia == 'on' ? 'true' : 'false'; - } - else - { - $this->matricula_transferencia = false; - } - - if ($this->is_padrao == 1) - { - $this->semestre = null; - } - $obj = new clsPmieducarMatricula( null, $this->ref_cod_reserva_vaga, $this->ref_cod_escola, $this->ref_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 ); - - $cadastrou = $obj->cadastra(); - if( $cadastrou ) - { - //$obj_matricula = new clsPmieducarMatricula(); - // $lst_matricula = $obj_matricula->lista(null,null,null,null,null,null,$this->ref_cod_aluno); - /** - * desmarca todas as matriculas como ultima matricula do aluno - */ - /* if($lt_matricula) - { - foreach ($lst_matricula as $matricula) - { - if($matricula['cod_matricula'] != $cadastrou) - { - $obj_matricula = new clsPmieducarMatricula($matricula['cod_matricula'],null,null,null,null,null,null,null,null,null,null,null,0); - $obj_matricula->edita(); - } - } - }*/ - - if($this->pessoa_logada == 21317) - $this->desativaMatriculasSequencia($cadastrou); - - - $obj_transferencia = new clsPmieducarTransferenciaSolicitacao(); - $lst_transferencia = $obj_transferencia->lista( null,null,null,null,null,null,null,null,null,null,null,1,null,null,$this->ref_cod_aluno,false,null,null,null,true,false ); - // verifica se existe solicitacao de transferencia do aluno - if ( is_array($lst_transferencia) ) - { - //echo "
"; print_r("if"); die();
-					$det_transferencia = array_shift($lst_transferencia);
-
-					$obj_transferencia = new clsPmieducarTransferenciaSolicitacao( $det_transferencia['cod_transferencia_solicitacao'],null,$this->pessoa_logada,null,null,null,null,null,null,0 );
-					$editou2 = $obj_transferencia->edita();
-					if ( $editou2 )
-					{
-						$obj = new clsPmieducarMatricula( $det_transferencia['ref_cod_matricula_saida'],null,null,null,$this->pessoa_logada,null,null,4,null,null,1,null,0 );
-						$editou3 = $obj->edita();
-						if (!$editou3)
-						{
-							$this->mensagem = "Edição não realizada.
"; - echo ""; - return false; - } - } - else - { - $this->mensagem = "Edição não realizada.
"; - echo ""; - return false; - } - } - else - { - //echo "
"; print_r("else"); die();
-					$obj_transferencia = new clsPmieducarTransferenciaSolicitacao();
-					$lst_transferencia = $obj_transferencia->lista( null,null,null,null,null,null,null,null,null,null,null,1,null,null,$this->ref_cod_aluno,false,null,null,null,false,false );
-					// verifica se existe solicitacao de transferencia do aluno
-					if ( is_array($lst_transferencia) )
-					{
-						// verifica cada solicitacao de transferencia do aluno
-						foreach ($lst_transferencia as $transferencia)
-						{
-							$obj_matricula = new clsPmieducarMatricula( $transferencia['ref_cod_matricula_saida'] );
-							$det_matricula = $obj_matricula->detalhe();
-
-							// caso a solicitacao seja para uma mesma serie
-							if ($det_matricula['ref_ref_cod_serie'] == $this->ref_ref_cod_serie)
-							{
-								$ref_cod_transferencia = $transferencia["cod_transferencia_solicitacao"];
-								break;
-							}
-							else // caso a solicitacao seja para a serie da sequencia
-							{
-								$obj_sequencia = new clsPmieducarSequenciaSerie( $det_matricula['ref_ref_cod_serie'],$this->ref_ref_cod_serie,null,null,null,null,1 );
-								if ($obj_sequencia->existe())
-								{
-									$ref_cod_transferencia = $transferencia["cod_transferencia_solicitacao"];
-									break;
-								}
-							}
-							$ref_cod_transferencia = $transferencia["cod_transferencia_solicitacao"];
-						}
-//						$ref_cod_transferencia = $det_transferencia["cod_transferencia_solicitacao"];
-//						echo "
"; echo "


"; print_r($ref_cod_transferencia); die(); - if ($ref_cod_transferencia) - { - $obj_transferencia = new clsPmieducarTransferenciaSolicitacao( $ref_cod_transferencia,null,$this->pessoa_logada,null,$cadastrou,null,null,null,null,1,date("Y-m-d") ); - $editou2 = $obj_transferencia->edita(); - if ( $editou2 ) - { - $obj_transferencia = new clsPmieducarTransferenciaSolicitacao( $ref_cod_transferencia ); - $det_transferencia = $obj_transferencia->detalhe(); - $matricula_saida = $det_transferencia["ref_cod_matricula_saida"]; - $obj_matricula = new clsPmieducarMatricula( $matricula_saida ); - $det_matricula = $obj_matricula->detalhe(); - // caso a situacao da matricula do aluno esteja em andamento - if( $det_matricula['aprovado'] == 3 ) - { - $obj_matricula = new clsPmieducarMatricula( $cadastrou,null,null,null,$this->pessoa_logada,null,null,null,null,null,1,null,null,$det_matricula['modulo'] ); - $editou_mat = $obj_matricula->edita(); - if ($editou_mat) - { - $obj_matricula_turma = new clsPmieducarMatriculaTurma(); - $lst_matricula_turma = $obj_matricula_turma->lista( $matricula_saida,null,null,null,null,null,null,null,1 ); - if (is_array($lst_matricula_turma)) - { - $det_matricula_turma = array_shift($lst_matricula_turma); - - $obj_matricula_turma = new clsPmieducarMatriculaTurma( $matricula_saida,$det_matricula_turma['ref_cod_turma'],$this->pessoa_logada,null,null,null,0,null,$det_matricula_turma['sequencial'] ); - $editou_mat_turma = $obj_matricula_turma->edita(); - if (!$editou_mat_turma) - { - $this->mensagem = "Não foi possível editar a Matrícula Turma.
"; - return false; - } - } - // armazena as disciplinas utilizadas da nova escola - $obj_esd = new clsPmieducarEscolaSerieDisciplina(); - $lst_esd = $obj_esd->lista( $this->ref_ref_cod_serie,$this->ref_cod_escola,null,1 ); - if (is_array($lst_esd)) - { - foreach ($lst_esd as $campo) - { - $disciplinas[$campo['ref_cod_disciplina']] = $campo['ref_cod_disciplina']; - } - } - // lista as notas que o aluno ja tinha - $obj_nota_aluno = new clsPmieducarNotaAluno(); - $lst_nota_aluno = $obj_nota_aluno->lista( null,null,null,$this->ref_ref_cod_serie,null,null,$matricula_saida,null,null,null,null,null,null,1 ); - if (is_array($lst_nota_aluno)) - { - foreach ($lst_nota_aluno as $campo) - { - if ($disciplinas[$campo['ref_cod_disciplina']]) - { - // cadastra as notas existentes na nova matricula - $obj_nota_aluno = new clsPmieducarNotaAluno( null,$campo['ref_sequencial'],$campo['ref_ref_cod_tipo_avaliacao'],$this->ref_ref_cod_serie,$this->ref_cod_escola,$campo['ref_cod_disciplina'],$cadastrou,null,$this->pessoa_logada,null,null,1,$campo['modulo'] ); - $cadastrou_nota = $obj_nota_aluno->cadastra(); - if (!$cadastrou_nota) - { - $this->mensagem = "Cadastro não realizado.
"; - echo ""; - return false; - } - } - } - } - // lista as faltas que o aluno ja tinha - $obj_falta_aluno = new clsPmieducarFaltaAluno(); - $lst_falta_aluno = $obj_falta_aluno->lista( null,null,null,$this->ref_ref_cod_serie,null,null,$matricula_saida,null,null,null,null,null,1 ); - if (is_array($lst_falta_aluno)) - { - foreach ($lst_falta_aluno as $campo) - { - if ($disciplinas[$campo['ref_cod_disciplina']]) - { - // cadastra as faltas existentes na nova matricula - $obj_falta_aluno = new clsPmieducarFaltaAluno( null,null,$this->pessoa_logada,$this->ref_ref_cod_serie,$this->ref_cod_escola,$campo['ref_cod_disciplina'],$cadastrou,$campo['faltas'],null,null,1,$campo['modulo'] ); - $cadastrou_falta = $obj_falta_aluno->cadastra(); - if (!$cadastrou_falta) - { - $this->mensagem = "Cadastro não realizado.
"; - echo ""; - return false; - } - } - } - } - // lista as notas que o aluno ja tinha (globalizada) - $obj_faltas = new clsPmieducarFaltas(); - $lst_faltas = $obj_faltas->lista( $matricula_saida ); - if (is_array($lst_faltas)) - { - foreach ($lst_faltas as $campo) - { - // cadastra as faltas existentes na nova matricula - $obj_faltas = new clsPmieducarFaltas( $cadastrou,$campo['sequencial'],$this->pessoa_logada,$campo['falta'] ); - $cadastrou_faltas = $obj_faltas->cadastra(); - if (!$cadastrou_faltas) - { - $this->mensagem = "Cadastro não realizado.
"; - echo ""; - return false; - } - } - } - } - } - - $obj = new clsPmieducarMatricula( $matricula_saida,null,null,null,$this->pessoa_logada,null,null,4,null,null,1,null,0 ); - $editou3 = $obj->edita(); - if (!$editou3) - { - $this->mensagem = "Edição não realizada.
"; - echo ""; - return false; - } - } - else - { - $this->mensagem = "Edição não realizada.
"; - echo ""; - return false; - } - } - } - } - $this->mensagem .= "Cadastro efetuado com sucesso.
"; - header( "Location: educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); - die(); - return true; - } - $this->mensagem = "Cadastro não realizado.
"; - echo ""; - return false; - } - else - { - $this->mensagem = "Não foi possível encontrar o Ano Letivo em andamento da Escola.
"; - return false; - } - } - - function Excluir() - { - @session_start(); - $this->pessoa_logada = $_SESSION['id_pessoa']; - @session_write_close(); - - $obj_permissoes = new clsPermissoes(); - $obj_permissoes->permissao_excluir( 578, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); - - $obj_matricula_turma = new clsPmieducarMatriculaTurma(); - $lst_matricula_turma = $obj_matricula_turma->lista( $this->cod_matricula,null,null,null,null,null,null,null,1 ); - if (is_array($lst_matricula_turma)) - { - $det_matricula_turma = array_shift($lst_matricula_turma); - $obj_matricula_turma = new clsPmieducarMatriculaTurma( $det_matricula_turma["ref_cod_matricula"],$det_matricula_turma["ref_cod_turma"],$this->pessoa_logada,null,null,null,0,null,$det_matricula_turma["sequencial"] ); - $editou = $obj_matricula_turma->edita(); - if (!$editou) - { - $this->mensagem = "Edição não realizada.
"; - echo ""; - return false; - } - } - - $obj_matricula = new clsPmieducarMatricula( $this->cod_matricula ); - $det_matricula = $obj_matricula->detalhe(); - $ref_cod_serie = $det_matricula["ref_ref_cod_serie"]; - - $obj_sequencia = new clsPmieducarSequenciaSerie(); - $lst_sequencia = $obj_sequencia->lista( null,$ref_cod_serie,null,null,null,null,null,null,1 ); - // verifica se a serie da matricula cancelada eh sequencia de alguma outra serie - if ( is_array($lst_sequencia) ) - { - $det_sequencia = array_shift($lst_sequencia); - $ref_serie_origem = $det_sequencia["ref_serie_origem"]; - - $obj_matricula = new clsPmieducarMatricula(); - $lst_matricula = $obj_matricula->lista( null,null,null,$ref_serie_origem,null,null,$this->ref_cod_aluno,null,null,null,null,null,1,null,null,null,0 ); - // verifica se o aluno tem matricula na serie encontrada (sequencia) - if ( is_array($lst_matricula) ) - { - $det_matricula = array_shift($lst_matricula); - $ref_cod_matricula = $det_matricula["cod_matricula"]; - - $obj = new clsPmieducarMatricula( $ref_cod_matricula,null,null,null,$this->pessoa_logada,null,null,null,null,null,1,null,1 ); - $editou1 = $obj->edita(); - if( !$editou1 ) - { - $this->mensagem = "Não foi possível editar a Última Matrícula da Sequência.
"; - return false; - } - } - } - - $obj = new clsPmieducarMatricula( $this->cod_matricula,null,null,null,$this->pessoa_logada,null,null,null,null,null,0 ); - $excluiu = $obj->excluir(); - if( $excluiu ) - { - $this->mensagem .= "Exclusão efetuada com sucesso.
"; - header( "Location: educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); - die(); - return true; - } - - $this->mensagem = "Exclusão não realizada.
"; - echo ""; - return false; - } - - /** - * marca como zero o campo ultima_matricula - * das matriculas da sequencia - * - */ - function desativaMatriculasSequencia($ultima_matricula) - { - - $db2 = new clsBanco(); - - $db2->Consulta( " - SELECT - so.ref_cod_curso as curso_origem - , ss.ref_serie_origem as serie_origem - , sd.ref_cod_curso as curso_destino - , ss.ref_serie_destino as serie_destino - FROM - pmieducar.sequencia_serie ss - , pmieducar.serie so - , pmieducar.serie sd - WHERE - ss.ativo = 1 - AND ref_serie_origem = so.cod_serie - AND ref_serie_destino = sd.cod_serie - ORDER BY - ss.ref_serie_origem ASC - "); - - if ($db2->numLinhas()) - { - while ( $db2->ProximoRegistro() ) - { - $sequencias[] = $db2->Tupla(); - } - } - - $db2->Consulta( " - SELECT - distinct( o.ref_serie_origem ) - FROM - pmieducar.sequencia_serie o - , pmieducar.escola_serie es - WHERE NOT EXISTS - ( - SELECT - 1 - FROM - pmieducar.sequencia_serie d - WHERE - o.ref_serie_origem = d.ref_serie_destino - ) - "); - - if ($db2->numLinhas()) - { - $pertence_sequencia = false; - $achou_serie = false; - $reset = false; - - $serie_sequencia[] = $this->ref_ref_cod_serie; - - while ( $db2->ProximoRegistro() ) - { - list( $ini_sequencia ) = $db2->Tupla(); - - $ini_serie = $ini_sequencia; - reset($sequencias); - - do - { - if( $reset ) - { - reset($sequencias); - $reset = false; - } - - $sequencia = current($sequencias); - $aux_serie = $sequencia['serie_origem']; - - if ($ini_serie == $aux_serie) - { - if ($this->ref_ref_cod_serie == $aux_serie) - { - // achou serie da matricula - $achou_serie = true; - } - if ($sequencia['curso_destino'] == $this->ref_cod_curso) - { - // curso pertence a sequencia - $pertence_sequencia = true; - $serie_sequencia[] = $sequencia['serie_destino']; - $ini_serie = $sequencia['serie_destino']; - $reset = true; - } - else - { - $ini_serie = $sequencia['serie_destino']; - $reset = true; - } - } - } while ( each($sequencias) ); - - if ($achou_serie && $pertence_sequencia) - { - // curso escolhido pertence a sequencia da serie da matricula - $series = implode(",",$serie_sequencia); - $db2->Consulta("UPDATE pmieducar.matricula SET ultima_matricula = 0 WHERE ref_ref_cod_serie IN ($series) AND ref_cod_aluno = {$this->ref_cod_aluno} AND cod_matricula != $ultima_matricula "); - die("UPDATE pmieducar.matricula SET ultima_matricula = 0 WHERE ref_ref_cod_serie IN ($series) AND ref_cod_aluno = {$this->ref_cod_aluno} AND cod_matricula != $ultima_matricula "); - } - } - } - } + var $pessoa_logada; + + var $cod_matricula; + var $ref_cod_reserva_vaga; + var $ref_ref_cod_escola; + var $ref_ref_cod_serie; + var $ref_usuario_exc; + var $ref_usuario_cad; + var $ref_cod_aluno; + var $aprovado; + var $data_cadastro; + var $data_exclusao; + var $ativo; + var $ano; + + var $ref_cod_instituicao; + var $ref_cod_curso; + var $ref_cod_escola; + + var $matricula_transferencia; + var $semestre; + var $is_padrao; + + function Inicializar() + { + $retorno = 'Novo'; + + @session_start(); + $this->pessoa_logada = $_SESSION['id_pessoa']; + @session_write_close(); + + $this->cod_matricula = $_GET['cod_matricula']; + $this->ref_cod_aluno = $_GET['ref_cod_aluno']; + + $obj_aluno = new clsPmieducarAluno($this->ref_cod_aluno); + + if (! $obj_aluno->existe()) { + header('Location: educar_matricula_lst.php'); + die; + } + + $url = 'educar_matricula_lst.php?ref_cod_aluno=' . $this->ref_cod_aluno; + + $obj_permissoes = new clsPermissoes(); + $obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7, $url); + + if (is_numeric($this->cod_matricula)) { + if ($obj_permissoes->permissao_excluir(578, $this->pessoa_logada, 7)) { + $this->Excluir(); + } + } + + $this->url_cancelar = $url; + $this->nome_url_cancelar = 'Cancelar'; + return $retorno; + } + + function Gerar() + { + // primary keys + $this->campoOculto("cod_matricula", $this->cod_matricula); + $this->campoOculto("ref_cod_aluno", $this->ref_cod_aluno); + + $obj_aluno = new clsPmieducarAluno(); + $lst_aluno = $obj_aluno->lista($this->ref_cod_aluno, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, 1); + + if (is_array($lst_aluno)) { + $det_aluno = array_shift($lst_aluno); + $this->nm_aluno = $det_aluno['nome_aluno']; + $this->campoRotulo('nm_aluno', 'Aluno', $this->nm_aluno); + } + + /* + * Verifica se existem matrículas para o aluno para apresentar o campo + * transferência, necessário para o relatório de movimentação mensal. + */ + $obj_matricula = new clsPmieducarMatricula(); + $lst_matricula = $obj_matricula->lista(NULL, NULL, NULL, NULL, NULL, NULL, + $this->ref_cod_aluno); + + // Primeira matrícula do sistema exibe campo check + if (! $lst_matricula) { + $this->campoCheck('matricula_transferencia', + 'Matrícula de Transferência', '', + 'Caso seja transfência externa por favor marque esta opção.'); + } + + // foreign keys + $instituicao_obrigatorio = TRUE; + $curso_obrigatorio = TRUE; + $escola_curso_obrigatorio = TRUE; + $get_escola = TRUE; + $get_curso = TRUE; + $get_escola_curso_serie = TRUE; + $get_matricula = TRUE; + $sem_padrao = TRUE; + + include 'include/pmieducar/educar_campo_lista.php'; + + if (is_numeric($this->ref_cod_curso)) { + $obj_curso = new clsPmieducarCurso($this->ref_cod_curso); + $det_curso = $obj_curso->detalhe(); + + if (is_numeric($det_curso['ref_cod_tipo_avaliacao'])) { + $this->campoOculto('apagar_radios', $det_curso['padrao_ano_escolar']); + $this->campoOculto('is_padrao', $det_curso['padrao_ano_escolar']); + } + } + + if ($this->ref_cod_escola) { + $this->ref_ref_cod_escola = $this->ref_cod_escola; + } + + $this->acao_enviar = 'valida()'; + } + + function Novo() + { + @session_start(); + $this->pessoa_logada = $_SESSION['id_pessoa']; + @session_write_close(); + + $obj_permissoes = new clsPermissoes(); + $obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7, + 'educar_matricula_lst.php?ref_cod_aluno=' . $this->ref_cod_aluno); + + $obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo(); + $lst_escola_ano_letivo = $obj_escola_ano_letivo->lista($this->ref_cod_escola, + NULL, NULL, NULL,1, NULL, NULL, NULL, NULL, 1); + + if (is_array($lst_escola_ano_letivo)) { + $det_escola_ano_letivo = array_shift($lst_escola_ano_letivo); + $this->ano = $det_escola_ano_letivo['ano']; + + $obj_reserva_vaga = new clsPmieducarReservaVaga(); + $lst_reserva_vaga = $obj_reserva_vaga->lista(NULL, $this->ref_cod_escola, + $this->ref_ref_cod_serie, NULL, NULL,$this->ref_cod_aluno, NULL, NULL, + NULL, NULL, 1); + + // Verifica se existe reserva de vaga para o aluno + if (is_array($lst_reserva_vaga)) { + $det_reserva_vaga = array_shift($lst_reserva_vaga); + $this->ref_cod_reserva_vaga = $det_reserva_vaga['cod_reserva_vaga']; + + $obj_reserva_vaga = new clsPmieducarReservaVaga($this->ref_cod_reserva_vaga, + NULL, NULL, $this->pessoa_logada, NULL, NULL, NULL, NULL, 0); + + $editou = $obj_reserva_vaga->edita(); + if (! $editou) { + $this->mensagem = 'Edição não realizada.
'; + return FALSE; + } + } + + $vagas_restantes = 1; + + if (! $this->ref_cod_reserva_vaga) { + $obj_turmas = new clsPmieducarTurma(); + $lst_turmas = $obj_turmas->lista(NULL, NULL, NULL, $this->ref_ref_cod_serie, + $this->ref_cod_escola, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, TRUE); + + if (is_array($lst_turmas)) { + $total_vagas = 0; + foreach ($lst_turmas as $turmas) { + $total_vagas += $turmas['max_aluno']; + } + } + else { + $this->mensagem = 'Série não possui turmas cadastradas.
'; + return FALSE; + } + + $obj_matricula = new clsPmieducarMatricula(); + $lst_matricula = $obj_matricula->lista(NULL, NULL, $this->ref_cod_escola, + $this->ref_ref_cod_serie, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, 1, + $this->ano, $this->ref_cod_curso, $this->ref_cod_instituicao, 1); + + if (is_array($lst_matricula)) { + $matriculados = count($lst_matricula); + } + + $obj_reserva_vaga = new clsPmieducarReservaVaga(); + $lst_reserva_vaga = $obj_reserva_vaga->lista(NULL, $this->ref_cod_escola, + $this->ref_ref_cod_serie, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, + $this->ref_cod_instituicao, $this->ref_cod_curso); + + if (is_array($lst_reserva_vaga)) { + $reservados = count($lst_reserva_vaga); + } + + $vagas_restantes = $total_vagas - ($matriculados + $reservados); + } + + if ($vagas_restantes <= 0) { + echo sprintf(' + ', + $matriculados, $reservados, $total_vagas, $this->ref_cod_aluno + ); + } + + $obj_matricula_aluno = new clsPmieducarMatricula(); + $lst_matricula_aluno = $obj_matricula_aluno->lista(NULL, NULL, NULL, NULL, + NULL, NULL, $this->ref_cod_aluno); + + if (! $lst_matricula_aluno) { + // Primeira matrícula do sistema, consistência (?) + $this->matricula_transferencia = + $this->matricula_transferencia == 'on' ? TRUE : FALSE; + } + else { + $this->matricula_transferencia = FALSE; + } + + if ($this->is_padrao == 1) { + $this->semestre = NULL; + } + + $obj = new clsPmieducarMatricula(NULL, $this->ref_cod_reserva_vaga, + $this->ref_cod_escola, $this->ref_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); + + $cadastrou = $obj->cadastra(); + if ($cadastrou) { + /** + * @todo Remover + */ + if ($this->pessoa_logada == 21317) { + $this->desativaMatriculasSequencia($cadastrou); + } + + $obj_transferencia = new clsPmieducarTransferenciaSolicitacao(); + $lst_transferencia = $obj_transferencia->lista(NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, + $this->ref_cod_aluno, FALSE, NULL, NULL, NULL, TRUE, FALSE); + + // Verifica se existe solicitação de transferência de aluno + if (is_array($lst_transferencia)) { + $det_transferencia = array_shift($lst_transferencia); + + $obj_transferencia = new clsPmieducarTransferenciaSolicitacao( + $det_transferencia['cod_transferencia_solicitacao'], NULL, + $this->pessoa_logada, NULL, NULL, NULL, NULL, NULL, NULL, 0); + + $editou2 = $obj_transferencia->edita(); + + if ($editou2) { + $obj = new clsPmieducarMatricula($det_transferencia['ref_cod_matricula_saida'], + NULL, NULL, NULL, $this->pessoa_logada, NULL, NULL, 4, NULL, NULL, 1, NULL, 0); + + $editou3 = $obj->edita(); + + if (! $editou3) { + $this->mensagem = 'Edição não realizada.
'; + return FALSE; + } + } + else { + $this->mensagem = 'Edição não realizada.
'; + return FALSE; + } + } + else { + $obj_transferencia = new clsPmieducarTransferenciaSolicitacao(); + $lst_transferencia = $obj_transferencia->lista(NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, + $this->ref_cod_aluno, FALSE, NULL, NULL, NULL, FALSE, FALSE); + + // Verifica se existe solicitação de transferência do aluno + if (is_array($lst_transferencia)) { + // Verifica cada solicitação de transferência do aluno + foreach ($lst_transferencia as $transferencia) { + $obj_matricula = new clsPmieducarMatricula( + $transferencia['ref_cod_matricula_saida'] + ); + + $det_matricula = $obj_matricula->detalhe(); + + // Caso a solicitação seja para uma mesma série + if ($det_matricula['ref_ref_cod_serie'] == $this->ref_ref_cod_serie) { + $ref_cod_transferencia = $transferencia['cod_transferencia_solicitacao']; + break; + } + // Caso a solicitação seja para a série da sequência + else { + $obj_sequencia = new clsPmieducarSequenciaSerie( + $det_matricula['ref_ref_cod_serie'], $this->ref_ref_cod_serie, + NULL, NULL, NULL, NULL, 1 + ); + + if ($obj_sequencia->existe()) { + $ref_cod_transferencia = $transferencia['cod_transferencia_solicitacao']; + break; + } + } + + $ref_cod_transferencia = $transferencia['cod_transferencia_solicitacao']; + } + + if ($ref_cod_transferencia) { + $obj_transferencia = new clsPmieducarTransferenciaSolicitacao( + $ref_cod_transferencia, NULL, $this->pessoa_logada, NULL, + $cadastrou, NULL, NULL, NULL, NULL, 1, date('Y-m-d') + ); + + $editou2 = $obj_transferencia->edita(); + + if ($editou2) { + $obj_transferencia = new clsPmieducarTransferenciaSolicitacao( + $ref_cod_transferencia + ); + + $det_transferencia = $obj_transferencia->detalhe(); + $matricula_saida = $det_transferencia['ref_cod_matricula_saida']; + + $obj_matricula = new clsPmieducarMatricula($matricula_saida); + $det_matricula = $obj_matricula->detalhe(); + + // Caso a situação da matrícula do aluno esteja em andamento + if ($det_matricula['aprovado'] == 3) { + $obj_matricula = new clsPmieducarMatricula( + $cadastrou, NULL, NULL, NULL, $this->pessoa_logada, NULL, + NULL, NULL, NULL, NULL, 1, NULL, NULL, $det_matricula['modulo'] + ); + + $editou_mat = $obj_matricula->edita(); + + if ($editou_mat) { + $obj_matricula_turma = new clsPmieducarMatriculaTurma(); + $lst_matricula_turma = $obj_matricula_turma->lista( + $matricula_saida, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1 + ); + + if (is_array($lst_matricula_turma)) { + $det_matricula_turma = array_shift($lst_matricula_turma); + + $obj_matricula_turma = new clsPmieducarMatriculaTurma( + $matricula_saida, $det_matricula_turma['ref_cod_turma'], + $this->pessoa_logada, NULL, NULL, NULL, 0, NULL, + $det_matricula_turma['sequencial'] + ); + + $editou_mat_turma = $obj_matricula_turma->edita(); + + if (! $editou_mat_turma) { + $this->mensagem = 'Não foi possível editar a Matrícula Turma.
'; + return FALSE; + } + } + + // Armazena as disciplinas utilizadas da nova escola + $obj_esd = new clsPmieducarEscolaSerieDisciplina(); + $lst_esd = $obj_esd->lista( + $this->ref_ref_cod_serie, $this->ref_cod_escola, NULL, 1 + ); + + if (is_array($lst_esd)) { + foreach ($lst_esd as $campo) { + $disciplinas[$campo['ref_cod_disciplina']] = $campo['ref_cod_disciplina']; + } + } + + // Lista as notas que o aluno já tinha + $obj_nota_aluno = new clsPmieducarNotaAluno(); + $lst_nota_aluno = $obj_nota_aluno->lista( + NULL, NULL, NULL, $this->ref_ref_cod_serie, NULL, NULL, + $matricula_saida, NULL, NULL, NULL, NULL, NULL, NULL, 1 + ); + + if (is_array($lst_nota_aluno)) { + foreach ($lst_nota_aluno as $campo) { + if ($disciplinas[$campo['ref_cod_disciplina']]) { + // Cadastra as notas existentes na nova matrícula + $obj_nota_aluno = new clsPmieducarNotaAluno( + NULL, $campo['ref_sequencial'], + $campo['ref_ref_cod_tipo_avaliacao'], $this->ref_ref_cod_serie, + $this->ref_cod_escola, $campo['ref_cod_disciplina'], + $cadastrou, NULL, $this->pessoa_logada, NULL, NULL, + 1, $campo['modulo'] + ); + + $cadastrou_nota = $obj_nota_aluno->cadastra(); + + if (! $cadastrou_nota) { + $this->mensagem = 'Cadastro não realizado.
'; + return FALSE; + } + } + } + } + + // Lista as faltas que o aluno já tinha + $obj_falta_aluno = new clsPmieducarFaltaAluno(); + $lst_falta_aluno = $obj_falta_aluno->lista( + NULL, NULL, NULL, $this->ref_ref_cod_serie, NULL, NULL, + $matricula_saida, NULL, NULL, NULL, NULL, NULL, 1 + ); + + if (is_array($lst_falta_aluno)) { + foreach ($lst_falta_aluno as $campo) { + if ($disciplinas[$campo['ref_cod_disciplina']]) { + // Cadastra as faltas existentes na nova matrícula + $obj_falta_aluno = new clsPmieducarFaltaAluno( + NULL, NULL, $this->pessoa_logada, + $this->ref_ref_cod_serie, $this->ref_cod_escola, + $campo['ref_cod_disciplina'], $cadastrou, + $campo['faltas'], NULL, NULL, 1, $campo['modulo'] + ); + + $cadastrou_falta = $obj_falta_aluno->cadastra(); + + if (! $cadastrou_falta) { + $this->mensagem = 'Cadastro não realizado.
'; + return FALSE; + } + } + } + } + + // Lista as notas que o aluno já tinha (globalizada) + $obj_faltas = new clsPmieducarFaltas(); + $lst_faltas = $obj_faltas->lista($matricula_saida); + + if (is_array($lst_faltas)) { + foreach ($lst_faltas as $campo) { + // Cadastra as faltas existentes na nova matrícula + $obj_faltas = new clsPmieducarFaltas( + $cadastrou, $campo['sequencial'], $this->pessoa_logada, + $campo['falta'] + ); + + $cadastrou_faltas = $obj_faltas->cadastra(); + + if (! $cadastrou_faltas) { + $this->mensagem = 'Cadastro não realizado.
'; + return FALSE; + } + } + } + } + } + + $obj = new clsPmieducarMatricula( + $matricula_saida, NULL, NULL, NULL,$this->pessoa_logada, NULL, + NULL, 4, NULL, NULL, 1, NULL, 0 + ); + + $editou3 = $obj->edita(); + + if (! $editou3) { + $this->mensagem = 'Edição não realizada.
'; + return FALSE; + } + } + else { + $this->mensagem = 'Edição não realizada.
'; + return FALSE; + } + } + } + } + + $this->mensagem .= 'Cadastro efetuado com sucesso.
'; + header('Location: educar_matricula_lst.php?ref_cod_aluno=' . $this->ref_cod_aluno); + die(); + } + + $this->mensagem = 'Cadastro não realizado.
'; + return FALSE; + } + else { + $this->mensagem = 'Não foi possível encontrar o "Ano Letivo" em andamento da Escola.
'; + return FALSE; + } + } + + function Excluir() + { + @session_start(); + $this->pessoa_logada = $_SESSION['id_pessoa']; + @session_write_close(); + + $obj_permissoes = new clsPermissoes(); + $obj_permissoes->permissao_excluir(578, $this->pessoa_logada, 7, + 'educar_matricula_lst.php?ref_cod_aluno=' . $this->ref_cod_aluno); + + $obj_matricula_turma = new clsPmieducarMatriculaTurma(); + $lst_matricula_turma = $obj_matricula_turma->lista( + $this->cod_matricula, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1 + ); + + if (is_array($lst_matricula_turma)) { + $det_matricula_turma = array_shift($lst_matricula_turma); + $obj_matricula_turma = new clsPmieducarMatriculaTurma( + $det_matricula_turma['ref_cod_matricula'], + $det_matricula_turma['ref_cod_turma'], $this->pessoa_logada, NULL, + NULL, NULL, 0, NULL, $det_matricula_turma['sequencial'] + ); + + $editou = $obj_matricula_turma->edita(); + + if (! $editou) { + $this->mensagem = 'Edição não realizada.
'; + return FALSE; + } + } + + $obj_matricula = new clsPmieducarMatricula( $this->cod_matricula ); + $det_matricula = $obj_matricula->detalhe(); + $ref_cod_serie = $det_matricula['ref_ref_cod_serie']; + + $obj_sequencia = new clsPmieducarSequenciaSerie(); + $lst_sequencia = $obj_sequencia->lista( + NULL, $ref_cod_serie, NULL, NULL, NULL, NULL, NULL, NULL, 1 + ); + + // Verifica se a série da matrícula cancelada é sequência de alguma outra série + if (is_array($lst_sequencia)) { + $det_sequencia = array_shift($lst_sequencia); + $ref_serie_origem = $det_sequencia['ref_serie_origem']; + + $obj_matricula = new clsPmieducarMatricula(); + $lst_matricula = $obj_matricula->lista( + NULL, NULL, NULL, $ref_serie_origem, NULL, NULL,$this->ref_cod_aluno, + NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0 + ); + + // Verifica se o aluno tem matrícula na série encontrada + if (is_array($lst_matricula)) { + $det_matricula = array_shift($lst_matricula); + $ref_cod_matricula = $det_matricula['cod_matricula']; + + $obj = new clsPmieducarMatricula( + $ref_cod_matricula, NULL, NULL, NULL, $this->pessoa_logada, NULL, NULL, + NULL, NULL, NULL, 1, NULL, 1 + ); + + $editou1 = $obj->edita(); + if (! $editou1) { + $this->mensagem = 'Não foi possível editar a "Última Matrícula da Sequência".
'; + return FALSE; + } + } + } + + $obj = new clsPmieducarMatricula( + $this->cod_matricula, NULL, NULL, NULL, $this->pessoa_logada, NULL, NULL, + NULL, NULL, NULL, 0 + ); + + $excluiu = $obj->excluir(); + + if ($excluiu) { + $this->mensagem .= 'Exclusão efetuada com sucesso.
'; + header('Location: educar_matricula_lst.php?ref_cod_aluno=' . $this->ref_cod_aluno); + die(); + } + + $this->mensagem = 'Exclusão não realizada.
'; + return FALSE; + } + + /** + * Marca como zero o campo ultima_matricula das matriculas da sequência. + * @param int $ultima_matricula + * @todo Remover, apenas um código condicional chama o método (L310). + */ + function desativaMatriculasSequencia($ultima_matricula) + { + $db2 = new clsBanco(); + + $db2->Consulta(' + SELECT + so.ref_cod_curso as curso_origem, + ss.ref_serie_origem as serie_origem, + sd.ref_cod_curso as curso_destino, + ss.ref_serie_destino as serie_destino + FROM + pmieducar.sequencia_serie ss, + pmieducar.serie so, + pmieducar.serie sd + WHERE + ss.ativo = 1 + AND ref_serie_origem = so.cod_serie + AND ref_serie_destino = sd.cod_serie + ORDER BY + ss.ref_serie_origem ASC'); + + if ($db2->numLinhas()) { + while ($db2->ProximoRegistro()) { + $sequencias[] = $db2->Tupla(); + } + } + + $db2->Consulta(' + SELECT + DISTINCT(o.ref_serie_origem) + FROM + pmieducar.sequencia_serie o, + pmieducar.escola_serie es + WHERE + NOT EXISTS ( + SELECT + 1 + FROM + pmieducar.sequencia_serie d + WHERE + o.ref_serie_origem = d.ref_serie_destino + )'); + + if ($db2->numLinhas()) + { + $pertence_sequencia = FALSE; + $achou_serie = FALSE; + $reset = FALSE; + + $serie_sequencia[] = $this->ref_ref_cod_serie; + + while ($db2->ProximoRegistro()) { + list($ini_sequencia) = $db2->Tupla(); + + $ini_serie = $ini_sequencia; + reset($sequencias); + + do { + if ($reset) { + reset($sequencias); + $reset = FALSE; + } + + $sequencia = current($sequencias); + $aux_serie = $sequencia['serie_origem']; + + if ($ini_serie == $aux_serie) { + if ($this->ref_ref_cod_serie == $aux_serie) { + // Achou série da matricula + $achou_serie = TRUE; + } + + if ($sequencia['curso_destino'] == $this->ref_cod_curso) { + // Curso pertence a sequência + $pertence_sequencia = TRUE; + $serie_sequencia[] = $sequencia['serie_destino']; + $ini_serie = $sequencia['serie_destino']; + $reset = TRUE; + } + else { + $ini_serie = $sequencia['serie_destino']; + $reset = TRUE; + } + } + } while (each($sequencias)); + + if ($achou_serie && $pertence_sequencia) { + // Curso escolhido pertence a sequência da série da matrícula + $series = implode(',', $serie_sequencia); + $db2->Consulta(sprintf(" + UPDATE + pmieducar.matricula + SET + ultima_matricula = 0 + WHERE + ref_ref_cod_serie IN (%s) + AND ref_cod_aluno = %d + AND cod_matricula != %d", + $series, $this->ref_cod_aluno, $ultima_matricula + )); + + die(); + } + } + } + } } -// cria uma extensao da classe base +// Instancia objeto de página $pagina = new clsIndexBase(); -// cria o conteudo + +// Instancia objeto de conteúdo $miolo = new indice(); -// adiciona o conteudo na clsBase -$pagina->addForm( $miolo ); -// gera o html -$pagina->MakeAll(); -?> - \ No newline at end of file -- libgit2 0.21.2