Amélioration de la détection
This commit is contained in:
@@ -12,6 +12,7 @@ export default function DataCleanupSection() {
|
||||
const [loadingReprocess, setLoadingReprocess] = useState(false);
|
||||
const [showDiffereModal, setShowDiffereModal] = useState(false);
|
||||
const [loadingDiffere, setLoadingDiffere] = useState(false);
|
||||
const [seuilMoisDiffere, setSeuilMoisDiffere] = useState(24);
|
||||
const [showEcheancierModal, setShowEcheancierModal] = useState(false);
|
||||
const [loadingEcheancier, setLoadingEcheancier] = useState(false);
|
||||
const [showBackfillModal, setShowBackfillModal] = useState(false);
|
||||
@@ -56,7 +57,9 @@ export default function DataCleanupSection() {
|
||||
setErrorMsg(null);
|
||||
setSuccessMsg(null);
|
||||
try {
|
||||
const { updated, detail, statutsMisAJour } = await api.post('/investissements/fix-differe-dates', {});
|
||||
const { updated, detail, statutsMisAJour } = await api.post('/investissements/fix-differe-dates', {
|
||||
seuilMois: seuilMoisDiffere,
|
||||
});
|
||||
if (updated === 0) {
|
||||
setSuccessMsg('Aucune date incohérente détectée sur les prêts différés.');
|
||||
} else {
|
||||
@@ -163,8 +166,8 @@ export default function DataCleanupSection() {
|
||||
</div>
|
||||
<div className="text-muted" style={{ fontSize: 12 }}>
|
||||
Recalcule la date de 1ère échéance et la date cible à partir de la date de souscription
|
||||
et de la durée prévue. Seuls les prêts dont les dates s'écartent de plus de 2 ans
|
||||
de la valeur calculée sont corrigés.
|
||||
et de la durée prévue. Seuls les prêts dont les dates s'écartent de la valeur calculée
|
||||
de plus qu'un seuil choisi (3 à 24 mois) sont corrigés.
|
||||
</div>
|
||||
</div>
|
||||
<button
|
||||
@@ -259,11 +262,28 @@ export default function DataCleanupSection() {
|
||||
border: '1px solid var(--border)' }}>
|
||||
date souscription + durée (mois)
|
||||
</p>
|
||||
<p style={{ margin: '0 0 20px', lineHeight: 1.6 }} className="text-muted">
|
||||
<p style={{ margin: '0 0 12px', lineHeight: 1.6 }} className="text-muted">
|
||||
La correction ne s'applique que si l'écart entre la date existante et la date calculée
|
||||
dépasse <strong>2 ans</strong>. L'échéancier de projection (simulation de remboursement)
|
||||
est régénéré automatiquement avec la date corrigée.
|
||||
dépasse le seuil choisi ci-dessous. L'échéancier de projection (simulation de
|
||||
remboursement) est régénéré automatiquement avec la date corrigée.
|
||||
</p>
|
||||
<div style={{ margin: '0 0 20px' }}>
|
||||
<label style={{ display: 'block', fontSize: 'var(--fs-sm)', fontWeight: 500, marginBottom: 6 }}>
|
||||
Seuil d'écart
|
||||
</label>
|
||||
<select
|
||||
value={seuilMoisDiffere}
|
||||
onChange={e => setSeuilMoisDiffere(Number(e.target.value))}
|
||||
disabled={loadingDiffere}
|
||||
style={{ width: '100%' }}
|
||||
>
|
||||
<option value={3}>3 mois</option>
|
||||
<option value={6}>6 mois</option>
|
||||
<option value={12}>12 mois</option>
|
||||
<option value={18}>18 mois</option>
|
||||
<option value={24}>24 mois (défaut)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style={{ display: 'flex', justifyContent: 'flex-end', gap: 8 }}>
|
||||
<button onClick={() => setShowDiffereModal(false)} disabled={loadingDiffere}>Annuler</button>
|
||||
<button className="primary" onClick={() => handleFixDiffereDates()} disabled={loadingDiffere}>
|
||||
|
||||
Reference in New Issue
Block a user