From d4d0956db8c50fe69054180a9013214178a57d30 Mon Sep 17 00:00:00 2001 From: kry008 Date: Wed, 8 Jan 2025 12:09:35 +0100 Subject: [PATCH] =?UTF-8?q?b=C5=82=C4=85d=20zaokr=C4=85glania=20i=20termin?= =?UTF-8?q?al?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serwer/app/apiLiczacy.js | 122 ++++++++++++++++++++++--------------- serwer/app/apiPanel.js | 19 ++++-- serwer/app/baza-import.sql | 2 +- serwer/app/liczacy.js | 6 +- serwer/app/panelRoutes.js | 4 +- 5 files changed, 95 insertions(+), 58 deletions(-) diff --git a/serwer/app/apiLiczacy.js b/serwer/app/apiLiczacy.js index 6382a83..c2836c0 100644 --- a/serwer/app/apiLiczacy.js +++ b/serwer/app/apiLiczacy.js @@ -48,75 +48,101 @@ apiLiczacy.get("/rozlicz", function(req, res) { apiLiczacy.post("/rozlicz", function(req, res) { var idWolontariusza = req.body.idWolontariusza; - var terminal = req.body.terminal; - var sumaZTerminala = req.body.sumaZTerminala; - var gr1 = req.body.gr1; - var gr2 = req.body.gr2; - var gr5 = req.body.gr5; - var gr10 = req.body.gr10; - var gr20 = req.body.gr20; - var gr50 = req.body.gr50; - var zl1 = req.body.zl1; - var zl2 = req.body.zl2; - var zl5 = req.body.zl5; - var zl10 = req.body.zl10; - var zl20 = req.body.zl20; - var zl50 = req.body.zl50; - var zl100 = req.body.zl100; - var zl200 = req.body.zl200; - var zl500 = req.body.zl500; - var walutaObca = req.body.walutaObca; - var daryInne = req.body.daryInne; - var uwagi = req.body.uwagi; + if(idWolontariusza == undefined) + return res.send(400, {response: "Błąd"}); + var terminal = req.body.terminal || 0; + var sumaZTerminala = req.body.sumaZTerminala || 0; + var gr1 = req.body.gr1 || 0; + var gr2 = req.body.gr2 || 0; + var gr5 = req.body.gr5 || 0; + var gr10 = req.body.gr10 || 0; + var gr20 = req.body.gr20 || 0; + var gr50 = req.body.gr50 || 0; + var zl1 = req.body.zl1 || 0; + var zl2 = req.body.zl2 || 0; + var zl5 = req.body.zl5 || 0; + var zl10 = req.body.zl10 || 0; + var zl20 = req.body.zl20 || 0; + var zl50 = req.body.zl50 || 0; + var zl100 = req.body.zl100 || 0; + var zl200 = req.body.zl200 || 0; + var zl500 = req.body.zl500 || 0; + var walutaObca = req.body.walutaObca || ""; + var daryInne = req.body.daryInne || ""; + var uwagi = req.body.uwagi || ""; + var sala = req.body.sala || ""; var idLiczacy1 = req.body.idLiczacy1; + if(idLiczacy1 == undefined) + return res.send(400, {response: "Błąd"}); var idLiczacy2 = req.body.idLiczacy2; - var idLiczacy3 = req.body.idLiczacy3; + if(idLiczacy2 == undefined) + return res.send(400, {response: "Błąd"}); + var idLiczacy3 = req.body.idLiczacy3 || null; var sala = req.body.sala; - var 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); - }); - } - loger(fs, 'Rozliczono wolontariusza o id: ' + idWolontariusza, 'info'); - var res = `Rozliczono wolontariusza o id: ${idWolontariusza}` - res.send(202, {response: res}); - }); + var sql = "INSERT INTO `rozliczenie` (`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`, `weryfikowal`, `wpisaneDoBSS`, `sala`, `ostatniaZmiana`, `aktywne`) "; + sql += 'VALUES (?, CURRENT_TIME(), ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,?,CURRENT_TIME(),1)'; + try { + 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); + }); + } + loger(fs, 'Rozliczono wolontariusza o id: ' + idWolontariusza, 'info'); + var resp = `Rozliczono wolontariusza o id: ${idWolontariusza}` + return res.send(202, {response: resp}); + }); + } catch (error) { + loger(fs, 'Błąd: ' + error, 'error'); + res.send(400, {response: "Błąd"}); + } }); apiLiczacy.get("/wyloguj", function(req, res) { con.query('UPDATE tokenyLiczacy SET aktywny = 0 WHERE userId = ?', [req.user.id], function(err, result) { - if (err) throw err; + if (err){ + loger(fs, 'Błąd: ' + err, 'error'); + res.send(400, {response: "Błąd"}); + } res.send(202, {response: "Wylogowano"}); }); }); apiLiczacy.get("/top10Liczacy", function(req, res) { con.query("SELECT idLiczacego, imie, nazwisko, sumaPrzeliczona FROM `sumaPrzeliczona` ORDER BY `sumaPrzeliczona`.`sumaPrzeliczona` DESC LIMIT 10;", function(err, result) { - if (err) throw err; + if (err){ + loger(fs, 'Błąd: ' + err, 'error'); + res.send(400, {response: "Błąd"}); + } res.send(result); }); }); apiLiczacy.get("/top10Wolontariuszy", function(req, res) { con.query('SELECT numerIdentyfikatora, imie, nazwisko, suma FROM `SumaZebranaPrzezWolontariuszy` ORDER BY `SumaZebranaPrzezWolontariuszy`.`suma` DESC LIMIT 10;', function(err, result) { - if (err) throw err; + if (err){ + loger(fs, 'Błąd: ' + err, 'error'); + res.send(400, {response: "Błąd"}); + } res.send(result); }); }); +apiLiczacy.get("/osobyLiczace", function(req, res) { + con.query('SELECT * FROM liczacy', function(err, result) { + res.send(result); + }); +}); module.exports = apiLiczacy; \ No newline at end of file diff --git a/serwer/app/apiPanel.js b/serwer/app/apiPanel.js index 5cf19ce..afd3822 100644 --- a/serwer/app/apiPanel.js +++ b/serwer/app/apiPanel.js @@ -84,8 +84,13 @@ apiPanel.get("/potwierdzRozliczenie/:id", function(req, res) { apiPanel.post("/potwierdzRozliczenie/:id", function(req, res) { var id = req.params.id; - var idLiczacy = req.body.idLiczacy; - con.query('UPDATE rozliczenie SET weryfikowal = 1, idLiczacy = ? WHERE id = ? AND aktywne = 1 AND weryfikowal = 0', [idLiczacy, id], function(err, result) { + if(id == undefined) + return res.send(400, {response: "Błąd"}); + con.query('UPDATE rozliczenie SET weryfikowal = ? WHERE id = ? AND aktywne = 1 AND weryfikowal = 0', [req.user.id, id], function(err, result) { + if (err){ + loger(fs, 'Błąd: ' + err, 'error'); + res.send(400, {response: "Błąd"}); + } if(result.affectedRows > 0) { res.send({response: "Potwierdzono"}); } else { @@ -97,13 +102,19 @@ apiPanel.post("/potwierdzRozliczenie/:id", function(req, res) { apiPanel.get("/top10Liczacy", function(req, res) { con.query("SELECT idLiczacego, imie, nazwisko, sumaPrzeliczona FROM `sumaPrzeliczona` ORDER BY `sumaPrzeliczona`.`sumaPrzeliczona` DESC LIMIT 10;", function(err, result) { - if (err) throw err; + if (err){ + loger(fs, 'Błąd: ' + err, 'error'); + res.send(400, {response: "Błąd"}); + } res.send(result); }); }); apiPanel.get("/top10Wolontariuszy", function(req, res) { con.query('SELECT numerIdentyfikatora, imie, nazwisko, suma FROM `SumaZebranaPrzezWolontariuszy` ORDER BY `SumaZebranaPrzezWolontariuszy`.`suma` DESC LIMIT 10;', function(err, result) { - if (err) throw err; + if (err){ + loger(fs, 'Błąd: ' + err, 'error'); + res.send(400, {response: "Błąd"}); + } res.send(result); }); }); diff --git a/serwer/app/baza-import.sql b/serwer/app/baza-import.sql index c593308..f85dd63 100644 --- a/serwer/app/baza-import.sql +++ b/serwer/app/baza-import.sql @@ -156,4 +156,4 @@ DROP TABLE IF EXISTS `suma_przeliczona2`; CREATE OR REPLACE VIEW `suma_przeliczona2` AS SELECT coalesce(`r`.`liczacy1`,`r`.`liczacy2`,`r`.`liczacy3`) AS `ID_Liczącego`, `l`.`imie` AS `Imię`, `l`.`nazwisko` AS `Nazwisko`, sum(`r`.`1gr` * 0.01 + `r`.`2gr` * 0.02 + `r`.`5gr` * 0.05 + `r`.`10gr` * 0.1 + `r`.`20gr` * 0.2 + `r`.`50gr` * 0.5 + `r`.`1zl` * 1 + `r`.`2zl` * 2 + `r`.`5zl` * 5 + `r`.`10zl` * 10 + `r`.`20zl` * 20 + `r`.`50zl` * 50 + `r`.`100zl` * 100 + `r`.`200zl` * 200 + `r`.`500zl` * 500) AS `Suma_Przeliczona` FROM (`rozliczenie` `r` join `liczacy` `l` on(coalesce(`r`.`liczacy1`,`r`.`liczacy2`,`r`.`liczacy3`) = `l`.`id`)) GROUP BY coalesce(`r`.`liczacy1`,`r`.`liczacy2`,`r`.`liczacy3`), `l`.`imie`, `l`.`nazwisko` ; DROP TABLE IF EXISTS `sumy`; -CREATE OR REPLACE VIEW `sumy` AS SELECT `rozliczenie`.`wolontariuszID` AS `wolontariuszID`, sum(`rozliczenie`.`1gr` * 0.01 + `rozliczenie`.`2gr` * 0.02 + `rozliczenie`.`5gr` * 0.05 + `rozliczenie`.`10gr` * 0.1 + `rozliczenie`.`20gr` * 0.2 + `rozliczenie`.`50gr` * 0.5 + `rozliczenie`.`1zl` + `rozliczenie`.`2zl` * 2 + `rozliczenie`.`5zl` * 5 + `rozliczenie`.`10zl` * 10 + `rozliczenie`.`20zl` * 20 + `rozliczenie`.`50zl` * 50 + `rozliczenie`.`100zl` * 100 + `rozliczenie`.`200zl` * 200 + `rozliczenie`.`500zl` * 500) AS `suma` FROM `rozliczenie` GROUP BY `rozliczenie`.`wolontariuszID` ; +CREATE OR REPLACE VIEW `sumy` AS SELECT `rozliczenie`.`wolontariuszID` AS `wolontariuszID`, sum(`rozliczenie`.`1gr` * 0.01 + `rozliczenie`.`2gr` * 0.02 + `rozliczenie`.`5gr` * 0.05 + `rozliczenie`.`10gr` * 0.1 + `rozliczenie`.`20gr` * 0.2 + `rozliczenie`.`50gr` * 0.5 + `rozliczenie`.`1zl` + `rozliczenie`.`2zl` * 2 + `rozliczenie`.`5zl` * 5 + `rozliczenie`.`10zl` * 10 + `rozliczenie`.`20zl` * 20 + `rozliczenie`.`50zl` * 50 + `rozliczenie`.`100zl` * 100 + `rozliczenie`.`200zl` * 200 + `rozliczenie`.`500zl` * 500 + `rozliczenie`.`sumaZTerminala`) AS `suma` FROM `rozliczenie` GROUP BY `rozliczenie`.`wolontariuszID` ; diff --git a/serwer/app/liczacy.js b/serwer/app/liczacy.js index 294b830..ab1c46b 100644 --- a/serwer/app/liczacy.js +++ b/serwer/app/liczacy.js @@ -146,7 +146,7 @@ liczacy.all('/statystyki2', function(req, res) { 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) { - toReturn += '' + row.numerIdentyfikatora + '' + row.suma + ''; + toReturn += '' + row.numerIdentyfikatora + '' + Math.round(row.suma*100)/100 + ''; }); toReturn += ''; toReturn += ''; @@ -158,7 +158,7 @@ liczacy.all('/statystyki2', function(req, res) { 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) { - toReturn += '' + row.idLiczacego + '' + row.sumaPrzeliczona + ''; + toReturn += '' + row.idLiczacego + '' + Math.round(row.sumaPrzeliczona*100)/100 + ''; }); toReturn += ''; toReturn += ''; @@ -430,7 +430,7 @@ liczacy.get("/szybkieInfo", function(req, res) { 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) { - toReturn += '' + row.numerIdentyfikatora + '' + (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ł'; + toReturn += '' + row.numerIdentyfikatora + '' + 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ł'; }); toReturn += ''; toReturn += ''; diff --git a/serwer/app/panelRoutes.js b/serwer/app/panelRoutes.js index 6489fa6..f736a49 100644 --- a/serwer/app/panelRoutes.js +++ b/serwer/app/panelRoutes.js @@ -1278,7 +1278,7 @@ panelRouter.all('/statystyki', function(req, res) { con.query('SELECT numerIdentyfikatora, imie, nazwisko, suma FROM `SumaZebranaPrzezWolontariuszy` ORDER BY `SumaZebranaPrzezWolontariuszy`.`suma` DESC LIMIT 10;', function(err, result) { if (err) throw err; result.forEach(function(row) { - toReturn += '' + row.numerIdentyfikatora + '' + row.imie + ' ' + row.nazwisko + '' + row.suma + ''; + toReturn += '' + row.numerIdentyfikatora + '' + row.imie + ' ' + row.nazwisko + '' + (Math.round(row.suma * 100)/100) + ''; }); toReturn += ''; toReturn += ''; @@ -1290,7 +1290,7 @@ panelRouter.all('/statystyki', function(req, res) { 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) { - toReturn += '' + row.idLiczacego + '' + row.imie + ' ' + row.nazwisko + '' + row.sumaPrzeliczona + ''; + toReturn += '' + row.idLiczacego + '' + row.imie + ' ' + row.nazwisko + '' + (Math.round(row.sumaPrzeliczona*100)/100) + ''; }); toReturn += ''; toReturn += '';