{% extends 'base.html' %} {% block title %}Paie & Primes Mensuelles · RH Planète{% endblock %} {% block content %}
Rémunération & Audit Direction

Gestion des Salaires & Primes — {{ month|month_fr }}

Tableau de paie calqué sur le format officiel Planète : annulation stricte de la prime de présence en cas d'absence/sick, calcul automatique des majorations samedis/dimanches.

{% if rows|selectattr("rates_missing")|list %}

Barème absent pour une partie de cette période. Aucun forfait automatique non configuré n’est attribué ; vérifiez les montants importés ou ajustez la paie.

{% endif %}
Masse Salariale Base MUR / Rs
{{ '{:,.0f}'.format(kpis.total_base).replace(',', ' ') }} Rs
{{ kpis.count }} collaborateurs actifs
Primes de Présence Automatisé
{{ '{:,.0f}'.format(kpis.total_presence).replace(',', ' ') }} Rs
0 Rs si ≥ 1 arrêt maladie ou absence non planifiée
Overtime & Astreintes Samedis / Dimanches
{{ '{:,.0f}'.format(kpis.total_overtime).replace(',', ' ') }} Rs
Samedis (2 000 Rs) · Dimanches (4 000 Rs)
Masse Globale Estimée Total Net
{{ '{:,.0f}'.format(kpis.total_base + kpis.total_presence + kpis.total_overtime).replace(',', ' ') }} Rs
Salaires base + primes + overtimes validés
⚖️
Règles de gestion salariale appliquées :
• Prime de présence : Dès le 1er jour de Sick ou d'absence non planifiée, la prime passe automatiquement à 0 Rs.
• Overtime Samedi & Dimanche : Calculé sur la base de 2 000 Rs par Samedi travaillé et 4 000 Rs par Dimanche travaillé (ou astreinte).
Confidentiel Direction

Tableau Mensuel des Salaires & Ajustements (MUR)

Vérification individuelle et ajustement des forfaits de présence et d'heures supplémentaires
{{ rows|length }} salariés
{% for r in rows %} {% else %} {% endfor %}
Salarié Département Salaire Base Arrêts & Absences Prestations W-E Prime Présence Overtime Calculé Net Estimé Actions & Régularisation
{{ r.person.full_name }}
@{{ r.person.username }}
{{ r.person.team or 'Général' }} {{ '{:,.0f}'.format(r.basic_salary).replace(',', ' ') }} Rs {% if r.sick > 0 or r.unplanned > 0 %} {{ r.sick }} sick / {{ r.unplanned }} abs {% else %} 0 absence {% endif %} {% if r.saturdays > 0 or r.sundays > 0 or r.on_call > 0 %}
{% if r.saturdays > 0 %}{{ r.saturdays }} sam. {% endif %} {% if r.sundays > 0 %}{{ r.sundays }} dim. {% endif %} {% if r.on_call > 0 %}{{ r.on_call }} ast. {% endif %}
{% if r.hours > 0 %}
{{ r.hours|round(1) }}h d'intervention
{% endif %} {% else %} — {% endif %}
{{ '{:,.0f}'.format(r.presence_bonus).replace(',', ' ') }} Rs
{{ '✓ Éligible' if r.presence_eligible else '✗ Supprimée (Sick)' }}
{{ '{:,.0f}'.format(r.overtime_adjustment).replace(',', ' ') }} Rs {% if r.suggested_ot > 0 and r.suggested_ot != r.overtime_adjustment %}
Suggéré : {{ '{:,.0f}'.format(r.suggested_ot) }} Rs
{% endif %}
{{ '{:,.0f}'.format(r.net_estimate).replace(',', ' ') }} Rs
Prés.
OT
Aucun salarié trouvé pour ce mois.
TOTAL GÉNÉRAL {{ '{:,.0f}'.format(kpis.total_base).replace(',', ' ') }} Rs — {{ '{:,.0f}'.format(kpis.total_presence).replace(',', ' ') }} Rs {{ '{:,.0f}'.format(kpis.total_overtime).replace(',', ' ') }} Rs {{ '{:,.0f}'.format(kpis.total_base + kpis.total_presence + kpis.total_overtime).replace(',', ' ') }} Rs
{% endblock %}