Files
suivi_achat/server.js
2024-12-14 13:39:59 +01:00

66 lines
2.0 KiB
JavaScript

const express = require("express");
const fs = require("fs");
const path = require("path");
const bodyParser = require("body-parser");
const app = express();
const PORT = 3000;
// Middleware
app.use(bodyParser.json());
app.use(express.static("public"));
// Route pour récupérer le montant précédent
app.get("/montant_precedent", (req, res) => {
const filePath = path.join(__dirname, "data", "montant_precedent.txt");
// Vérifier si le fichier existe, sinon le créer avec une valeur par défaut
if (!fs.existsSync(filePath)) {
fs.writeFileSync(filePath, "0");
}
const montant = fs.readFileSync(filePath, "utf-8").trim();
res.send(montant || "0");
});
// Route pour sauvegarder les données
app.post("/save", (req, res) => {
const { date, previousAmount, articles, articleTotal, finalTotal } = req.body;
// Validation des données
const validPreviousAmount = parseFloat(previousAmount) || 0;
const validArticleTotal = parseFloat(articleTotal) || 0;
const validFinalTotal = parseFloat(finalTotal) || 0;
// Définir les chemins des fichiers
const suiviPath = path.join(__dirname, "data", "suivi.csv");
const montantPath = path.join(__dirname, "data", "montant_precedent.txt");
// Format de la ligne pour le fichier CSV
const line = [
date,
validPreviousAmount.toFixed(2),
JSON.stringify(articles),
validArticleTotal.toFixed(2),
validFinalTotal.toFixed(2)
].join(",") + "\n";
try {
// Ajouter la ligne au fichier suivi.csv
fs.appendFileSync(suiviPath, line);
// Mettre à jour le montant précédent dans montant_precedent.txt
fs.writeFileSync(montantPath, validFinalTotal.toFixed(2));
res.sendStatus(200);
} catch (error) {
console.error("Erreur lors de l'écriture des fichiers :", error);
res.status(500).send("Erreur lors de l'écriture des fichiers.");
}
});
// Démarrer le serveur
app.listen(PORT, () => {
console.log(`Server running on http://localhost:${PORT}`);
});