const express = require('express'); const router = express.Router(); const renderPage = require('../utils/renderHelper'); const contratService = require('../services/contratService'); const globalService = require('../services/globalService'); const logger = require('../utils/logger'); router.get('/', (req, res) => { renderPage('contrat.ejs', res); }); router.get('/read/numContrat/:numContrat', async (req, res) => { const numContrat = req.params.numContrat.toUpperCase(); const contrat = await contratService.getContratByNumContrat(numContrat); res.json({ valid: Boolean(contrat), contrat }); }); router.get('/read/numSaisine/:numSaisine', async (req, res) => { const numSaisine = req.params.numSaisine.toUpperCase(); const contrat = await contratService.getContratByNumSaisine(numSaisine); res.json({ valid: Boolean(contrat), contrat }); }); router.get('/read/id/:idContrat', async (req, res) => { const idContrat = req.params.idContrat; const contrat = await contratService.getContratById(idContrat); res.json({ valid: Boolean(contrat), contrat }); }); router.post('/create', async (req, res) => { const contrat = await contratService.createContrat(); res.json({ valid: Boolean(contrat), contrat }); }); router.post('/update/:idContrat', async (req, res) => { const idContrat = req.params.idContrat; const data = req.body; const record = await globalService.updateRecordFromData("contrat", idContrat, data); res.json({ valid: Boolean(record) }); }); // Route pour modifier l'id client dans le contrat router.post('/update/client/:idContrat/:idClient', async (req, res) => { const idClient = req.params.idClient; const idContrat = req.params.idContrat; const data = { "client": idClient }; const record = await globalService.updateRecordFromData("contrat", idContrat, data); res.json({ valid: Boolean(record) }); }); // Route pour modifier l'id intermediaire dans le contrat router.post('/update/intermediaire/:idContrat/:idIntermediaire', async (req, res) => { const idIntermediaire = req.params.idIntermediaire; const idContrat = req.params.idContrat; const data = { "intermediaire": idIntermediaire }; const record = await globalService.updateRecordFromData("contrat", idContrat, data); res.json({ valid: Boolean(record) }); }); // Route pour modifier l'id client dans le contrat selon le produit en cours. router.post('/update/:produit/:idContrat/:idEnCours', async (req, res) => { const idContrat = req.params.idContrat; const idEnCours = req.params.idEnCours; const produit = req.params.produit.toLocaleLowerCase(); const data = { [produit] : idEnCours }; const record = await globalService.updateRecordFromData("contrat", idContrat, data); res.json({ valid: Boolean(record) }); }); // Route pour modifier l'id client dans le contrat router.post('/update/historique/:idContrat', async (req, res) => { const idContrat = req.params.idContrat; const historiqueData = req.body.historiqueData; // Les données d'historique envoyées depuis le front-end const contrat = await contratService.getContratById(idContrat); let historique = contrat.historique || []; // Récupérer l'historique existant ou initialiser un nouveau tableau // Ajouter les nouvelles données d'historique à l'historique existant historique = historique.concat(historiqueData); // Mettre à jour le champ "historique" dans le contrat avec le nouvel historique const updatedContrat = await globalService.updateRecordFromData("contrat", idContrat, { "historique": historique }); res.json({ valid: Boolean(contrat), updatedContrat }); }); module.exports = router;