protected function postProcessamento() { if ($this->canPostProcessamento()) { $matriculaId = $this->getRequest()->matricula_id; try { $alunoId = $this->getAlunoIdByMatriculaId($matriculaId); $dadosMatricula = $this->getdadosMatricula($matriculaId); $dadosEscola = $this->getdadosEscola($dadosMatricula['escola_id']); $ano = $dadosMatricula['ano']; $isNewHistorico = !$this->existsHistorico($alunoId, $ano, $matriculaId); if ($isNewHistorico) { $sequencial = $this->getNextHistoricoSequencial($alunoId); $historicoEscolar = new clsPmieducarHistoricoEscolar($alunoId, $sequencial, $ref_usuario_exc = NULL, $ref_usuario_cad = $this->getSession()->id_pessoa, $dadosMatricula['nome_serie'], $ano, $this->getService()->getOption('serieCargaHoraria'), $this->getRequest()->dias_letivos, mb_strtoupper($dadosEscola['nome']), mb_strtoupper($dadosEscola['cidade']), $dadosEscola['uf'], utf8_decode($this->getRequest()->observacao), $this->getSituacaoMatricula(), $data_cadastro = date('Y-m-d'), $data_exclusao = NULL, $ativo = 1, $this->getFaltaGlobalizada($defaultValue = 'NULL'), $dadosMatricula['instituicao_id'], $origem = '', $this->getRequest()->extra_curricular, $matriculaId, $this->getPercentualFrequencia(), utf8_decode($this->getRequest()->registro), utf8_decode($this->getRequest()->livro), utf8_decode($this->getRequest()->folha), $dadosMatricula['nome_curso'], $this->getRequest()->grade_curso_id); $historicoEscolar->cadastra(); $this->recreateHistoricoDisciplinas($sequencial, $alunoId); $this->appendMsg('Histórico processado com sucesso', 'success'); } else { $sequencial = $this->getSequencial($alunoId, $ano, $matriculaId); $historicoEscolar = new clsPmieducarHistoricoEscolar($alunoId, $sequencial, $this->getSession()->id_pessoa, $ref_usuario_cad = null, $dadosMatricula['nome_serie'], $ano, $this->getService()->getOption('serieCargaHoraria'), $this->getRequest()->dias_letivos, mb_strtoupper($dadosEscola['nome']), mb_strtoupper($dadosEscola['cidade']), $dadosEscola['uf'], utf8_decode($this->getRequest()->observacao), $this->getSituacaoMatricula(), $data_cadastro = NULL, $data_exclusao = NULL, $ativo = 1, $this->getFaltaGlobalizada($defaultValue = 'NULL'), $dadosMatricula['instituicao_id'], $origem = '', $this->getRequest()->extra_curricular, $matriculaId, $this->getPercentualFrequencia(), utf8_decode($this->getRequest()->registro), utf8_decode($this->getRequest()->livro), utf8_decode($this->getRequest()->folha), $dadosMatricula['nome_curso'], $this->getRequest()->grade_curso_id); $historicoEscolar->edita(); $this->recreateHistoricoDisciplinas($dadosHistoricoEscolar['sequencial'], $alunoId); $this->appendMsg('Histórico reprocessado com sucesso', 'success'); } } catch (Exception $e) { $this->appendMsg('Erro ao processar histórico, detalhes:' . $e->getMessage(), 'error', true); } $situacaoHistorico = $this->getSituacaoHistorico($alunoId, $ano, $matriculaId, $reload = true); $linkToHistorico = $this->getLinkToHistorico($alunoId, $ano, $matriculaId); $this->appendResponse('situacao_historico', $situacaoHistorico); $this->appendResponse('link_to_historico', $linkToHistorico); } }
function Editar() { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; @session_write_close(); $obj_permissoes = new clsPermissoes(); $obj_permissoes->permissao_cadastra(642, $this->pessoa_logada, 7, "educar_falta_nota_aluno_lst.php"); //************************************* EDITA - MATRICULADO NUMA SERIE *************************************// if ($this->ref_ref_cod_serie) { // if (is_numeric($this->modulo)) // { // $this->mat_modulo = $this->modulo; // } if (!$this->reprova_falta) { $this->editaSNotasFaltas(); } /** * verifica se existem disciplinas sem notas * */ $obj_nota_aluno = new clsPmieducarNotaAluno(); $total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula, $this->ref_ref_cod_serie, $this->ref_cod_turma, $this->modulo, $this->ref_ref_cod_escola); /* verifica se o aluno está em exame * e se todas as matérias do exame estão com notas */ $aluno_esta_em_exame = $_POST["aluno_esta_em_exame"]; $qtd_disciplinas_aluno_exame = $_POST["qtd_disciplinas_aluno_exame"]; if ($aluno_esta_em_exame == 1) { $sql = "SELECT COUNT(0)\n\t\t\t\t\t\t\t\tFROM pmieducar.nota_aluno na\n\t\t\t\t\t\t\t\t, pmieducar.disciplina d\n\t\t\t\t\t\t\t\t, pmieducar.v_matricula_matricula_turma mmt\n\t\t\t\t\t\t\t\tWHERE na.ref_cod_matricula = '{$this->ref_cod_matricula}'\n\t\t\t\t\t\t\t\tAND na.ref_cod_matricula = mmt.cod_matricula\n\t\t\t\t\t\t\t\tAND mmt.ref_cod_turma = '{$this->ref_cod_turma}'\n\t\t\t\t\t\t\t\tAND na.ativo = 1\n\t\t\t\t\t\t\t\tAND mmt.ativo = 1\n\t\t\t\t\t\t\t\tAND na.ref_cod_disciplina = d.cod_disciplina\n\t\t\t\t\t\t\t\tAND na.ref_cod_serie = '{$this->ref_ref_cod_serie}'\n\t\t\t\t\t\t\t\tAND na.modulo = '{$this->modulo}'"; $db = new clsBanco(); $notas_exame_ja_recebidas = $db->CampoUnico($sql); if ($qtd_disciplinas_aluno_exame == $notas_exame_ja_recebidas) { $total = 0; } } /** * existem disciplinas sem notas * somente cadastra e o modulo do aluno * continua igual sem calcular nada */ if ($total > 0) { /** * caso NENHUMA materia tenha nota * (por motivo de exclusao) verificar se o modulo da matricula * é maior que o ultimo modulo com nota * entao decrementar o modulo da matricula */ $ultimo_modulo_matricula = $obj_nota_aluno->getMaxNotas($this->ref_cod_matricula); if ($ultimo_modulo_matricula < $this->mat_modulo) { if ($this->nota_foi_removida && $this->pessoa_logada == 184580) { $obj_hst_escolar = new clsPmieducarHistoricoEscolar(); $lst_hst_escolar = $obj_hst_escolar->lista($this->ref_cod_aluno, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1, null, null, null, null, $this->ref_cod_matricula); if (is_array($lst_hst_escolar)) { $det_hst_escolar = array_shift($lst_hst_escolar); $obj_hd = new clsPmieducarHistoricoDisciplinas(); $excluiu_hd = $obj_hd->excluirTodos($this->ref_cod_aluno, $det_hst_escolar["sequencial"]); if (!$excluiu_hd) { $this->mensagem = "Exclusão do Histórico Disciplina não realizado.<br>"; return false; } $obj_hst_escolar = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $det_hst_escolar["sequencial"], $this->pessoa_logada, null, null, null, null, null, null, null, null, null, null, null, null, 0); $excluiu_he = $obj_hst_escolar->excluir(); if (!$excluiu_he) { $this->mensagem = "Exclusão do Histórico Escolar não realizado.<br>"; return false; } } } $obj = new clsPmieducarMatricula($this->ref_cod_matricula, null, null, null, $this->pessoa_logada, null, null, 3, null, null, null, null, null, $ultimo_modulo_matricula); $editou = $obj->edita(); } $this->mensagem .= "Cadastro efetuado com sucesso.<br>"; header("Location: educar_falta_nota_aluno_det.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&sequencial={$this->ref_sequencial_matricula_turma}"); die; return true; } else { //$ultimo_modulo_matricula = $obj_nota_aluno->getMaxNotas($this->ref_cod_matricula); //die("$ultimo_modulo_matricula < $this->mat_modulo || $this->modulo"); if ($this->mat_modulo == $this->modulo) { $obj = new clsPmieducarMatricula($this->ref_cod_matricula, null, null, null, $this->pessoa_logada, null, null, 3, null, null, null, null, null, $ultimo_modulo_matricula); $editou = $obj->avancaModulo(); } } $aprovado = 3; if ($this->qtd_modulos <= $this->mat_modulo) { $obj_curso = new clsPmieducarCurso($this->ref_cod_curso); $det_curso = $obj_curso->detalhe(); $frequencia_minima = $det_curso["frequencia_minima"]; $hora_falta = $det_curso["hora_falta"]; $carga_horaria_curso = $det_curso["carga_horaria"]; $obj_esd = new clsPmieducarEscolaSerieDisciplina(); $lst_esd = $obj_esd->lista($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, null, 1); if (is_array($lst_esd)) { $obj_nota_aluno = new clsPmieducarNotaAluno(); $max_nota = $obj_nota_aluno->getMaxNotas($this->ref_cod_matricula); $obj_serie = new clsPmieducarSerie($this->ref_ref_cod_serie); $det_serie = $obj_serie->detalhe(); $media_especial = $det_serie['media_especial']; foreach ($lst_esd as $campo) { $obj_nota_aluno = new clsPmieducarNotaAluno(); $obj_nota_aluno->setOrderby("modulo ASC"); $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $campo["ref_cod_disciplina"], $this->ref_cod_matricula, null, null, null, null, null, null, 1); // so busca as notas da disciplina se nao for media especial if (is_array($lst_nota_aluno) && !dbBool($media_especial)) { foreach ($lst_nota_aluno as $key => $nota_aluno) { if ($nota_aluno['nota']) { $soma_notas[$campo["ref_cod_disciplina"]][$key] = $nota_aluno['nota'] * 2; } else { $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"]); $det_avaliacao_valores = $obj_avaliacao_valores->detalhe(); $soma_notas[$campo["ref_cod_disciplina"]][$key] = $det_avaliacao_valores["valor"]; } } } if (!$this->falta_ch_globalizada) { $obj_falta_aluno = new clsPmieducarFaltaAluno(); $lst_falta_aluno = $obj_falta_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $campo["ref_cod_disciplina"], $this->ref_cod_matricula, null, null, null, null, null, 1); if (is_array($lst_falta_aluno)) { foreach ($lst_falta_aluno as $key => $falta_aluno) { $soma_faltas[$campo["ref_cod_disciplina"]][$key] = $falta_aluno["faltas"]; } } } } if (is_array($soma_faltas)) { foreach ($soma_faltas as $disciplina => $faltas) { foreach ($faltas as $falta) { $faltas_media_aluno[$disciplina] += $falta; } } } } if (is_array($faltas_media_aluno)) { foreach ($faltas_media_aluno as $disciplina => $faltas) { $obj_disciplina = new clsPmieducarDisciplina($disciplina); $det_disciplina = $obj_disciplina->detalhe(); $carga_horaria_disciplina = $det_disciplina["carga_horaria"]; // calcula o maximo de horas q o aluno pode faltar na disciplina $max_falta = $carga_horaria_disciplina * $frequencia_minima / 100; $max_falta = $carga_horaria_disciplina - $max_falta; // calcula a quantidade de faltas por hora do aluno na disciplina $faltas *= $hora_falta; if ($faltas > $max_falta && !$this->reprova_falta) { echo "<script>\n\t\t\t\t\t\t\t\t\tif( confirm('O aluno excedeu o valor máximo de faltas permitidas, \\n deseja reprová-lo? \\n Quantidade de faltas do aluno: {$faltas} \\n Valor máximo de faltas permitido: {$max_falta} \\n \\n Clique em OK para reprová-lo ou em CANCELAR para ignorar.') )\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=s';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=n';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</script>"; return true; } if ($this->reprova_falta == 's') { $aprovado = 2; // aluno reprovado por falta } } } else { $obj_serie = new clsPmieducarSerie($this->ref_ref_cod_serie); $det_serie = $obj_serie->detalhe(); $carga_horaria_serie = $det_serie["carga_horaria"]; // calcula o maximo de horas q o aluno pode faltar na serie $max_falta = $carga_horaria_serie * $frequencia_minima / 100; $max_falta = $carga_horaria_serie - $max_falta; // calcula a quantidade de faltas por hora do aluno na serie $obj_faltas = new clsPmieducarFaltas(); $lst_faltas = $obj_faltas->lista($this->ref_cod_matricula); if (is_array($lst_faltas)) { $total_faltas = 0; foreach ($lst_faltas as $key => $faltas) { $total_faltas += $faltas['falta']; } $total_faltas *= $hora_falta; if ($total_faltas > $max_falta && !$this->reprova_falta) { echo "<script>\n\t\t\t\t\t\t\t\t\tif( confirm('O aluno excedeu o valor máximo de faltas permitidas, \\n deseja reprová-lo? \\n Quantidade de faltas do aluno: {$total_faltas} \\n Valor máximo de faltas permitido: {$max_falta} \\n \\n Clique em OK para reprová-lo ou em CANCELAR para ignorar.') )\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=s';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=n';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</script>"; return true; } if ($this->reprova_falta == 's') { $aprovado = 2; // aluno reprovado por falta } } } /** * calculo de media especial */ if (dbBool($media_especial)) { $objNotaAluno = new clsPmieducarNotaAluno(); $media = $objNotaAluno->getMediaEspecialAluno($this->ref_cod_matricula, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->qtd_modulos, $this->media); if ($media < $this->media) { // reprovado direto sem exame $aprovado = 2; } } } $db2 = new clsBanco(); //retorna quantas matérias o aluno cursa não contabilizando as matérias com dispensa $sql = "SELECT COUNT(0) FROM pmieducar.escola_serie_disciplina WHERE ref_ref_cod_serie = {$this->ref_ref_cod_serie} \n\t\t\t\t\tAND ref_ref_cod_escola = {$this->ref_ref_cod_escola} AND escola_serie_disciplina.ativo = 1\n\t\t\t\t\tAND ref_cod_disciplina NOT IN (\n\t\t\t\t\t\tSELECT ref_cod_disciplina\n\t\t\t\t\t\tFROM pmieducar.dispensa_disciplina WHERE \n\t\t\t\t\t\tref_cod_matricula = {$this->ref_cod_matricula} AND ref_cod_serie = {$this->ref_ref_cod_serie}\n\t\t\t\t\t\tAND ref_cod_escola = {$this->ref_ref_cod_escola} AND ativo = 1\n\t\t\t\t\t)"; $qtd_materias = $db2->CampoUnico($sql); //retorna quantas notas notas o aluno possui não contabilizandoa das matérias dispensadas $sql = "SELECT COUNT(0) FROM pmieducar.nota_aluno \n\t\t\t\t\tWHERE ref_cod_matricula = {$this->ref_cod_matricula} AND ativo = 1\n\t\t\t\t\tAND ref_cod_disciplina NOT IN (\n\t\t\t\t\t\t\tSELECT ref_cod_disciplina FROM pmieducar.dispensa_disciplina WHERE \n\t\t\t\t\t\t\tref_cod_matricula = {$this->ref_cod_matricula} AND ref_cod_serie = {$this->ref_ref_cod_serie} \n\t\t\t\t\t\t\tAND ref_cod_escola = {$this->ref_ref_cod_escola} AND ativo = 1\n\t\t\t\t\t)"; //variável em uma edição para verificar se o aluno possui todas as notas //para mudar o estado de aprovado dele $qtd_notas_possui = $db2->CampoUnico($sql); $possui_todas_as_notas = $this->qtd_modulos * $qtd_materias >= $qtd_notas_possui || $aluno_esta_em_exame == 1 ? true : false; if ($this->qtd_modulos < $this->mat_modulo && $this->qtd_modulos == $max_nota && !dbBool($media_especial)) { if (is_array($soma_notas) && !dbBool($media_especial)) { foreach ($soma_notas as $disciplina => $notas) { foreach ($notas as $nota) { if (dbBool($det_serie["ultima_nota_define"])) { $nota_media_aluno[$disciplina] = $nota; } else { $nota_media_aluno[$disciplina] += $nota; } } if (!dbBool($det_serie["ultima_nota_define"])) { $nota_media_aluno[$disciplina] /= $this->mat_modulo - 1; } } foreach ($nota_media_aluno as $disciplina => $nota) { $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores(); $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $nota, $nota); if (is_array($lst_avaliacao_valores)) { $det_avaliacao_valores = array_shift($lst_avaliacao_valores); $valor = $det_avaliacao_valores["valor"]; } /** * verifica se existem disciplinas sem notas * somente aprova caso seja zero */ //$obj_nota_aluno = new clsPmieducarNotaAluno(); // $total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula,$this->ref_ref_cod_serie,$this->ref_cod_turma,$this->modulo,$this->ref_ref_cod_escola); if ($nota < $this->media && $this->media_exame && !$this->conceitual && $possui_todas_as_notas) { $em_exame = true; // aluno em exame } else { if ($valor < $this->media && !$this->media_exame && !$this->conceitual && $possui_todas_as_notas) { $aprovado = 2; // aluno reprovado direto (n existe exame) } } } } } else { if ($this->qtd_modulos < $this->mat_modulo && $this->qtd_modulos < $max_nota && !dbBool($media_especial)) { // echo "<pre>"; print_r($soma_notas); foreach ($soma_notas as $disciplina => $notas) { $qtd_notas = 0; foreach ($notas as $nota) { $nota_media_aluno[$disciplina] += $nota; $qtd_notas++; } if ($qtd_notas == $this->modulo) { $nota_media_aluno[$disciplina] /= $this->modulo + 1; } else { $nota_media_aluno[$disciplina] /= $this->modulo - 1; } } foreach ($nota_media_aluno as $disciplina => $nota) { $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores(); $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $nota, $nota); if (is_array($lst_avaliacao_valores)) { $det_avaliacao_valores = array_shift($lst_avaliacao_valores); $valor = $det_avaliacao_valores["valor"]; if ($valor < $this->media_exame) { $aprovado = 2; // aluno reprovado no exame } /*else if ( ($valor < $this->media) && ($this->qtd_modulos >= $this->modulo) ) $aprovado = 7; // aluno em exame*/ } } } } /** * verifica se existem disciplinas sem notas * somente aprova caso seja zero */ //$obj_nota_aluno = new clsPmieducarNotaAluno(); //$total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula,$this->ref_ref_cod_serie,$this->ref_cod_turma,$this->modulo,$this->ref_ref_cod_escola); if ($this->conceitual) { $aprovado = $this->aprovado; // situacao definida pelo professor } else { if (!$em_exame && $this->qtd_modulos <= $this->mat_modulo && $aprovado == 3 && !$this->conceitual && $possui_todas_as_notas) { $aprovado = 1; // aluno aprovado } } $obj = new clsPmieducarMatricula($this->ref_cod_matricula, null, null, null, $this->pessoa_logada, null, null, $aprovado); $editou = $obj->edita(); //die($aprovado); if ($editou) { /** * aluno reprovado mantem historico * 01/03/2006 */ if ($aprovado == 2 || $aprovado == 3 || $aprovado == 1) { $obj_hst_escolar = new clsPmieducarHistoricoEscolar(); $lst_hst_escolar = $obj_hst_escolar->lista($this->ref_cod_aluno, null, null, null, $det_serie["nm_serie"], $this->ano_letivo, $carga_horaria_serie, null, null, null, null, null, null, null, null, null, null, null, null, $this->ref_cod_instituicao, 0, null, $this->ref_cod_matricula); if (is_array($lst_hst_escolar)) { $det_hst_escolar = array_shift($lst_hst_escolar); $obj_hd = new clsPmieducarHistoricoDisciplinas(); $excluiu_hd = $obj_hd->excluirTodos($this->ref_cod_aluno, $det_hst_escolar["sequencial"]); if (!$excluiu_hd) { $this->mensagem = "Exclusão do Histórico Disciplina não realizado.<br>"; return false; } $obj_hst_escolar = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $det_hst_escolar["sequencial"], $this->pessoa_logada, null, null, null, null, null, null, null, null, null, null, null, null, 0); $excluiu_he = $obj_hst_escolar->excluir(); if (!$excluiu_he) { $this->mensagem = "Exclusão do Histórico Escolar não realizado.<br>"; return false; } } } /*else */ if ($aprovado == 1 || $aprovado == 2) { $obj_serie = new clsPmieducarSerie($this->ref_ref_cod_serie); $det_serie = $obj_serie->detalhe(); $carga_horaria_serie = $det_serie["carga_horaria"]; $obj_escola = new clsPmieducarEscola($this->ref_ref_cod_escola); $det_escola = $obj_escola->detalhe(); $ref_idpes = $det_escola["ref_idpes"]; // busca informacoes da escola if ($ref_idpes) { $obj_escola = new clsPessoaJuridica($ref_idpes); $det_escola = $obj_escola->detalhe(); $nm_escola = $det_escola["fantasia"]; if ($det_escola) { $cidade = $det_escola["cidade"]; $uf = $det_escola["sigla_uf"]; } } else { if (class_exists("clsPmieducarEscolaComplemento")) { $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola); $det_escola = $obj_escola->detalhe(); $nm_escola = $det_escola["nm_escola"]; $cidade = $det_escola["municipio"]; } } if ($this->padrao_ano_escolar) { $extra_curricular = 0; } else { $extra_curricular = 1; } $sql = "SELECT SUM(falta) FROM pmieducar.faltas WHERE ref_cod_matricula = {$this->ref_cod_matricula}"; $db5 = new clsBanco(); $total_faltas = $db5->CampoUnico($sql); $obj_hst_escolar = new clsPmieducarHistoricoEscolar(); $lst_hst_escolar = $obj_hst_escolar->lista($this->ref_cod_aluno, null, null, null, $det_serie["nm_serie"], $this->ano_letivo, $carga_horaria_serie, null, null, null, null, null, null, null, null, null, null, null, null, $this->ref_cod_instituicao, 0, null, $this->ref_cod_matricula); if (is_array($lst_hst_escolar)) { $det_hst_escolar = array_shift($lst_hst_escolar); $obj = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $det_hst_escolar["sequencial"], $this->pessoa_logada, null, null, null, null, null, null, $cidade, $uf, null, $aprovado, null, null, 1, $total_faltas, null, null, $extra_curricular); $editou_he = $obj->edita(); } else { $obj = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, null, null, $this->pessoa_logada, $det_serie["nm_serie"], $this->ano_letivo, $carga_horaria_serie, null, $nm_escola, $cidade, $uf, null, $aprovado, null, null, 1, $total_faltas, $this->ref_cod_instituicao, 0, $extra_curricular, $this->ref_cod_matricula); $cadastrou_he = $obj->cadastra(); } if (($editou_he || $cadastrou_he) && !$this->conceitual) { if ($cadastrou_he) { $obj_historico = new clsPmieducarHistoricoEscolar(); $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno); } else { $sequencial = $det_hst_escolar["sequencial"]; } $historico_disciplina = array(); foreach ($nota_media_aluno as $key => $nota) { $historico_disciplina[$key] = array($nota, $faltas_media_aluno[$key]); } foreach ($historico_disciplina as $disciplina => $campo) { $obj_disciplina = new clsPmieducarDisciplina($disciplina); $det_disciplina = $obj_disciplina->detalhe(); $nm_disciplina = $det_disciplina["nm_disciplina"]; $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores(); $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $campo[0], $campo[0]); if (is_array($lst_avaliacao_valores)) { $det_avaliacao_valores = array_shift($lst_avaliacao_valores); $nm_nota = $det_avaliacao_valores["nome"]; $obj_hd = new clsPmieducarHistoricoDisciplinas(); $lst_hd = $obj_hd->lista(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina); if (is_array($lst_hd)) { $det_hd = array_shift($lst_hd); $obj_hd = new clsPmieducarHistoricoDisciplinas($det_hd["sequencial"], $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]); $hst_disciplina = $obj_hd->edita(); } else { $obj_hd = new clsPmieducarHistoricoDisciplinas(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]); $hst_disciplina = $obj_hd->cadastra(); } if (!$hst_disciplina) { $this->mensagem = "Cadastro/Edição do Histórico Disciplinas não realizado.<br>"; return false; } } else { $this->mensagem = "Não foi possível encontrar os Valores do Tipo de Avaliação.<br>"; return false; } } } /* else if( (!$editou_he || !$cadastrou_he) && (!$this->conceitual) ) { $this->mensagem = "Cadastro/Edição do Histórico Escolar não realizado.<br>"; return false; } */ } $this->mensagem .= "Cadastro efetuado com sucesso.<br>"; header("Location: educar_falta_nota_aluno_det.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&sequencial={$this->ref_sequencial_matricula_turma}"); die; return true; } $this->mensagem = "Edição não realizada (Matrícula).<br>"; echo "<!--\nErro ao editar clsPmieducarMatricula\nvalores obrigatorios\nis_numeric( {$this->ref_cod_matricula} ) && is_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->modulo} )\n-->"; return false; } else { if (!$this->reprova_falta) { $this->editaCNotasFaltas(); } /** * verifica se existem disciplinas sem notas * */ $obj_nota_aluno = new clsPmieducarNotaAluno(); $total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula, $this->ref_ref_cod_serie, $this->ref_cod_turma, $this->modulo, $this->ref_ref_cod_escola); /** * existem disciplinas sem notas * somente cadastra e o modulo do aluno * continua igual sem calcular nada */ if ($total) { $this->mensagem .= "Cadastro efetuado com sucesso.<br>"; header("Location: educar_falta_nota_aluno_det.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&sequencial={$this->ref_sequencial_matricula_turma}"); die; return true; } $aprovado = 3; if ($this->qtd_modulos <= $this->mat_modulo) { $obj_curso = new clsPmieducarCurso($this->ref_cod_curso); $det_curso = $obj_curso->detalhe(); $frequencia_minima = $det_curso["frequencia_minima"]; $hora_falta = $det_curso["hora_falta"]; $carga_horaria_curso = $det_curso["carga_horaria"]; $obj_disciplina = new clsPmieducarDisciplina(); $lst_disciplina = $obj_disciplina->lista(null, null, null, null, null, null, null, null, null, null, null, null, 1, null, $this->ref_cod_curso); if (is_array($lst_disciplina)) { foreach ($lst_disciplina as $campo) { $obj_nota_aluno = new clsPmieducarNotaAluno(); $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, null, null, null, $this->ref_cod_matricula, null, null, null, null, null, null, 1, null, $campo["cod_disciplina"]); if (is_array($lst_nota_aluno)) { foreach ($lst_nota_aluno as $key => $nota_aluno) { if ($nota_aluno["nota"]) { $soma_notas[$campo["cod_disciplina"]][$key] = $nota_aluno["nota"] * 2; } else { $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"]); $det_avaliacao_valores = $obj_avaliacao_valores->detalhe(); $soma_notas[$campo["cod_disciplina"]][$key] = $det_avaliacao_valores["valor"]; } } } if (!$this->falta_ch_globalizada) { $obj_falta_aluno = new clsPmieducarFaltaAluno(); $lst_falta_aluno = $obj_falta_aluno->lista(null, null, null, null, null, null, $this->ref_cod_matricula, null, null, null, null, null, 1, null, $campo["cod_disciplina"]); if (is_array($lst_falta_aluno)) { foreach ($lst_falta_aluno as $key => $falta_aluno) { $soma_faltas[$campo["cod_disciplina"]][$key] = $falta_aluno["faltas"]; } } } } if (is_array($soma_faltas)) { foreach ($soma_faltas as $disciplina => $faltas) { foreach ($faltas as $falta) { $faltas_media_aluno[$disciplina] += $falta; } } } } if (is_array($faltas_media_aluno)) { foreach ($faltas_media_aluno as $disciplina => $faltas) { $obj_disciplina = new clsPmieducarDisciplina($disciplina); $det_disciplina = $obj_disciplina->detalhe(); $carga_horaria_disciplina = $det_disciplina["carga_horaria"]; // calcula o maximo de horas q o aluno pode faltar na disciplina $max_falta = $carga_horaria_disciplina * $frequencia_minima / 100; $max_falta = $carga_horaria_disciplina - $max_falta; // calcula a quantidade de faltas por hora do aluno na disciplina $faltas *= $hora_falta; if ($faltas > $max_falta && !$this->reprova_falta) { echo "<script>\n\t\t\t\t\t\t\t\t\tif( confirm('O aluno excedeu o valor máximo de faltas permitidas, \\n deseja reprová-lo? \\n Quantidade de faltas do aluno: {$faltas} \\n Valor máximo de faltas permitido: {$max_falta} \\n \\n Clique em OK para reprová-lo ou em CANCELAR para ignorar.') )\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=s';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=n';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</script>"; return true; } if ($this->reprova_falta == 's') { $aprovado = 2; // aluno reprovado por falta } } } else { // calcula o maximo de horas q o aluno pode faltar no curso $max_falta = $carga_horaria_curso * $frequencia_minima / 100; $max_falta = $carga_horaria_curso - $max_falta; // calcula a qtd de faltas por hora do aluno no curso $obj_faltas = new clsPmieducarFaltas(); $lst_faltas = $obj_faltas->lista($this->ref_cod_matricula); if (is_array($lst_faltas)) { $total_faltas = 0; foreach ($lst_faltas as $key => $faltas) { $total_faltas += $faltas['falta']; } $total_faltas *= $hora_falta; if ($total_faltas > $max_falta && !$this->reprova_falta) { echo "<script>\n\t\t\t\t\t\t\t\t\tif( confirm('O aluno excedeu o valor máximo de faltas permitidas, \\n deseja reprová-lo? \\n Quantidade de faltas do aluno: {$total_faltas} \\n Valor máximo de faltas permitido: {$max_falta} \\n \\n Clique em OK para reprová-lo ou em CANCELAR para ignorar.') )\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=s';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=n';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</script>"; return true; } if ($this->reprova_falta == 's') { $aprovado = 2; // aluno reprovado por falta } } } } if ($this->qtd_modulos < $this->mat_modulo && $this->qtd_modulos == $max_nota) { if (is_array($soma_notas)) { foreach ($soma_notas as $disciplina => $notas) { foreach ($notas as $nota) { $nota_media_aluno[$disciplina] += $nota; } $nota_media_aluno[$disciplina] /= $this->mat_modulo - 1; } foreach ($nota_media_aluno as $disciplina => $nota) { $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores(); $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $nota, $nota); if (is_array($lst_avaliacao_valores)) { $det_avaliacao_valores = array_shift($lst_avaliacao_valores); $valor = $det_avaliacao_valores["valor"]; /* if ( ($valor < $this->media) && $this->media_exame && !$this->conceitual ) { $em_exame = true; } else if ( ($valor < $this->media) && !$this->media_exame && !$this->conceitual ) { $aprovado = 2; // aluno reprovado direto (n existe exame) } */ } /** * verifica se existem disciplinas sem notas * somente aprova caso seja zero */ $obj_nota_aluno = new clsPmieducarNotaAluno(); $total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula, $this->ref_ref_cod_serie, $this->ref_cod_turma, $this->modulo, $this->ref_ref_cod_escola); if ($nota < $this->media && $this->media_exame && !$this->conceitual) { $em_exame = true; // aluno em exame } else { if ($valor < $this->media && !$this->media_exame && !$this->conceitual) { $aprovado = 2; // aluno reprovado direto (n existe exame) } } } } } else { if ($this->qtd_modulos < $this->mat_modulo && $this->qtd_modulos < $max_nota) { foreach ($soma_notas as $disciplina => $notas) { $qtd_notas = 0; foreach ($notas as $nota) { $nota_media_aluno[$disciplina] += $nota; $qtd_notas++; } if ($qtd_notas == $this->mat_modulo) { $nota_media_aluno[$disciplina] /= $this->mat_modulo; } else { $nota_media_aluno[$disciplina] /= $this->mat_modulo - 1; } } foreach ($nota_media_aluno as $disciplina => $nota) { $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores(); $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $nota, $nota); if (is_array($lst_avaliacao_valores)) { $det_avaliacao_valores = array_shift($lst_avaliacao_valores); $valor = $det_avaliacao_valores["valor"]; if ($valor < $this->media_exame) { $aprovado = 2; // aluno reprovado no exame } } } } } /** * verifica se existem disciplinas sem notas * somente aprova caso seja zero */ //$obj_nota_aluno = new clsPmieducarNotaAluno(); //$total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula,$this->ref_ref_cod_serie,$this->ref_cod_turma,$this->modulo,$this->ref_ref_cod_escola); if ($this->conceitual) { $aprovado = $this->aprovado; // situacao definida pelo professor } else { if (!$em_exame && $this->qtd_modulos <= $this->mat_modulo && $aprovado == 3 && !$this->conceitual) { $aprovado = 1; // aluno aprovado } } $obj = new clsPmieducarMatricula($this->ref_cod_matricula, null, null, null, $this->pessoa_logada, null, null, $aprovado); $editou = $obj->edita(); if ($editou) { /** * aluno reprovado edita nao remove do historico */ if ($aprovado == 2 || $aprovado == 3) { $obj_hst_escolar = new clsPmieducarHistoricoEscolar(); $lst_hst_escolar = $obj_hst_escolar->lista($this->ref_cod_aluno, null, null, null, $det_curso['nm_curso'], $this->ano_letivo, $carga_horaria_curso, null, null, null, null, null, null, null, null, null, null, null, null, $this->ref_cod_instituicao, 0, 1, $this->ref_cod_matricula); if (is_array($lst_hst_escolar)) { $det_hst_escolar = array_shift($lst_hst_escolar); $obj_hd = new clsPmieducarHistoricoDisciplinas(); $excluiu_hd = $obj_hd->excluirTodos($this->ref_cod_aluno, $det_hst_escolar["sequencial"]); if (!$excluiu_hd) { $this->mensagem = "Exclusão do Histórico Disciplina não realizado.<br>"; return false; } $obj_hst_escolar = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $det_hst_escolar["sequencial"], $this->pessoa_logada, null, null, null, null, null, null, null, null, null, null, null, null, 0); $excluiu_he = $obj_hst_escolar->excluir(); if (!$excluiu_he) { $this->mensagem = "Exclusão do Histórico Escolar não realizado.<br>"; return false; } } } /*else*/ if ($aprovado == 1 || $aprovado == 2) { // busca informacoes da instituicao $obj_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao); $det_instituicao = $obj_instituicao->detalhe(); $nm_instituicao = $det_instituicao["nm_instituicao"]; $cidade = $det_instituicao["cidade"]; $uf = $det_instituicao["ref_sigla_uf"]; $obj_hst_escolar = new clsPmieducarHistoricoEscolar(); $lst_hst_escolar = $obj_hst_escolar->lista($this->ref_cod_aluno, null, null, null, $det_curso['nm_curso'], $this->ano_letivo, $carga_horaria_curso, null, null, null, null, null, null, null, null, null, null, null, null, $this->ref_cod_instituicao, 0, 1, $this->ref_cod_matricula); $sql = "SELECT SUM(falta) FROM pmieducar.faltas WHERE ref_cod_matricula = {$this->ref_cod_matricula}"; $db5 = new clsBanco(); $total_faltas = $db5->CampoUnico($sql); if (is_array($lst_hst_escolar)) { $det_hst_escolar = array_shift($lst_hst_escolar); $obj_hst_escolar = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $det_hst_escolar["sequencial"], $this->pessoa_logada, null, $det_curso['nm_curso'], $this->ano_letivo, $carga_horaria_curso, null, $nm_instituicao, $cidade, $uf, null, $aprovado, null, null, 1, $total_faltas, $this->ref_cod_instituicao, 0, 1, $this->ref_cod_matricula); $editou_he = $obj_hst_escolar->edita(); } else { $obj_hst_escolar = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, null, null, $this->pessoa_logada, $det_curso['nm_curso'], $this->ano_letivo, $carga_horaria_curso, null, $nm_instituicao, $cidade, $uf, null, $aprovado, null, null, 1, $total_faltas, $this->ref_cod_instituicao, 0, 1, $this->ref_cod_matricula); $cadastrou_he = $obj_hst_escolar->cadastra(); } if (($editou_he || $cadastrou_he) && !$this->conceitual) { if ($cadastrou_he) { $obj_historico = new clsPmieducarHistoricoEscolar(); $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno); } else { $sequencial = $det_hst_escolar["sequencial"]; } $historico_disciplina = array(); foreach ($nota_media_aluno as $key => $nota) { $historico_disciplina[$key] = array($nota, $faltas_media_aluno[$key]); } foreach ($historico_disciplina as $disciplina => $campo) { $obj_disciplina = new clsPmieducarDisciplina($disciplina); $det_disciplina = $obj_disciplina->detalhe(); $nm_disciplina = $det_disciplina["nm_disciplina"]; $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores(); $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $campo[0], $campo[0]); if (is_array($lst_avaliacao_valores)) { $det_avaliacao_valores = array_shift($lst_avaliacao_valores); $nm_nota = $det_avaliacao_valores["nome"]; $obj_hd = new clsPmieducarHistoricoDisciplinas(); $lst_hd = $obj_hd->lista(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina); if (is_array($lst_hd)) { $det_hd = array_shift($lst_hd); $obj_hd = new clsPmieducarHistoricoDisciplinas($det_hd["sequencial"], $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]); $hst_disciplina = $obj_hd->edita(); } else { $obj_hd = new clsPmieducarHistoricoDisciplinas(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]); $hst_disciplina = $obj_hd->cadastra(); } if (!$hst_disciplina) { $this->mensagem = "Cadastro/Edição do Histórico Disciplinas não realizado.<br>"; return false; } } else { $this->mensagem = "Não foi possível encontrar os Valores do Tipo de Avaliação.<br>"; return false; } } } /* else if( !$editou_he || !$cadastrou_he ) { $this->mensagem = "Cadastro/Edição do Histórico Escolar não realizado.<br>"; return false; } */ } $this->mensagem .= "Cadastro efetuado com sucesso.<br>"; header("Location: educar_falta_nota_aluno_det.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&sequencial={$this->ref_sequencial_matricula_turma}"); die; return true; } $this->mensagem = "Edição não realizada (Matrícula).<br>"; echo "<!--\nErro ao editar clsPmieducarMatricula\nvalores obrigatorios\nis_numeric( {$this->ref_cod_matricula} ) && is_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->modulo} )\n-->"; return false; } }
function Gerar() { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; session_write_close(); $this->titulo = "Histórico Escolar - Detalhe"; $this->addBanner("imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet"); $this->sequencial = $_GET["sequencial"]; $this->ref_cod_aluno = $_GET["ref_cod_aluno"]; $tmp_obj = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $this->sequencial); $registro = $tmp_obj->detalhe(); if (!$registro) { header("location: educar_historico_escolar_lst.php?ref_cod_aluno={$this->ref_cod_aluno}"); die; } if (class_exists("clsPmieducarAluno")) { $obj_aluno = new clsPmieducarAluno(); $lst_aluno = $obj_aluno->lista($registro["ref_cod_aluno"], null, null, null, null, null, null, null, null, null, 1); if (is_array($lst_aluno)) { $det_aluno = array_shift($lst_aluno); $nm_aluno = $det_aluno["nome_aluno"]; } } else { $nm_aluno = "Erro na geracao"; echo "<!--\nErro\nClasse nao existente: clsPmieducarAluno\n-->"; } if ($nm_aluno) { $this->addDetalhe(array("Aluno", "{$nm_aluno}")); } // if( $registro["sequencial"] ) // { // $this->addDetalhe( array( "Sequencial", "{$registro["sequencial"]}") ); // } if ($registro["extra_curricular"]) { if ($registro["escola"]) { $this->addDetalhe(array("Instituição", "{$registro["escola"]}")); } if ($registro["escola_cidade"]) { $this->addDetalhe(array("Cidade da Instituição", "{$registro["escola_cidade"]}")); } if ($registro["escola_uf"]) { $this->addDetalhe(array("Estado da Instituição", "{$registro["escola_uf"]}")); } if ($registro["nm_serie"]) { $this->addDetalhe(array("Série", "{$registro["nm_serie"]}")); } } else { if ($registro["escola"]) { $this->addDetalhe(array("Escola", "{$registro["escola"]}")); } if ($registro["escola_cidade"]) { $this->addDetalhe(array("Cidade da Escola", "{$registro["escola_cidade"]}")); } if ($registro["escola_uf"]) { $this->addDetalhe(array("Estado da Escola", "{$registro["escola_uf"]}")); } if ($registro["nm_serie"]) { $this->addDetalhe(array("Série", "{$registro["nm_serie"]}")); } } if ($registro["nm_curso"]) { $this->addDetalhe(array("Curso", "{$registro["nm_curso"]}")); } if ($registro["ano"]) { $this->addDetalhe(array("Ano", "{$registro["ano"]}")); } if ($registro["carga_horaria"]) { $registro["carga_horaria"] = str_replace(".", ",", $registro["carga_horaria"]); $this->addDetalhe(array("Carga Horária", "{$registro["carga_horaria"]}")); } $this->addDetalhe(array("Faltas globalizadas", is_numeric($registro["faltas_globalizadas"]) ? 'Sim' : 'Não')); if ($registro["dias_letivos"]) { $this->addDetalhe(array("Dias Letivos", "{$registro["dias_letivos"]}")); } if ($registro["frequencia"]) { $this->addDetalhe(array("Frequência", "{$registro["frequencia"]}")); } if ($registro["extra_curricular"]) { $this->addDetalhe(array("Extra-Curricular", "Sim")); } else { $this->addDetalhe(array("Extra-Curricular", "Não")); } if ($registro["aceleracao"]) { $this->addDetalhe(array("Aceleração", "Sim")); } else { $this->addDetalhe(array("Aceleração", "Não")); } if ($registro["origem"]) { $this->addDetalhe(array("Origem", "Externo")); } else { $this->addDetalhe(array("Origem", "Interno")); } if ($registro["observacao"]) { $this->addDetalhe(array("Observação", "{$registro["observacao"]}")); } if ($registro["aprovado"]) { if ($registro["aprovado"] == 1) { $registro["aprovado"] = "Aprovado"; } elseif ($registro["aprovado"] == 2) { $registro["aprovado"] = "Reprovado"; } elseif ($registro["aprovado"] == 3) { $registro["aprovado"] = "Em Andamento"; } elseif ($registro["aprovado"] == 4) { $registro["aprovado"] = "Transferido"; } $this->addDetalhe(array("Situação", "{$registro["aprovado"]}")); } if ($registro["registro"]) { $this->addDetalhe(array("Registro (arquivo)", "{$registro["registro"]}")); } if ($registro["livro"]) { $this->addDetalhe(array("Livro", "{$registro["livro"]}")); } if ($registro["folha"]) { $this->addDetalhe(array("Folha", "{$registro["folha"]}")); } $obj = new clsPmieducarHistoricoDisciplinas(); $obj->setOrderby("nm_disciplina ASC"); $lst = $obj->lista(null, $this->ref_cod_aluno, $this->sequencial); $qtd_disciplinas = count($lst); if ($lst) { $tabela = "<table>\n\t\t\t\t\t <tr align='center'>\n\t\t\t\t\t <td bgcolor=#a1b3bd><b>Nome</b></td>\n\t\t\t\t\t <td bgcolor=#a1b3bd><b>Nota</b></td>\n\t\t\t\t\t <td bgcolor=#a1b3bd><b>Faltas</b></td>\n\t\t\t\t\t </tr>"; $cont = 0; $prim_disciplina = false; foreach ($lst as $valor) { if ($cont % 2 == 0) { $color = " bgcolor='#E4E9ED' "; } else { $color = " bgcolor='#FFFFFF' "; } $valor["nm_disciplina"] = urldecode($valor["nm_disciplina"]); $tabela .= "<tr>\n\t\t\t\t\t\t\t <td {$color} align='left'>{$valor["nm_disciplina"]}</td>\n\t\t\t\t\t\t\t <td {$color} align='center'>{$valor["nota"]}</td>"; if (is_numeric($registro["faltas_globalizadas"]) && !$prim_disciplina) { $tabela .= "<td rowspan='{$qtd_disciplinas}' {$color} align='center'>{$registro["faltas_globalizadas"]}</td>"; } else { if (!is_numeric($registro["faltas_globalizadas"])) { $tabela .= "<td {$color} align='center'>{$valor["faltas"]}</td>"; } } $tabela .= "</tr>"; $registro["faltas_globalizadas"]; $cont++; $prim_disciplina = true; } $tabela .= "</table>"; } if ($tabela) { $this->addDetalhe(array("Disciplina", "{$tabela}")); } $this->addBotao('Copiar Histórico', "educar_historico_escolar_cad.php?ref_cod_aluno={$registro["ref_cod_aluno"]}&sequencial={$registro["sequencial"]}&copia=true"); $obj_permissoes = new clsPermissoes(); if ($obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7)) { $this->url_novo = "educar_historico_escolar_cad.php?ref_cod_aluno={$registro["ref_cod_aluno"]}"; if ($registro['origem']) { $this->url_editar = "educar_historico_escolar_cad.php?ref_cod_aluno={$registro["ref_cod_aluno"]}&sequencial={$registro["sequencial"]}"; } } $this->url_cancelar = "educar_historico_escolar_lst.php?ref_cod_aluno={$registro["ref_cod_aluno"]}"; $this->largura = "100%"; }
function verificaHistorico() { if (is_numeric($this->ref_cod_aluno)) { @session_start(); $pessoa_logada = $_SESSION['id_pessoa']; @session_write_close(); $sql_existe_historico = "select sequencial from pmieducar.historico_escolar where ref_cod_aluno={$this->ref_cod_aluno}\n\t\t\t\t\t\t\t\t\t\tand ativo=1 and ano=2007"; $sql = "SELECT ref_ref_cod_serie from pmieducar.matricula where cod_matricula in (\n\t\t\t\t\t\t\tSELECT MAX(cod_matricula) as max_matricula\n\t\t\t\t\t\t\t\t\t\tfrom pmieducar.matricula WHERE ref_cod_aluno = {$this->ref_cod_aluno}\n\t\t\t\t\t\t\t\t\t\tAND ano=2007 AND ativo=1 AND aprovado IN (1,2))"; $db = new clsBanco(); $serie = $db->CampoUnico($sql); if ($serie != 15) { $db = new clsBanco(); $existe_historico = $db->CampoUnico($sql_existe_historico); $liberar_historico = false; $existe_historico_sequencial = false; if (!is_numeric($existe_historico)) { $liberar_historico = true; } else { $sql_existe_disciplina = "select 1 from pmieducar.historico_disciplinas where\n\t\t\t\t\t\t\t\t\t\t\tref_ref_cod_aluno={$this->ref_cod_aluno} and ref_sequencial={$existe_historico}"; $existe_disciplinas = $db->CampoUnico($sql_existe_disciplina); if (!is_numeric($existe_disciplinas)) { $liberar_historico = true; $existe_historico_sequencial = true; } } $sql_aprovado = "SELECT aprovado from pmieducar.matricula where cod_matricula in (\n\t\t\t\t\t\t\tSELECT MAX(cod_matricula) as max_matricula\n\t\t\t\t\t\t\t\t\t\tfrom pmieducar.matricula WHERE ref_cod_aluno = {$this->ref_cod_aluno}\n\t\t\t\t\t\t\t\t\t\tAND ano=2007 AND ativo=1 AND aprovado IN (1,2))"; $aprovado_aux = $db->CampoUnico($sql_aprovado); if (is_numeric($existe_historico) && !$existe_historico_sequencial) { $sql_historico_aprovado = "SELECT aprovado from pmieducar.historico_escolar\n\t\t\t\t\t\t\t\t\t\t\twhere ref_cod_aluno={$this->ref_cod_aluno}\n\t\t\t\t\t\t\t\t\t\t\tand sequencial={$existe_historico} and ano=2007 and ativo=1"; $aprovado_historico = $db->CampoUnico($sql_historico_aprovado); /*if ($aprovado_aux != $aprovado_historico) { $liberar_historico = true; $sql_desativa_he = "update pmieducar.historico_escolar set ativo=0 where ref_cod_aluno={$this->ref_cod_aluno} and sequencial={$existe_historico} and ano=2007"; $db->Consulta($sql_desativa_he); $existe_historico_sequencial=false; }*/ } $sql_aprovado = "SELECT aprovado from pmieducar.matricula where cod_matricula in (\n\t\t\t\t\t\t\tSELECT MAX(cod_matricula) as max_matricula\n\t\t\t\t\t\t\t\t\t\tfrom pmieducar.matricula WHERE ref_cod_aluno = {$this->ref_cod_aluno}\n\t\t\t\t\t\t\t\t\t\tAND ano=2007 AND ativo=1 AND aprovado IN (1,2))"; $aprovado_aux = $db->CampoUnico($sql_aprovado); if (is_numeric($existe_historico) && !$existe_historico_sequencial) { $sql_historico_aprovado = "SELECT aprovado from pmieducar.historico_escolar\n\t\t\t\t\t\t\t\t\t\t\twhere ref_cod_aluno={$this->ref_cod_aluno}\n\t\t\t\t\t\t\t\t\t\t\tand sequencial={$existe_historico} and ano=2007 and ativo=1"; $aprovado_historico = $db->CampoUnico($sql_historico_aprovado); /*if ($aprovado_aux != $aprovado_historico) { $liberar_historico = true; $sql_desativa_he = "update pmieducar.historico_escolar set ativo=0 where ref_cod_aluno={$this->ref_cod_aluno} and sequencial={$existe_historico} and ano=2007"; $db->Consulta($sql_desativa_he); $existe_historico_sequencial=false; }*/ } if ($liberar_historico) { $sql = "SELECT cod_matricula,aprovado,ref_ref_cod_escola,ref_ref_cod_serie,ref_cod_curso,matricula_reclassificacao from pmieducar.matricula where cod_matricula in (\n\t\t\t\t\t\t\tSELECT MAX(cod_matricula) as max_matricula\n\t\t\t\t\t\t\t\t\t\tfrom pmieducar.matricula WHERE ref_cod_aluno = {$this->ref_cod_aluno}\n\t\t\t\t\t\t\t\t\t\tAND ano=2007 AND ativo=1 AND aprovado IN (1,2))"; $db->Consulta($sql); while ($db->ProximoRegistro()) { list($cod_matricula, $aprovado, $ref_cod_escola, $ref_cod_serie, $ref_cod_curso, $matricula_reclassificacao) = $db->Tupla(); } $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo(); $lst_ano_letivo_modulo = $obj_ano_letivo_modulo->lista(2007, $ref_cod_escola); $qtd_modulos = count($lst_ano_letivo_modulo); $obj_curso = new clsPmieducarCurso($ref_cod_curso); $det_curso = $obj_curso->detalhe(); $falta_ch_globalizada = $det_curso["falta_ch_globalizada"]; $objTipoAvaliacao = new clsPmieducarTipoAvaliacao($det_curso["ref_cod_tipo_avaliacao"]); $detalhe_tipo_avaliacao = $objTipoAvaliacao->detalhe(); $conceitual = $detalhe_tipo_avaliacao["conceitual"]; // if () { if ($ref_cod_curso != 49 && $ref_cod_curso != 20 && $ref_cod_curso != 19 && $qtd_modulos == 4 && !$conceitual && is_array($det_curso) && is_numeric($ref_cod_serie) && is_numeric($cod_matricula) && is_numeric($aprovado) && is_numeric($ref_cod_escola) && $det_curso["padrao_ano_escolar"] == 1) { if ($ref_cod_serie != 15) { if ($det_curso["padrao_ano_escolar"] == 1) { if ($existe_historico_sequencial) { // $obj_historico = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $existe_historico_sequencial, $pessoa_logada); // if (!$obj_historico->excluir()) { // die("não exclui"); // } } $obj_escola2 = new clsPmieducarEscola($ref_cod_escola); $det_escola2 = $obj_escola2->detalhe(); $ref_cod_instituicao = $det_escola2["ref_cod_instituicao"]; $notas_faltas_disciplina = array(); $obj_escola_serie_disciplina = new clsPmieducarEscolaSerieDisciplina(); $lst_escola_serie_disciplina = $obj_escola_serie_disciplina->lista($ref_cod_serie, $ref_cod_escola, null, 1); foreach ($lst_escola_serie_disciplina as $escola_serie_disciplina) { $obj_dispensa = new clsPmieducarDispensaDisciplina($cod_matricula, $ref_cod_serie, $ref_cod_escola, $escola_serie_disciplina["ref_cod_disciplina"], null, null, null, null, null, 1); $det_disciplina = $obj_dispensa->detalhe(); if (!is_array($det_disciplina)) { $obj_nota = new clsPmieducarNotaAluno(); $obj_nota->setOrderby("modulo"); $lst_nota = $obj_nota->lista(null, null, null, $ref_cod_serie, $ref_cod_escola, $escola_serie_disciplina["ref_cod_disciplina"], $cod_matricula, null, null, null, null, null, null, 1); if (is_array($lst_nota)) { $soma_notas = 0; $possui_exame = false; foreach ($lst_nota as $key => $nota) { $obj_tipo_av_val = new clsPmieducarTipoAvaliacaoValores($nota["ref_ref_cod_tipo_avaliacao"], $nota["ref_sequencial"], null, null, null, null); $det_tipo_av_val = $obj_tipo_av_val->detalhe(); if ($ref_cod_serie == 5) { $soma_notas = $det_tipo_av_val["valor"]; } else { if ($key < $qtd_modulos) { $soma_notas += $det_tipo_av_val["valor"]; } else { $possui_exame = true; $soma_notas += $nota["nota"] * 2; } } } if ($ref_cod_serie == 5) { $media = $soma_notas; } else { if ($possui_exame) { $media = $soma_notas / 6; } else { $media = $soma_notas / 4; } } $obj_media = new clsPmieducarTipoAvaliacaoValores(); $det_media = $obj_media->lista($det_curso["ref_cod_tipo_avaliacao"], $det_curso["ref_sequencial"], null, null, $media, $media); if (is_array($det_media)) { $det_media = array_shift($det_media); $media = $det_media["valor"]; $media = sprintf("%01.1f", $media); $media = str_replace(".", ",", $media); } $obj_disciplina = new clsPmieducarDisciplina($escola_serie_disciplina["ref_cod_disciplina"]); $det_disciplina = $obj_disciplina->detalhe(); if ($falta_ch_globalizada) { $notas_faltas_disciplina[$escola_serie_disciplina["ref_cod_disciplina"]] = array("media" => $media, "falta" => null, "nm_disciplina" => $det_disciplina["nm_disciplina"]); } else { //pegar as faltas $sql = "select sum(faltas) from pmieducar.falta_aluno where\n\t\t\t\t\t\t\t\t\t\t\t\t\tref_cod_matricula={$cod_matricula} and ref_cod_disciplina={$escola_serie_disciplina["ref_cod_disciplina"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\tand ativo=1"; $total_faltas = $db->CampoUnico($sql); $notas_faltas_disciplina[$escola_serie_disciplina["ref_cod_disciplina"]] = array("media" => $media, "falta" => $total_faltas, "nm_disciplina" => $det_disciplina["nm_disciplina"]); } } } } if (is_array($notas_faltas_disciplina)) { $extra_curricular = 0; if ($falta_ch_globalizada) { $sql = "SELECT SUM(falta) FROM pmieducar.faltas WHERE ref_cod_matricula = {$cod_matricula}"; $db5 = new clsBanco(); $total_faltas = $db5->CampoUnico($sql); } else { $total_faltas = null; } $obj_serie = new clsPmieducarSerie($ref_cod_serie); $det_serie = $obj_serie->detalhe(); $carga_horaria_serie = $det_serie["carga_horaria"]; $obj_escola = new clsPmieducarEscola($ref_cod_escola); $det_escola = $obj_escola->detalhe(); $ref_idpes = $det_escola["ref_idpes"]; // busca informacoes da escola if ($ref_idpes) { $obj_escola = new clsPessoaJuridica($ref_idpes); $det_escola = $obj_escola->detalhe(); $nm_escola = $det_escola["fantasia"]; if ($det_escola) { $cidade = $det_escola["cidade"]; $uf = $det_escola["sigla_uf"]; } } else { if (class_exists("clsPmieducarEscolaComplemento")) { $obj_escola = new clsPmieducarEscolaComplemento($ref_cod_escola); $det_escola = $obj_escola->detalhe(); $nm_escola = $det_escola["nm_escola"]; $cidade = $det_escola["municipio"]; } } //falta_ch_globalizada if ($det_curso["falta_ch_globalizada"] == 1) { $dias_letivos = $this->buscaDiasLetivos($ref_cod_escola); } else { $dias_letivos = null; } if ($matricula_reclassificacao == 1) { $descricao_reclassificacao = $this->verificaReclassificacao(); } else { $descricao_reclassificacao = null; } $obj_historico = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, null, null, $pessoa_logada, $det_serie["nm_serie"], 2007, $carga_horaria_serie, $dias_letivos, $nm_escola, $cidade, $uf, $descricao_reclassificacao, $aprovado, null, null, 1, $total_faltas, $ref_cod_instituicao, 0, $extra_curricular, $cod_matricula); $cadastrou2 = $obj_historico->cadastra(); if ($cadastrou2) { $obj_historico = new clsPmieducarHistoricoEscolar(); $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno); foreach ($notas_faltas_disciplina as $nota_falta) { $obj_historico_disciplina = new clsPmieducarHistoricoDisciplinas(null, $this->ref_cod_aluno, $sequencial, $nota_falta["nm_disciplina"], $nota_falta["media"], $nota_falta["falta"]); $cadastrou3 = $obj_historico_disciplina->cadastra(); if (!$cadastrou3) { die("<br><br><br><br>nao cadastrou disciplina"); } } } else { die("<br><br><br><br>nao cadastrou historico"); } } } } } elseif ($ref_cod_curso != 49 && $ref_cod_curso != 20 && $ref_cod_curso != 19) { //fazer historico ejaaaa //pegar matriculas do eja do aluno $obj_matriculas = new clsPmieducarMatricula(); $obj_matriculas->setOrderby("cod_matricula"); $lst_matriculas = $obj_matriculas->lista(null, null, null, null, null, null, $this->ref_cod_aluno, array(1, 2), null, null, null, null, 1, 2007); if (is_array($lst_matriculas) && count($lst_matriculas)) { foreach ($lst_matriculas as $matricula) { $liberar_historico = false; $db = new clsBanco(); //fazer algo para ver se o he nao esta atualizado $sql = "SELECT sequencial FROM pmieducar.historico_escolar WHERE ref_cod_aluno = {$matricula["ref_cod_aluno"]}\n\t\t\t\t\t\t\t\t\tAND ref_cod_matricula = {$matricula["cod_matricula"]} AND ano = 2007 AND ativo = 1\n\t\t\t\t\t\t\t\t\tAND (to_char(data_cadastro,'DD/MM/YYYY') < '20/02/2008'\n\t\t\t\t\t\t\t\t\t\tOR to_char(data_cadastro,'YYYY')::int = 2007) AND data_exclusao is null"; $existe_he_antigo = $db->CampoUnico($sql); if (is_numeric($existe_he_antigo)) { $liberar_historico = true; } else { //verificar se possui historico $sql = "SELECT 1 FROM pmieducar.historico_escolar WHERE ref_cod_aluno = {$matricula["ref_cod_aluno"]}\n\t\t\t\t\t\t\t\t\t\tAND ref_cod_matricula = {$matricula["cod_matricula"]} AND ano = 2007 AND ativo = 1"; $existe_he = $db->CampoUnico($sql); if (!is_numeric($existe_he)) { $liberar_historico = true; } } if ($liberar_historico) { if (is_numeric($existe_he_antigo)) { $obj_historico = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $existe_he_antigo, $pessoa_logada); // if (!$obj_historico->excluir()) { // die("nao exclui"); // } } //fazer novo he //destruir he antigo $obj_curso = new clsPmieducarCurso($matricula["ref_cod_curso"]); $det_curso = $obj_curso->detalhe(); $falta_ch_globalizada = $det_curso["falta_ch_globalizada"]; $objTipoAvaliacao = new clsPmieducarTipoAvaliacao($det_curso["ref_cod_tipo_avaliacao"]); $detalhe_tipo_avaliacao = $objTipoAvaliacao->detalhe(); $conceitual = $detalhe_tipo_avaliacao["conceitual"]; $notas_faltas_disciplina = array(); $obj_escola_serie_disciplina = new clsPmieducarEscolaSerieDisciplina(); $lst_escola_serie_disciplina = $obj_escola_serie_disciplina->lista($matricula["ref_ref_cod_serie"], $matricula["ref_ref_cod_escola"], null, 1); foreach ($lst_escola_serie_disciplina as $escola_serie_disciplina) { $obj_dispensa = new clsPmieducarDispensaDisciplina($matricula["cod_matricula"], $matricula["ref_ref_cod_serie"], $matricula["ref_cod_escola"], $escola_serie_disciplina["ref_cod_disciplina"], null, null, null, null, null, 1); $det_disciplina = $obj_dispensa->detalhe(); if (!is_array($det_disciplina)) { $obj_nota = new clsPmieducarNotaAluno(); $obj_nota->setOrderby("modulo"); $lst_nota = $obj_nota->lista(null, null, null, $matricula["ref_ref_cod_serie"], $matricula["ref_cod_escola"], $escola_serie_disciplina["ref_cod_disciplina"], $matricula["cod_matricula"], null, null, null, null, null, null, 1); if (is_array($lst_nota) && count($lst_nota)) { $nota_matricula = array_shift($lst_nota); $obj_tipo_av_val = new clsPmieducarTipoAvaliacaoValores($nota_matricula["ref_ref_cod_tipo_avaliacao"], $nota_matricula["ref_sequencial"]); $det_tipo_av_val = $obj_tipo_av_val->detalhe(); if ($falta_ch_globalizada) { $faltas = null; } else { $sql = "select sum(faltas) from pmieducar.falta_aluno where\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tref_cod_matricula={$matricula["cod_matricula"]} and ref_cod_disciplina={$escola_serie_disciplina["ref_cod_disciplina"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tand ativo=1"; $faltas = $db->CampoUnico($sql); } $obj_disciplina = new clsPmieducarDisciplina($escola_serie_disciplina["ref_cod_disciplina"]); $det_disciplina = $obj_disciplina->detalhe(); $notas_faltas_disciplina[$escola_serie_disciplina["ref_cod_disciplina"]] = array("media" => $det_tipo_av_val["nome"], "falta" => $faltas, "nm_disciplina" => $det_disciplina["nm_disciplina"]); } } } if (is_array($notas_faltas_disciplina)) { $obj_escola2 = new clsPmieducarEscola($matricula["ref_ref_cod_escola"]); $det_escola2 = $obj_escola2->detalhe(); $ref_cod_instituicao = $det_escola2["ref_cod_instituicao"]; $extra_curricular = 1; if ($falta_ch_globalizada) { $sql = "SELECT SUM(falta) FROM pmieducar.faltas WHERE ref_cod_matricula = {$matricula["cod_matricula"]}"; $db5 = new clsBanco(); $total_faltas = $db5->CampoUnico($sql); } else { $total_faltas = null; } $obj_serie = new clsPmieducarSerie($matricula["ref_ref_cod_serie"]); $det_serie = $obj_serie->detalhe(); $carga_horaria_serie = $det_serie["carga_horaria"]; $obj_escola = new clsPmieducarEscola($matricula["ref_ref_cod_escola"]); $det_escola = $obj_escola->detalhe(); $ref_idpes = $det_escola["ref_idpes"]; // busca informacoes da escola if ($ref_idpes) { $obj_escola = new clsPessoaJuridica($ref_idpes); $det_escola = $obj_escola->detalhe(); $nm_escola = $det_escola["fantasia"]; if ($det_escola) { $cidade = $det_escola["cidade"]; $uf = $det_escola["sigla_uf"]; } } else { if (class_exists("clsPmieducarEscolaComplemento")) { $obj_escola = new clsPmieducarEscolaComplemento($matricula["ref_ref_cod_escola"]); $det_escola = $obj_escola->detalhe(); $nm_escola = $det_escola["nm_escola"]; $cidade = $det_escola["municipio"]; } } //falta_ch_globalizada if ($det_curso["falta_ch_globalizada"] == 1) { // $dias_letivos = $this->buscaDiasLetivos($matricula["ref_ref_cod_escola"]); $dias_letivos = null; } else { $dias_letivos = null; } if ($matricula["matricula_reclassificacao"] == 1) { $descricao_reclassificacao = $this->verificaReclassificacao($matricula["cod_matricula"]); } else { $descricao_reclassificacao = null; } $obj_historico = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, null, null, $pessoa_logada, $det_serie["nm_serie"], 2007, $carga_horaria_serie, $dias_letivos, $nm_escola, $cidade, $uf, $descricao_reclassificacao, $matricula["aprovado"], null, null, 1, $total_faltas, $ref_cod_instituicao, 0, $extra_curricular, $matricula["cod_matricula"]); $cadastrou2 = $obj_historico->cadastra(); if ($cadastrou2) { $obj_historico = new clsPmieducarHistoricoEscolar(); $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno); foreach ($notas_faltas_disciplina as $nota_falta) { $obj_historico_disciplina = new clsPmieducarHistoricoDisciplinas(null, $this->ref_cod_aluno, $sequencial, $nota_falta["nm_disciplina"], $nota_falta["media"], $nota_falta["falta"]); $cadastrou3 = $obj_historico_disciplina->cadastra(); if (!$cadastrou3) { die("<br><br><br><br>nao cadastrou disciplina"); } } } else { die("<br><br><br><br>nao cadastrou historico"); } } } } } } } elseif ($ref_cod_curso != 49 && $ref_cod_curso != 20 && $ref_cod_curso != 19) { $sql = "SELECT ref_ref_cod_escola,ref_cod_curso from pmieducar.matricula where cod_matricula in (\n\t\t\t\t\t\t\tSELECT MAX(cod_matricula) as max_matricula\n\t\t\t\t\t\t\t\t\t\tfrom pmieducar.matricula WHERE ref_cod_aluno = {$this->ref_cod_aluno}\n\t\t\t\t\t\t\t\t\t\tAND ano=2007 AND ativo=1 AND aprovado IN (1,2))"; $db = new clsBanco(); $db->Consulta($sql); while ($db->ProximoRegistro()) { list($ref_cod_escola, $ref_cod_curso) = $db->Tupla(); } $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo(); $lst_ano_letivo_modulo = $obj_ano_letivo_modulo->lista(2007, $ref_cod_escola); $qtd_modulos = count($lst_ano_letivo_modulo); $obj_curso = new clsPmieducarCurso($ref_cod_curso); $det_curso = $obj_curso->detalhe(); $falta_ch_globalizada = $det_curso["falta_ch_globalizada"]; $objTipoAvaliacao = new clsPmieducarTipoAvaliacao($det_curso["ref_cod_tipo_avaliacao"]); $detalhe_tipo_avaliacao = $objTipoAvaliacao->detalhe(); $conceitual = $detalhe_tipo_avaliacao["conceitual"]; if ($qtd_modulos == 4 && !$conceitual) { $sql_eh_falta_globalizada = "SELECT 1 FROM pmieducar.historico_escolar WHERE ref_cod_aluno = {$this->ref_cod_aluno} AND sequencial = {$existe_historico}\n\t\t\t\t\t\t\t\t\t\t\t AND faltas_globalizadas IS NOT NULL AND dias_letivos IS NULL"; $db = new clsBanco(); $busca_dias_letivos = $db->CampoUnico($sql_eh_falta_globalizada); if (is_numeric($busca_dias_letivos)) { $dias_letivos = $this->buscaDiasLetivos($ref_cod_escola); if ($dias_letivos) { $obj_he = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $existe_historico, $pessoa_logada, null, null, null, null, $dias_letivos); if (!$obj_he->edita()) { die("nao editou dias letivos"); } } } $sql = "SELECT MAX(cod_matricula),matricula_reclassificacao\n\t\t\t\t\t\t\t\t\t\t\tfrom pmieducar.matricula WHERE ref_cod_aluno = {$this->ref_cod_aluno}\n\t\t\t\t\t\t\t\t\t\t\tAND ano=2007 AND ativo=1 AND aprovado IN (1,2)\n\t\t\t\t\t\t\t\t\t\t\tgroup by matricula_reclassificacao"; $db = new clsBanco(); $db->Consulta($sql); while ($db->ProximoRegistro()) { list($cod_matricula, $matricula_reclassificacao) = $db->Tupla(); } if ($matricula_reclassificacao == 1) { $descricao_reclassificacao = $this->verificaReclassificacao(); if ($descricao_reclassificacao) { $obj_he = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $existe_historico, $pessoa_logada, null, null, null, null, null, null, null, null, $descricao_reclassificacao); if (!$obj_he->edita()) { die("nao editou reclassificacao"); } } } } } } } }
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_historico_escolar_lst.php?ref_cod_aluno={$this->ref_cod_aluno}"); $obj = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $this->sequencial, $this->pessoa_logada, null, null, null, null, null, null, null, null, null, null, null, null, 0); $excluiu = $obj->excluir(); if ($excluiu) { $obj = new clsPmieducarHistoricoDisciplinas(); $excluiu = $obj->excluirTodos($this->ref_cod_aluno, $this->sequencial); if ($excluiu) { $this->mensagem .= "Exclusão efetuada com sucesso.<br>"; header("Location: educar_historico_escolar_lst.php?ref_cod_aluno={$this->ref_cod_aluno}"); die; return true; } } $this->mensagem = "Exclusão não realizada.<br>"; echo "<!--\nErro ao excluir clsPmieducarHistoricoEscolar\nvalores obrigatorios\nif( is_numeric( {$this->ref_cod_aluno} ) && is_numeric( {$this->sequencial} ) && is_numeric( {$this->pessoa_logada} ) )\n-->"; return false; }
function Gerar() { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; session_write_close(); $this->titulo = "Histórico Escolar - Listagem"; foreach ($_GET as $var => $val) { // passa todos os valores obtidos no GET para atributos do objeto $this->{$var} = $val; } $this->campoOculto("ref_cod_aluno", $this->ref_cod_aluno); if (!$this->ref_cod_aluno) { header("location: educar_aluno_lst.php"); die; } $lista_busca = array("Ano", "Extra-curricular"); $obj_permissao = new clsPermissoes(); $nivel_usuario = $obj_permissao->nivel_acesso($this->pessoa_logada); if ($nivel_usuario == 1) { if (!$this->extra_curricular) { $lista_busca[] = "Escola"; } $lista_busca[] = "Instituição"; } else { if ($nivel_usuario == 2) { if (!$this->extra_curricular) { $lista_busca[] = "Escola"; } } } $lista_busca = array_merge($lista_busca, array('Curso', 'Série', 'Registro', 'Livro', 'Folha')); $this->addCabecalhos($lista_busca); $get_escola = true; include "include/pmieducar/educar_campo_lista.php"; // outros Filtros $this->campoNumero("ano", "Ano", $this->ano, 4, 4, false); $opcoes = array("" => "Selecione", 2 => "Não", 1 => "Sim"); $this->campoLista("extra_curricular", "Extra-curricular", $opcoes, $this->extra_curricular, "", false, "", "", false, false); if ($this->extra_curricular == 2) { $this->extra_curricular = 0; } // if ($this->ref_cod_escola) // { // $obj_ref_cod_escola = new clsPmieducarEscola( $this->ref_cod_escola ); // $det_ref_cod_escola = $obj_ref_cod_escola->detalhe(); // $this->escola = $det_ref_cod_escola["nome"]; // } // Paginador $this->limite = 20; $this->offset = $_GET["pagina_{$this->nome}"] ? $_GET["pagina_{$this->nome}"] * $this->limite - $this->limite : 0; $obj_historico_escolar = new clsPmieducarHistoricoEscolar(); $obj_historico_escolar->setOrderby("ano, sequencial ASC"); $obj_historico_escolar->setLimite($this->limite, $this->offset); $lista = $obj_historico_escolar->lista($this->ref_cod_aluno, null, null, null, null, $this->ano, null, null, null, null, null, null, null, null, null, null, null, 1, null, $this->ref_cod_instituicao, null, $this->extra_curricular, null); $total = $obj_historico_escolar->_total; // monta a lista if (is_array($lista) && count($lista)) { foreach ($lista as $registro) { if (class_exists("clsPmieducarInstituicao")) { $obj_cod_instituicao = new clsPmieducarInstituicao($registro["ref_cod_instituicao"]); $obj_cod_instituicao_det = $obj_cod_instituicao->detalhe(); $registro["ref_cod_instituicao"] = $obj_cod_instituicao_det["nm_instituicao"]; } else { $registro["ref_cod_instituicao"] = "Erro na geração"; echo "<!--\nErro\nClasse não existente: clsPmieducarInstituicao\n-->"; } if ($registro["extra_curricular"]) { $registro["extra_curricular"] = "Sim"; } else { $registro["extra_curricular"] = "Não"; } $lista_busca = array("<a href=\"educar_historico_escolar_det.php?ref_cod_aluno={$registro["ref_cod_aluno"]}&sequencial={$registro["sequencial"]}\">{$registro["ano"]}</a>", "<a href=\"educar_historico_escolar_det.php?ref_cod_aluno={$registro["ref_cod_aluno"]}&sequencial={$registro["sequencial"]}\">{$registro["extra_curricular"]}</a>"); if ($nivel_usuario == 1) { if (!$this->extra_curricular) { $lista_busca[] = "<a href=\"educar_historico_escolar_det.php?ref_cod_aluno={$registro["ref_cod_aluno"]}&sequencial={$registro["sequencial"]}\">{$registro["escola"]}</a>"; } $lista_busca[] = "<a href=\"educar_historico_escolar_det.php?ref_cod_aluno={$registro["ref_cod_aluno"]}&sequencial={$registro["sequencial"]}\">{$registro["ref_cod_instituicao"]}</a>"; } else { if ($nivel_usuario == 2) { if (!$this->extra_curricular) { $lista_busca[] = "<a href=\"educar_historico_escolar_det.php?ref_cod_aluno={$registro["ref_cod_aluno"]}&sequencial={$registro["sequencial"]}\">{$registro["escola"]}</a>"; } } } $lista_busca[] = $registro['nm_curso']; $lista_busca[] = $registro['nm_serie']; $lista_busca[] = $registro['registro']; $lista_busca[] = $registro['livro']; $lista_busca[] = $registro['folha']; $this->addLinhas($lista_busca); } } $this->addPaginador2("educar_historico_escolar_lst.php", $total, $_GET, $this->nome, $this->limite); $obj_permissoes = new clsPermissoes(); if ($obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7)) { $this->acao = "go(\"educar_historico_escolar_cad.php?ref_cod_aluno={$this->ref_cod_aluno}\")"; $this->nome_acao = "Novo"; } $this->array_botao[] = 'Voltar'; $this->array_botao_url[] = "educar_aluno_det.php?cod_aluno={$this->ref_cod_aluno}"; $this->largura = "100%"; $localizacao = new LocalizacaoSistema(); $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "Início", "educar_index.php" => "i-Educar - Escola", "" => "Listagem de históricos escolares")); $this->enviaLocalizacao($localizacao->montar()); }
function Novo() { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; @session_write_close(); $obj_permissoes = new clsPermissoes(); $obj_permissoes->permissao_cadastra(650, $this->pessoa_logada, 7, "educar_turma_mvto_det.php"); $this->lst_matriculas = unserialize(urldecode($_POST["lst_matriculas"])); $this->cod_disciplinas = unserialize(urldecode($_POST["cod_disciplinas"])); $this->lst_apura_falta = unserialize(urldecode($_POST["lst_apura_falta"])); if (is_array($this->lst_matriculas)) { // Verifica se o professor aprovou ou reprovou algum aluno if ($this->classifica == "S") { $obj_nota_aluno = new clsPmieducarNotaAluno(); $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true, true); if ($lst_exame) { foreach ($lst_exame as $exame) { $obj_matricula = new clsPmieducarMatricula($exame["ref_ref_cod_matricula"]); $det_matricula = $obj_matricula->detalhe(); if ($det_matricula) { $obj_aluno = new clsPmieducarAluno($det_matricula["ref_cod_aluno"]); $det_aluno = $obj_aluno->detalhe(); if ($det_aluno) { $campo_aprovacao = "aprovacao_{$det_aluno["ref_idpes"]}_"; $campo_aluno = "nm_aluno_{$det_aluno["ref_idpes"]}"; } } if (isset($this->{$campo_aluno})) { // Verifica se a média é maior ou igual a média mínima e se foi aprovado pelo professor if ($exame["media"] >= $this->media && $this->{$campo_aprovacao} == "on") { // Verifica se o aluno não foi reprovado ou deixado em exame if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N" && $aprovado[$exame["ref_ref_cod_matricula"]] != "R") { $aprovado[$exame["ref_ref_cod_matricula"]] = "S"; } } else { if ($exame["media"] < $this->media && $this->{$campo_aprovacao} == "on") { // Verifica se o aluno não foi reprovado if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N") { $aprovado[$exame["ref_ref_cod_matricula"]] = "R"; } } else { $aprovado[$exame["ref_ref_cod_matricula"]] = "N"; } } } } if (is_array($aprovado)) { foreach ($aprovado as $matricula => $verificador) { // Verifica se o aluno foi aprovado ou deixado em exame if ($verificador == "S" || $verificador == "R") { $obj_matricula = new clsPmieducarMatricula($matricula); $det_matricula = $obj_matricula->detalhe(); // Verifica se a matrícula aida está em andamento if ($det_matricula["aprovado"] == 3) { $obj_historico = new clsPmieducarHistoricoEscolar(); $lst_historico = $obj_historico->lista($matricula); $seq = count($lst_historico) + 1; $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1); $det_ano_letivo = $obj_ano_letivo->detalhe(); $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola); $det_escola = $obj_escola->detalhe(); // Verifica se o aluno foi aprovado if ($verificador == "S") { $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1); if ($obj_historico->cadastra()) { $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1); $obj_matricula->edita(); } else { $this->mensagem = "Falha ao cadastrar o historico!<br>"; } } else { if ($verificador == "R") { $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 7); if (!$obj_matricula->edita()) { $this->mensagem = "Falha ao editar a matricula!<br>"; } } } } } else { $obj_matricula = new clsPmieducarMatricula($matricula); $det_matricula = $obj_matricula->detalhe(); // Verifica se a matricula ainda está em andamento if ($det_matricula["aprovado"] == 3) { $obj_historico = new clsPmieducarHistoricoEscolar(); $lst_historico = $obj_historico->lista($matricula); $seq = count($lst_historico) + 1; $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1); $det_ano_letivo = $obj_ano_letivo->detalhe(); $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola); $det_escola = $obj_escola->detalhe(); // Verifica se o aluno foi reprovado if ($verificador == "N") { $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1); if ($obj_historico->cadastra()) { $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 2); if (!$obj_matricula->edita()) { $this->mensagem = "Falha ao alterar a matricula!<br>"; } } else { $this->mensagem = "Falha ao cadastrar o historico!<br>"; } } } } } } } header("location: educar_turma_mvto_det.php?cod_turma={$this->ref_cod_turma}"); die; } else { foreach ($this->lst_matriculas as $matriculas) { // Verifica se o ano letivo ainda está em andamento if ($this->num_modulo <= $this->qtd_modulos) { // Verifica se a disciplina apura falta if ($this->lst_apura_falta[$this->ref_cod_disciplina] == 1) { $campo_falta = "faltas_{$matriculas[1]}"; } else { if ($this->falta_ch_globalizada == 1) { $campo_falta = "faltas_{$matriculas[1]}"; } } $campo_nota = "nota_{$matriculas[1]}"; $obj_mat_tur = new clsPmieducarMatriculaTurma(); $lst_mat_tur = $obj_mat_tur->lista($matriculas[2], $this->ref_cod_turma, null, null, null, null, null, null, 1); $sequencial = 0; //echo "<pre>"; //print_r( $lst_mat_tur ); if (is_array($lst_mat_tur)) { foreach ($lst_mat_tur as $registro) { if ($sequencial == 0) { $sequencial = $registro["sequencial"]; } else { if ($sequencial < $registro["sequencial"]) { $sequencial = $registro["sequencial"]; } } } //$sequencial = ( count( $lst_mat_tur ) ); //$sequencial = $lst_mat_tur["sequencial"]; } else { $this->mensagem = "Erro no cadastro de nota!<br>"; } $obj_nota_aluno = new clsPmieducarNotaAluno(null, $this->{$campo_nota}, $this->ref_cod_tipo_avaliacao, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $matriculas[2], $this->ref_cod_turma, null, $this->pessoa_logada, null, null, 1, $sequencial); if (!$obj_nota_aluno->cadastra()) { $this->mensagem = "Erro no cadastro de nota!<br>"; } // Verifica se a falta não é globalizada if ($this->falta_ch_globalizada == 0) { // Verifica se a disciplina apura falta if ($this->lst_apura_falta[$this->ref_cod_disciplina] == 1) { // Verifica se o aluno possui alguma falta if ($this->{$campo_falta} > 0) { $obj_falta_aluno = new clsPmieducarFaltaAluno(null, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $this->ref_cod_turma, $matriculas[2], $this->{$campo_falta}, null, null, 1, $sequencial); if (!$obj_falta_aluno->cadastra()) { $this->mensagem = "Erro no cadastro de falta!<br>"; } } } } else { if ($this->falta_ch_globalizada == 1) { // Verifica se o aluno possui alguma falta if ($this->{$campo_falta} > 0) { $obj_faltas = new clsPmieducarFaltas(); $lst_faltas = $obj_faltas->lista($matriculas[2]); $sequencial = count($lst_faltas) + 1; $obj_faltas = new clsPmieducarFaltas($matriculas[2], $sequencial, $this->pessoa_logada, $this->{$campo_falta}); if (!$obj_faltas->cadastra()) { $this->mensagem = "Erro no cadastro de falta!<br>"; } } } } } } // Verifica se a turma está no último módulo if ($this->qtd_modulos == $this->num_modulo) { $obj_matricula_turma = new clsPmieducarMatriculaTurma(); $lst_matricula_turma = $obj_matricula_turma->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1); if ($lst_matricula_turma) { foreach ($lst_matricula_turma as $matricula) { $obj_nota_aluno = new clsPmieducarNotaAluno(); // Busca se todas as notas já foram dadas para o aluno $todas_notas = $obj_nota_aluno->todasNotas($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->num_modulo, $matricula["ref_cod_matricula"]); // Verifica se todas as notas já foram dadas para o aluno if ($todas_notas == 'S') { if ($this->conceitual == 0) { // Carrega as médias de cada disciplina do aluno $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true); if ($lst_exame) { foreach ($lst_exame as $exame) { if ($exame["ref_ref_cod_matricula"] == $matricula["ref_cod_matricula"]) { // Verifica se a média do aluno é igual ou superior a média mínima e se a freqüência do aluno é igual ou maior que a freqüência mínima if ($exame["media"] >= $this->media && 100 - $exame["faltas"] >= $this->frequencia_minima) { // Verifica se o aluno não foi reprovado ou deixado de recuperação if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N" && $aprovado[$exame["ref_ref_cod_matricula"]] != "R") { $aprovado[$exame["ref_ref_cod_matricula"]] = "S"; } } else { if ($exame["media"] < $this->media && 100 - $exame["faltas"] >= $this->frequencia_minima) { // Verifica se o aluno não foi reprovado if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N") { $aprovado[$exame["ref_ref_cod_matricula"]] = "R"; } } else { $aprovado[$exame["ref_ref_cod_matricula"]] = "N"; } } } } } } if ($this->conceitual == 1) { $obj_aluno = new clsPmieducarAluno($matricula["ref_cod_aluno"]); $det_aluno = $obj_aluno->detalhe(); $campo_aprovacao = "aprovacao_{$det_aluno["ref_idpes"]}"; if ($this->{$campo_aprovacao} == "S") { $aprovado[$matricula["ref_cod_matricula"]] = "S"; } elseif ($this->{$campo_aprovacao} == "N") { $aprovado[$matricula["ref_cod_matricula"]] = "N"; } } } } } if (is_array($aprovado)) { foreach ($aprovado as $matricula => $verificador) { // Verifica se o aluno foi aprovado ou deixado em exame if ($verificador == "S" || $verificador == "R") { $obj_matricula = new clsPmieducarMatricula($matricula); $det_matricula = $obj_matricula->detalhe(); // Verifica se a matrícula está em andamento if ($det_matricula["aprovado"] == 3) { $obj_historico = new clsPmieducarHistoricoEscolar(); $lst_historico = $obj_historico->lista($matricula); $seq = count($lst_historico) + 1; $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1); $det_ano_letivo = $obj_ano_letivo->detalhe(); $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola); $det_escola = $obj_escola->detalhe(); // Verifica se o aluno foi aprovado if ($verificador == "S") { if ($this->falta_ch_globalizada == 1) { $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 1); } else { $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 0); } if ($obj_historico->cadastra()) { $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1); if ($obj_matricula->edita()) { $this->mensagem = "Falha ao editar a matricula!<br>"; } } else { $this->mensagem = "Falha ao cadastrar o historico!<br>"; } } else { if ($verificador == "R") { $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 7); if (!$obj_matricula->edita()) { $this->mensagem = "Falha ao editar a matricula!<br>"; } } } } } else { if ($verificador == "N" && $this->conceitual == 1) { $obj_matricula = new clsPmieducarMatricula($matricula); $det_matricula = $obj_matricula->detalhe(); if ($det_matricula["aprovado"] == 3) { $obj_historico = new clsPmieducarHistoricoEscolar(); $lst_historico = $obj_historico->lista($matricula); $seq = count($lst_historico) + 1; $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1); $det_ano_letivo = $obj_ano_letivo->detalhe(); $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola); $det_escola = $obj_escola->detalhe(); if ($this->falta_ch_globalizada == 1) { $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 1); } else { $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 0); } if ($obj_historico->cadastra()) { $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 2); if ($obj_matricula->edita()) { $this->mensagem = "Falha ao editar a matricula!<br>"; } } else { $this->mensagem = "Falha ao cadastrar o historico!<br>"; } } } } } } $obj_turma_modulo = new clsPmieducarTurmaModulo(); $fimAnoLetivo = $obj_turma_modulo->fimAno($this->ref_cod_turma, $this->qtd_modulos); // $total_notas = $obj_nota_aluno->retornaTotalNotas( $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma ); // if ( $total_notas == ( $this->qtd_modulos * $this->qtd_disciplinas ) ) if ($fimAnoLetivo == "S") { header("location: educar_turma_mvto_det.php?cod_turma={$this->ref_cod_turma}"); die; } else { header("location: educar_turma_nota_cad.php?ref_cod_turma={$this->ref_cod_turma}&ref_ref_cod_escola={$this->ref_ref_cod_escola}&ref_ref_cod_serie={$this->ref_ref_cod_serie}&ref_cod_curso={$this->ref_cod_curso}"); die; } } else { if ($this->exame == "S") { foreach ($this->lst_matriculas as $matriculas) { // Verifica se todos os módulos já terminaram if ($this->num_modulo > $this->qtd_modulos) { $campo_nota = "nota_{$matriculas[1]}"; $obj_mat_tur = new clsPmieducarMatriculaTurma(); $lst_mat_tur = $obj_mat_tur->lista($matriculas[2], $this->ref_cod_turma, null, null, null, null, null, null, 1); if (is_array($lst_mat_tur)) { //$sequencial = ( count( $lst_mat_tur ) ); $sequencial = $lst_mat_tur["sequencial"]; } else { $this->mensagem = "Erro no cadastro de nota!<br>"; } $obj_nota_aluno = new clsPmieducarNotaAluno(null, $this->{$campo_nota}, $this->ref_cod_tipo_avaliacao, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $matriculas[2], $this->ref_cod_turma, null, $this->pessoa_logada, null, null, 1, $sequencial); if (!$obj_nota_aluno->cadastra()) { $this->mensagem = "Erro no cadastro de nota!<br>"; } $obj_nota_aluno = new clsPmieducarNotaAluno(); $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true, false, true); $obj_turma_disciplina = new clsPmieducarTurmaDisciplina(); // Carrega o código das disciplinas da turma $lst_turma_disciplina = $obj_turma_disciplina->lista($this->ref_cod_turma); if (is_array($lst_turma_disciplina)) { // Carrega a quantidade de disciplinas da turma $this->qtd_disciplinas = count($lst_turma_disciplina); foreach ($lst_turma_disciplina as $valores) { $obj_disciplina = new clsPmieducarDisciplina($valores["ref_cod_disciplina"]); $det_disciplina = $obj_disciplina->detalhe(); if ($det_disciplina) { $obj_dispensa = new clsPmieducarDispensaDisciplina(); $det_dispensa = $obj_dispensa->lista($this->ref_cod_turma, $matriculas[2], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $det_disciplina["cod_disciplina"], null, null, null, null, null, null, null, 1); // Verifica se o aluno não foi dispensado da disciplina if (!is_array($det_dispensa)) { $obj_notas = new clsPmieducarNotaAluno(); // Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina $lst_notas = $obj_notas->retornaDiscMod($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $det_disciplina["cod_disciplina"], $this->ref_cod_turma, $this->ref_cod_turma, $matriculas[2]); // Carrega a média da disciplina if ($lst_exame) { foreach ($lst_exame as $exame) { if ($exame["disc_ref_ref_cod_disciplina"] == $det_disciplina["cod_disciplina"] && $exame["ref_ref_cod_matricula"] == $matriculas[2]) { $media_disciplina = $exame["media"]; } } } if ($lst_notas == $this->qtd_modulos) { if ($media_disciplina >= $this->media) { $pula_disciplina = false; } else { $pula_disciplina = true; } } else { $pula_disciplina = true; } if ($pula_disciplina) { if (!is_array($det_dispensa)) { // Verifica se a quantidade de notas por aluno é diferente do número do módulo em que a turma se encontra if ($lst_notas == $this->qtd_modulos + 1) { if ($salva_historico != "N") { $lst_disc_exame[$det_disciplina["cod_disciplina"]] = "S"; $salva_historico = "S"; } } else { $salva_historico = "N"; } } } } } } } if ($salva_historico == "S") { $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos + 1, $this->ref_cod_curso, true, true, false, true); if ($lst_exame) { foreach ($lst_exame as $exame) { if ($exame["ref_ref_cod_matricula"] == $matriculas[2] && $lst_disc_exame[$exame["disc_ref_ref_cod_disciplina"]] == "S") { // Verifica se a média do aluno é igual ou superior a média mínima if ($exame["media"] >= $this->media_exame) { // Verifica se o aluno não foi reprovado if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N") { $aprovado[$exame["ref_ref_cod_matricula"]] = "S"; } } else { $aprovado[$exame["ref_ref_cod_matricula"]] = "N"; } } } } } if (is_array($aprovado)) { foreach ($aprovado as $matricula => $verificador) { // Verifica se o aluno foi aprovado if ($verificador == "S") { $obj_matricula = new clsPmieducarMatricula($matricula); $det_matricula = $obj_matricula->detalhe(); // Verifica se a matrícula está em exame if ($det_matricula["aprovado"] == 7) { $obj_historico = new clsPmieducarHistoricoEscolar(); $lst_historico = $obj_historico->lista($matricula); $seq = count($lst_historico) + 1; $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1); $det_ano_letivo = $obj_ano_letivo->detalhe(); $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola); $det_escola = $obj_escola->detalhe(); // Verifica se o aluno foi aprovado if ($verificador == "S") { if ($this->falta_ch_globalizada == 1) { $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 1); } else { $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 0); } if ($obj_historico->cadastra()) { $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1); if ($obj_matricula->edita()) { $this->mensagem = "Falha ao editar a matricula!<br>"; } } else { $this->mensagem = "Falha ao cadastrar o historico!<br>"; } } } } // Verifica se o aluno foi reprovado if ($verificador == "N") { $obj_historico = new clsPmieducarHistoricoEscolar(); $lst_historico = $obj_historico->lista($matriculas[0]); $seq = count($lst_historico) + 1; $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1); $det_ano_letivo = $obj_ano_letivo->detalhe(); $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola); $det_escola = $obj_escola->detalhe(); if ($this->falta_ch_globalizada == 1) { $obj_historico = new clsPmieducarHistoricoEscolar($matriculas[0], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 1); } else { $obj_historico = new clsPmieducarHistoricoEscolar($matriculas[0], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 0); } if ($obj_historico->cadastra()) { $obj_matricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2); if (!$obj_matricula->edita()) { $this->mensagem = "Falha ao alterar a matricula!<br>"; } } else { $this->mensagem = "Falha ao cadastrar o historico!<br>"; } } } } header("location: educar_turma_nota_cad.php?ref_cod_turma={$this->ref_cod_turma}&ref_ref_cod_escola={$this->ref_ref_cod_escola}&ref_ref_cod_serie={$this->ref_ref_cod_serie}&ref_cod_curso={$this->ref_cod_curso}"); die; } } } } header("location: educar_turma_nota_cad.php?ref_cod_turma={$this->ref_cod_turma}&ref_ref_cod_escola={$this->ref_ref_cod_escola}&ref_ref_cod_serie={$this->ref_ref_cod_serie}&ref_cod_curso={$this->ref_cod_curso}"); die; } } }
function Novo() { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; @session_write_close(); $obj_permissoes = new clsPermissoes(); $obj_permissoes->permissao_cadastra(650, $this->pessoa_logada, 7, "educar_turma_mvto_det.php"); if ($this->passo == 1) { // selecionou o curso, nao cadastra nada return true; } else { if ($this->passo == 2) { // deu notas e faltas aos alunos $objCurso = new clsPmieducarCurso($this->ref_cod_curso); $detalhe_curso = $objCurso->detalhe(); $db = new clsBanco(); $qtd_disciplinas = $db->CampoUnico("SELECT COUNT(0) FROM pmieducar.escola_serie_disciplina WHERE ref_ref_cod_serie = '{$this->ref_cod_serie_disciplina}' AND ref_ref_cod_escola = '{$this->ref_ref_cod_escola}' AND ativo = 1"); foreach ($this->nota as $matricula => $sequencial) { // cadastra a nota if ($this->is_nota_exame) { $nota = str_replace(",", ".", $sequencial); $objNotaAluno = new clsPmieducarNotaAluno(null, null, null, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, $this->pessoa_logada, null, null, null, $this->num_modulo, null, $nota); } else { $objNotaAluno = new clsPmieducarNotaAluno(null, $sequencial, $detalhe_curso["ref_cod_tipo_avaliacao"], $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, $this->pessoa_logada, null, null, null, $this->num_modulo, null); } $existe_nota = $objNotaAluno->lista(null, null, $detalhe_curso["ref_cod_tipo_avaliacao"], $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, null, null, null, null, null, 1, $this->num_modulo, null, null); /** * somente cadastra * se nao tiver nenhuma nota * cadastrada para a disciplina */ if ($existe_nota) { $cadastrado = $objNotaAluno->edita(); } else { $cadastrado = $objNotaAluno->cadastra(); } $existe_nota = null; $ultima_nota = false; if ($cadastrado) { // nota cadastrada com sucesso // verifica se essa eh a ultima nota desse modulo. Se for passa o aluno pro proximo modulo $qtd_dispensas = (int) $db->CampoUnico("SELECT COUNT(0) AS dispensas FROM pmieducar.dispensa_disciplina WHERE ref_cod_matricula = '{$matricula}' AND ativo = 1"); $qtd_notas = (int) $db->CampoUnico("SELECT COUNT(0) AS notas FROM pmieducar.nota_aluno WHERE ref_cod_matricula = '{$matricula}' AND ativo = 1 AND modulo = '{$this->num_modulo}'"); if ($qtd_dispensas + $qtd_notas >= $qtd_disciplinas) { // eh a ultima nota do modulo, vamos passar o aluno adiante $ultima_nota = true; $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada); $det_matricula = $objMatricula->detalhe(); $max_modulo_nota = (int) $db->CampoUnico("SELECT max(modulo) FROM pmieducar.nota_aluno WHERE ref_cod_matricula = '{$matricula}' AND ativo = 1"); /** * so avança o modulo * caso ele seja igual ao da maior nota * e que seja a ultima disciplina */ if ($det_matricula['modulo'] <= $max_modulo_nota) { $objMatricula->avancaModulo(); } } // tratamento para faltas if (!$this->falta_ch_globalizada) { // se a falta nao for globalizada adiciona falta $this->falta[$matricula] = $this->falta[$matricula] ? $this->falta[$matricula] : 0; $objFaltaAluno = new clsPmieducarFaltaAluno(null, null, $this->pessoa_logada, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, $this->falta[$matricula], null, null, null, $this->num_modulo); $existe_falta = $objFaltaAluno->lista(null, null, null, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, null, null, null, null, 1, $this->num_modulo); /** * somente cadastra se * jah nao tiver sido cadastrado */ if ($existe_falta) { $objFaltaAluno->edita(); } else { $objFaltaAluno->cadastra(); } } else { // falta eh globalizada if ($this->ultima_nota[$matricula]) { // essa eh a ultima nota do aluno nesse modulo, vamos adicionar a falta globalizada dele $this->falta[$matricula] = $this->falta[$matricula] ? $this->falta[$matricula] : 0; $objFaltas = new clsPmieducarFaltas($matricula, $this->num_modulo, $this->pessoa_logada, $this->falta[$matricula]); if ($objFaltas->existe()) { $objFaltas->edita(); } else { $objFaltas->cadastra(); } } } // quando for o ultimo modulo o aluno deve ser aprovado, reprovado, marcado como excessao, ou colocado em exame if ($ultima_nota && $this->num_modulo == $this->max_modulos) { // esta na ultima nota do ultimo modulo $objEscolaSerieDisciplina = new clsPmieducarEscolaSerieDisciplina(); $listaEscolaSerieDisciplina = $objEscolaSerieDisciplina->lista($this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, null, 1); //$this->ref_cod_serie_disciplina $this->ref_ref_cod_serie $reprovado_por_nota = false; $existiu_excessao = false; $obj_serie = new clsPmieducarSerie($this->ref_cod_serie_disciplina); $det_serie = $obj_serie->detalhe(); $media_especial = dbBool($det_serie['media_especial']); if (is_array($listaEscolaSerieDisciplina)) { // percorre todas as disciplinas $reprovou_ultima_nota = false; $foi_aprovado = null; foreach ($listaEscolaSerieDisciplina as $value) { $excessao = false; $nota = false; // ve as faltas if (!$this->falta_ch_globalizada) { $objFaltaAluno = new clsPmieducarFaltaAluno(); $faltas = $objFaltaAluno->total_faltas_disciplina($matricula, $value["ref_cod_disciplina"], $value["ref_ref_cod_serie"]); if ($reprovou) { // se reprovou cria uma excessao $existiu_excessao = true; $excessao = true; } } /** * se a media for especial somente * verifica se nao esta reprovado por falta */ if ($media_especial) { continue; } if (!dbBool($det_serie["ultima_nota_define"])) { // ve a media /** * @author HY 15-12-2006 * @see quando for dar as notas e for calcular a ultima * ao fazer a media e essa nota estiver abaixo nao * pode ser feito o arredondamento, somente se estiver * acima da media deixando o aluno em exame */ $objNotaAluno = new clsPmieducarNotaAluno(); $media = $objNotaAluno->getMediaAluno($matricula, $value["ref_cod_disciplina"], $value["ref_ref_cod_serie"], $this->max_modulos, $detalhe_curso["media"]); if ($media < $detalhe_curso["media"]) { // se reprovar em alguma marca uma flag de reprovado por nota (nao edita o aluno porque ele ainda vai fazer exame) $reprovado_por_nota = true; $nota = true; } } else { // echo "<pre>"; print_r($detalhe_curso); die(); $objNotaAluno = new clsPmieducarNotaAluno(); $ultima_nota_modulo = $objNotaAluno->getUltimaNotaModulo($matricula, $value["ref_cod_disciplina"], $value["ref_ref_cod_serie"], $this->num_modulo); if ($ultima_nota_modulo < $detalhe_curso["media"]) { $foi_aprovado = 2; $reprovou_ultima_nota = true; } } if ($excessao) { // existiu uma excessao entao cria um registro de excessao no banco $objExcessao = new clsPmieducarMatriculaExcessao(null, $matricula, $this->ref_cod_turma, 1, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $value["ref_cod_disciplina"], true, $nota); $objExcessao->cadastra(); } } if (dbBool($det_serie["ultima_nota_define"])) { if ($reprovou_ultima_nota) { $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2); $objMatricula->edita(); } else { $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 1); $objMatricula->edita(); $foi_aprovado = 1; } } /** * calcula outro modo de média se for especial */ if ($media_especial) { $objNotaAluno = new clsPmieducarNotaAluno(); $media = $objNotaAluno->getMediaEspecialAluno($matricula, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->max_modulos, $detalhe_curso["media"]); if ($media < $detalhe_curso["media"]) { // se reprovar marca uma flag de reprovado por nota ( $reprovado_por_nota = true; $nota = true; } } } if (!$reprovado_por_nota && !$existiu_excessao && !dbBool($det_serie["ultima_nota_define"])) { // nao foi reprovado em nenhuma disciplina e nao teve nenhuma excessao //marca como aprovado $foi_aprovado = 1; $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 1); $objMatricula->edita(); } /** * media especial e reprovado por falta.. marca aluno como reprovado se nao marca como aprovado */ if ($media_especial) { $aprovado = $reprovado_por_nota ? '2' : '1'; $foi_aprovado = $aprovado; $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, $aprovado); $objMatricula->edita(); } } else { if ($this->num_modulo - 1 == $this->max_modulos) { // se estiver recebendo nota do exame temos que ver se eh a ultima, se for temos que aprovar/reprovar o aluno // num_modulo == max_modulo = ultimo modulo // num_modulo - 1 == max_modulo = exame // esta no exame $objNotaAluno = new clsPmieducarNotaAluno(); $qtd_exames = $objNotaAluno->getQtdMateriasExame($matricula, $this->max_modulos, $detalhe_curso["media"], true); $qtd_notas_exame = $objNotaAluno->getQtdNotasExame($matricula, $this->max_modulos); //die("recebendo nota de exame!!!! [{$qtd_exames}] [{$qtd_notas_exame}]"); if ($qtd_exames == $qtd_notas_exame) { // eh a ultima disciplina do exame $reprovado = false; $disciplinas_exame = $objNotaAluno->getDisciplinasExameDoAluno($matricula, $this->max_modulos, $detalhe_curso["media"], true); if (is_array($disciplinas_exame)) { foreach ($disciplinas_exame as $disciplina) { $media_exame = $objNotaAluno->getMediaAlunoExame($matricula, $disciplina["cod_disciplina"], $disciplina["cod_serie"], $this->max_modulos); // se reprovou marca como reprovado e sai do loop (break) //abaixo original // $media_exame = $objNotaAluno->getMediaAluno($matricula,$disciplina["cod_disciplina"],$disciplina["cod_serie"],$this->max_modulos + 1, false, true); if ($media_exame < $detalhe_curso["media_exame"]) { // reprovou //remove possiveis excessoes $objExcessoes = new clsPmieducarMatriculaExcessao(); $objExcessoes->excluirPorMatricula($matricula); // marca como reprovado $foi_aprovado = 2; $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2); $objMatricula->edita(); $reprovado = true; break; } } } if (!$reprovado) { // se chegar aqui sem ter sido reprovado, marca como aprovado //remove possiveis excessoes $objExcessoes = new clsPmieducarMatriculaExcessao(); $objExcessoes->excluirPorMatricula($matricula); // aprova $foi_aprovado = 1; $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 1); $objMatricula->edita(); } else { // se chegar aqui sem ter sido reprovado, marca como aprovado //remove possiveis excessoes $objExcessoes = new clsPmieducarMatriculaExcessao(); $objExcessoes->excluirPorMatricula($matricula); // reprova $foi_aprovado = 2; $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2); $objMatricula->edita(); } } } } } /**************HISTORICO ESCOLAR****************************/ if ($foi_aprovado == 1 || $foi_aprovado == 2) { $obj_serie = new clsPmieducarSerie($this->ref_ref_cod_serie); $det_serie = $obj_serie->detalhe(); $carga_horaria_serie = $det_serie["carga_horaria"]; $obj_escola = new clsPmieducarEscola($this->ref_ref_cod_escola); $det_escola = $obj_escola->detalhe(); $ref_idpes = $det_escola["ref_idpes"]; $this->ref_cod_instituicao = $det_escola["ref_cod_instituicao"]; $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo(); $lst_ano_letivo = $obj_ano_letivo->lista($this->ref_ref_cod_escola, null, null, null, 1, null, null, null, null, 1); if (is_array($lst_ano_letivo)) { $det_ano_letivo = array_shift($lst_ano_letivo); $this->ano_letivo = $det_ano_letivo["ano"]; } // busca informacoes da escola if ($ref_idpes) { $obj_escola = new clsPessoaJuridica($ref_idpes); $det_escola = $obj_escola->detalhe(); $nm_escola = $det_escola["fantasia"]; if ($det_escola) { $cidade = $det_escola["cidade"]; $uf = $det_escola["sigla_uf"]; } } else { if (class_exists("clsPmieducarEscolaComplemento")) { $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola); $det_escola = $obj_escola->detalhe(); $nm_escola = $det_escola["nm_escola"]; $cidade = $det_escola["municipio"]; } } $this->padrao_ano_escolar = $detalhe_curso["padrao_ano_escolar"]; if ($this->padrao_ano_escolar) { $extra_curricular = 0; } else { $extra_curricular = 1; } $sql = "SELECT SUM(falta) FROM pmieducar.faltas WHERE ref_cod_matricula = {$matricula}"; $db5 = new clsBanco(); $total_faltas = $db5->CampoUnico($sql); $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($detalhe_curso["ref_cod_tipo_avaliacao"]); $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe(); $this->conceitual = $det_tipo_avaliacao["conceitual"]; $obj_aluno = new clsPmieducarMatricula($matricula); $det_aluno = $obj_aluno->detalhe(); $this->ref_cod_aluno = $det_aluno["ref_cod_aluno"]; $obj = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, null, null, $this->pessoa_logada, $det_serie['nm_serie'], $this->ano_letivo, $carga_horaria_serie, null, $nm_escola, $cidade, $uf, null, $foi_aprovado, null, null, 1, $total_faltas, $this->ref_cod_instituicao, 0, $extra_curricular, $matricula); $cadastrou2 = $obj->cadastra(); if ($cadastrou2 && !$this->conceitual) { $obj_historico = new clsPmieducarHistoricoEscolar(); $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno); $historico_disciplina = array(); $obj_disciplina_hist = new clsPmieducarEscolaSerieDisciplina(); $lst_disciplina_hist = $obj_disciplina_hist->lista($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, null, 1); foreach ($lst_disciplina_hist as $disciplina_hist) { $objFaltaAluno = new clsPmieducarFaltaAluno(); $faltas = $objFaltaAluno->total_faltas_disciplina($matricula, $disciplina_hist["ref_cod_disciplina"], $this->ref_ref_cod_serie); $historico_disciplina[$disciplina_hist["ref_cod_disciplina"]] = $faltas; $obj_nota_aluno = new clsPmieducarNotaAluno(); $obj_nota_aluno->setOrderby("modulo ASC"); $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $disciplina_hist["ref_cod_disciplina"], $matricula, null, null, null, null, null, null, 1); $possui_nota_exame = false; foreach ($lst_nota_aluno as $nota_aluno) { if (dbBool($det_serie["ultima_nota_define"])) { $obj_tipo_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"], null, null, null, null, 1); $det_tipo_avaliacao_valores = $obj_tipo_avaliacao_valores->detalhe(); $soma_notas[$disciplina_hist["ref_cod_disciplina"]] = $det_tipo_avaliacao_valores["valor"]; } else { if ($nota_aluno["nota"]) { $soma_notas[$disciplina_hist["ref_cod_disciplina"]] += $nota_aluno["nota"] * 2; $possui_nota_exame = true; } else { $obj_tipo_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"], null, null, null, null, 1); $det_tipo_avaliacao_valores = $obj_tipo_avaliacao_valores->detalhe(); $soma_notas[$disciplina_hist["ref_cod_disciplina"]] += $det_tipo_avaliacao_valores["valor"]; } } } if (!dbBool($det_serie["ultima_nota_define"])) { if ($possui_nota_exame) { $soma_notas[$disciplina_hist["ref_cod_disciplina"]] /= $this->num_modulo + 1; } else { $soma_notas[$disciplina_hist["ref_cod_disciplina"]] /= $this->max_modulos; } } /*************FALTAS******************/ // $this->falta_ch_globalizada = $detalhe_curso["falta_ch_globalizada"]; $this->ref_cod_tipo_avaliacao = $detalhe_curso["ref_cod_tipo_avaliacao"]; if (!$detalhe_curso["falta_ch_globalizada"]) { $obj_falta_aluno = new clsPmieducarFaltaAluno(); $lst_falta_aluno = $obj_falta_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $disciplina_hist["ref_cod_disciplina"], $matricula, null, null, null, null, null, 1); if (is_array($lst_falta_aluno)) { foreach ($lst_falta_aluno as $key => $falta_aluno) { $soma_faltas[$disciplina_hist["ref_cod_disciplina"]][$key] = $falta_aluno["faltas"]; } } } } $faltas_media_aluno = array(); if (is_array($soma_faltas)) { foreach ($soma_faltas as $cod_disciplina => $faltas) { foreach ($array_faltas as $falta) { $faltas_media_aluno[$disciplina] += $falta; } } } $obj_historico = new clsPmieducarHistoricoEscolar(); $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno); $historico_disciplina = array(); foreach ($soma_notas as $key => $nota) { $historico_disciplina[$key] = array($nota, $faltas_media_aluno[$key]); } foreach ($historico_disciplina as $cod_disciplina => $campo) { $obj_disciplina_cad = new clsPmieducarDisciplina($cod_disciplina); $det_disciplina_cad = $obj_disciplina_cad->detalhe(); $nm_disciplina = $det_disciplina_cad["nm_disciplina"]; $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores(); $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $campo[0], $campo[0]); if (is_array($lst_avaliacao_valores)) { $det_avaliacao_valores = array_shift($lst_avaliacao_valores); $nm_nota = $det_avaliacao_valores["nome"]; $obj = new clsPmieducarHistoricoDisciplinas(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]); $cadastrou3 = $obj->cadastra(); if (!$cadastrou3) { die("nao cadastrou"); } } } } else { if (!$cadastrou2) { $this->mensagem = "Cadastro do Histórico Escolar não realizado.<br>"; return false; } } } /**************HISTORICO ESCOLAR****************************/ } $this->ref_cod_disciplina = null; $this->passo = 0; return true; } else { if ($this->passo == 3) { if ($this->pula_passo) { $this->pula_passo = false; if (is_array($this->nota) && is_array($this->resultado_final) && is_array($this->falta)) { foreach ($this->nota as $matricula => $value) { $objTpAvalValores = new clsPmieducarTipoAvaliacaoValores($this->ref_cod_tipo_avaliacao, $value, null, null, null, null, 1); $valorNota = $objTpAvalValores->detalhe(); $objNotaAluno = new clsPmieducarNotaAluno(null, $value, $this->ref_cod_tipo_avaliacao, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, $this->pessoa_logada, null, null, null, $this->num_modulo, $this->ref_cod_curso, $valorNota["valor"]); if (!$objNotaAluno->cadastra()) { die("não cadastrou (nota)"); } $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, $this->pessoa_logada, null, $this->resultado_final[$matricula]); if (!$objMatricula->edita()) { die("não cadastrou (resultado final)"); } $objFaltaAluno = new clsPmieducarFaltaAluno(); $existe_falta = $objFaltaAluno->lista(null, null, null, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, null, null, null, null, 1, $this->modulo, $this->ref_cod_disciplina); if ($existe_falta) { $objFaltaAluno = new clsPmieducarFaltaAluno($existe_falta[0]['cod_falta_aluno'], $this->pessoa_logada, $this->pessoa_logada, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, $this->falta[$matricula], null, null, null, $this->num_modulo); if (!$objFaltaAluno->edita()) { die("não editou (falta)"); } } else { $objFaltaAluno = new clsPmieducarFaltaAluno(null, null, $this->pessoa_logada, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, $this->falta[$matricula], null, null, null, $this->num_modulo); if (!$objFaltaAluno->cadastra()) { die("não cadastrou (falta)"); } } } } else { die("falto parâmetros"); } } // die("nao"); // o professor decidiu sobre as excessoes foreach ($this->excessao as $cod_excessao => $sentenca) { $objExcessao = new clsPmieducarMatriculaExcessao($cod_excessao); $detalhe_excessao = $objExcessao->detalhe(); // verifica se ela ainda existe porque se houve uma sentenca anterior para o mesmo aluno reprovando ele, todas as outras sentencas sao removidas if ($detalhe_excessao) { if ($sentenca == 0) { // aluno reprovado // reprova aluno $objMatricula = new clsPmieducarMatricula($detalhe_excessao["ref_cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 2); $objMatricula->edita(); // remove excessoes $objExcessao->excluirPorMatricula($detalhe_excessao["ref_cod_matricula"]); $this->passo = 0; return true; } else { if ($sentenca == 1) { // aluno podera fazer exame // remove excessao $objExcessao->excluir(); $this->passo = 0; return true; } else { if ($sentenca == 2) { // aluno aprovado // aprova aluno $objMatricula = new clsPmieducarMatricula($detalhe_excessao["ref_cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1); $objMatricula->edita(); // remove excessao $objExcessao->excluir(); $this->passo = 0; return true; } } } } } } else { if ($this->passo == 4) { // echo "<pre>"; print_r($this->resultado_final); die(); // aprovou/reprovou alunos manualmente $objCurso = new clsPmieducarCurso($this->ref_cod_curso); foreach ($this->resultado_final as $key => $value) { if ($value) { // remove excessoes $objExcessao = new clsPmieducarMatriculaExcessao(); $objExcessao->excluirPorMatricula($key); // aprova/reprova $objMatricula = new clsPmieducarMatricula($key, null, null, null, $this->pessoa_logada, null, null, $value); $objMatricula->edita(); } } $this->passo = 0; return true; } } } } return false; }