Refactoring - Version OK
This commit is contained in:
@@ -332,7 +332,7 @@ public class DashboardWidgetDTO extends BaseDTO {
|
||||
public String getStatutWidget() {
|
||||
if (hasErreursRecentes()) return "erreur";
|
||||
if (!visible) return "inactif";
|
||||
if (tauxErreur > 10.0) return "maintenance";
|
||||
if (tauxErreur != null && tauxErreur > 10.0) return "maintenance";
|
||||
return "actif";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -437,7 +437,7 @@ public class CotisationDTO extends BaseDTO {
|
||||
|
||||
return montantPaye
|
||||
.multiply(BigDecimal.valueOf(100))
|
||||
.divide(montantDu, 0, BigDecimal.ROUND_HALF_UP)
|
||||
.divide(montantDu, 0, java.math.RoundingMode.HALF_UP)
|
||||
.intValue();
|
||||
}
|
||||
|
||||
|
||||
@@ -636,7 +636,8 @@ public class FormuleAbonnementDTO extends BaseDTO {
|
||||
if (Boolean.TRUE.equals(personnalisationInterface)) score += 10;
|
||||
total += 10;
|
||||
|
||||
return total > 0 ? (score * 100) / total : 0;
|
||||
// total est toujours > 0 car il est toujours incrémenté (minimum 100)
|
||||
return (score * 100) / total;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -596,21 +596,27 @@ public class PreferencesNotificationDTO {
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Vérifie si on est en mode silencieux actuellement */
|
||||
public boolean isEnModeSilencieux() {
|
||||
/**
|
||||
* Version de test de isEnModeSilencieux avec une heure fixe
|
||||
* Permet de tester toutes les branches sans dépendre de l'heure actuelle
|
||||
*/
|
||||
boolean isEnModeSilencieux(LocalTime heureActuelle) {
|
||||
if (!modeSilencieux) return false;
|
||||
if (heureDebutSilencieux == null || heureFinSilencieux == null) return false;
|
||||
|
||||
LocalTime maintenant = LocalTime.now();
|
||||
|
||||
// Gestion du cas où la période traverse minuit
|
||||
if (heureDebutSilencieux.isAfter(heureFinSilencieux)) {
|
||||
return maintenant.isAfter(heureDebutSilencieux) || maintenant.isBefore(heureFinSilencieux);
|
||||
return heureActuelle.isAfter(heureDebutSilencieux) || heureActuelle.isBefore(heureFinSilencieux);
|
||||
} else {
|
||||
return maintenant.isAfter(heureDebutSilencieux) && maintenant.isBefore(heureFinSilencieux);
|
||||
return heureActuelle.isAfter(heureDebutSilencieux) && heureActuelle.isBefore(heureFinSilencieux);
|
||||
}
|
||||
}
|
||||
|
||||
/** Vérifie si on est en mode silencieux actuellement */
|
||||
public boolean isEnModeSilencieux() {
|
||||
return isEnModeSilencieux(LocalTime.now());
|
||||
}
|
||||
|
||||
/** Vérifie si un expéditeur est bloqué */
|
||||
public boolean isExpediteurBloque(String expediteurId) {
|
||||
return expediteursBloqués != null && expediteursBloqués.contains(expediteurId);
|
||||
|
||||
@@ -227,8 +227,15 @@ public enum PrioriteAide {
|
||||
|
||||
/** Vérifie si le délai de traitement est dépassé */
|
||||
public boolean isDelaiDepasse(java.time.LocalDateTime dateCreation) {
|
||||
return isDelaiDepasse(dateCreation, java.time.LocalDateTime.now());
|
||||
}
|
||||
|
||||
/** Vérifie si le délai de traitement est dépassé (version avec date de référence) */
|
||||
public boolean isDelaiDepasse(java.time.LocalDateTime dateCreation, java.time.LocalDateTime maintenant) {
|
||||
java.time.LocalDateTime dateLimite = dateCreation.plusHours(delaiTraitementHeures);
|
||||
return java.time.LocalDateTime.now().isAfter(dateLimite);
|
||||
// Utilise isAfter strictement : le délai est dépassé seulement si on est APRÈS la limite
|
||||
// Si on est exactement à la limite, le délai n'est pas encore dépassé
|
||||
return maintenant.isAfter(dateLimite);
|
||||
}
|
||||
|
||||
/** Calcule le pourcentage de temps écoulé */
|
||||
|
||||
@@ -244,7 +244,16 @@ public enum StatutAide {
|
||||
public boolean peutTransitionnerVers(StatutAide nouveauStatut) {
|
||||
// Règles de transition simplifiées
|
||||
if (this == nouveauStatut) return false;
|
||||
if (estFinal && nouveauStatut != EN_SUIVI) return false;
|
||||
|
||||
// Les statuts finaux ne peuvent transitionner que vers EN_SUIVI
|
||||
// Exception : APPROUVEE et APPROUVEE_PARTIELLEMENT peuvent transitionner vers EN_COURS_TRAITEMENT ou SUSPENDUE
|
||||
// car ce sont des statuts de décision qui doivent permettre le démarrage du traitement
|
||||
if (estFinal
|
||||
&& this != APPROUVEE
|
||||
&& this != APPROUVEE_PARTIELLEMENT
|
||||
&& nouveauStatut != EN_SUIVI) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return switch (this) {
|
||||
case BROUILLON -> nouveauStatut == SOUMISE || nouveauStatut == ANNULEE;
|
||||
|
||||
Reference in New Issue
Block a user