Ejemplo n.º 1
0
    die('<font size=2><b>Voc&ecirc; n&atilde;o selecionou o ANO ! <a href"javascript:history.go(-1);">Voltar</a>!</b></font>');
  else
    $select_ano = $_POST['select_ano'];
}
else
*/
$data_chamada = $_POST['data_chamada'];
// VERIFICA SE NAO EXISTE CHAMADA NESTA DATA
if (existe_chamada($diario_id, $data_chamada)) {
    die('<script language="javascript" type="text/javascript"> window.alert("Já existe chamada realizada para esta data.");window.history.back(1); </script>');
}
// ^ VERIFICA SE NAO EXISTE CHAMADA NESTA DATA ^ //
$sem_faltas = '';
// HOUVE FALTAS PARA A CHAMADA
$sem_faltas = isset($_POST['flag_falta']) && $_POST['flag_falta'] == 'F' ? '<h3><font color="blue"><b>Nenhum aluno faltou &agrave;(s) ' . $num_aulas . ' aula(s)  do dia ' . $data_chamada . '</b></font></h4>' : '';
$curso = get_curso($diario_id);
$disciplina = get_disciplina($diario_id);
function processa_chamada($alunos_faltas, $num_aulas, $sql_chamada)
{
    global $conn, $data_chamada, $sa_ref_pessoa, $periodo, $diario_id, $sem_faltas;
    // registra a chamada no banco de dados
    $conn->Execute($sql_chamada);
    $resposta .= $sem_faltas;
    if (is_array($alunos_faltas) && count($alunos_faltas) > 0) {
        reset($alunos_faltas);
        foreach ($alunos_faltas as $reg_aluno => $num_faltas) {
            $sqlFaltas = 'BEGIN;';
            if ($num_faltas > 0 && $num_faltas <= $num_aulas) {
                $aluno = $conn->get_one("SELECT nome FROM pessoas WHERE id = {$reg_aluno};");
                $aluno = '<font color="red"><b>' . $aluno . ' (' . $reg_aluno . ')</b></font>';
                if (registra_faltas($reg_aluno, $diario_id, abs($num_faltas), $data_chamada, $sa_ref_pessoa) === TRUE) {
Ejemplo n.º 2
0
<?php

if (!defined('INDEX')) {
    exit('No direct script access allowed');
}
if (!isset($_SESSION['userid'])) {
    header("location:index.php?page=login");
}
if (!isset($_GET['id'])) {
    header("location:index.php?page=miscursos");
}
include_once 'php/database.php';
$EjercicioID = $_GET['id'];
$ejercicio = get_ejercicio($EjercicioID);
$curso = get_curso($ejercicio[0]->CursoID);
$CursoID = $curso[0]->ID;
$cursos_usuario_std = get_user_cursos($_SESSION['userid']);
$cursos_usuario = array();
foreach ($cursos_usuario_std as $curso_usuario) {
    array_push($cursos_usuario, $curso_usuario->CursoID);
}
if (!in_array($CursoID, $cursos_usuario)) {
    header("location:index.php?page=miscursos");
}
if (isset($_POST['subir_solucion'])) {
    $target_dir = "videos/";
    $target_file = $target_dir . basename($_FILES["file_video"]["name"]);
    move_uploaded_file($_FILES["file_video"]["tmp_name"], $target_file);
    $error = "";
    if (!create_solucion($EjercicioID, $_SESSION['userid'], $target_file, $error)) {
        echo $error;
Ejemplo n.º 3
0
function atualiza_diario($aluno, $diario_id, $motivo_matricula = 0)
{
    global $conn;
    // RECUPERA INFORMACOES DO DIARIO
    $qryDisc = " SELECT DISTINCT\n\t\t\t\tprof.ref_professor, o.ref_disciplina, o.ref_periodo \n\t\t\t\tFROM \n\t\t\t\tdisciplinas_ofer o, disciplinas_ofer_prof prof\n            \tWHERE\n                 o.id = " . $diario_id . " AND \n\t\t\t\t o.is_cancelada = '0' AND\n\t\t\t\t o.id = prof.ref_disciplina_ofer ;";
    $diario_info = $conn->get_all($qryDisc);
    // A DISCIPLINA EXISTE
    if (count($diario_info) > 0) {
        foreach ($diario_info as $linha) {
            $getdisciplina = @$linha['ref_disciplina'];
            $getperiodo = @$linha['ref_periodo'];
            $id = @$linha['ref_professor'];
        }
    }
    // ^ A DISCIPLINA EXISTE
    $grupo = $id . "-" . $getperiodo . "-" . $getdisciplina . "-" . $diario_id;
    $grupo_novo = "%-" . $getperiodo . "-%-" . $diario_id;
    $flag_pendencia = 0;
    $qryDiario = 'BEGIN;';
    $getcurso = get_curso($diario_id);
    // VERIFICA PENDENCIAS RELACIONADAS AO LANCAMENTO DE NOTAS
    $sql1 = "SELECT\n\tCOUNT(grupo)\n\tFROM diario_formulas\n\tWHERE\n\tgrupo ILIKE '{$grupo_novo}';";
    $num_formula = $conn->get_one($sql1);
    if ($num_formula == 6) {
        $qryNotas = 'SELECT
		    m.ref_pessoa, id_ref_pessoas 
	        FROM 
	    	matricula m 
	        LEFT JOIN (
		    	SELECT DISTINCT 
				d.id_ref_pessoas 
				FROM 
				diario_notas d 
				WHERE 
				d.d_ref_disciplina_ofer = ' . $diario_id . ' AND
                id_ref_pessoas = ' . $aluno . '
		      ) tmp 
			ON ( m.ref_pessoa = id_ref_pessoas ) 
	    	WHERE 
		        m.ref_disciplina_ofer = ' . $diario_id . ' AND 
		        m.ref_pessoa = ' . $aluno . ' AND
		        id_ref_pessoas IS NULL  AND
			    (m.dt_cancelamento is null) AND
			    (m.ref_motivo_matricula = ' . $motivo_matricula . ')
	        ORDER BY id_ref_pessoas;';
        $alunos_sem_registro_notas = $conn->get_all($qryNotas);
        $num_registros = count($alunos_sem_registro_notas);
        $num_notas = 6;
        if ($num_registros > 0) {
            foreach ($alunos_sem_registro_notas as $registro) {
                $ref_pessoa = $registro['ref_pessoa'];
                for ($i = 1; $i <= $num_notas; $i++) {
                    $qryDiario .= ' INSERT INTO diario_notas(ra_cnec, ';
                    $qryDiario .= ' ref_diario_avaliacao,nota,peso,id_ref_pessoas,';
                    $qryDiario .= ' id_ref_periodos,id_ref_curso,d_ref_disciplina_ofer,';
                    $qryDiario .= ' rel_diario_formulas_grupo)';
                    $qryDiario .= " VALUES({$ref_pessoa},{$i},0,0,{$ref_pessoa},'{$getperiodo}',{$getcurso},";
                    $qryDiario .= " {$diario_id}, '{$grupo}');";
                }
                $qryDiario .= ' INSERT INTO diario_notas(ra_cnec, ';
                $qryDiario .= ' ref_diario_avaliacao,nota,peso,id_ref_pessoas,';
                $qryDiario .= ' id_ref_periodos,id_ref_curso,d_ref_disciplina_ofer,';
                $qryDiario .= ' rel_diario_formulas_grupo)';
                $qryDiario .= " VALUES({$ref_pessoa},7,-1,0,{$ref_pessoa},'{$getperiodo}',{$getcurso},";
                $qryDiario .= " {$diario_id} ,'{$grupo}');";
            }
            $flag_pendencia = 1;
            // $msg .= $num_registros .' alunos com problemas no lancamento de notas\n';
        }
        // ^ VERIFICA PENDENCIAS RELACIONADAS AO LANCAMENTO DE NOTAS ^
        // VERIFICA PENDENCIAS RELACIONADAS AO SOMATORIO DE FALTAS
        $sqlDiarioFaltas = "\n\t\tSELECT * FROM\n\t\t(\n\t\tSELECT DISTINCT\n\t\tregistro_id,\n\t\tCASE\n\t\tWHEN num_faltas IS NULL THEN '0'\n\t\tELSE num_faltas\n\t\tEND AS num_faltas,\n\t\tCASE\n\t\tWHEN faltas_diario IS NULL THEN '0'\n\t\tELSE faltas_diario\n\t\tEND AS faltas_diario\n\t\tFROM\n\t\t(\n\t\tSELECT DISTINCT\n\t\tCAST(a.ref_pessoa AS INTEGER) AS registro_id, a.num_faltas\n\t\tFROM\n\t\tmatricula a\n\t\tWHERE\n\t\ta.ref_periodo = '{$getperiodo}' AND\n\t\ta.ref_disciplina_ofer = {$diario_id} AND\n\t\ta.ref_pessoa = {$aluno}\n\t\t) AS T1\n\t\tFULL OUTER JOIN\n\t\t(\n\t\tSELECT\n\t\tCAST(a.ra_cnec AS INTEGER) AS registro_id, count(CAST(a.ra_cnec AS INTEGER)) AS faltas_diario\n\t\tFROM\n\t\tdiario_chamadas a\n\t\tWHERE\n\t\t(a.ref_periodo = '{$getperiodo}') AND\n\t\t(a.ref_disciplina_ofer = {$diario_id}) AND\n\t\ta.ra_cnec = '{$aluno}'\n\t\tGROUP BY ra_cnec\n\t\t) AS T4\n\n\t\tUSING (registro_id)\n\n\t\t) AS TB\n\n\t\tWHERE\n\t\t(num_faltas <> faltas_diario);";
        $diario_faltas = $conn->get_all($sqlDiarioFaltas);
        $numFalta = count($diario_faltas);
        if ($numFalta != 0) {
            foreach ($diario_faltas as $registro) {
                $ref_pessoa = $registro['registro_id'];
                $faltas = $registro['faltas_diario'];
                $num_faltas = $registro['num_faltas'];
                $qryDiario .= ' UPDATE matricula SET num_faltas = ' . $faltas;
                $qryDiario .= ' WHERE ref_pessoa = ' . $ref_pessoa . ' AND';
                $qryDiario .= " ref_periodo = '{$getperiodo}' AND ";
                $qryDiario .= ' ref_disciplina_ofer = ' . $diario_id . ';';
            }
            $flag_pendencia = 1;
            $msg_atualiza .= 'Atualizado somat&oacute;rio de faltas\\n';
            // $msg .= $numFalta . ' alunos com problemas no somatorio de faltas\n';
        }
        // ^ VERIFICA PENDENCIAS RELACIONADAS AO SOMATORIO DE FALTAS ^
        // VERIFICA PENDENCIAS RELACIONADAS AO SOMATORIO DE NOTAS *** CONSIDERA NOTA EXTRA ***
        $sqlNotas = "\n\t\tSELECT DISTINCT\n\t\tregistro_id, nota_diario, nota_extra, nota_final\n\t\tFROM\n\t\t(\n\t\tSELECT\n\t\tDISTINCT\n\t\tCAST(b.id AS INTEGER) AS registro_id, CAST(SUM(c.nota) AS NUMERIC) AS nota_diario\n\t\tFROM\n\t\tmatricula a, pessoas b, diario_notas c\n\t\tWHERE\n\t\ta.ref_periodo = '{$getperiodo}' AND\n\t\ta.ref_disciplina_ofer = {$diario_id} AND\n\t\tb.ra_cnec = c.ra_cnec AND\n\t\tc.d_ref_disciplina_ofer = {$diario_id} AND\n\t\ta.ref_pessoa = b.id AND\n\t\tb.ra_cnec = '{$aluno}'  AND\n\t\tref_diario_avaliacao < 7\n\t\tGROUP BY b.id\n\t\t) AS T1\n\n\t\tINNER JOIN (\n\t\tSELECT DISTINCT\n\t\tCAST(b.id AS INTEGER) AS registro_id, CAST(c.nota AS NUMERIC) AS nota_extra\n\t\tFROM\n\t\tmatricula a, pessoas b, diario_notas c\n\t\tWHERE\n\t\ta.ref_periodo = '{$getperiodo}' AND\n\t\ta.ref_disciplina_ofer = {$diario_id} AND\n\t\tb.ra_cnec = c.ra_cnec AND\n\t\tc.d_ref_disciplina_ofer = {$diario_id} AND\n\t\ta.ref_pessoa = b.id AND\n\t\tb.ra_cnec = '{$aluno}'  AND\n\t\tref_diario_avaliacao = 7\n\t\t) AS T2\n\n\t\tUSING (registro_id)\n\t\tINNER JOIN\n\n\t\t(\n\t\tSELECT DISTINCT\n\t\tCAST(a.ref_pessoa AS INTEGER) AS registro_id, CAST(a.nota_final AS NUMERIC)\n\t\tFROM\n\t\tmatricula a\n\t\tWHERE\n\t\ta.ref_periodo = '{$getperiodo}' AND\n\t\ta.ref_disciplina_ofer = {$diario_id} AND\n\t\ta.ref_pessoa = {$aluno}\n\t\t) AS T3\n\n\t\tUSING (registro_id)\n\n\t\tWHERE\n\t\tnota_diario <> nota_final;";
        $diario_notas = $conn->get_all($sqlNotas);
        $numNotas = count($diario_notas);
        //print_r($diario_notas);
        if ($numNotas != 0) {
            $numNotas = 0;
            foreach ($diario_notas as $registro) {
                $ref_pessoa = $registro['registro_id'];
                $nota_diario = $registro['nota_diario'];
                $nota_final = $registro['nota_final'];
                $nota_extra = $registro['nota_extra'];
                //print_r($registro);
                if ($nota_extra == -1 && $nota_diario != $nota_final) {
                    // NOTA EXTRA NAO LANCADA E SOMATORIO ERRADO
                    $qryDiario .= ' UPDATE matricula SET nota_final = ' . $nota_diario;
                    $qryDiario .= ' WHERE ref_pessoa = ' . $ref_pessoa . ' AND';
                    $qryDiario .= " ref_periodo = '{$getperiodo}' AND ";
                    $qryDiario .= ' ref_disciplina_ofer = ' . $diario_id . ';';
                    $numNotas++;
                } else {
                    // NOTA EXTRA LANCADA
                    if ($nota_diario < 60 || $nota_final < 60) {
                        // CALCULA NOTA FINAL E VERIFICA NOTA EXTRA SOMENTE COM NOTA < 60
                        // NOTA < 60 RATIFICA O LANCAMENTO DA NOTA EXTRA
                        $nota_final_calculada = calcula_nota_reavaliacao($diario_id, $nota_diario, $nota_extra);
                        if ($nota_final_calculada != $nota_final) {
                            // NOTA EXTRA LANCADA E SOMATORIO ERRADO
                            $qryDiario .= ' UPDATE matricula SET nota_final = ' . $nota_final_calculada;
                            $qryDiario .= ' WHERE ref_pessoa = ' . $ref_pessoa . ' AND';
                            $qryDiario .= " ref_periodo = '{$getperiodo}' AND ";
                            $qryDiario .= ' ref_disciplina_ofer = ' . $diario_id . ';';
                            $numNotas++;
                        }
                    }
                }
            }
            if ($numNotas > 0) {
                $flag_pendencia = 1;
                $msg_atualiza .= 'Atualizado somat&oacute;rio de faltas\\n';
                // $msg .= $numNotas . ' alunos com problemas no somatorio de notas\n';
            }
        }
        // VERIFICA PENDENCIAS RELACIONADAS AO SOMATORIO DE NOTAS *** CONSIDERA NOTA EXTRA ***
        // APLICA A RESOLUCAO DE PENDENCIAS CASO EXISTA ALGUMA
        if ($flag_pendencia == 1) {
            $qryDiario .= "COMMIT;";
            // GRAVA AS ALTERACOES
            $conn->Execute($qryDiario);
            /*
            			if($res === FALSE) {
            
            				// MENSAGEM DE ERRO AO GRAVAR AS ALTERACOES OU ENVIA EMAIL AVISANDO ALGUEM
            				$msg_erro = "";
                            envia_erro($res ."\n\n". $qryDiario);
            
            				//^ MENSAGEM DE ERRO AO GRAVAR AS ALTERACOES OU ENVIA EMAIL AVISANDO ALGUEM
            
            			}
            			else {
            				// MENSAGEM PENDENCIAS RESOLVIDAS COM SUCESSO
            				$msg_sucesso = "";
            				//^ MENSAGEM PENDENCIAS RESOLVIDAS COM SUCESSO
            			}
            */
        } else {
            // MENSAGEM NENHUMA PENDENCIA A RESOLVER
            $msg_sem_pendencias = "";
            //^  MENSAGEM NENHUMA PENDENCIA A RESOLVER
        }
        // ^ APLICA A RESOLUCAO DE PENDENCIAS CASO EXISTA ALGUMA
    }
}
    if ($diario_id == 0) {
        exit('<script language="javascript">
                window.alert("ERRO! Primeiro informe um período e um curso ou um diário!");
				window.close();
		</script>');
    }
    if (!is_diario($diario_id)) {
        exit('<script language="javascript" type="text/javascript">window.alert("ERRO! Diario inexistente ou cancelado!");window.close();</script>');
    }
}
// VERIFICA SE O USUARIO TEM DIREITO DE ACESSO
$sql_coordena = ' SELECT count(*)
							FROM coordenador
							WHERE ref_professor = ' . $sa_ref_pessoa . ' AND ';
if ($diario_id > 0) {
    $sql_coordena .= ' ref_curso = ' . get_curso($diario_id) . ';';
} else {
    $sql_coordena .= ' ref_curso = ' . $curso_id . ';';
}
$coordenacao = $conn->get_one($sql_coordena);
if ($coordenacao == 0) {
    exit('<script language="javascript" type="text/javascript">
            alert(\'Você não tem direito de acesso a estas informações!\');
            window.history.back(1);</script>');
}
// ^ VERIFICA SE O USUARIO TEM DIREITO DE ACESSO ^ /
if ($diario_id == 0) {
    $qryCurso = 'SELECT DISTINCT id, descricao as nome FROM cursos WHERE id = ' . $curso_id . ';';
    $qryPeriodo = 'SELECT id, descricao FROM periodos WHERE id = \'' . $periodo_id . '\';';
} else {
    $qryCurso = 'SELECT c.id, c.descricao as nome FROM cursos c, disciplinas_ofer d WHERE d.ref_curso = c.id AND d.id = ' . $diario_id . ';';
Ejemplo n.º 5
0
<?php

require_once dirname(__FILE__) . '/../../setup.php';
require_once $BASE_DIR . 'core/web_diario.php';
$conn = new connection_factory($param_conn);
$diario_id = (int) $_GET['diario_id'];
$operacao = (string) $_GET['do'];
if (!is_diario($diario_id)) {
    exit('<script language="javascript" type="text/javascript">window.alert("ERRO! Diario invalido!"); window.close();</script>');
}
// @fixme nao fechar diarios sem prefessor
// @fixme verificar direito de acesso: professor ou secretaria
// MARCA O DIARIO COMO CONCLUIDO
$sql = "SELECT COUNT(*) \n\t\t\tFROM\n            disciplinas_ofer\n         WHERE\n            fl_digitada = 't' AND\n            fl_finalizada = 'f' AND\n            ref_curso = " . get_curso($diario_id) . " AND\n\t\t\tref_periodo = periodo_disciplina_ofer({$diario_id}) AND\n            is_cancelada = '0';";
$num_concluida = $conn->get_one($sql);
if ($num_concluida == 0) {
    echo '<script type="text/javascript">alert(\'Não existe nenhum diário concluído para ser finalizado!\');window.close();</script>';
} else {
    $sql1 = "UPDATE\n\t\t\tdisciplinas_ofer\n         SET\n            fl_finalizada = 't' \n         WHERE  \n\t\t    fl_digitada = 't' AND\n            fl_finalizada = 'f' AND\n\t\t\tref_curso = " . get_curso($diario_id) . " AND\n            ref_periodo = periodo_disciplina_ofer({$diario_id}) AND\n            is_cancelada = '0';";
    $conn->Execute($sql1);
    if ($_SESSION['sa_modulo'] == 'sa_login') {
        exit('<script language="javascript" type="text/javascript">
            alert(\'' . $num_concluida . ' diário(s) finalizado(s) com sucesso!\');
			window.opener.location.reload();
			setTimeout("self.close()",450);</script>');
    } else {
        echo '<script type="text/javascript"> alert(\'' . $num_concluida . ' diário(s) finalizado(s) com sucesso!\'); </script>';
    }
}
Ejemplo n.º 6
0
    header("location:index.php?page=miscursos");
}
$curso = get_curso($CursoID);
$menulateral .= '</br></br>Lista de ejercicios:</br>';
$ejercicios = get_ejercicios($CursoID);
foreach ($ejercicios as $ejercicio) {
    $menulateral .= '<a href="index.php?page=ejercicio&id=' . $ejercicio->ID . '">' . $ejercicio->ID . '</a></br>';
}
$head = '<style>table, th, td {
    border: 1px solid black;
    border-collapse: collapse;
}
th, td {
    padding: 15px;
}</style>';
$contenido = '<table style="width:100%;">';
$contenido .= '<tr>
    <th>ID</th>
    <th>Título</th> 
    <th>Descripción</th>
    <th>Profesor</th>
  </tr>';
$curso = get_curso($CursoID);
$curso = $curso[0];
$contenido .= '<tr>';
$contenido .= '<td>' . $curso->ID . '</td>';
$contenido .= '<td>' . $curso->titulo . '</td>';
$contenido .= '<td>' . $curso->descripcion . '</td>';
$contenido .= '<td>' . $curso->profesorID . '</td>';
$contenido .= '</tr>';
$contenido .= '</table>';