904 lines
36 KiB
PHP
904 lines
36 KiB
PHP
<?php
|
|
|
|
//estatisticas --> fma18g8E1IAC
|
|
error_reporting(E_ERROR | E_PARSE);
|
|
$mysql_servername = $_ENV["MYSQL_SERVERNAME"];
|
|
$mysql_username = $_ENV["MYSQL_USERNAME"];
|
|
$mysql_password = $_ENV["MYSQL_PASSWORD"];
|
|
$mysql_dbname = $_ENV["MYSQL_DBNAME"];
|
|
|
|
if (isset($_GET["img"])) {
|
|
if (CHECK_USER_LOGADO()) {
|
|
$name = '45hgGgFGD4467GgtyhujujhsdkgfkjfKJLHuygTGHJFjhgfDC3JHGFiuklilj7654HJGFfgdf/fotos/' . $_GET["img"] . '.jpg';
|
|
if (!file_exists($name)) {
|
|
$name = 'static/img/avatar_1.png';
|
|
}
|
|
$fp = fopen($name, 'rb');
|
|
header("Content-Type: image/png");
|
|
header("Content-Length: " . filesize($name));
|
|
fpassthru($fp);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
//if(isset($_POST["cmd"])){
|
|
$entrada = json_decode(file_get_contents('php://input'), true);
|
|
$saida = array();
|
|
if (array_key_exists("cmd", $entrada)) {
|
|
switch ($entrada["cmd"]) {
|
|
|
|
case "check_login":
|
|
|
|
if (check_login($entrada["email"], $entrada["token"])) {
|
|
$saida["res"] = "ok";
|
|
} else {
|
|
$saida["res"] = "erro";
|
|
}
|
|
break;
|
|
|
|
case "login":
|
|
|
|
$saida = login($entrada["email"], $entrada["senha"]);
|
|
break;
|
|
|
|
case "ultimo_relatorio":
|
|
if (CHECK_USER_LOGADO()) {
|
|
$saida = ultimo_relatorio("45hgGgFGD4467GgtyhujujhsdkgfkjfKJLHuygTGHJFjhgfDC3JHGFiuklilj7654HJGFfgdf/ultimo_relatorio.csv");
|
|
}
|
|
$saida["res"] = "ok";
|
|
break;
|
|
|
|
case "set_marcacoes":
|
|
|
|
$saida = set_marcacao($entrada);
|
|
;
|
|
break;
|
|
|
|
case "get_marcacoes":
|
|
|
|
$saida = get_marcacoes($entrada);
|
|
;
|
|
break;
|
|
|
|
default:
|
|
$saida = array("res" => "erro", "msg" => "comando nao existe");
|
|
break;
|
|
}
|
|
|
|
header('Content-type: application/json');
|
|
echo json_encode($saida);
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
function get_marcacoes($entrada)
|
|
{
|
|
|
|
$matricula = $entrada["matricula"];
|
|
|
|
$mysql_servername = $GLOBALS['mysql_servername'];
|
|
$mysql_username = $GLOBALS['mysql_username'];
|
|
$mysql_password = $GLOBALS['mysql_password'];
|
|
$mysql_dbname = $GLOBALS['mysql_dbname'];
|
|
$mysql_conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname);
|
|
|
|
$m = array(0 => false, 1 => true);
|
|
|
|
if (existe_marcacao($matricula)) {
|
|
|
|
$sql = "SELECT `matricula`, `whats`, `whats`, `fone`, `email`, `visita`, `pessoal`, `sucesso`, `comentario` FROM `acoes` WHERE matricula='$matricula'";
|
|
$result = $mysql_conn->query($sql);
|
|
if ($result->num_rows > 0) {
|
|
while ($linha = $result->fetch_assoc()) {
|
|
|
|
$r = array();
|
|
$r["matricula"] = $matricula;
|
|
$r["pessoal"] = $m[$linha["pessoal"]];
|
|
$r["whats"] = $m[$linha["whats"]];
|
|
$r["fone"] = $m[$linha["fone"]];
|
|
$r["email"] = $m[$linha["email"]];
|
|
$r["visita"] = $m[$linha["visita"]];
|
|
$r["sucesso"] = $m[$linha["sucesso"]];
|
|
$r["comentario"] = $linha["comentario"];
|
|
|
|
return $r;
|
|
}
|
|
}
|
|
|
|
}
|
|
$mysql_conn->close();
|
|
|
|
$linha = array(
|
|
"res" => "ok",
|
|
"matricula" => $matricula,
|
|
"pessoal" => false,
|
|
"whats" => false,
|
|
"fone" => false,
|
|
"email" => false,
|
|
"visita" => false,
|
|
"sucesso" => false,
|
|
"comentario" => ""
|
|
);
|
|
|
|
|
|
|
|
return $linha;
|
|
}
|
|
function set_marcacao($entrada)
|
|
{
|
|
|
|
$matricula = $entrada["matricula"];
|
|
$pessoal = $entrada["pessoal"];
|
|
$whats = $entrada["whats"];
|
|
$fone = $entrada["fone"];
|
|
$email = $entrada["email"];
|
|
$visita = $entrada["visita"];
|
|
$sucesso = $entrada["sucesso"];
|
|
$comentario = $entrada["comentario"];
|
|
|
|
|
|
|
|
|
|
|
|
$mysql_servername = $GLOBALS['mysql_servername'];
|
|
$mysql_username = $GLOBALS['mysql_username'];
|
|
$mysql_password = $GLOBALS['mysql_password'];
|
|
$mysql_dbname = $GLOBALS['mysql_dbname'];
|
|
$mysql_conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname);
|
|
|
|
if (existe_marcacao($matricula)) {
|
|
$sql = "UPDATE `acoes` SET `pessoal`='$pessoal', `whats`='$whats', `fone`='$fone', `email`='$email', `visita`='$visita', `sucesso`='$sucesso', `comentario`='$comentario' WHERE matricula='$matricula'";
|
|
} else {
|
|
$sql = "INSERT INTO `acoes`(`matricula`, `pessoal`, `whats`, `fone`, `email`, `visita`, `sucesso`, `comentario`) VALUES ('$matricula', '$pessoal', '$whats', '$fone', '$email', '$visita', '$sucesso', '$comentario')";
|
|
}
|
|
|
|
$result = $mysql_conn->query($sql);
|
|
$mysql_conn->close();
|
|
|
|
return array("res" => "ok", "rr" => $sql, "entrada" => $entrada);
|
|
|
|
}
|
|
|
|
function existe_marcacao($matricula)
|
|
{
|
|
$mysql_servername = $GLOBALS['mysql_servername'];
|
|
$mysql_username = $GLOBALS['mysql_username'];
|
|
$mysql_password = $GLOBALS['mysql_password'];
|
|
$mysql_dbname = $GLOBALS['mysql_dbname'];
|
|
$mysql_conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname);
|
|
|
|
$sql = "SELECT `matricula` FROM `acoes` WHERE matricula='$matricula'";
|
|
$result = $mysql_conn->query($sql);
|
|
if ($result->num_rows > 0) {
|
|
while ($linha = $result->fetch_assoc()) {
|
|
if ($linha["matricula"] == $matricula) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
$mysql_conn->close();
|
|
return false;
|
|
|
|
}
|
|
|
|
function CHECK_USER_LOGADO()
|
|
{
|
|
if (!isset($_COOKIE['email'])) {
|
|
return false;
|
|
}
|
|
;
|
|
if (!isset($_COOKIE['token'])) {
|
|
return false;
|
|
}
|
|
;
|
|
if (check_login($_COOKIE["email"], $_COOKIE["token"])) {
|
|
return true;
|
|
}
|
|
;
|
|
return false;
|
|
}
|
|
function ultimo_relatorio($arquivo)
|
|
{
|
|
|
|
#"estudante","unidade_curricular","classe","curso","coordenacao","campus","qt_aulas_classe","data_falta","matricula","id_classe","turma","professor","celular","email","email_institucional","endereco","idade"
|
|
#"estudante","turma","total_faltas","faltas_por_dia","matricula","celular","email","endereco","idade"
|
|
|
|
$datas = array();
|
|
$turmas = array();
|
|
$risco_turma = array();
|
|
$linhas = csvToArray($arquivo);
|
|
$k = mapa_de_chaves($linhas[0]);
|
|
|
|
$ultima_matricula = "";
|
|
$primeiro = true;
|
|
$nova_linha = array();
|
|
$turnos = array("1" => " - Matutino", "2" => " - Vespertino", "3" => " - Noturno", "4" => "", "5" => "", "0" => "");
|
|
$dados = array();
|
|
$LIMITE_DE_FALTAS = 20;
|
|
|
|
for ($i = 1; $i < count($linhas); $i++) {
|
|
$linha = $linhas[$i];
|
|
if (count($linha) >= 6) {
|
|
if ($ultima_matricula != $linha[$k["matricula"]]) {
|
|
if (!$primeiro) {
|
|
ksort($nova_linha["faltas_por_dia"]);
|
|
$chave_lista = str_pad($nova_linha["total_faltas"], 6, '0', STR_PAD_LEFT) . "_" . $nova_linha["estudante"];
|
|
if ($nova_linha["em_risco"]) {
|
|
$dados[$chave_lista] = $nova_linha;
|
|
}
|
|
if ($nova_linha["em_risco"]) {
|
|
$risco_turma[$nova_linha["turma"]] += 1;
|
|
}
|
|
}
|
|
$nova_linha = array();
|
|
$nova_linha["estudante"] = $linha[$k["estudante"]];
|
|
$nova_linha["matricula"] = $linha[$k["matricula"]];
|
|
$turma = end(explode(" ", $linha[$k["curso"]])) . " " . substr($linha[$k["turma"]], -2, 2) . $turnos[substr($linha[$k["turma"]], -4, 1)];
|
|
$nova_linha["turma"] = $turma;
|
|
$nova_linha["total_faltas"] = 0;
|
|
$nova_linha["faltas_por_dia"] = array();
|
|
$nova_linha["faltas_por_disciplina"] = array();
|
|
$nova_linha["celular"] = $linha[$k["celular"]];
|
|
$nova_linha["endereco"] = $linha[$k["endereco"]];
|
|
$nova_linha["email"] = $linha[$k["email"]];
|
|
$nova_linha["idade"] = $linha[$k["idade"]];
|
|
$nova_linha["em_risco"] = false;
|
|
$primeiro = false;
|
|
$ultima_matricula = $linha[$k["matricula"]];
|
|
}
|
|
$turmas[$turma] += 1;
|
|
$nova_linha["faltas_por_dia"][tdata($linha[$k["data_falta"]])] += 1;
|
|
$nova_linha["total_faltas"] += 1;
|
|
if ($nova_linha["total_faltas"] >= $LIMITE_DE_FALTAS) {
|
|
$nova_linha["em_risco"] = true;
|
|
}
|
|
$datas[tdata($linha[$k["data_falta"]])] += 1;
|
|
}
|
|
}
|
|
$chave_lista = str_pad($nova_linha["total_faltas"], 6, '0', STR_PAD_LEFT) . "_" . $nova_linha["estudante"];
|
|
if ($nova_linha["em_risco"]) {
|
|
$dados[$chave_lista] = $nova_linha;
|
|
}
|
|
if ($nova_linha["em_risco"]) {
|
|
$risco_turma[$nova_linha["turma"]] += 1;
|
|
}
|
|
|
|
ksort($risco_turma, SORT_STRING);
|
|
ksort($dados, SORT_STRING);
|
|
ksort($turmas, SORT_STRING);
|
|
ksort($datas, SORT_STRING);
|
|
|
|
return array("turmas" => $turmas, "risco_turma" => $risco_turma, "dados" => $dados, "datas" => $datas);
|
|
}
|
|
function tdata($data)
|
|
{
|
|
$d = explode("/", $data);
|
|
return $d[2] . "/" . $d[1] . "/" . $d[0];
|
|
}
|
|
function mapa_de_chaves($linha0)
|
|
{
|
|
$k = array();
|
|
for ($i = 0; $i < count($linha0); $i++) {
|
|
$k[$linha0[$i]] = $i;
|
|
}
|
|
return $k;
|
|
}
|
|
function lista_de_turmas($datas)
|
|
{
|
|
}
|
|
function login($email, $senha)
|
|
{
|
|
$mysql_servername = $GLOBALS['mysql_servername'];
|
|
$mysql_username = $GLOBALS['mysql_username'];
|
|
$mysql_password = $GLOBALS['mysql_password'];
|
|
$mysql_dbname = $GLOBALS['mysql_dbname'];
|
|
$mysql_conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname);
|
|
|
|
$sql = "SELECT `email`,`senha` FROM `usuarios` WHERE email='$email'";
|
|
$result = $mysql_conn->query($sql);
|
|
if ($result->num_rows > 0) {
|
|
while ($user = $result->fetch_assoc()) {
|
|
if ($user["email"] == $email && $user['senha'] == $senha) {
|
|
|
|
$token = gerar_token();
|
|
$sql = "UPDATE usuarios SET token='$token' WHERE email='$email'";
|
|
$mysql_conn->query($sql);
|
|
$mysql_conn->close();
|
|
return array("res" => "ok", "token" => $token);
|
|
}
|
|
}
|
|
}
|
|
$mysql_conn->close();
|
|
return array("res" => "erro", "token" => "");
|
|
}
|
|
function check_login($email, $token)
|
|
{
|
|
$mysql_servername = $GLOBALS['mysql_servername'];
|
|
$mysql_username = $GLOBALS['mysql_username'];
|
|
$mysql_password = $GLOBALS['mysql_password'];
|
|
$mysql_dbname = $GLOBALS['mysql_dbname'];
|
|
$mysql_conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname);
|
|
|
|
$sql = "SELECT `email`,`token` FROM `usuarios` WHERE email='$email'";
|
|
|
|
$result = $mysql_conn->query($sql);
|
|
$mysql_conn->close();
|
|
if ($result->num_rows > 0) {
|
|
while ($user = $result->fetch_assoc()) {
|
|
if ($user["email"] == $email && $user['token'] == $token) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function exemplo_busca()
|
|
{
|
|
$mysql_servername = $GLOBALS['mysql_servername'];
|
|
$mysql_username = $GLOBALS['mysql_username'];
|
|
$mysql_password = $GLOBALS['mysql_password'];
|
|
$mysql_dbname = $GLOBALS['mysql_dbname'];
|
|
|
|
$conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname);
|
|
if ($conn->connect_error) {
|
|
die("Connection failed: " . $conn->connect_error);
|
|
}
|
|
//$sql = "INSERT INTO `usuarios`(`email`, `senha`, `nome`) VALUES ('novoemail@gmail.com','12345678','novousuario')";
|
|
//$sql = "SELECT * FROM `usuarios` WHERE 1";
|
|
//$sql = "SELECT * FROM `usuarios` WHERE 1 ORDER BY nome DESC";
|
|
//$sql = "SELECT `email`,`senha` FROM `usuarios` WHERE email='novoemail@gmail.com'";
|
|
//$sql = "UPDATE usuarios SET senha='123', nome='abc' WHERE email='novoemail@gmail.com'";
|
|
//$sql = "DELETE FROM usuarios WHERE nome='abc'";
|
|
$result = $conn->query($sql);
|
|
if ($result->num_rows > 0) {
|
|
while ($row = $result->fetch_assoc()) {
|
|
print_r($row);
|
|
echo "<br>";
|
|
}
|
|
}
|
|
$conn->close();
|
|
|
|
}
|
|
|
|
function gerar_token($tamanho = 50, $maiusculas = true, $minusculas = true, $numeros = true, $simbolos = false)
|
|
{
|
|
$ma = "ABCDEFGHIJKLMNOPQRSTUVYXWZ";
|
|
$mi = "abcdefghijklmnopqrstuvyxwz";
|
|
$nu = "0123456789";
|
|
$si = "!@#$%¨&*()_+=";
|
|
if ($maiusculas) {
|
|
$senha .= str_shuffle($ma);
|
|
}
|
|
if ($minusculas) {
|
|
$senha .= str_shuffle($mi);
|
|
}
|
|
if ($numeros) {
|
|
$senha .= str_shuffle($nu);
|
|
}
|
|
if ($simbolos) {
|
|
$senha .= str_shuffle($si);
|
|
}
|
|
return substr(str_shuffle($senha), 0, $tamanho);
|
|
}
|
|
function csvToArray($csvFile)
|
|
{
|
|
|
|
$file_to_read = fopen($csvFile, 'r');
|
|
$lines = array();
|
|
while (!feof($file_to_read)) {
|
|
$lines[] = fgetcsv($file_to_read);
|
|
}
|
|
return $lines;
|
|
}
|
|
?>
|
|
<!DOCTYPE html>
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<link rel="shortcut icon" href="static/img/icone.ico" />
|
|
|
|
<title>ProjetosIFMS</title>
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
</style>
|
|
<link rel="stylesheet" href="static/materialize/icons/material_icons.css">
|
|
<link rel="stylesheet" href="static/materialize/css/materialize.min.css">
|
|
|
|
</head>
|
|
|
|
<body class='teal lighten-2'>
|
|
<div id="menu_voltar" class="navbar-fixed" style="display:none;">
|
|
<nav class="nav-extended">
|
|
<div class="nav-wrapper teal">
|
|
<div class="container">
|
|
<ul class="left">
|
|
<li><a onclick="voltar()"><i class="material-icons left">arrow_back</i>Voltar</a></li>
|
|
</ul>
|
|
<a id="titulo_do_menu_voltar" class="right"></a>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
</div>
|
|
|
|
|
|
<div id="menu_desktop" class="navbar-fixed" style="display:none;">
|
|
<nav class="nav-extended">
|
|
<div class="nav-wrapper teal">
|
|
<div class="container">
|
|
<a id="titulo_do_menu">Mapa das classes</a>
|
|
|
|
<a href="#" class="sidenav-trigger" data-target="menu_mobile">
|
|
<i class="material-icons">menu</i>
|
|
</a>
|
|
<ul class="right hide-on-med-and-down">
|
|
<li><a onclick="mostrar_aba('Estudantes em risco de evasão')"><i
|
|
class="material-icons left">format_list_bulleted</i>Estudantes em risco</a></li>
|
|
<li style="display:none"><a onclick="mostrar_aba('Conselho pedagógico')"><i
|
|
class="material-icons left">group</i>Conselho pedagógico</a></li>
|
|
<li style="display:none"><a onclick="mostrar_aba('Visão geral das turmas')"><i
|
|
class="material-icons left">show_chart</i>Visão geral das turmas</a></li>
|
|
<li><a onclick="logout()"><i class="material-icons left">exit_to_app</i>Sair</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
</div>
|
|
|
|
<ul id="menu_mobile" class="sidenav sidenav-close" style="display:none">
|
|
<li><a onclick="mostrar_aba('Estudantes em risco de evasão')"><i
|
|
class="material-icons left">format_list_bulleted</i>Estudantes em risco</a></li>
|
|
<li style="display:none"><a onclick="mostrar_aba('Conselho pedagógico')"><i
|
|
class="material-icons left">group</i>Conselho pedagógico</a></li>
|
|
<li style="display:none"><a onclick="mostrar_aba('Visão geral das turmas')"><i
|
|
class="material-icons left">show_chart</i>Visão geral das turmas</a></li>
|
|
<li><a onclick="logout()"><i class="material-icons left">exit_to_app</i>Sair</a></li>
|
|
</ul>
|
|
|
|
<div id="Estudantes em risco de evasão" class="row l12 m12 s12 center-align " style="display:none;">
|
|
|
|
<div class="col l6 m8 s12 left-align offset-l3 offset-m2" id='lista_turmas'>
|
|
<ul class="collection" id="lista_turmas_lista">
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="col l6 m8 s12 left-align offset-l3 offset-m2" id='estudantes_da_turma' style="display:none">
|
|
<ul class="collection" id="estudantes_da_turma_lista">
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="col l6 m8 s12 left-align offset-l3 offset-m2" id='detalhes_do_estudante' style="display:none">
|
|
|
|
<div class="row">
|
|
<div class="col l12 m12 s12">
|
|
<div class="card">
|
|
<div class="card-image">
|
|
<img src="" id="detalhes_do_estudante_foto">
|
|
</div>
|
|
<div class="card-content">
|
|
<span id="detalhes_do_estudante_nome" class="card-title">Card Title</span>
|
|
<p id="detalhes_do_estudante_conteudo"></p>
|
|
</div>
|
|
<div id="detalhes_do_estudante_acao" class="card-action center-align">
|
|
<a href="#">This is a link</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col l12 m12 s12">
|
|
<div class="card">
|
|
<div class="card-content">
|
|
<span class="card-title">Registro de ações</span>
|
|
<p>
|
|
<label>
|
|
<input type="checkbox" id="acao_contato_pessoal" onchange="set_marcacoes()">
|
|
<span>Contato pessoal</span>
|
|
</label>
|
|
</p>
|
|
|
|
<p>
|
|
<label>
|
|
<input type="checkbox" id="acao_contato_whats" onchange="set_marcacoes()">
|
|
<span>Contato por wahtsapp</span>
|
|
</label>
|
|
</p>
|
|
|
|
<p>
|
|
<label>
|
|
<input type="checkbox" id="acao_contato_fone" onchange="set_marcacoes()">
|
|
<span>Contato por telefone</span>
|
|
</label>
|
|
</p>
|
|
|
|
<p>
|
|
<label>
|
|
<input type="checkbox" id="acao_contato_email" onchange="set_marcacoes()">
|
|
<span>Contato por email</span>
|
|
</label>
|
|
</p>
|
|
<p>
|
|
<label>
|
|
<input type="checkbox" id="acao_visita" onchange="set_marcacoes()">
|
|
<span>Visita a domicílio</span>
|
|
</label>
|
|
</p>
|
|
<p>
|
|
<label>
|
|
<input type="checkbox" id="acao_sucesso" onchange="set_marcacoes()">
|
|
<span>Aluno resgatado com sucesso</span>
|
|
</label>
|
|
</p>
|
|
<br>
|
|
<label for="textarea2">Comentários adicionais</label>
|
|
<textarea id="acao_comentario" onchange="set_marcacoes()"
|
|
class="materialize-textarea"></textarea>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col l12 m12 s12">
|
|
<div class="card">
|
|
<div class="card-content">
|
|
<span class="card-title">Faltas por data</span>
|
|
<p id="detalhes_do_estudante_faltas_por_data"></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div id="tela_login" class="row section teal" style="display:none; height:100vh; overflow: hidden;">
|
|
<div class="col l12 m12 s12 valign-wrapper" style="height:100%">
|
|
<div class="valign" style="width: 100%">
|
|
<div class="col s12 m8 l4 offset-m2 offset-l4">
|
|
<div class="card hoverable z-depth-1">
|
|
<div class="card-action teal lighten-1">
|
|
<h7 class="white-text">Login</h7>
|
|
</div>
|
|
<div class="card-content white">
|
|
<div class="input-field">
|
|
<i class="material-icons prefix">email</i>
|
|
<input type="email" id="login_email" placeholder="digite seu email aqui">
|
|
<label for="login_email">Email</label>
|
|
</div>
|
|
<div class="input-field">
|
|
<i class="material-icons prefix">password</i>
|
|
<input type="password" id="login_senha" placeholder="digite sua senha aqui">
|
|
<label for="primeiro_nome">Senha</label>
|
|
<div id="feedback_login" class="col s10 m10 l10 offset-s1 offset-m1 offset-l1 red-text"
|
|
style="display:none;padding:10px;"></div>
|
|
</div>
|
|
<br>
|
|
<div class="form-field">
|
|
<button id="login" onclick="login()"
|
|
class="teal btn-large waves-effect waves-dark">ENTRAR</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
|
|
<script src="static/scripts/jquery.min.js"></script>
|
|
<script src="static/materialize/js/materialize.min.js"></script>
|
|
<script src="static/scripts/libx.js?t=<?php echo str_shuffle('QWER') ?>"></script>
|
|
|
|
<script type="text/javascript">
|
|
|
|
$(document).ready(function () {
|
|
$(".sidenav").sidenav();
|
|
$('select').formSelect();
|
|
check_login()
|
|
});
|
|
|
|
|
|
|
|
|
|
var dados = {}
|
|
|
|
//var logado = false;
|
|
//setInterval(function () {
|
|
// api({
|
|
// "cmd":"check_login",
|
|
// "email":getCookie("email"),
|
|
// "token":getCookie("token")
|
|
// },
|
|
// function(res){
|
|
// if(res["res"]!="ok"){
|
|
// if(logado){
|
|
// document.location.reload(true);;
|
|
// }
|
|
// }
|
|
// })
|
|
//}, 1000);
|
|
|
|
|
|
|
|
function check_login() {
|
|
api({
|
|
"cmd": "check_login",
|
|
"email": getCookie("email"),
|
|
"token": getCookie("token")
|
|
},
|
|
function (res) {
|
|
if (res["res"] == "ok") {
|
|
mostrar_aba('Estudantes em risco de evasão')
|
|
document.getElementById("menu_desktop").style.display = "block";
|
|
document.getElementById("menu_mobile").style.display = "block";
|
|
document.getElementById("lista_turmas").style.display = "block";
|
|
api({
|
|
"cmd": "ultimo_relatorio"
|
|
},
|
|
function (res) {
|
|
dados = res
|
|
monta_lista_turmas()
|
|
})
|
|
|
|
} else {
|
|
document.getElementById("menu_desktop").style.display = "none";
|
|
document.getElementById("menu_mobile").style.display = "none";
|
|
document.getElementById("tela_login").style.display = "none";
|
|
mostrar_aba('tela_login')
|
|
}
|
|
})
|
|
}
|
|
|
|
function monta_lista_turmas() {
|
|
|
|
document.getElementById('lista_turmas_lista').innerHTML = ""
|
|
n = 0
|
|
|
|
for (const [nome_turma, total_faltas] of Object.entries(dados["turmas"])) {
|
|
|
|
risco_turma = 0
|
|
if (nome_turma in dados["risco_turma"]) {
|
|
risco_turma = dados["risco_turma"][nome_turma]
|
|
}
|
|
|
|
n += 1
|
|
adicional = ''
|
|
if (risco_turma == 0) { adicional = 'teal lighten-5' }
|
|
document.getElementById('lista_turmas_lista').insertAdjacentHTML("afterbegin", novo_item_lista_turmas(nome_turma, risco_turma, adicional));
|
|
}
|
|
}
|
|
function novo_item_lista_turmas(nome_turma, risco, adicional = '') {
|
|
|
|
linha = `
|
|
<li id='[TITULO]' onclick="mostrar_turma('[TITULO]')" class='collection-item avatar waves-effect `+ adicional + `' style='width:100%; padding-top: 1px;' >
|
|
<br>
|
|
<img src='static/img/[IMAGEM].png' class='circle'>
|
|
<span class='title'>[TITULO]</span>
|
|
<a href='#' class='secondary-content'>
|
|
<i class='material-icons' onclick='monta_lista_estudantes_turma(\"[TITULO]\")' >chevron_right</i>
|
|
</a>
|
|
<p>
|
|
<p class='teal-text'>[RISCO] estudante(s) em risco</p>
|
|
</p>
|
|
</img>
|
|
</li>`
|
|
imagem = "pessoas_1";
|
|
if (nome_turma.includes("Informática")) { imagem = "informatica" }
|
|
if (nome_turma.includes("Agricultura")) { imagem = "agricultura" }
|
|
if (nome_turma.includes("Agronegócio")) { imagem = "agronegocio" }
|
|
|
|
|
|
if (nome_turma.includes("Agronomia")) { imagem = "agronomia" }
|
|
linha = linha.replaceAll("[IMAGEM]", imagem);
|
|
linha = linha.replaceAll("[TITULO]", nome_turma);
|
|
linha = linha.replaceAll("[RISCO]", risco);
|
|
return linha;
|
|
}
|
|
|
|
function mostrar_turma(turma) {
|
|
|
|
document.getElementById("lista_turmas").style.display = "none";
|
|
document.getElementById("estudantes_da_turma").style.display = "block";
|
|
document.getElementById('estudantes_da_turma_lista').innerHTML = ""
|
|
var myDiv = document.getElementById('estudantes_da_turma_lista').scrollTop = 0;
|
|
|
|
|
|
document.getElementById("menu_voltar").style.display = "block";
|
|
document.getElementById("menu_desktop").style.display = "none";
|
|
|
|
document.getElementById('titulo_do_menu_voltar').innerHTML = turma
|
|
|
|
|
|
|
|
n = 0
|
|
|
|
for (const [faltas_nome, dados_estudante] of Object.entries(dados["dados"])) {
|
|
if (dados_estudante["turma"] == turma) {
|
|
n += 1
|
|
adicional = ''
|
|
//if(dados_estudante["total_faltas"]>=20){adicional = 'teal lighten-5'}
|
|
document.getElementById('estudantes_da_turma_lista').insertAdjacentHTML("afterbegin", novo_item_lista_alunos_da_turma(faltas_nome, dados_estudante, adicional));
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
function novo_item_lista_alunos_da_turma(faltas_nome, dados_estudante, adicional) {
|
|
linha = `
|
|
<li id='[TITULO]' onclick="mostra_detalhes_aluno('[KEY]')" class='collection-item avatar waves-effect `+ adicional + `' style='width:100%; padding-top: 1px;' >
|
|
<br>
|
|
<img src='[IMAGEM]' class='circle'>
|
|
<span class='title'>[TITULO]</span>
|
|
<a href='#' class='secondary-content'>
|
|
<i class='material-icons' onclick='monta_lista_estudantes_turma(\"[TITULO]\")' >chevron_right</i>
|
|
</a>
|
|
<p>
|
|
<p class='teal-text'>[RISCO] falta(s) em 15 dias</p>
|
|
</p>
|
|
</img>
|
|
</li>`
|
|
//if( nome_turma.includes("Informática") ){imagem="informatica"}
|
|
//if( nome_turma.includes("Agricultura") ){imagem="agricultura"}
|
|
//if( nome_turma.includes("Agronegócio") ){imagem="agronegocio"}
|
|
//if( nome_turma.includes("Agronomia") ){imagem="agronomia"}
|
|
linha = linha.replaceAll("[IMAGEM]", "index.php?img=" + dados_estudante["matricula"]);
|
|
linha = linha.replaceAll("[KEY]", faltas_nome);
|
|
linha = linha.replaceAll("[TITULO]", dados_estudante["estudante"]);
|
|
linha = linha.replaceAll("[RISCO]", dados_estudante["total_faltas"]);
|
|
return linha;
|
|
}
|
|
var MATRICULA_SELECIONADA = "";
|
|
function mostra_detalhes_aluno(faltas_nome) {
|
|
dados_estudante = dados["dados"][faltas_nome]
|
|
MATRICULA_SELECIONADA = dados_estudante["matricula"]
|
|
|
|
get_marcacoes_aluno(MATRICULA_SELECIONADA)
|
|
|
|
document.getElementById("estudantes_da_turma").style.display = "none";
|
|
document.getElementById("detalhes_do_estudante").style.display = "block";
|
|
document.getElementById("detalhes_do_estudante_foto").src = "index.php?img=" + dados_estudante["matricula"];
|
|
document.getElementById("detalhes_do_estudante_nome").innerHTML = dados_estudante["estudante"];
|
|
|
|
conteudo = `
|
|
<p>Possui: <b>[FALTAS] faltas</b> em 15 dias</p>
|
|
<p>Idade: <b>[IDADE]</b> anos</p>
|
|
<p>Email: <b>[EMAIL]</b></p>
|
|
<p>Telefone: <b>[TELEFONE]</b></p>
|
|
<p>Endereço: <b>[ENDERECO]</b></p>
|
|
|
|
`
|
|
|
|
celular = dados_estudante["celular"].replaceAll("+", "").replaceAll("(", "").replaceAll(")", "").replaceAll(" ", "").replaceAll("-", "")
|
|
endereco = dados_estudante["endereco"].replaceAll("Outros", "")
|
|
|
|
acoes = `
|
|
<a class="waves-effect waves-light btn-large btn-floating" href="https://wa.me/55[TELEFONE]" target="_blank"><i class="material-icons left">message</i>what</a>
|
|
     
|
|
<a class="waves-effect waves-light btn-large btn-floating" href="mailto:[EMAIL]"><i class="material-icons left">email</i>email</a>
|
|
     
|
|
<a class="waves-effect waves-light btn-large btn-floating" href="https://www.google.com.br/maps/search/[ENDERECO]" target="_blank" ><i class="material-icons left">directions_car</i>mapa</a>
|
|
`.replaceAll("[EMAIL]", dados_estudante["email"]).replaceAll("[TELEFONE]", celular).replaceAll("[ENDERECO]", endereco);
|
|
|
|
|
|
lista_faltas_por_dia = "<table><thead><tr><th>Data</th><th>Faltas</th></tr></thead><tbody>";
|
|
for (const [data_falta, quantidade_faltas] of Object.entries(dados_estudante["faltas_por_dia"])) {
|
|
lista_faltas_por_dia += "<tr><td>" + data_falta + "</td><td>" + quantidade_faltas + "</td></tr>"
|
|
}
|
|
lista_faltas_por_dia += "</tbody></table>"
|
|
|
|
conteudo = conteudo.replaceAll("[FALTAS]", dados_estudante["total_faltas"]);
|
|
conteudo = conteudo.replaceAll("[EMAIL]", dados_estudante["email"]);
|
|
conteudo = conteudo.replaceAll("[TELEFONE]", dados_estudante["celular"]);
|
|
conteudo = conteudo.replaceAll("[IDADE]", dados_estudante["idade"]);
|
|
conteudo = conteudo.replaceAll("[ENDERECO]", endereco);
|
|
|
|
document.getElementById("detalhes_do_estudante_conteudo").innerHTML = conteudo;
|
|
document.getElementById("detalhes_do_estudante_faltas_por_data").innerHTML = lista_faltas_por_dia;
|
|
document.getElementById("detalhes_do_estudante_acao").innerHTML = acoes;
|
|
|
|
}
|
|
function set_marcacoes(matricula) {
|
|
|
|
api({
|
|
"cmd": "set_marcacoes",
|
|
"matricula": MATRICULA_SELECIONADA,
|
|
"pessoal": document.getElementById("acao_contato_pessoal").checked,
|
|
"whats": document.getElementById("acao_contato_whats").checked,
|
|
"fone": document.getElementById("acao_contato_fone").checked,
|
|
"email": document.getElementById("acao_contato_email").checked,
|
|
"visita": document.getElementById("acao_visita").checked,
|
|
"sucesso": document.getElementById("acao_sucesso").checked,
|
|
"comentario": document.getElementById("acao_comentario").value
|
|
})
|
|
|
|
}
|
|
function get_marcacoes_aluno(matricula) {
|
|
api({
|
|
"cmd": "get_marcacoes",
|
|
"matricula": MATRICULA_SELECIONADA
|
|
},
|
|
function (res) {
|
|
p(res);
|
|
document.getElementById("acao_contato_pessoal").checked = res["pessoal"]
|
|
document.getElementById("acao_contato_whats").checked = res["whats"]
|
|
document.getElementById("acao_contato_fone").checked = res["fone"]
|
|
document.getElementById("acao_contato_email").checked = res["email"]
|
|
document.getElementById("acao_visita").checked = res["visita"]
|
|
document.getElementById("acao_sucesso").checked = res["sucesso"]
|
|
document.getElementById("acao_comentario").value = res["comentario"]
|
|
})
|
|
}
|
|
|
|
function voltar() {
|
|
|
|
if (document.getElementById("estudantes_da_turma").style.display == "block") {
|
|
|
|
document.getElementById("lista_turmas").style.display = "block";
|
|
document.getElementById("estudantes_da_turma").style.display = "none";
|
|
document.getElementById("menu_voltar").style.display = "none";
|
|
document.getElementById("menu_desktop").style.display = "block";
|
|
|
|
|
|
} else if (document.getElementById("detalhes_do_estudante").style.display == "block") {
|
|
|
|
document.getElementById("estudantes_da_turma").style.display = "block";
|
|
document.getElementById("detalhes_do_estudante").style.display = "none";
|
|
|
|
|
|
}
|
|
}
|
|
function login() {
|
|
api({
|
|
"cmd": "login",
|
|
"email": document.getElementById("login_email").value,
|
|
"senha": document.getElementById("login_senha").value
|
|
},
|
|
function (res) {
|
|
if (res["res"] == "ok") {
|
|
setCookie("email", document.getElementById("login_email").value)
|
|
setCookie("token", res["token"])
|
|
mostrar_aba('Estudantes em risco de evasão')
|
|
document.getElementById("menu_desktop").style.display = "block";
|
|
document.getElementById("menu_mobile").style.display = "block";
|
|
api({
|
|
"cmd": "ultimo_relatorio"
|
|
},
|
|
function (res) {
|
|
dados = res
|
|
monta_lista_turmas()
|
|
logado = true;
|
|
})
|
|
} else {
|
|
document.getElementById("feedback_login").style.display = "block"
|
|
document.getElementById("feedback_login").innerHTML = "Email ou senha incorretos"
|
|
}
|
|
})
|
|
}
|
|
|
|
function logout() {
|
|
setCookie("email", "")
|
|
setCookie("token", "")
|
|
document.getElementById("menu_desktop").style.display = "none";
|
|
document.getElementById("menu_mobile").style.display = "none";
|
|
mostrar_aba('tela_login')
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|