function editaCNotasFaltas() { if (is_array($this->disciplina_modulo)) { foreach ($this->disciplina_modulo as $avaliacao) { $obj_nota_aluno = new clsPmieducarNotaAluno($avaliacao['cod_nota_aluno'], null, null, null, null, null, $this->ref_cod_matricula, null, null, null, null, 1, $this->modulo, $avaliacao["ref_cod_disciplina"]); $existe_nota = $obj_nota_aluno->existe(); if ($existe_nota) { if (is_numeric($avaliacao['nota'])) { $obj_nota_aluno = new clsPmieducarNotaAluno($avaliacao['cod_nota_aluno'], $avaliacao['nota'], $this->ref_cod_tipo_avaliacao, null, null, null, $this->ref_cod_matricula, $this->pessoa_logada, null, null, null, 1, $this->modulo, $avaliacao["ref_cod_disciplina"]); } else { $avaliacao["nota"] = str_replace(".", "", $avaliacao["nota"]); $avaliacao["nota"] = str_replace(",", ".", $avaliacao["nota"]); $obj_nota_aluno = new clsPmieducarNotaAluno($avaliacao['cod_nota_aluno'], null, null, null, null, null, $this->ref_cod_matricula, $this->pessoa_logada, null, null, null, 1, $this->modulo, $avaliacao["ref_cod_disciplina"], $avaliacao['nota']); } if ($avaliacao['nota'] == -1) { $editou_nota = $obj_nota_aluno->excluir(); } else { $editou_nota = $obj_nota_aluno->edita(); } if (!$editou_nota) { $this->mensagem = "Edição não realizada.<br>"; echo "<!--\nErro ao editar clsPmieducarNotaAluno\nvalores obrigatorios\nis_numeric( {$avaliacao['cod_nota_aluno']} ) && is_numeric( {$this->pessoa_logada} ) \n-->"; return false; } } else { if (is_numeric($avaliacao['nota'])) { $obj_nota_aluno = new clsPmieducarNotaAluno(null, $avaliacao["nota"], $this->ref_cod_tipo_avaliacao, null, null, null, $this->ref_cod_matricula, null, $this->pessoa_logada, null, null, 1, $this->modulo, $avaliacao["ref_cod_disciplina"]); } else { $avaliacao["nota"] = str_replace(".", "", $avaliacao["nota"]); $avaliacao["nota"] = str_replace(",", ".", $avaliacao["nota"]); $obj_nota_aluno = new clsPmieducarNotaAluno(null, null, null, null, null, null, $this->ref_cod_matricula, null, $this->pessoa_logada, null, null, 1, $this->modulo, $avaliacao["ref_cod_disciplina"], $avaliacao["nota"]); } if (is_numeric($avaliacao['nota'])) { $cadastrou_nota = $obj_nota_aluno->cadastra(); if (!$cadastrou_nota) { $this->mensagem = "Cadastro não realizado.<br>"; echo "<!--\nErro ao cadastrar clsPmieducarNotaAluno\nvalores obrigatorios\nis_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->ref_ref_cod_serie} ) && is_numeric( {$this->ref_ref_cod_escola} ) && is_numeric( {$avaliacao["ref_cod_disciplina"]} ) && is_numeric( {$this->ref_cod_matricula} ) && is_numeric( {$avaliacao["nota"]} ) && is_numeric( {$this->modulo} )\n-->"; return false; } } } if ($this->qtd_modulos >= $this->modulo && !$this->falta_ch_globalizada && is_numeric($avaliacao["faltas"])) { $obj_falta_aluno = new clsPmieducarFaltaAluno($avaliacao['cod_falta_aluno'], null, null, null, null, null, $this->ref_cod_matricula, null, null, null, 1, $this->modulo, $avaliacao["ref_cod_disciplina"]); $existe_falta = $obj_falta_aluno->existe(); if ($existe_falta) { $obj_falta_aluno = new clsPmieducarFaltaAluno($avaliacao['cod_falta_aluno'], $this->pessoa_logada, null, null, null, null, $this->ref_cod_matricula, $avaliacao["faltas"], null, null, 1, $this->modulo, $avaliacao["ref_cod_disciplina"]); $editou_falta = $obj_falta_aluno->edita(); if (!$editou_falta) { $this->mensagem = "Edição não realizada.<br>"; echo "<!--\nErro ao editar clsPmieducarFaltaAluno\nvalores obrigatorios\nis_numeric( {$avaliacao['cod_falta_aluno']} ) && is_numeric( {$this->pessoa_logada} ) \n-->"; return false; } } else { $obj_falta_aluno = new clsPmieducarFaltaAluno(null, null, $this->pessoa_logada, null, null, null, $this->ref_cod_matricula, $avaliacao["faltas"], null, null, 1, $this->modulo, $avaliacao["ref_cod_disciplina"]); $cadastrou_falta = $obj_falta_aluno->cadastra(); if (!$cadastrou_falta) { $this->mensagem = "Cadastro não realizado.<br>"; echo "<!--\nErro ao cadastrar clsPmieducarFaltaAluno\nvalores obrigatorios\nis_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->ref_ref_cod_serie} ) && is_numeric( {$this->ref_ref_cod_escola} ) && is_numeric( {$avaliacao["ref_cod_disciplina"]} ) && is_numeric( {$this->ref_cod_matricula} ) && is_numeric( {$avaliacao["faltas"]} ) && is_numeric( {$this->modulo} )\n-->"; return false; } } } } if ($this->qtd_modulos >= $this->modulo && $this->falta_ch_globalizada && is_numeric($this->total_faltas)) { $obj_faltas = new clsPmieducarFaltas($this->ref_cod_matricula, $this->modulo); $existe_faltas = $obj_faltas->existe(); if ($existe_faltas) { $obj_faltas = new clsPmieducarFaltas($this->ref_cod_matricula, $this->modulo, null, $this->total_faltas); $editou_faltas = $obj_faltas->edita(); if (!$editou_faltas) { $this->mensagem = "Edição não realizada.<br>"; echo "<!--\nErro ao editar clsPmieducarFaltas\nvalores obrigatorios\nis_numeric( {$this->ref_cod_matricula} ) && is_numeric( {$this->modulo} ) && is_numeric( {$this->total_faltas} )\n-->"; return false; } } else { $obj_faltas = new clsPmieducarFaltas($this->ref_cod_matricula, $this->modulo, $this->pessoa_logada, $this->total_faltas); $cadastrou_faltas = $obj_faltas->cadastra(); if (!$cadastrou_faltas) { $this->mensagem = "Cadastro não realizado.<br>"; echo "<!--\nErro ao cadastrar clsPmieducarFaltas\nvalores obrigatorios\nis_numeric( {$this->ref_cod_matricula} ) && is_numeric( {$this->modulo} ) && is_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->total_faltas} )\n-->"; return false; } } } } else { $this->mensagem = "Ediçatilde;o não realizada. (Não foi gerado o Array de notas e faltas das Disciplinas).<br>"; return false; } }
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; }