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
+22 -15
View File
@@ -554,8 +554,8 @@ html,body{height:100%;font-family:var(--body);background:#f8fafc;color:var(--tex
</div>
<div class="cl-row">
<span>Câble HDMI</span>
<div class="cb-wrap"><div class="cb" id="cd-4-p" onclick="toggleCb('cd-4','p')"></div></div>
<div class="cb-wrap"><div class="cb no" id="cd-4-a" onclick="toggleCb('cd-4','a')"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="var(--red)" stroke-width="3"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg></div></div>
<div class="cb-wrap"><div class="cb ok" id="cd-4-p" onclick="toggleCb('cd-4','p')"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="var(--green)" stroke-width="3"><polyline points="20 6 9 17 4 12"/></svg></div></div>
<div class="cb-wrap"><div class="cb" id="cd-4-a" onclick="toggleCb('cd-4','a')"></div></div>
<div class="cb-wrap"><div class="cb" id="cd-4-d" onclick="toggleCb('cd-4','d')"></div></div>
</div>
</div>
@@ -563,12 +563,12 @@ html,body{height:100%;font-family:var(--body);background:#f8fafc;color:var(--tex
<div style="display:flex;flex-direction:column;gap:14px;">
<div class="instr-box">
<div class="lbl" style="margin-bottom:8px;">Instructions</div>
<p>Vérifiez physiquement chaque élément présent dans le kit. Cliquez sur <strong>Présent</strong>, <strong>Absent</strong> ou <strong>Détérioré</strong> pour chaque élément. Signalez tout élément manquant ou endommagé pour éviter tout litige au retour.</p>
<p>La checklist est préremplie avec l'état de référence. Vérifiez physiquement chaque élément et ne modifiez une valeur que si vous constatez un élément manquant ou endommagé. Toute modification alertera un responsable.</p>
</div>
<textarea class="textarea" placeholder="Commentaire ou observation optionnelle..." rows="4"></textarea>
<button class="btn btn-dark btn-lg full" onclick="goTo('s-confirmation')">
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M9 11l3 3L22 4"/></svg>
Valider la checklist et confirmer l'emprunt
Confirmer l'état de départ
</button>
</div>
</div>
@@ -590,7 +590,7 @@ html,body{height:100%;font-family:var(--body);background:#f8fafc;color:var(--tex
<svg width="34" height="34" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>
</div>
<div class="success-title">Emprunt enregistré !</div>
<div class="success-sub">Votre emprunt a bien été enregistré. Vous pouvez récupérer le matériel.</div>
<div class="success-sub">La checklist n'a pas été modifiée. L'emprunt est actif et vous pouvez récupérer le matériel.</div>
</div>
<div class="recap-card">
<div class="recap-label">Récapitulatif de l'emprunt</div>
@@ -600,7 +600,8 @@ html,body{height:100%;font-family:var(--body);background:#f8fafc;color:var(--tex
<div class="rrow"><span class="rk">Date d'emprunt</span><span class="rv">28/05/2026</span></div>
<div class="rrow"><span class="rk">Heure</span><span class="rv">09:15</span></div>
<div class="rrow"><span class="rk">Campus</span><span class="rv">Paris · Ensitech</span></div>
<div class="rrow"><span class="rk">Note</span><span class="rv" style="color:var(--orange);">Câble HDMI absent au départ</span></div>
<div class="rrow"><span class="rk">Statut</span><span class="rv">En cours</span></div>
<div class="rrow"><span class="rk">État de départ</span><span class="rv" style="color:var(--green);">Conforme à l'état de référence</span></div>
</div>
<button class="btn btn-primary full btn-lg" onclick="goTo('s-home-student')">
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/></svg>
@@ -692,17 +693,23 @@ html,body{height:100%;font-family:var(--body);background:#f8fafc;color:var(--tex
<div class="cb-wrap"><div class="cb" id="cr-3-a" onclick="toggleCb('cr-3','a')"></div></div>
<div class="cb-wrap"><div class="cb" id="cr-3-d" onclick="toggleCb('cr-3','d')"></div></div>
</div>
<div class="cl-row">
<span>Câble HDMI</span>
<div class="cb-wrap"><div class="cb ok" id="cr-4-p" onclick="toggleCb('cr-4','p')"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="var(--green)" stroke-width="3"><polyline points="20 6 9 17 4 12"/></svg></div></div>
<div class="cb-wrap"><div class="cb" id="cr-4-a" onclick="toggleCb('cr-4','a')"></div></div>
<div class="cb-wrap"><div class="cb" id="cr-4-d" onclick="toggleCb('cr-4','d')"></div></div>
</div>
</div>
</div>
<div style="display:flex;flex-direction:column;gap:14px;">
<div class="instr-box">
<div class="lbl" style="margin-bottom:8px;">Rappel checklist de départ</div>
<p>Au départ : Chargeur ✗ absent · Souris présente · Housse présente · Câble HDMI ✗ absent</p>
<div class="lbl" style="margin-bottom:8px;">État validé au départ</div>
<p>La checklist de retour est préremplie automatiquement : Chargeur présent · Souris présente · Housse présente · Câble HDMI présent. Modifiez uniquement l'élément dont l'état a changé.</p>
</div>
<textarea class="textarea" placeholder="Commentaire optionnel..." rows="4"></textarea>
<button class="btn btn-dark btn-lg full" onclick="goTo('s-anomalie')">
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M9 11l3 3L22 4"/></svg>
Valider le retour
Signaler le changement et restituer
</button>
</div>
</div>
@@ -725,20 +732,20 @@ html,body{height:100%;font-family:var(--body);background:#f8fafc;color:var(--tex
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--red)" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
</div>
<div class="alert-body">
<strong>Retour non conforme — Anomalie détectée</strong>
<p>Une différence a été constatée avec la checklist de départ. Une anomalie a été créée automatiquement et le responsable matériel a été notifié.</p>
<strong>Retour en attente de contrôle</strong>
<p>Le chargeur a été modifié de « Présent » à « Absent ». Le responsable matériel a été alerté et doit confirmer ou refuser ce changement avant toute mise à jour de l'état officiel.</p>
</div>
</div>
<div class="detail-box">
<div class="lbl" style="margin-bottom:12px;">Détail de l'anomalie</div>
<div class="lbl" style="margin-bottom:12px;">Changement en attente de confirmation</div>
<div class="drow"><span class="dk">Élément concerné</span><span class="dv" style="color:var(--red);">Chargeur 65W</span></div>
<div class="drow"><span class="dk">Statut au départ</span><span class="dv"><span class="pill p-closed">Non renseigné (absent au départ)</span></span></div>
<div class="drow"><span class="dk">Statut au départ</span><span class="dv"><span class="pill p-closed">Présent</span></span></div>
<div class="drow"><span class="dk">Statut au retour</span><span class="dv"><span class="pill p-no">Absent</span></span></div>
<div class="drow"><span class="dk">Matériel</span><span class="dv">PC Dell Latitude 5420 · ENS-PC-001</span></div>
<div class="drow"><span class="dk">Emprunteur</span><span class="dv">Lucas Martin</span></div>
<div class="drow"><span class="dk">Date détection</span><span class="dv">28/05/2026 · 10:30</span></div>
</div>
<div style="font-size:13px;color:var(--muted);text-align:center;line-height:1.6;padding:0 16px;">Le responsable matériel traitera cette anomalie. Vous pouvez retourner à l'accueil.</div>
<div style="font-size:13px;color:var(--muted);text-align:center;line-height:1.6;padding:0 16px;">L'anomalie et le nouvel état du matériel ne seront enregistrés qu'après confirmation du responsable. La catégorie reste bloquée jusque-là.</div>
<button class="btn btn-primary full btn-lg" onclick="goTo('s-home-student')">
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/></svg>
Retour à l'accueil
@@ -1057,4 +1064,4 @@ function toggleCb(group, type) {
}
</script>
</body>
</html>
</html>