/** * Cria um boletim em HTML para a matricula $matricula * * @param int $matricula * @return array */ function getBoletimAluno($matricula, $ano) { $media = false; $reprovado = 0; $falta_globalizada = 0; $array_status = array("Aprovado", "Reprovado", "Reprovado por faltas"); $objCurso = new clsPmieducarCurso($this->ref_cod_curso); $detalhe_curso = $objCurso->detalhe(); // monta o boletim do aluno $cor = array("#ffffff", "#dce6f1"); $corDest = array("#e1c9c9", "#efe7e7"); $boletim = "\n\t\t<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" style=\"border-width:2px;color#00000;border-style:solid;\">\n\t\t\t<tr bgcolor=\"#ffffff\">\n\t\t\t\t<td rowspan=\"2\" class=\"cell_normal\" align=\"center\">Disciplina</td>\n\t\t"; $linha2 = "<tr bgcolor=\"#ffffff\">"; $objTurmaModulo = new clsPmieducarAnoLetivoModulo(); $objTurmaModulo->setOrderby("sequencial ASC"); $lista_modulos = $objTurmaModulo->lista($ano, $this->ref_ref_cod_escola); if (is_array($lista_modulos)) { foreach ($lista_modulos as $modulo) { $objModulo = new clsPmieducarModulo($modulo["ref_cod_modulo"]); $detModulo = $objModulo->detalhe(); $boletim .= "<td colspan=\"2\" class=\"cell_separa\" align=\"center\">{$detModulo["nm_tipo"]}</td>"; $linha2 .= "\n\t\t\t\t<td class=\"cell_separa\" align=\"center\" width=\"40\">Nota</td>\n\t\t\t\t<td class=\"cell_normal\" align=\"center\" width=\"40\">Faltas</td>\n\t\t\t\t"; } } if (!is_null($detalhe_curso["media_exame"])) { $boletim .= "<td class=\"cell_separa\" align=\"center\">Exame</td>"; $linha2 .= "<td class=\"cell_separa\" align=\"center\">Nota</td>"; } $boletim .= "<td colspan=\"2\" class=\"cell_separa\" align=\"center\">Resultado</td>\n\t\t</tr>\n\t\t"; $linha2 .= "<td class=\"cell_separa\" align=\"center\" width=\"40\">Media</td><td class=\"cell_normal\" align=\"center\" width=\"40\">Faltas</td></tr>"; $boletim .= $linha2; $i = 0; $objDisciplinaSerie = new clsPmieducarDisciplinaSerie(); $lstDisciplinas = $objDisciplinaSerie->lista(null, $this->ref_ref_cod_serie, 1); foreach ($lstDisciplinas as $disciplina) { $i++; $faltas_total = 0; $notas_total = 0; $objDispensa = new clsPmieducarDispensaDisciplina($matricula, $disciplina["ref_cod_serie"], $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"]); $dispensa = $objDispensa->existe(); $objDisciplina = new clsPmieducarDisciplina($disciplina["ref_cod_disciplina"]); $detDisciplina = $objDisciplina->detalhe(); $boletim .= "\n\t\t\t<tr>\n\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_normal\">{$detDisciplina["nm_disciplina"]}</td>\n\t\t\t"; if (is_array($lista_modulos)) { reset($lista_modulos); foreach ($lista_modulos as $modulo) { if ($dispensa) { $boletim .= "\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\" colspan=\"2\" align=\"center\">dispensa</td>\n\t\t\t\t\t\t"; } else { // pegando a falta desse modulo $faltas = 0; $objFaltaAluno = new clsPmieducarFaltaAluno(); $objFaltaAluno->setOrderby("data_cadastro DESC"); $objFaltaAluno->setLimite(1); $lista_faltas = $objFaltaAluno->lista(null, null, null, $disciplina["ref_cod_serie"], $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"], $matricula, null, null, null, null, null, 1, $modulo["sequencial"]); if (is_array($lista_faltas)) { foreach ($lista_faltas as $falta_modulo) { $faltas = $falta_modulo["faltas"]; } } $nota = null; $objNotaAluno = new clsPmieducarNotaAluno(); $objNotaAluno->setOrderby("data_cadastro DESC"); $objNotaAluno->setLimite(1); // echo "<br><br><br>null,null,null,{$this->ref_ref_cod_serie},{$this->ref_ref_cod_escola},{$disciplina["ref_cod_disciplina"]},{$matricula},null,null,null,null,null,1,{$modulo["sequencial"]}\n<br>\n"; $lista_notas = $objNotaAluno->lista(null, null, null, $disciplina["ref_cod_serie"], $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"], $matricula, null, null, null, null, null, null, 1, $modulo["sequencial"]); // print_r($lista_notas); // echo "<br>"; if (is_array($lista_notas)) { foreach ($lista_notas as $nota_modulo) { $objNotaValor = new clsPmieducarTipoAvaliacaoValores($nota_modulo["ref_ref_cod_tipo_avaliacao"], $nota_modulo["ref_sequencial"]); // echo "{$nota_modulo["ref_ref_cod_tipo_avaliacao"]},{$nota_modulo["ref_sequencial"]}\n<br>\n"; $det_nota_valor = $objNotaValor->detalhe(); $nota = $det_nota_valor["nome"]; $notas_total += $det_nota_valor["valor"]; } unset($lista_notas); } $nota = $nota ? $nota : " "; $faltas = $faltas ? $faltas : 0; $faltas_total += $faltas; $boletim .= "\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">{$nota}</td>\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_normal\">{$faltas}</td>\n\t\t\t\t\t\t"; } } $media = $notas_total / count($lista_modulos); $media_aprovacao = $detalhe_curso["media"]; if (!is_null($detalhe_curso["media_exame"])) { // o curso tem exame if ($dispensa) { $boletim .= "\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\" align=\"center\">dispensa</td>\n\t\t\t\t\t\t"; } else { // echo count($lista_modulos); $objNotaAluno = new clsPmieducarNotaAluno(); $objNotaAluno->setLimite(1); $objNotaAluno->setOrderby("data_cadastro DESC"); $listaNotas = $objNotaAluno->lista(null, null, null, $disciplina["ref_cod_serie"], null, $disciplina["ref_cod_disciplina"], $matricula, null, null, null, null, null, null, null, count($lista_modulos) + 1); if ($listaNotas) { // ja recebeu a nota do exame foreach ($listaNotas as $nota_exame) { $objNotaValor = new clsPmieducarTipoAvaliacaoValores($nota_exame["ref_ref_cod_tipo_avaliacao"], $nota_exame["ref_sequencial"]); $detNotaValor = $objNotaValor->detalhe(); $nota_exame = $detNotaValor["nome"]; // print_r($detNotaValor); $notas_total += $detNotaValor["valor"]; $nota_exame = $nota_exame ? $nota_exame : "-"; $boletim .= "<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">{$nota_exame}</td>"; } $media = $notas_total / (count($lista_modulos) + 1); $media_aprovacao = $detalhe_curso["media_exame"]; } else { $nota_exame = $nota_exame ? $nota_exame : "-"; $boletim .= "<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">-</td>"; } } } if ($media !== false) { $objNotaValor = new clsPmieducarTipoAvaliacaoValores(); $objNotaValor->setLimite(1); $objNotaValor->setOrderby("valor DESC"); $notas_media = $objNotaValor->lista($detalhe_curso["ref_cod_tipo_avaliacao"], null, null, null, $media, $media); foreach ($notas_media as $nota_media) { $media = $nota_media["nome"]; if ($nota_media["valor"] < $media_aprovacao) { $reprovado = 1; } } } else { $media = " "; } if ($dispensa) { $boletim .= "\n\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\" colspan=\"2\" align=\"center\">dispensa</td>\n\t\t\t\t\t"; } else { $boletim .= "\n\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">{$media}</td>\n\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_normal\">{$faltas_total}</td>\n\t\t\t\t\t"; } } if (!$detalhe_curso["falta_ch_globalizada"] && $maximo_faltas != "Ilimitado") { if ($faltas_total > $maximo_faltas) { $reprovado = 2; } } $falta_globalizada += $faltas_total; } if ($detalhe_curso["falta_ch_globalizada"] && $maximo_faltas != "Ilimitado") { if ($falta_globalizada > $maximo_faltas) { $reprovado = 2; } } $boletim .= "</table>"; return array("boletim" => $boletim, "automatico" => $array_status[$reprovado]); }