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:
@@ -13,6 +13,7 @@ import 'package:em2rp/services/qr_code_processing_service.dart';
|
||||
import 'package:em2rp/services/audio_feedback_service.dart';
|
||||
import 'package:em2rp/services/smart_text_to_speech_service.dart';
|
||||
import 'package:em2rp/services/equipment_service.dart';
|
||||
import 'package:em2rp/services/event_preparation_service.dart';
|
||||
import 'package:em2rp/views/widgets/equipment/equipment_checklist_item.dart' show EquipmentChecklistItem, ChecklistStep;
|
||||
import 'package:em2rp/views/widgets/equipment/container_checklist_item.dart';
|
||||
import 'package:em2rp/views/widgets/common/qr_code_scanner_dialog.dart';
|
||||
@@ -1097,6 +1098,10 @@ class _EventPreparationPageState extends State<EventPreparationPage> with Single
|
||||
|
||||
/// Détermine le statut d'un équipement selon l'étape actuelle
|
||||
String _determineEquipmentStatus(EventEquipment eq) {
|
||||
if (_isNotTakenToEventAtReturn(eq)) {
|
||||
return 'NOT_TAKEN';
|
||||
}
|
||||
|
||||
// Vérifier d'abord si l'équipement est perdu (LOST)
|
||||
if (_shouldMarkAsLost(eq)) {
|
||||
return 'LOST';
|
||||
@@ -1118,14 +1123,31 @@ class _EventPreparationPageState extends State<EventPreparationPage> with Single
|
||||
|
||||
/// Vérifie si un équipement doit être marqué comme LOST
|
||||
bool _shouldMarkAsLost(EventEquipment eq) {
|
||||
// Seulement aux étapes de retour
|
||||
if (_currentStep != PreparationStep.return_ &&
|
||||
!(_currentStep == PreparationStep.unloadingReturn && _loadSimultaneously)) {
|
||||
return EventPreparationService.shouldMarkEquipmentAsLost(
|
||||
isReturnValidationStep: _isReturnValidationStep,
|
||||
isMissingAtReturn: eq.isMissingAtReturn,
|
||||
isLoaded: eq.isLoaded,
|
||||
isMissingAtLoading: eq.isMissingAtLoading,
|
||||
quantityAtLoading: eq.quantityAtLoading,
|
||||
);
|
||||
}
|
||||
|
||||
bool _isNotTakenToEventAtReturn(EventEquipment eq) {
|
||||
if (!_isReturnValidationStep) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Si manquant maintenant mais PAS manquant à la préparation = LOST
|
||||
return eq.isMissingAtReturn && !eq.isMissingAtPreparation;
|
||||
return EventPreparationService.isEquipmentNotTakenToEvent(
|
||||
isMissingAtReturn: eq.isMissingAtReturn,
|
||||
isLoaded: eq.isLoaded,
|
||||
isMissingAtLoading: eq.isMissingAtLoading,
|
||||
quantityAtLoading: eq.quantityAtLoading,
|
||||
);
|
||||
}
|
||||
|
||||
bool get _isReturnValidationStep {
|
||||
return _currentStep == PreparationStep.return_ ||
|
||||
(_currentStep == PreparationStep.unloadingReturn && _loadSimultaneously);
|
||||
}
|
||||
|
||||
/// Vérifie si un équipement est manquant à l'étape actuelle
|
||||
|
||||
Reference in New Issue
Block a user