BossBey File Manager
PHP:
8.4.18
OS:
Linux
User:
kids
Root
/
home
/
kids
/
public_html
/
app
📤 Upload
📝 New File
📁 New Folder
Close
Editing: relatorio.php
<?php session_start(); //var_dump($_SESSION); require_once "connection.php"; if (isset($_SESSION["nivelAcesso"])) { $nivelAcesso = $_SESSION["nivelAcesso"]; // Define os estilos de acordo com o nível de acesso if (isset($_SESSION['nivelAcesso']) && $_SESSION['nivelAcesso'] == "admin") { $sql = "SELECT relatorio.*, professor.nome as nome_professor, responsavel.nome as nome_responsavel, aluno.nome as nome_aluno FROM acessoFicha INNER JOIN aluno ON acessoFicha.id_aluno = aluno.id INNER JOIN professor ON acessoFicha.id_professor = professor.id INNER JOIN responsavel ON acessoFicha.id_responsavel = responsavel.id INNER JOIN relatorio ON relatorio.id_acessoFicha = acessoFicha.id_acesso_aluno ORDER BY relatorio.id DESC "; } else if (isset($_SESSION['nivelAcesso']) && $_SESSION['nivelAcesso'] == "prof") { $id_professor = $_SESSION['id']; $sql = "SELECT relatorio.*, professor.nome as nome_professor, responsavel.nome as nome_responsavel, aluno.nome as nome_aluno, professor.id as id_professor FROM acessoFicha INNER JOIN aluno ON acessoFicha.id_aluno = aluno.id INNER JOIN professor ON acessoFicha.id_professor = professor.id INNER JOIN responsavel ON acessoFicha.id_responsavel = responsavel.id INNER JOIN relatorio ON relatorio.id_acessoFicha = acessoFicha.id_acesso_aluno WHERE id_professor = $id_professor ORDER BY relatorio.id DESC"; } } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Relatório de Alunos</title> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> </head> <body> <?php include_once("menu/nav.php");?> <?php echo '<div class="container-fluid"><div class="container mt-4"> <h1>Relatório de Alunos</h1> <a href="criar_relatorio.php" class="btn btn-success pull-right"><i class="fa fa-plus"></i> CRIAR RELATÓRIO</a>'; $parametros = array(); // Crie um array vazio chamado $parametros try { $sqlp = "SELECT *, id as id_parametro FROM parametros"; $stmt1 = $pdo->prepare($sqlp); $stmt1->execute(); if ($stmt1->rowCount() > 0) { while ($row1 = $stmt1->fetch()) { // Adicione cada linha de resultado ao array $parametros $parametros[] = $row1; } } // Agora, $parametros conterá todos os resultados da consulta // Você pode usar $parametros como um array associativo // Por exemplo, $parametros[0]['nome'] para acessar o nome do primeiro resultado } catch (PDOException $e) { echo "Erro na conexão: " . $e->getMessage(); } try { $stmt = $pdo->prepare($sql); $stmt->execute(); if ($stmt->rowCount() > 0) { echo '<table class="table table-striped">'; echo '<thead>'; echo '<tr>'; echo '<th>Aluno</th>'; echo '<th>Professor</th>'; echo '<th>Responsável</th>'; echo '<th>Ano</th>'; echo '<th>Mês</th>'; echo '<th>Ações</th>'; echo '</tr>'; echo '</thead>'; while ($row = $stmt->fetch()) { echo '<tr>'; echo '<td>' . $row['nome_aluno'] . '</td>'; echo '<td>' . $row['nome_professor'] . '</td>'; echo '<td>' . $row['nome_responsavel'] . '</td>'; echo '<td>' . $row['ano'] . '</td>'; echo '<td>' . $row['mes'] . '</td>'; echo '<td>'; if (!is_null($row['id']) || !empty(trim($row['id']))) { echo '<form action="relatoriocompleto.php" method="post" target="_blank" style="display:inline;">'; echo '<input type="hidden" name="id" value="' . $row['id'] . '">'; echo '<button type="submit" class="btn btn-secondary">DADOS</button>'; echo '</form>'; } // Ícone de Editar echo '<a href="edita_relatorio.php?id=' . $row['id'] . '&origem=aprovar" class="btn btn-primary mr-2">EDITAR</a>'; if (isset($_SESSION['nivelAcesso']) && $_SESSION['nivelAcesso'] == "admin"){ if ($row['aprovado'] == '0') { echo '<form action="aprovar.php" method="post" class="mr-2 d-inline"> <input type="hidden" name="aprovado" value="1"> <input type="hidden" name="id" value="' . $row['id'] . '"> <button type="submit" class="btn btn-success">APROVAR</button> </form>'; } else { echo '<button class="btn btn-info" disabled>APROVADO</button>'; } } if ($row['aprovado'] == '1') { echo '<button class="btn btn-info" disabled>APROVADO</button>'; } ?> <a href="imprimir.php?id=<?= htmlspecialchars($row['id']) ?>" class="btn btn-primary">IMPRIMIR</a> <?php // Formulário de Deletar echo '<form action="delete.php" method="post" class="d-inline mr-2">'; echo '<input type="hidden" name="voltar" value="relatorio.php">'; echo '<input type="hidden" name="origem" value="relatorio">'; echo '<input type="hidden" name="id" value="' . $row['id'] . '">'; echo '<button type="submit" class="btn btn-danger"'; if ($row['aprovado'] == '1') {echo 'disabled';}echo '>DELETAR</button>'; echo '</form>'; echo '</td>'; echo '</tr>'; //echo '<tbody>'; if (!is_null($row['obs'])) { echo '<div class="modal fade" id="obsModal' . $row['id'] . '" tabindex="-1" role="dialog" aria-labelledby="obsModalLabel' . $row['id'] . '" aria-hidden="true">'; echo '<div class="modal-dialog modal-xl" role="document">'; echo '<div class="modal-content">'; echo '<div class="modal-header">'; echo '<h5 class="modal-title" id="obsModalLabel' . $row['id'] . '">Relatório de: ' . $row['nome_aluno'] . ' - ' . $row['mes'] . '/' . $row['ano'] . '</h5>'; echo '<button type="button" class="close" data-dismiss="modal" aria-label="Close">'; echo '<span aria-hidden="true">×</span>'; echo '</button>'; echo '</div>'; echo '<div class="modal-body">'; echo '<div class="jumbotron"><p>Objetivos Gerais: ' . $row['obj'] . '</p></div>'; $habilidades = array( "Habilidades Sociais e Afetivas" => array(12, 21), "Habilidades de Comunicação" => array(8, 11), "Habilidades Cognitivas" => array(1, 7), "Habilidades Motoras" => array(33, 40), "Habilidades Gerais" => array(22, 32) ); $somaHabilidadesSociais = 0; $somaHabilidadesComunicacao = 0; $somaHabilidadesCognitivas = 0; $somaHabilidadesMotoras = 0; $somaHabilidadesGerais = 0; $porcentagemHabSoc100 = 0; $porcentagemHabCom40 = 0; $porcentagemHabCog70 = 0; $porcentagemHabMot80 = 0; $porcentagemHabGer110 = 0; echo '<div class="accordion" id="accordionExample">'; $index = 0; foreach ($habilidades as $habilidade => $range) { echo '<div class="card">'; echo '<div class="card-header" id="heading' . $index . '">'; echo '<button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapse' . $index . '" aria-expanded="true" aria-controls="collapse' . $index . '">' . $habilidade . '</button>'; echo '</div>'; echo '<div id="collapse' . $index . '" class="collapse" aria-labelledby="heading' . $index . '" data-parent="#accordionExample">'; echo '<div class="card-body">'; for ($i = $range[0] - 1; $i < $range[1]; $i++) { $nota = $row['q' . ($i + 1)]; echo '<div class="row">'; echo '<div class="col-md-8">'; echo '<p>' . $parametros[$i]['numero'] . ' - ' . $parametros[$i]['pergunta'] . '</p>'; if ($nota ==0 ) { echo '<p> NÃO SE APLICA </p>'; } else if ($nota >= 1 && $nota <= 3) { echo '<p>' . $parametros[$i]['I'] . '</p>'; } elseif ($nota >= 4 && $nota <= 6) { echo '<p>' . $parametros[$i]['R'] . '</p>'; } elseif ($nota >= 7 && $nota <= 8) { echo '<p>' . $parametros[$i]['B'] . '</p>'; } elseif ($nota >= 9 && $nota <= 10) { echo '<p>' . $parametros[$i]['MB'] . '</p>'; } echo '</div>'; echo '<div class="col-md-4">'; echo '<p>'; if ($nota ==0 ) { echo '<p> NÃO SE APLICA </p>'; } elseif ($nota>= 1 && $nota <= 3) { echo 'Nível Alcançado: ' . $nota . ' - Insuficiente'; } elseif ($nota >= 4 && $nota <= 6) { echo 'Nível Alcançado: ' . $nota . ' - Regular'; } elseif ($nota >= 7 && $nota <= 8) { echo 'Nível Alcançado: ' . $nota . ' - Bom'; } elseif ($nota >= 9 && $nota <= 10) { echo 'Nível Alcançado: ' . $nota . ' - Muito Bom'; } echo '</p>'; echo '<div class="progress">'; if ($nota >= 1 && $nota <= 3) { $colorClass = 'bg-danger'; } elseif ($nota >= 4 && $nota <= 6) { $colorClass = 'bg-warning'; } elseif ($nota >= 7 && $nota <= 8) { $colorClass = 'bg-info'; } elseif ($nota >= 9 && $nota <= 10) { $colorClass = 'bg-success'; } else { $colorClass = ''; // Caso a nota esteja fora dos intervalos especificados } if ($habilidade == "Habilidades Sociais e Afetivas") { $somaHabilidadesSociais += $nota; if ($nota>0){ $porcentagemHabSoc100 +=10; } } elseif ($habilidade == "Habilidades de Comunicação") { $somaHabilidadesComunicacao += $nota; if ($nota>0){ $porcentagemHabCom40 +=10; } } elseif ($habilidade == "Habilidades Cognitivas") { $somaHabilidadesCognitivas += $nota; if ($nota>0){ $porcentagemHabCog70 +=10; } } elseif ($habilidade == "Habilidades Motoras") { $somaHabilidadesMotoras += $nota; if ($nota>0){ $porcentagemHabMot80 +=10; } } elseif ($habilidade == "Habilidades Gerais") { $somaHabilidadesGerais += $nota; if ($nota>0){ $porcentagemHabGer110 +=10; } } echo '<div class="progress-bar ' . $colorClass . '" role="progressbar" style="width: ' . ($nota / 10 * 100) . '%;" aria-valuenow="' . $nota . '" aria-valuemin="1" aria-valuemax="10"></div>'; echo '</div>'; echo '</div>'; echo '</div></br>'; } echo '</div>'; // Close the card-body echo '</div>'; // Close the collapse echo '</div>'; // Close the card $index++; } echo '</div>'; // Close the accordion echo '<br/><div class="jumbotron" class="text-center"><p>Observações Gerais: ' . $row['obs'] . '</p>'; echo '<br/><h5><p>O Gráfico a seguir mostra a porcentagem atingida de cada Área Avaliada, sendo 100% a pontuação máxima</h5></p>'; echo '<div style="width: 80%; margin: 0 auto;">'; echo '<canvas id="polarChart' . $row['id'] . '"></canvas>'; // Adicione um ID exclusivo para cada gráfico echo '</div>';?> <?php // Calcular porcentagens $ints = round(($somaHabilidadesSociais / $porcentagemHabSoc100) * 100); $intcom = round(($somaHabilidadesComunicacao / $porcentagemHabCom40) * 100); $intcog = round(($somaHabilidadesCognitivas / $porcentagemHabCog70) * 100); $intm = round(($somaHabilidadesMotoras / $porcentagemHabMot80) * 100); $intg = round(($somaHabilidadesGerais / $porcentagemHabGer110) * 100); $labels = array(); if ($ints > 0) { $labels[] = "Habilidades Sociais e afetivas"; } if ($intcom > 0) { $labels[] = "Habilidades de comunicação"; } if ($intcog > 0) { $labels[] = "Habilidades cognitivas"; } if ($intm > 0) { $labels[] = "Habilidades motoras"; } if ($intg > 0) { $labels[] = "Habilidades Gerais"; } $labelsString = implode(", ", array_map(function($label) { return '"' . $label . '"'; }, $labels)); $values = array(); if ($ints > 0) { $values[] = $ints; } if ($intcom > 0) { $values[] = $intcom; } if ($intcog > 0) { $values[] = $intcog; } if ($intm > 0) { $values[] = $intm; } if ($intg > 0) { $values[] = $intg; } $dataString = implode(',', $values); //echo $dataString; echo $ints.','.$intcom.','.$intcog.','.$intm.','.$intg; ?> <script> var ctx = document.getElementById('polarChart<?php echo $row['id'];?>').getContext('2d'); var data = { labels: [<?php echo $labelsString; ?>], datasets: [{ data: [<?php echo $dataString; ?>], // Substitua esses valores pelas suas próprias pontuações (escala de 1 a 100) backgroundColor: [ 'rgba(75, 192, 192, 0.2)', // Cor de preenchimento para Habilidades Sociais e afetivas 'rgba(255, 99, 132, 0.2)', // Cor de preenchimento para Habilidades de comunicação 'rgba(54, 162, 235, 0.2)', // Cor de preenchimento para Habilidades cognitivas 'rgba(255, 206, 86, 0.2)', // Cor de preenchimento para Habilidades motoras 'rgba(153, 102, 255, 0.2)' // Cor de preenchimento para Habilidades Gerais ], borderColor: [ 'rgba(75, 192, 192, 1)', // Cor da borda para Habilidades Sociais e afetivas 'rgba(255, 99, 132, 1)', // Cor da borda para Habilidades de comunicação 'rgba(54, 162, 235, 1)', // Cor da borda para Habilidades cognitivas 'rgba(255, 206, 86, 1)', // Cor da borda para Habilidades motoras 'rgba(153, 102, 255, 1)' // Cor da borda para Habilidades Gerais ], borderWidth: 2, // Largura da borda }] }; var options = { scale: { ticks: { beginAtZero: true, max: 100, callback: function(value) { return value + '%'; } } }, plugins: { datalabels: { color: 'black', font: { weight: 'bold' }, formatter: function(value, context) { return value + '%'; } } } }; var polarChart = new Chart(ctx, { type: 'polarArea', data: data, options: options }); </script> <?php echo '</div>'; echo '</div>'; // Close the modal-body echo '<div class="modal-footer">'; echo '<button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button>'; echo '<a href="editar_rel.php?id=' . $row['id'] . '" class="btn btn-primary">Editar</a>'; echo '<button id="imprimirPDF" class="btn btn-success" data-nome-aluno="' . $row['nome_aluno'] . '" data-mes="' . $row['mes'] . '" data-ano="' . $row['ano'] . '">Imprimir PDF</button>'; /*echo $somaHabilidadesSociais; echo ' / '; echo $porcentagemHabSoc100; echo ' <br> '; echo $somaHabilidadesComunicacao; echo ' / '; echo $porcentagemHabCom40; echo ' <br> '; echo $somaHabilidadesCognitivas; echo ' / ';echo $porcentagemHabCog70; echo ' <br> '; echo $somaHabilidadesMotoras; echo ' / ';echo $porcentagemHabMot80; echo ' <br> '; echo $somaHabilidadesGerais;echo ' / '; echo $porcentagemHabGer110; echo ' <br> ';*/ echo '</div>'; echo '</div>'; // Close the modal-content echo '</div>'; // Close the modal-dialog echo '</div>'; // Close the modal fade } echo '</div>'; // Close the modal-body echo '</div>'; // Close the modal fade } ?> <script> document.getElementById('imprimirPDF').addEventListener('click', function () { const doc = new jsPDF(); doc.text("Relatório de: <?php echo $row['nome_aluno'] ?> - <?php echo $row['mes'] ?>/<?php echo $row['ano'] ?>", 10, 10); // Adicione mais conteúdo ao PDF conforme necessário // Define a largura e altura da página A4 em pontos (210mm x 297mm) const pageWidth = 210; const pageHeight = 297; // Define a posição para a miniatura do PDF (você pode ajustar isso conforme necessário) const thumbnailX = 10; const thumbnailY = 20; const thumbnailWidth = pageWidth - 20; // Use toda a largura da página const thumbnailHeight = pageHeight - 40; // Use toda a altura da página, ajuste conforme necessário // Adicione uma miniatura da página anterior ao documento doc.addPage(); doc.addImage(doc.output('datauristring'), 'JPEG', thumbnailX, thumbnailY, thumbnailWidth, thumbnailHeight); // Salva o PDF doc.save("relatorio.pdf"); }); </script> <?php echo '</tbody>'; echo '</table>'; } else { echo '<p>Nenhum relatório encontrado.</p>'; } } catch(PDOException $e) { echo "Erro na conexão: " . $e->getMessage(); } ?> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.4.0/jspdf.umd.min.js"></script> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.3/dist/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> <script> document.querySelectorAll('#imprimirPDF').forEach(function (button) { button.addEventListener('click', function () { const nomeAluno = button.getAttribute('data-nome-aluno'); const mes = button.getAttribute('data-mes'); const ano = button.getAttribute('data-ano'); const doc = new jsPDF(); doc.text("Relatório de: " + nomeAluno + " - " + mes + "/" + ano, 10, 10); // Adicione mais conteúdo ao PDF conforme necessário // Define a largura e altura da página A4 em pontos (210mm x 297mm) const pageWidth = 210; const pageHeight = 297; // Define a posição para a miniatura do PDF (você pode ajustar isso conforme necessário) const thumbnailX = 10; const thumbnailY = 20; const thumbnailWidth = pageWidth - 20; // Use toda a largura da página const thumbnailHeight = pageHeight - 40; // Use toda a altura da página, ajuste conforme necessário // Adicione uma miniatura da página anterior ao documento doc.addPage(); doc.addImage(doc.output('datauristring'), 'JPEG', thumbnailX, thumbnailY, thumbnailWidth, thumbnailHeight); // Salva o PDF doc.save("relatorio.pdf"); }); }); </script> </body> </html>
Save
Cancel