die('<font size=2><b>Você nã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 à(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) {
<?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;
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ó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ó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 . ';';
<?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>'; } }
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>';