// 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;
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> </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é-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> <br>{$ref_curso} - {$nome_curso}<br> </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 </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} </td>"; echo " </tr>"; $i++; $query->MoveNext(); } echo "<tr><td colspan=\"8\" align=\"center\"><hr></td></tr>"; echo "</table></center>"; }