personnal/ecole/src copy/controllers/contratController.js

100 lines
3.6 KiB
JavaScript

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;