Amélioration de la détection
This commit is contained in:
@@ -174,11 +174,18 @@ router.get('/comptes-courants', (req, res) => {
|
||||
res.json(rows);
|
||||
});
|
||||
|
||||
// POST /api/investissements/fix-differe-dates
|
||||
// POST /api/investissements/fix-differe-dates { seuilMois?: 3|6|12|18|24 }
|
||||
// Corrige date_premiere_echeance et date_cible des prêts différés dont les dates
|
||||
// s'écartent de plus de 2 ans par rapport à date_souscription + duree_mois.
|
||||
// s'écartent de plus de `seuilMois` mois par rapport à date_souscription + duree_mois.
|
||||
const SEUILS_MOIS_VALIDES = [3, 6, 12, 18, 24];
|
||||
const SEUIL_MOIS_DEFAUT = 24;
|
||||
|
||||
router.post('/fix-differe-dates', (req, res, next) => {
|
||||
try {
|
||||
const seuilMois = SEUILS_MOIS_VALIDES.includes(Number(req.body?.seuilMois))
|
||||
? Number(req.body.seuilMois)
|
||||
: SEUIL_MOIS_DEFAUT;
|
||||
|
||||
const rows = db.prepare(`
|
||||
SELECT i.id, i.nom_projet, i.date_souscription, i.duree_mois,
|
||||
i.date_premiere_echeance, i.date_cible,
|
||||
@@ -191,7 +198,9 @@ router.post('/fix-differe-dates', (req, res, next) => {
|
||||
AND i.duree_mois IS NOT NULL
|
||||
`).all(req.user.id);
|
||||
|
||||
const SEUIL_JOURS = 730; // 2 ans
|
||||
// Approximation jours/mois (moyenne julienne) — cohérent avec l'ancien seuil fixe
|
||||
// de 730 jours pour 24 mois (2 ans).
|
||||
const SEUIL_JOURS = Math.round(seuilMois * 30.44);
|
||||
|
||||
function addMonths(dateStr, months) {
|
||||
const d = new Date(dateStr + 'T00:00:00Z');
|
||||
@@ -246,7 +255,8 @@ router.post('/fix-differe-dates', (req, res, next) => {
|
||||
recordHistory(inv.id, {
|
||||
type_evenement: 'correction_auto_dates',
|
||||
changements,
|
||||
notes: 'Correction automatique (Nettoyage > Corriger les dates des prêts différés) : écart > 2 ans avec date_souscription + duree_mois',
|
||||
notes: `Correction automatique (Nettoyage > Corriger les dates des prêts différés) : ` +
|
||||
`écart > ${seuilMois} mois avec date_souscription + duree_mois`,
|
||||
});
|
||||
|
||||
// Régénère l'échéancier de projection avec la date corrigée — sans ça,
|
||||
@@ -282,7 +292,7 @@ router.post('/fix-differe-dates', (req, res, next) => {
|
||||
// sinon le prêt affiche un statut incohérent avec sa date jusqu'au lendemain.
|
||||
const statutsMisAJour = corriges.length > 0 ? checkStatutsRetard() : 0;
|
||||
|
||||
res.json({ updated: corriges.length, detail: corriges, statutsMisAJour });
|
||||
res.json({ updated: corriges.length, detail: corriges, statutsMisAJour, seuilMois });
|
||||
} catch (err) {
|
||||
next(err);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user