From 1f23a9582a12f73f43130f56a4ac6f67046b86ed Mon Sep 17 00:00:00 2001 From: root Date: Thu, 20 Aug 2026 20:30:06 +0000 Subject: [PATCH] Corriger le calcul du solde horaire --- app_new/planning/templates/planning/time_tracking.html | 2 +- app_new/planning/time_tracking.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app_new/planning/templates/planning/time_tracking.html b/app_new/planning/templates/planning/time_tracking.html index 3584042..162454b 100644 --- a/app_new/planning/templates/planning/time_tracking.html +++ b/app_new/planning/templates/planning/time_tracking.html @@ -11,7 +11,7 @@
À réaliser

{{ '%d h %02d'|format(required_minutes // 60, required_minutes % 60) }}

1607 h moins pénibilité
Prévu par calendrier

{{ '%d h %02d'|format(planned_minutes // 60, planned_minutes % 60) }}

Réalisé saisi

{{ '%d h %02d'|format(actual_minutes // 60, actual_minutes % 60) }}

-
Solde réalisé / dû

{{ '+' if variance_minutes >= 0 else '' }}{{ '%d h %02d'|format((variance_minutes|abs) // 60, (variance_minutes|abs) % 60) }}

{% if variance_minutes >= 0 %}heures à récupérer{% else %}heures à faire{% endif %}
+
Solde réalisé / dû

{{ '%d h %02d'|format((balance_minutes|abs) // 60, (balance_minutes|abs) % 60) }}

{% if balance_minutes > 0 %}heures à faire{% else %}heures en excédent{% endif %}
Récapitulatif mensuelLes heures de travail prévues excluent les permanences, affichées séparément.
{% for item in monthly_summary %}{% else %}{% endfor %}
MoisTravail prévuPermanencesRetardsHeures supplémentairesFormations
{{ months[item.month.month] }} {{ item.month.year }}{{ '%d h %02d'|format(item.planned // 60, item.planned % 60) }}{{ '%d h %02d'|format(item.permanence // 60, item.permanence % 60) }}{{ '%d h %02d'|format(item.retard // 60, item.retard % 60) }}{{ '%d h %02d'|format(item.supplementaire // 60, item.supplementaire % 60) }}{{ '%d h %02d'|format(item.formation // 60, item.formation % 60) }}
Aucune donnée pour cette période.
diff --git a/app_new/planning/time_tracking.py b/app_new/planning/time_tracking.py index a256371..0612313 100644 --- a/app_new/planning/time_tracking.py +++ b/app_new/planning/time_tracking.py @@ -175,6 +175,9 @@ def time_tracking(): "supplementaire": sum(item.actual_minutes or 0 for item in month_entries if item.entry_type == "supplementaire"), "formation": training_minutes, }) + # Solde restant selon la règle de l'agent : objectif - prévu - retards + # + heures supplémentaires + formations. + balance_minutes = config.minutes_to_work - sum(item["planned"] for item in monthly_summary) - sum(item["retard"] for item in monthly_summary) + sum(item["supplementaire"] for item in monthly_summary) + sum(item["formation"] for item in monthly_summary) return render_template( "planning/time_tracking.html", year=year, period_start=period_start, period_end=period_end, time_config=config, templates=templates, assignments=assignments, closures=closures, permanence_options=permanence_options, permanence_groups=permanence_groups, entries=entries, @@ -182,6 +185,7 @@ def time_tracking(): months={1: "Janvier", 2: "Février", 3: "Mars", 4: "Avril", 5: "Mai", 6: "Juin", 7: "Juillet", 8: "Août", 9: "Septembre", 10: "Octobre", 11: "Novembre", 12: "Décembre"}, planned_minutes=planned, actual_minutes=actual, required_minutes=config.minutes_to_work, variance_minutes=actual - config.minutes_to_work, + balance_minutes=balance_minutes, monthly_summary=monthly_summary, )