From 8a449cf81bd1d8b5f2fa5ccbce58ba4528945ff0 Mon Sep 17 00:00:00 2001 From: tristan Date: Mon, 20 Apr 2026 16:17:28 +0200 Subject: [PATCH] =?UTF-8?q?feat=20:=20paiement=20RTT=20en=20centi=C3=A8mes?= =?UTF-8?q?=20d'heures=20+=20auto-calcul=20bonus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Input step passé de 0.5 à 0.01 pour accepter les centièmes (xx,xx) - Labels mis à jour "(centièmes)" au lieu de "(heures)" - Auto-remplissage du bonus 25% (base × 0.25) et 50% (base × 0.50) - Ligne "Payé" affiche désormais les centièmes en gris comme les autres lignes Co-Authored-By: Claude Opus 4.6 (1M context) --- frontend/components/employees/RttTab.vue | 46 ++++++++++++++---------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/frontend/components/employees/RttTab.vue b/frontend/components/employees/RttTab.vue index dc6b577..12ef983 100644 --- a/frontend/components/employees/RttTab.vue +++ b/frontend/components/employees/RttTab.vue @@ -149,13 +149,13 @@ Payé - - {{ currentPayment ? formatMinutes(-currentPayment.paidBase25Minutes) : '0 h' }} - {{ currentPayment ? formatMinutes(-currentPayment.paidBonus25Minutes) : '0 h' }} - {{ currentPayment ? formatMinutes(-(currentPayment.paidBase25Minutes + currentPayment.paidBonus25Minutes)) : '0 h' }} - {{ currentPayment ? formatMinutes(-currentPayment.paidBase50Minutes) : '0 h' }} - {{ currentPayment ? formatMinutes(-currentPayment.paidBonus50Minutes) : '0 h' }} - {{ currentPayment ? formatMinutes(-(currentPayment.paidBase50Minutes + currentPayment.paidBonus50Minutes)) : '0 h' }} - {{ formatMinutes(paidTotal) }} + {{ currentPayment ? formatMinutes(-currentPayment.paidBase25Minutes) : '0 h' }} / {{ formatCentiemes(currentPayment ? -currentPayment.paidBase25Minutes : 0) }} + {{ currentPayment ? formatMinutes(-currentPayment.paidBonus25Minutes) : '0 h' }} / {{ formatCentiemes(currentPayment ? -currentPayment.paidBonus25Minutes : 0) }} + {{ currentPayment ? formatMinutes(-(currentPayment.paidBase25Minutes + currentPayment.paidBonus25Minutes)) : '0 h' }} / {{ formatCentiemes(currentPayment ? -(currentPayment.paidBase25Minutes + currentPayment.paidBonus25Minutes) : 0) }} + {{ currentPayment ? formatMinutes(-currentPayment.paidBase50Minutes) : '0 h' }} / {{ formatCentiemes(currentPayment ? -currentPayment.paidBase50Minutes : 0) }} + {{ currentPayment ? formatMinutes(-currentPayment.paidBonus50Minutes) : '0 h' }} / {{ formatCentiemes(currentPayment ? -currentPayment.paidBonus50Minutes : 0) }} + {{ currentPayment ? formatMinutes(-(currentPayment.paidBase50Minutes + currentPayment.paidBonus50Minutes)) : '0 h' }} / {{ formatCentiemes(currentPayment ? -(currentPayment.paidBase50Minutes + currentPayment.paidBonus50Minutes) : 0) }} + {{ formatMinutes(paidTotal) }} / {{ formatCentiemes(paidTotal) }} @@ -187,41 +187,41 @@
- +
- +
- +
- + @@ -500,10 +500,10 @@ const paymentForm = reactive({ const prefillFromExistingPayment = (month: number) => { const existing = props.summary?.monthPayments.find((p) => p.month === month) ?? null if (existing) { - paymentForm.base25Hours = existing.paidBase25Minutes / 60 - paymentForm.bonus25Hours = existing.paidBonus25Minutes / 60 - paymentForm.base50Hours = existing.paidBase50Minutes / 60 - paymentForm.bonus50Hours = existing.paidBonus50Minutes / 60 + paymentForm.base25Hours = Math.round(existing.paidBase25Minutes / 60 * 100) / 100 + paymentForm.bonus25Hours = Math.round(existing.paidBonus25Minutes / 60 * 100) / 100 + paymentForm.base50Hours = Math.round(existing.paidBase50Minutes / 60 * 100) / 100 + paymentForm.bonus50Hours = Math.round(existing.paidBonus50Minutes / 60 * 100) / 100 } else { paymentForm.base25Hours = 0 paymentForm.bonus25Hours = 0 @@ -516,6 +516,14 @@ watch(() => paymentForm.month, (newMonth) => { prefillFromExistingPayment(newMonth) }) +watch(() => paymentForm.base25Hours, (value) => { + paymentForm.bonus25Hours = Math.round(value * 0.25 * 100) / 100 +}) + +watch(() => paymentForm.base50Hours, (value) => { + paymentForm.bonus50Hours = Math.round(value * 0.50 * 100) / 100 +}) + const openPaymentDrawer = () => { paymentForm.month = currentMonth.value prefillFromExistingPayment(currentMonth.value)