feat: Mise à jour à la version 1.1.20 et amélioration de la recherche d'équipements
- Mise à jour de la version de l'application à `1.1.20` dans `app_version.dart`, `version.json` et `CHANGELOG.md`.
- Optimisation de la fonction Cloud `getEquipmentsPaginated` pour supporter la recherche par ID exact (document ID ou ID legacy) et améliorer la recherche textuelle avec filtrage par lots.
- Amélioration de la gestion des alertes dans `processEquipmentValidation.js` :
- Ajout d'un statut `NOT_TAKEN` pour éviter les fausses alertes d'équipements perdus s'ils n'ont jamais été emportés.
- Refonte complète du parsing des dates Firestore pour une meilleure robustesse dans les alertes.
- Correction de la validation des quantités (vérification du type `number`).
- Ajout de méthodes statiques dans `EventPreparationService` (`shouldMarkEquipmentAsLost`, `isEquipmentNotTakenToEvent`) pour centraliser la logique de détermination du statut des équipements au retour.
- Mise à jour de `EventPreparationPage` pour intégrer le nouveau statut `NOT_TAKEN` et utiliser la logique centralisée du service de préparation.
- Mise à jour des fichiers de cache Firebase Hosting.
This commit is contained in:
@@ -4,6 +4,44 @@ import 'package:em2rp/services/api_service.dart';
|
||||
class EventPreparationService {
|
||||
final ApiService _apiService = apiService;
|
||||
|
||||
/// Retourne true si l'équipement était absent du flux événementiel.
|
||||
///
|
||||
/// Cas typique: matériel jamais emporté au départ, donc absent au retour,
|
||||
/// mais qui ne doit jamais être classé en [LOST].
|
||||
static bool isEquipmentNotTakenToEvent({
|
||||
required bool isMissingAtReturn,
|
||||
required bool isLoaded,
|
||||
required bool isMissingAtLoading,
|
||||
int? quantityAtLoading,
|
||||
}) {
|
||||
if (!isMissingAtReturn) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final loadedQuantity = quantityAtLoading ?? 0;
|
||||
return !isLoaded || isMissingAtLoading || loadedQuantity <= 0;
|
||||
}
|
||||
|
||||
/// Retourne true uniquement si l'équipement doit être classé perdu.
|
||||
static bool shouldMarkEquipmentAsLost({
|
||||
required bool isReturnValidationStep,
|
||||
required bool isMissingAtReturn,
|
||||
required bool isLoaded,
|
||||
required bool isMissingAtLoading,
|
||||
int? quantityAtLoading,
|
||||
}) {
|
||||
if (!isReturnValidationStep || !isMissingAtReturn) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return !isEquipmentNotTakenToEvent(
|
||||
isMissingAtReturn: isMissingAtReturn,
|
||||
isLoaded: isLoaded,
|
||||
isMissingAtLoading: isMissingAtLoading,
|
||||
quantityAtLoading: quantityAtLoading,
|
||||
);
|
||||
}
|
||||
|
||||
// === PRÉPARATION ===
|
||||
|
||||
/// Valider un équipement individuel en préparation
|
||||
|
||||
Reference in New Issue
Block a user