// verifica aprovacao a qualquer tempo considerando qualquer disciplina equivalente, dispensa, etc, em relacao ao contrato
 if (verificaAprovacaoContrato($aluno_id, $curso_id, $contrato_id, $oferecida)) {
     $situacao = 'A';
 } else {
     $situacao = 'R';
 }
 // verifica aprovacao considerando exatamente a disciplina matriculada ou dispensada em relacao ao contrato
 if (verificaAprovacaoContratoDisciplina($aluno_id, $curso_id, $contrato_id, $oferecida)) {
     $situacao = 'A';
 } else {
     $situacao = 'R';
 }
 if (!verificaPeriodo($ref_periodo) && $fl_finalizada == 'f') {
     $situacao = 'M';
 }
 if (verificaEquivalencia($curso_id, $oferecida)) {
     $matricula .= ' / DE';
 }
 if ($nota_final == '') {
     $nota_final = ' - ';
 }
 $pfaltas = 0;
 $stfaltas = 0;
 if (!empty($carga_realizada)) {
     $perfaltas = $faltas_materia * 100 / $carga_realizada;
     $pfaltas = substr($perfaltas, 0, 5);
     $stfaltas = $pfaltas;
     //$stfaltas = getNumeric2Real($pfaltas) . ' %';
 } else {
     //$pfaltas = '-';
     $stfaltas = $pfaltas;
예제 #2
0
function verificaRequisitos($aluno_id, $curso_id, $diario_id)
{
    global $conn;
    // -- Verifica se o aluno ja eliminou os pre-requisitos
    // existe  pre-requisito? considera somente os pré-requisito para o curso do aluno
    $disciplinas = " SELECT get_disciplina_de_disciplina_of('{$diario_id}') ";
    // se é uma disciplina equivalente verifica os pré-requisitos da disciplina "original" da matriz curricular
    if (verificaEquivalencia($curso_id, $diario_id)) {
        // a disciplina é equivalente, recupera a disciplina "original" da matriz curricular
        $sqlEquivalente = "\r\n                    SELECT \r\n                          DISTINCT \r\n                                ref_disciplina\r\n                        FROM\r\n                                disciplinas_equivalentes \r\n                        WHERE \r\n                             ref_disciplina_equivalente = get_disciplina_de_disciplina_of('{$diario_id}') AND \r\n                             ref_curso = '{$curso_id}';";
        $disc_original = $conn->get_one($sqlEquivalente);
        //        print_r($equivalentes); if ($diario_id = '5354') die;
        if (!empty($disc_original) && is_numeric($disc_original)) {
            $disciplinas = "'" . $disc_original . "'";
        }
    }
    $sqlPreRequisito = "\r\n            SELECT DISTINCT\r\n                ref_disciplina_pre\r\n            FROM\r\n                pre_requisitos \r\n            WHERE\r\n                ref_disciplina IN ( {$disciplinas} ) AND ref_curso = {$curso_id};";
    $pre_requisitos = $conn->get_all($sqlPreRequisito);
    $total_requisitos = count($pre_requisitos);
    $requisitos_matriculados = array();
    if (count($total_requisitos) > 0) {
        foreach ($pre_requisitos as $req) {
            $disc_req = $req['ref_disciplina_pre'];
            // foi aprovado ou dispensado do pre-requisito? considera disciplina equivalente também
            // CONSIDERA SOMATORIO FINAL DE NOTA E DISPENSA
            $sqlPreRequisito1 = "\r\n        \t\t\tSELECT DISTINCT\r\n        \t\t\t\to.id AS diario\r\n        \t\t\tFROM\r\n            \t\t\tmatricula m, disciplinas d, pessoas p, disciplinas_ofer o, periodos s\r\n        \t\t\tWHERE\r\n             \t\t\tm.ref_pessoa = p.id AND\r\n                \t\tp.id = '{$aluno_id}' AND\r\n                \t\tm.ref_disciplina_ofer = o.id AND\r\n                \t\td.id = o.ref_disciplina AND\r\n                \t\to.is_cancelada = '0' AND\r\n                \t\ts.id = o.ref_periodo AND\r\n                \t\t( d.id = '{$disc_req}' OR d.id IN ( select distinct ref_disciplina_equivalente \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom disciplinas_equivalentes \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhere ref_disciplina = '{$disc_req}' and ref_curso = '{$curso_id}'  ) ) AND \r\n        \t       \t\t( m.nota_final >= 60 OR ref_motivo_matricula IN (2,3,4) ); ";
            $requisitos_matriculados = array_merge($requisitos_matriculados, $conn->adodb->getAll($sqlPreRequisito1));
        }
    }
    $ret = FALSE;
    if (count($requisitos_matriculados) > 0) {
        // VERIFICA SE HOUVE REPROVAÇÃO POR FALTAS EM ALGUM PRÉ-REQUISITO
        if (verificaReprovacaoPorFaltas($aluno_id, $requisitos_matriculados)) {
            $ret = TRUE;
        } else {
            $ret = FALSE;
        }
    }
    // VERIFICA SE A QUANTIDADE DE REQUISITOS MATRICULADOS APROVADOS É MAIOR OU IGUAL
    // AOS REQUISITOS  EXIGIDOS PELA DISCIPLINA, NESTE CASO OS REQUISITOS FORAM SATISFEITOS
    if (count($requisitos_matriculados) >= $total_requisitos) {
        $ret = FALSE;
    } else {
        $ret = TRUE;
    }
    return $ret;
}
function ListaPreRequisitos($diario_id, $curso_id)
{
    global $Conexao;
    $disciplinas = " SELECT get_disciplina_de_disciplina_of('{$diario_id}') ";
    // se � uma disciplina equivalente pesquisa os pr�-requisitos da disciplina "original" da matriz curricular
    if (verificaEquivalencia($curso_id, $diario_id)) {
        // a disciplina � equivalente, recupera a disciplina "original" da matriz curricular
        $sqlEquivalente = "\n                    SELECT \n                          DISTINCT \n                                ref_disciplina\n                        FROM\n                                disciplinas_equivalentes \n                        WHERE \n                             ref_disciplina_equivalente = get_disciplina_de_disciplina_of('{$diario_id}') AND \n                             ref_curso = '{$curso_id}';";
        $RsEquivalente = $Conexao->Execute($sqlEquivalente);
        $equivalentes = $RsEquivalente->GetAll();
        if (count($equivalentes) > 0) {
            $disciplinas = $sqlEquivalente;
        }
    }
    $sql = " SELECT id, " . "        ref_curso, " . "        curso_desc(curso_disciplina_ofer({$diario_id})), " . "        ref_disciplina, " . "        descricao_disciplina(ref_disciplina), " . "        ref_disciplina_pre, " . "        descricao_disciplina(ref_disciplina_pre) " . " FROM pre_requisitos ";
    if (is_numeric($diario_id) and is_numeric($curso_id)) {
        $sql .= " WHERE ref_disciplina IN ( {$disciplinas} ) AND ref_curso = {$curso_id} ";
    }
    $sql .= " ORDER BY ref_curso ;";
    $query = $Conexao->Execute($sql);
    echo "<center><table width=\"95%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">";
    echo "<tr><td>&nbsp;</td></tr>";
    echo "<tr>";
    echo "<td bgcolor=\"#000099\" colspan=\"8\" height=\"28\" align=\"center\"><font size=\"3\" face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#FFFFFF\"><b>Pr&eacute;-requisitos Cadastrados</b></font></td>";
    echo "</tr>";
    $i = 1;
    // cores fundo
    $bg0 = "#000000";
    $bg1 = "#DDDDFF";
    $bg2 = "#FFFFEE";
    // cores fonte
    $fg0 = "#FFFFFF";
    $fg1 = "#000099";
    $fg2 = "#000099";
    $aux_curso = -1;
    while (!$query->EOF) {
        $id = $query->fields[0];
        $ref_curso = $query->fields[1];
        $nome_curso = $query->fields[2];
        $ref_disciplina = $query->fields[3];
        $disciplina = $query->fields[4];
        $ref_disciplina_pre = $query->fields[5];
        $disciplina_pre = $query->fields[6];
        if ($aux_curso != $ref_curso) {
            echo "<tr>";
            echo "<td bgcolor=\"#FFFFFF\" colspan=\"7\" height=\"28\" align=\"center\"><font size=\"3\" face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#000077\"><b>&nbsp;<br>{$ref_curso} - {$nome_curso}<br>&nbsp;</b></font></td>";
            echo "</tr>";
            echo "<tr bgcolor=\"#000000\">\n";
            echo "<td width=\"5%\"><Font face=\"Verdana\" size=\"2\" color=\"#ffffff\"><b>Cont</b></font></td>";
            echo "<td width=\"28%\"><Font face=\"Verdana\" size=\"2\" color=\"#ffffff\"><b>C�d - Disciplina</b></font></td>";
            echo "<td width=\"28%\"><Font face=\"Verdana\" size=\"2\" color=\"#ffffff\"><b>C�d - Disciplina Pr�-requisito</b></font></td>";
            echo "<td width=\"34%\" align=\"right\"><Font face=\"Verdana\" size=\"2\" color=\"#ffffff\"><b>Curso&nbsp;&nbsp;</b></font></td>";
            echo "</tr>";
            $aux_curso = $ref_curso;
        }
        if ($i % 2) {
            $bg = $bg1;
            $fg = $fg1;
        } else {
            $bg = $bg2;
            $fg = $fg2;
        }
        echo "<tr bgcolor=\"{$bg}\">\n";
        echo "<td width=\"5%\"><Font face=\"Verdana\" size=\"2\" color=\"{$fg1}\">{$i}</td>";
        echo "<td width=\"28%\"><Font face=\"Verdana\" size=\"2\" color=\"{$fg1}\">{$ref_disciplina} - {$disciplina}</td>";
        echo "<td width=\"28%\"><Font face=\"Verdana\" size=\"2\" color=\"{$fg1}\">{$ref_disciplina_pre} - {$disciplina_pre}</td>";
        echo "<td width=\"34%\" align=\"right\"><Font face=\"Verdana\" size=\"2\" color=\"{$fg1}\">{$ref_curso}&nbsp;&nbsp;</td>";
        echo "  </tr>";
        $i++;
        $query->MoveNext();
    }
    echo "<tr><td colspan=\"8\" align=\"center\"><hr></td></tr>";
    echo "</table></center>";
}