WOSP-APP/serwer/app/liczacy.js

452 lines
25 KiB
JavaScript
Raw Permalink Normal View History

2025-01-01 17:30:11 +00:00
const express = require('express');
const liczacy = express.Router();
const fs = require('fs');
require('dotenv').config();
//mysql
var mysql = require('mysql2');
var con = mysql.createConnection({
host: process.env.MYSQLHOST,
user: process.env.MYSQLUSER,
password: process.env.MYSQLPASS,
port : process.env.MYSQLPORT,
database: process.env.MYSQLDB,
insecureAuth : true
});
con.connect(function(err) {
if (err) throw err;
console.log('Connected!');
});
var cookie = require('cookie');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended: true
}));
//import functions from func.js
const {headerHtml, menuHtml, footerHtml, checkPesel, loger, telefon, sendToDiscord, sendEmail} = require('./func.js');
liczacy.use(function(req, res, next) {
var cookies = cookie.parse(req.headers.cookie || '');
var liczacy = cookies.liczacy;
con.query('SELECT * FROM tokenyLiczacy, liczacy WHERE token = ? AND aktywny = 1 AND tokenyLiczacy.userId = liczacy.id', [liczacy], function(err, result) {
if (err) throw err;
if (result.length > 0) {
req.user = result[0];
next();
} else {
res.redirect('/loginliczacy');
loger(fs, 'Nieudana próba dostępu do panelu liczącego przy użyciu tokenu: ' + liczacy, 'warning');
}
});
});
liczacy.get('/', function(req, res) {
var toReturn = headerHtml();
toReturn += menuHtml(4);
toReturn += '<div class="content">';
toReturn += '<h1>Panel</h1>';
toReturn += '<h2>Witaj ' + req.user.imie + '</h2>';
toReturn += '<div class="kafelki3">';
toReturn += '<a class="borderColorBlue" href="/liczacy/rozlicz">Rozlicz wolontariusza</a>';
toReturn += '<a class="borderColorPurple" href="/liczacy/wyloguj">Wyloguj się</a>';
toReturn += '</div>';
toReturn += '</div>';
toReturn += footerHtml(2);
res.send(toReturn);
})
liczacy.all('/statystyki2', function(req, res) {
var toReturn = headerHtml("Statystyki");
toReturn += menuHtml(4);
//make script to refresh every 5 seconds, and full screen this page
toReturn += '<script>';
toReturn += "var elem = document.documentElement;"
toReturn += "if (elem.requestFullscreen) {";
toReturn += "elem.requestFullscreen();";
toReturn += "} else if (elem.mozRequestFullScreen) {";
toReturn += "elem.mozRequestFullScreen();";
toReturn += "} else if (elem.webkitRequestFullscreen) {";
toReturn += "elem.webkitRequestFullscreen();";
toReturn += "} else if (elem.msRequestFullscreen) {";
toReturn += "elem.msRequestFullscreen();";
toReturn += "}";
toReturn += 'setTimeout(function() {';
toReturn += 'window.location.reload(1);';
toReturn += '}, 5000);';
toReturn += '</script>';
toReturn += '<div class="kafelki2">';
toReturn += '<div class="kafelek2">';
toReturn += '<h2>Całkowita suma</h2>';
toReturn += '<table class="dane">';
//wypisz sumę zebranych pieniędzy, sumę poszczególnych nominałów
//pobierz wszystkie rozliczenia
con.query('SELECT * FROM rozliczenie WHERE aktywne = 1', function(err, result) {
if (err) throw err;
var suma = 0;
var sumaTerminal = 0;
var suma1gr = 0;
var suma2gr = 0;
var suma5gr = 0;
var suma10gr = 0;
var suma20gr = 0;
var suma50gr = 0;
var suma1zl = 0;
var suma2zl = 0;
var suma5zl = 0;
var suma10zl = 0;
var suma20zl = 0;
var suma50zl = 0;
var suma100zl = 0;
var suma200zl = 0;
var suma500zl = 0;
result.forEach(function(row) {
suma += row['1gr'] + row['2gr'] * 2 + row['5gr'] * 5 + row['10gr'] * 10 + row['20gr'] * 20 + row['50gr'] * 50 + row['1zl'] * 100 + row['2zl'] * 200 + row['5zl'] * 500 + row['10zl'] * 1000 + row['20zl'] * 2000 + row['50zl'] * 5000 + row['100zl'] * 10000 + row['200zl'] * 20000 + row['500zl'] * 50000;
sumaTerminal += row.sumaZTerminala;
suma1gr += row['1gr'];
suma2gr += row['2gr'];
suma5gr += row['5gr'];
suma10gr += row['10gr'];
suma20gr += row['20gr'];
suma50gr += row['50gr'];
suma1zl += row['1zl'];
suma2zl += row['2zl'];
suma5zl += row['5zl'];
suma10zl += row['10zl'];
suma20zl += row['20zl'];
suma50zl += row['50zl'];
suma100zl += row['100zl'];
suma200zl += row['200zl'];
suma500zl += row['500zl'];
});
toReturn += '<tr><td>Suma</td><td>' + suma/100.0 + ' zł</td></tr>';
toReturn += '<tr><td>Suma z terminali</td><td>' + sumaTerminal + ' zł</td></tr>';
toReturn += '<tr><td>1 gr</td><td>' + suma1gr + '</td></tr>';
toReturn += '<tr><td>2 gr</td><td>' + suma2gr + '</td></tr>';
toReturn += '<tr><td>5 gr</td><td>' + suma5gr + '</td></tr>';
toReturn += '<tr><td>10 gr</td><td>' + suma10gr + '</td></tr>';
toReturn += '<tr><td>20 gr</td><td>' + suma20gr + '</td></tr>';
toReturn += '<tr><td>50 gr</td><td>' + suma50gr + '</td></tr>';
toReturn += '<tr><td>1 zł</td><td>' + suma1zl + '</td></tr>';
toReturn += '<tr><td>2 zł</td><td>' + suma2zl + '</td></tr>';
toReturn += '<tr><td>5 zł</td><td>' + suma5zl + '</td></tr>';
toReturn += '<tr><td>10 zł</td><td>' + suma10zl + '</td></tr>';
toReturn += '<tr><td>20 zł</td><td>' + suma20zl + '</td></tr>';
toReturn += '<tr><td>50 zł</td><td>' + suma50zl + '</td></tr>';
toReturn += '<tr><td>100 zł</td><td>' + suma100zl + '</td></tr>';
toReturn += '<tr><td>200 zł</td><td>' + suma200zl + '</td></tr>';
toReturn += '<tr><td>500 zł</td><td>' + suma500zl + '</td></tr>';
toReturn += '</table>';
toReturn += '</div>';
toReturn += '<div class="kafelek2">';
toReturn += '<h2>Top 10 wolontariuszy</h2>';
//SELECT * FROM `SumaZebranaPrzezWolontariuszy` ORDER BY `SumaZebranaPrzezWolontariuszy`.`suma` ASC LIMIT 10;
toReturn += '<table class="dane">';
toReturn += '<tr><th>Wolontariusz</th><th>Suma</th></tr>';
con.query('SELECT numerIdentyfikatora, imie, nazwisko, suma FROM `SumaZebranaPrzezWolontariuszy` ORDER BY `SumaZebranaPrzezWolontariuszy`.`suma` ASC LIMIT 10;', function(err, result) {
if (err) throw err;
result.forEach(function(row) {
2025-01-08 11:09:35 +00:00
toReturn += '<tr><td>' + row.numerIdentyfikatora + '</td><td>' + Math.round(row.suma*100)/100 + '</td></tr>';
2025-01-01 17:30:11 +00:00
});
toReturn += '</table>';
toReturn += '</div>';
toReturn += '<div class="kafelek2">';
//który liczący najwięcej liczył
toReturn += '<h2>Najwięcej puszek przeliczonych</h2>';
toReturn += '<table class="dane">';
toReturn += '<tr><th>Liczący</th><th>Suma</th></tr>';
con.query("SELECT idLiczacego, imie, nazwisko, sumaPrzeliczona FROM `sumaPrzeliczona` ORDER BY `sumaPrzeliczona`.`sumaPrzeliczona` DESC LIMIT 10;", function(err, result) {
if (err) throw err;
result.forEach(function(row) {
2025-01-08 11:09:35 +00:00
toReturn += '<tr><td>' + row.idLiczacego + '</td><td>' + Math.round(row.sumaPrzeliczona*100)/100 + '</td></tr>';
2025-01-01 17:30:11 +00:00
});
toReturn += '</table>';
toReturn += '</div>';
toReturn += '</div>';
toReturn += footerHtml();
res.send(toReturn);
})
});
});
});
liczacy.get('/rozlicz', function(req, res) {
var toReturn = headerHtml("Lista wolontariuszy do rozliczenia");
toReturn += menuHtml(4);
toReturn += '<div class="content">';
toReturn += '<h1>Rozlicz</h1>';
toReturn += '<table class="dane">';
toReturn += '<tr>';
toReturn += '<th>Numer</th>';
toReturn += '<th>Imię</th>';
toReturn += '<th>Nazwisko</th>';
toReturn += '<th>Terminal</th>';
toReturn += '<th>Rodzic</th>';
toReturn += '<th>Opcje</th>';
toReturn += '</tr>';
//pobierz osoby liczące
con.query('SELECT * FROM wolontariusz WHERE aktywny = 1 AND id NOT IN (SELECT wolontariuszID FROM rozliczenie WHERE aktywne = 1) ORDER BY numerIdentyfikatora ASC', function(err, result) {
if (err) throw err;
result.forEach(function(row) {
toReturn += '<tr>';
toReturn += '<td>' + row.numerIdentyfikatora + '</td>';
toReturn += '<td>' + row.imie + '</td>';
toReturn += '<td>' + row.nazwisko + '</td>';
toReturn += '<td>' + (row.terminal == 1 ? '<b>Tak</b>' : 'Nie') + '</td>';
if(row.rodzic == "BRAK")
toReturn += '<td> </td>';
else
toReturn += '<td style="color: red; font-weight: bold;">' + row.rodzic + '</td>';
toReturn += '<td><a href="/liczacy/rozliczWolontariusza?id=' + row.id + '">Rozlicz</a></td>';
toReturn += '</tr>';
});
toReturn += '</table>';
toReturn += '</div>';
toReturn += footerHtml(2);
res.send(toReturn);
});
});
liczacy.get('/rozliczWolontariusza', function(req, res) {
var idWolontariusza = req.query.id;
//pobierz dane wolontariusza, wyświetl formularz rozliczenia
var toReturn = headerHtml("Rozlicz wolontariusza");
toReturn += menuHtml(4);
toReturn += '<div class="content">';
toReturn += '<h1>Rozlicz wolontariusza</h1>';
toReturn += '<form action="/liczacy/rozliczWolontariusza?id=' + idWolontariusza + '" method="POST">';
con.query('SELECT * FROM wolontariusz WHERE id = ?', [idWolontariusza], function(err, result) {
if (err) throw err;
if (result.length > 0) {
toReturn += "<h2>" + result[0].imie + " " + result[0].nazwisko + "</h2>";
toReturn += "<h3>ID: " + result[0].numerIdentyfikatora + "</h3>";
toReturn += '<h2>Suma: <span id="suma2">0</span> zł</h2>';
//pokaż formularz do wpisywania zebranej kwoaty i monet (sumę liczy program, użytkownik podaje ilość monet)
toReturn += '<table class="dane">';
toReturn += '<tr><td>Suma</td><td><input type="number" name="weryfikacjaSuma" step="0.01"></td></tr>';
toReturn += '<tr>';
toReturn += '<th>Waluta</th>';
toReturn += '<th>Ilość</th>';
toReturn += '</tr>';
toReturn += '<tr><td>1 gr</td><td><input type="number" name="1gr" value="0"></td></tr>';
toReturn += '<tr><td>2 gr</td><td><input type="number" name="2gr" value="0"></td></tr>';
toReturn += '<tr><td>5 gr</td><td><input type="number" name="5gr" value="0"></td></tr>';
toReturn += '<tr><td>10 gr</td><td><input type="number" name="10gr" value="0"></td></tr>';
toReturn += '<tr><td>20 gr</td><td><input type="number" name="20gr" value="0"></td></tr>';
toReturn += '<tr><td>50 gr</td><td><input type="number" name="50gr" value="0"></td></tr>';
toReturn += '<tr><td>1 zł</td><td><input type="number" name="1zl" value="0"></td></tr>';
toReturn += '<tr><td>2 zł</td><td><input type="number" name="2zl" value="0"></td></tr>';
toReturn += '<tr><td>5 zł</td><td><input type="number" name="5zl" value="0"></td></tr>';
toReturn += '<tr><td>10 zł</td><td><input type="number" name="10zl" value="0"></td></tr>';
toReturn += '<tr><td>20 zł</td><td><input type="number" name="20zl" value="0"></td></tr>';
toReturn += '<tr><td>50 zł</td><td><input type="number" name="50zl" value="0"></td></tr>';
toReturn += '<tr><td>100 zł</td><td><input type="number" name="100zl" value="0"></td></tr>';
toReturn += '<tr><td>200 zł</td><td><input type="number" name="200zl" value="0"></td></tr>';
toReturn += '<tr><td>500 zł</td><td><input type="number" name="500zl" value="0"></td></tr>';
//kwota z terminala
toReturn += '<tr><td>Kwota z terminala</td><td><input type="number" name="terminal" step="0.01" value="0"></td></tr>';
//waluta obca, tekstarea
toReturn += '<tr><td>Waluta obca</td><td><textarea name="walutaObca"></textarea></td></tr>';
//dary inne, tekstarea
toReturn += '<tr><td>Dary inne</td><td><textarea name="daryInne"></textarea></td></tr>';
//uwagi, tekstarea
toReturn += '<tr><td>Uwagi</td><td><textarea name="uwagi"></textarea></td></tr>';
//sala
toReturn += '<tr><td>Sala</td><td><input type="text" name="sala" value="główna"></td></tr>';
//liczący 1
toReturn += '<tr><td>Liczący 1</td><td>' + req.user.imie + ' ' + req.user.nazwisko + '</td></tr>';
console.log(req.user);
toReturn += '<input type="hidden" name="liczacy1" value="' + req.user.id + '">';
//liczący 2
toReturn += '<tr><td>Liczący 2</td><td><select name="liczacy2">';
//pobierz wszystkich liczących
con.query('SELECT * FROM liczacy WHERE aktywne = 1 ORDER BY nazwisko ASC', function(err, result) {
if (err) throw err;
result.forEach(function(row) {
//jeżeli id liczącego == req.user.id, pomiń
if(row.id == req.user.id) return;
toReturn += '<option value="' + row.id + '">' + row.imie + ' ' + row.nazwisko + '</option>';
});
toReturn += '</select></td></tr>';
//liczący 3
toReturn += '<tr><td>Liczący 3</td><td><select name="liczacy3">';
toReturn += '<option value="0">BRAK</option>';
//pobierz wszystkich liczących
con.query('SELECT * FROM liczacy WHERE aktywne = 1 ORDER BY nazwisko ASC', function(err, result) {
if (err) throw err;
result.forEach(function(row) {
if(row.id == req.user.id) return;
toReturn += '<option value="' + row.id + '">' + row.imie + ' ' + row.nazwisko + '</option>';
});
toReturn += '</select></td></tr>';
toReturn += '</table>';
toReturn += '<input type="submit" id="zapisz" value="Zapisz" disabled>';
toReturn += '<h2>Suma: <span id="suma">0</span> zł</h2>';
toReturn += '<script>';
toReturn += 'var suma = 0;';
toReturn += 'function updateSum() {';
toReturn += 'suma = 0;';
toReturn += 'suma += parseInt(document.getElementsByName("1gr")[0].value);';
toReturn += 'suma += parseInt(document.getElementsByName("2gr")[0].value) * 2;';
toReturn += 'suma += parseInt(document.getElementsByName("5gr")[0].value) * 5;';
toReturn += 'suma += parseInt(document.getElementsByName("10gr")[0].value) * 10;';
toReturn += 'suma += parseInt(document.getElementsByName("20gr")[0].value) * 20;';
toReturn += 'suma += parseInt(document.getElementsByName("50gr")[0].value) * 50;';
toReturn += 'suma += parseInt(document.getElementsByName("1zl")[0].value) * 100;';
toReturn += 'suma += parseInt(document.getElementsByName("2zl")[0].value) * 200;';
toReturn += 'suma += parseInt(document.getElementsByName("5zl")[0].value) * 500;';
toReturn += 'suma += parseInt(document.getElementsByName("10zl")[0].value) * 1000;';
toReturn += 'suma += parseInt(document.getElementsByName("20zl")[0].value) * 2000;';
toReturn += 'suma += parseInt(document.getElementsByName("50zl")[0].value) * 5000;';
toReturn += 'suma += parseInt(document.getElementsByName("100zl")[0].value) * 10000;';
toReturn += 'suma += parseInt(document.getElementsByName("200zl")[0].value) * 20000;';
toReturn += 'suma += parseInt(document.getElementsByName("500zl")[0].value) * 50000;';
toReturn += 'suma += parseFloat(document.getElementsByName("terminal")[0].value) * 100;';
toReturn += 'document.getElementById("suma").innerHTML = suma/100.0;';
toReturn += 'document.getElementById("suma2").innerHTML = suma/100.0;';
toReturn += 'if (suma == Math.floor(Number(document.getElementsByName("weryfikacjaSuma")[0].value)*100)) {';
toReturn += 'document.getElementsByName("weryfikacjaSuma")[0].style.backgroundColor = "#00ff44";';
toReturn += 'document.getElementById("zapisz").disabled = false;';
toReturn += '} else {';
toReturn += 'document.getElementsByName("weryfikacjaSuma")[0].style.backgroundColor = "#ff0000";';
toReturn += 'document.getElementById("zapisz").disabled = true;';
toReturn += '}';
toReturn += '}';
toReturn += 'updateSum();';
toReturn += 'document.getElementsByName("1gr")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("2gr")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("5gr")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("10gr")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("20gr")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("50gr")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("1zl")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("2zl")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("5zl")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("10zl")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("20zl")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("50zl")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("100zl")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("200zl")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("500zl")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("terminal")[0].addEventListener("input", updateSum);';
toReturn += 'document.getElementsByName("weryfikacjaSuma")[0].addEventListener("input", updateSum);';
toReturn += '</script>';
toReturn += '</form>';
toReturn += '</div>';
toReturn += footerHtml(2);
res.send(toReturn);
});
});
}
});
});
liczacy.post('/rozliczWolontariusza', function(req, res) {
//weryfikowal to numer id z tokenu
var idWolontariusza = req.query.id;
var idLiczacy1 = req.body.liczacy1;
var idLiczacy2 = req.body.liczacy2;
var idLiczacy3 = req.body.liczacy3 == 0 ? null : req.body.liczacy3;
var sala = req.body.sala;
var uwagi = req.body.uwagi;
var daryInne = req.body.daryInne;
var walutaObca = req.body.walutaObca;
var terminal = req.body.terminal > 0 ? 1 : 0;
var gr1 = req.body['1gr'];
var gr2 = req.body['2gr'];
var gr5 = req.body['5gr'];
var gr10 = req.body['10gr'];
var gr20 = req.body['20gr'];
var gr50 = req.body['50gr'];
var zl1 = req.body['1zl'];
var zl2 = req.body['2zl'];
var zl5 = req.body['5zl'];
var zl10 = req.body['10zl'];
var zl20 = req.body['20zl'];
var zl50 = req.body['50zl'];
var zl100 = req.body['100zl'];
var zl200 = req.body['200zl'];
var zl500 = req.body['500zl'];
var sumaZTerminala = req.body.terminal;
//zapisz dane do bazy
$sql = "INSERT INTO `rozliczenie` (`id`, `wolontariuszID`, `czasRozliczenia`, `terminal`, `sumaZTerminala`, `1gr`, `2gr`, `5gr`, `10gr`, `20gr`, `50gr`, `1zl`, `2zl`, `5zl`, `10zl`, `20zl`, `50zl`, `100zl`, `200zl`, `500zl`, `walutaObca`, `daryInne`, `uwagi`, `liczacy1`, `liczacy2`, `liczacy3`, `sala`, `weryfikowal`, `wpisaneDoBSS`, `ostatniaZmiana`, `aktywne`) ";
$sql += 'VALUES (NULL, ?, CURRENT_TIME(), ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,CURRENT_TIME(),1)';
con.query($sql, [idWolontariusza, terminal, sumaZTerminala, gr1, gr2, gr5, gr10, gr20, gr50, zl1, zl2, zl5, zl10, zl20, zl50, zl100, zl200, zl500, walutaObca, daryInne, uwagi, idLiczacy1, idLiczacy2, idLiczacy3, sala], function(err, result) {
if (err) throw err;
if(process.env.DISCORD == "TAK")
{
con.query('SELECT * FROM wolontariusz WHERE id = ?', [idWolontariusza], function(err, result) {
if (err) throw err;
var suma = Number(gr1) +Number(gr2)*2 + Number(gr5)*5 + Number(gr10)*10 + Number(gr20)*20 + Number(gr50)*50 + Number(zl1)*100 + Number(zl2)*200 + Number(zl5)*500 + Number(zl10)*1000 + Number(zl20)*2000 + Number(zl50)*5000 + Number(zl100)*10000 + Number(zl200)*20000 + Number(zl500)*50000 + Number(sumaZTerminala)*100;
sendToDiscord(result[0].imie, result[0].nazwisko, suma/100, result[0].discord);
});
}
if(process.env.SENDEMAILS == "TAK")
{
con.query('SELECT * FROM wolontariusz WHERE id = ?', [idWolontariusza], function(err, result) {
if (err) throw err;
var suma = Number(gr1) +Number(gr2)*2 + Number(gr5)*5 + Number(gr10)*10 + Number(gr20)*20 + Number(gr50)*50 + Number(zl1)*100 + Number(zl2)*200 + Number(zl5)*500 + Number(zl10)*1000 + Number(zl20)*2000 + Number(zl50)*5000 + Number(zl100)*10000 + Number(zl200)*20000 + Number(zl500)*50000 + Number(sumaZTerminala)*100;
sendEmail(result[0].imie, result[0].nazwisko, suma/100, result[0].email);
});
}
res.redirect('/liczacy/rozliczenia#'+idWolontariusza);
loger(fs, 'Rozliczono wolontariusza o id: ' + idWolontariusza, 'info');
});
});
liczacy.get("/szybkieInfo", function(req, res) {
var toReturn = '<link rel="stylesheet" href="/style.css">';
toReturn += '<div class="side">';
toReturn += '<h1>Szybkie informacje</h1>';
//sprawdź ile jest wolontariuszy oraz ilu jest rozliczonych
var iloscWolontariuszy = 0;
var iloscRozliczonych = 0;
var iloscLiczących = 0;
con.query("SELECT * FROM `wolontariusz` WHERE `aktywny` = 1", function(err, result) {
if (err) throw err;
iloscWolontariuszy = result.length;
con.query("SELECT * FROM `rozliczenie` WHERE `aktywne` = 1", function(err, result) {
if (err) throw err;
iloscRozliczonych = result.length;
con.query("SELECT * FROM `liczacy` WHERE `aktywne` = 1", function(err, result) {
if (err) throw err;
iloscLiczących = result.length;
toReturn += '<table class="dane">';
toReturn += '<tr><td>Ilość wolontariuszy</td><td>' + iloscWolontariuszy + '</td></tr>';
toReturn += '<tr><td>Ilość rozliczonych</td><td>' + iloscRozliczonych + '</td></tr>';
toReturn += '<tr><td>Ilość liczących</td><td>' + iloscLiczących + '</td></tr>';
toReturn += '</table>';
//ostatni rozliczony
toReturn += '<h2>Ostatnio rozliczeni</h2>';
toReturn += '<table class="dane">';
toReturn += '<tr><th>Wolontariusz</th><th>Suma</th></tr>';
con.query("SELECT * FROM `rozliczenie`, `wolontariusz` WHERE `rozliczenie`.`wolontariuszID` = `wolontariusz`.`id` AND `rozliczenie`.`aktywne` = 1 ORDER BY `rozliczenie`.`czasRozliczenia` DESC LIMIT 5", function(err, result) {
if (err) throw err;
result.forEach(function(row) {
2025-01-08 11:09:35 +00:00
toReturn += '<tr><td>' + row.numerIdentyfikatora + '</td><td>' + Math.round((row['1gr'] + row['2gr'] * 2 + row['5gr'] * 5 + row['10gr'] * 10 + row['20gr'] * 20 + row['50gr'] * 50 + row['1zl'] * 100 + row['2zl'] * 200 + row['5zl'] * 500 + row['10zl'] * 1000 + row['20zl'] * 2000 + row['50zl'] * 5000 + row['100zl'] * 10000 + row['200zl'] * 20000 + row['500zl'] * 50000 + row.sumaZTerminala * 100))/100.0 + ' zł</td></tr>';
2025-01-01 17:30:11 +00:00
});
toReturn += '</table>';
toReturn += '</div>';
res.send(toReturn);
});
});
});
});
});
liczacy.all('/wyloguj', function(req, res) {
//tokenyLiczacy ustaw aktywny na 0
con.query('UPDATE tokenyLiczacy SET aktywny = 0 WHERE userId = ?', [req.user.id], function(err, result) {
if (err) throw err;
res.clearCookie('liczacy');
res.redirect('/loginliczacy');
});
});
module.exports = liczacy;