feat(loans): confirm declared material state changes

This commit is contained in:
SaidSoighiri94
2026-07-24 13:41:40 +02:00
parent 3739e9b0a0
commit a562b3248f
26 changed files with 1832 additions and 282 deletions
+29 -5
View File
@@ -17,18 +17,22 @@ class EmpruntService {
"materielId": materielId,
"posteEmpruntId": posteEmpruntId,
"modeIdentification": "MAIL_ENSUP",
if (commentaireDepart.trim().isNotEmpty) "commentaireDepart": commentaireDepart.trim(),
if (commentaireDepart.trim().isNotEmpty)
"commentaireDepart": commentaireDepart.trim(),
"elements": elements,
});
final data = (reponse as Map<String, dynamic>)["data"] as Map<String, dynamic>;
final data =
(reponse as Map<String, dynamic>)["data"] as Map<String, dynamic>;
return EmpruntResponse.fromJson(data);
}
static Future<List<EmpruntItem>> getMesEmprunts() async {
final reponse = await ApiClient.get("/mes-emprunts");
final data = (reponse as Map<String, dynamic>)["data"] as List<dynamic>;
return data.map((json) => EmpruntItem.fromJson(json as Map<String, dynamic>)).toList();
return data
.map((json) => EmpruntItem.fromJson(json as Map<String, dynamic>))
.toList();
}
static Future<EmpruntResponse> restituerEmprunt({
@@ -38,11 +42,31 @@ class EmpruntService {
}) async {
final reponse = await ApiClient.post("/emprunts/$empruntId/restitution", {
"modeIdentification": "MAIL_ENSUP",
if (commentaireRetour.trim().isNotEmpty) "commentaireRetour": commentaireRetour.trim(),
if (commentaireRetour.trim().isNotEmpty)
"commentaireRetour": commentaireRetour.trim(),
"elements": elements,
});
final data = (reponse as Map<String, dynamic>)["data"] as Map<String, dynamic>;
final data =
(reponse as Map<String, dynamic>)["data"] as Map<String, dynamic>;
return EmpruntResponse.fromJson(data);
}
static Future<bool> signalerTentativeRetour({
required int empruntId,
required String nomElement,
required String etatInitial,
required String etatDemande,
}) async {
final reponse = await ApiClient.post(
"/emprunts/$empruntId/alerte-changement-retour",
{
"nomElement": nomElement,
"etatInitial": etatInitial,
"etatDemande": etatDemande,
},
);
final data = Map<String, dynamic>.from(reponse["data"] as Map);
return data["alerteCreee"] as bool;
}
}
@@ -12,6 +12,9 @@ class ResponsableService {
static Future<List<Map<String, dynamic>>> emprunts() =>
_liste("/responsable/emprunts");
static Future<List<Map<String, dynamic>>> ecarts() =>
_liste("/responsable/ecarts");
static Future<List<Map<String, dynamic>>> materiels() =>
_liste("/responsable/materiels");
@@ -49,6 +52,22 @@ class ResponsableService {
return Map<String, dynamic>.from(reponse["data"] as Map);
}
static Future<Map<String, dynamic>> deciderEcart({
required int empruntId,
required String decision,
String? observation,
String? statutMateriel,
}) async {
final reponse =
await ApiClient.patch("/responsable/ecarts/$empruntId/decision", {
"decision": decision,
if (observation != null && observation.trim().isNotEmpty)
"observation": observation.trim(),
"statutMateriel": ?statutMateriel,
});
return Map<String, dynamic>.from(reponse["data"] as Map);
}
static Future<List<Map<String, dynamic>>> _liste(String chemin) async {
final reponse = await ApiClient.get(chemin);
final data = reponse["data"] as List;