Règles de calcul & fonctionnalités

Tableau de bord

Documentation complète du fonctionnement de l'application Planning Pharmacie. Toutes les règles sont identiques au script Google Apps Script original.

Calendriers lus

  • L'application lit 4 calendriers Google Agenda : Pillulier, Planning Choisy, Pharmacien Choisy et Planning théorique.
  • Chaque événement dans ces calendriers correspond à un créneau de travail pour un salarié. Le titre de l'événement = nom du salarié.
  • Pause personnalisée : un événement « Prénom - 30min » (ou « - 1h », « - 1h30 », « - 45m ») le même jour ne compte pas comme heures travaillées ; il remplace la pause par défaut de 1 h pour ce salarié sur cette date.
  • Deux cas : (1) petit créneau séparé ≤ 2 h = déclaration de pause uniquement ; (2) créneau long > 2 h intitulé « Prénom - 30min » = journée de travail avec pause de 30 min intégrée au titre.
  • Si le titre contient « sans pause », la déduction de pause n'est pas appliquée.

Calcul des heures brutes

  • Durée brute = heure de fin − heure de début (en heures décimales).
  • Pause −1h sur la durée brute si > 6h (sauf « sans pause », nuit, dimanche ou férié en réel) ; pour dimanche et férié en réel, la pause est retirée avant la majoration ×1,5.
  • Nuit : un événement est considéré « nuit » si l'heure de début ≥ 21h OU l'heure de fin ≤ 6h.
  • Réel : dimanche ou férié — pause −1h éventuelle sur la durée brute (> 6h), puis majoration ×1,5. Nuit : ×1,5 sur la durée brute sans retrait pause.

Jours fériés

  • 11 jours fériés français sont calculés automatiquement : 1er jan, Lundi de Pâques, 1er mai, 8 mai, Ascension, Lundi de Pentecôte, 14 juil, 15 août, 1er nov, 11 nov, 25 déc.
  • Pâques est calculé via l'algorithme grégorien (Meeus/Wikipedia).
  • Planning THÉORIQUE un jour férié : pas de majoration ×1.5, mais −1h pause si > 6h (hors nuit et hors dimanche).
  • Réel un jour férié : majoration ×1.5, PAS de retrait de pause.
  • Lundi de Pentecôte (réel) : comptabilisé seulement si plus de 7 h brut travaillées sur la journée (tous créneaux cumulés) ; alors majoration ×1,5 (pause −1 h si > 6 h sur le total journée). Sinon 0 h.
  • La colonne « Jours fériés » du tableau affiche le total (théorique + réel).

Types de contrats

  • 35h classique (base mensuelle 151.67h) : HS = max(0, total réel − 151.67). Couleur : bleu clair.
  • 28h (base mensuelle 121.33h) : même logique que 35h. Couleur : violet clair.
  • 15h/mois (15M, base 65h) : utilise le planning théorique. Couleur : rose.
  • 35h planning fixe (35fixe) : HS = comparaison jour à jour réel vs planning théorique. Couleur : vert.
  • 39h : même logique que 35fixe. Couleur : jaune.
  • Apprenti (fonction contenant « apprenti ») : HS calculées selon le planning entreprise/école. Couleur : orange si contrat 35app.
  • Roufaida (contrat 13) : 44h par mois, HS = max(0, total réel − 44h).
  • 19h, 25h : autres contrats spécifiques (selon personne).

Heures supplémentaires (HS)

  • Contrats à base mensuelle fixe (35h, 28h) : HS = max(0, total heures réelles du mois − base mensuelle).
  • Contrats avec planning théorique (35fixe, 15M, 39h) : comparaison jour par jour. Si réel > prévu → HS. Si prévu > réel → absence.
  • Les jours fériés réels (×1.5) sont ajoutés aux HS pour les contrats à planning théorique.
  • Cumul HS = cumul initial (jusqu'à fin avril 2026 = feuille « H sup ») + à partir de mai 2026 : (HS du mois − absences) − déductions.
  • Le calcul dans l'app ne s'applique qu'à partir de mai 2026 ; le cumul des mois antérieurs est celui de la feuille « H sup ».

Apprentis (35h apprenti)

  • Par défaut (sans heures en entreprise saisies) : même logique qu'un poste 35h avec planning théorique, jour par jour (réel vs théorique, jours fériés pris en compte).
  • Si vous indiquez des heures « en entreprise » (nombre + période du/au) : sur les jours de cette période, l'attendu est proratisé et HS = max(0, somme des heures réelles sur ces jours − attendu). Sur les autres jours du mois, on applique toujours la règle réel vs planning théorique (et les fériés travaillés hors de la période comptent comme pour le 35fixe).
  • Absences école (dates ponctuelles) : les heures saisies sont soustraites des heures supplémentaires du mois pour le salarié concerné (tous contrats).

Retards

  • Les retards sont saisis manuellement ou importés depuis le classeur Google Sheets existant.
  • Le classeur retards (ID 1T5PRTYr8A…) est lu via l'API Google Sheets. Colonne A = nom, colonne AG = heures de retard.
  • Les retards manuels (saisis dans l'app) sont prioritaires sur les retards importés.
  • Chaque retard enregistre : salarié, heures, date du retard, source (sheet ou manuel).
  • Les retards sont déduits dans la colonne « Net (H − Retards) ».

Absences

  • Affichées uniquement pour les contrats à planning théorique (35fixe, 15M, 35app, 39h).
  • Absence = heures prévues au planning théorique − heures réellement effectuées (par jour).
  • Les jours fériés sont exclus du calcul d'absences.
  • Pour les apprentis, les jours « Fac/École » sont aussi exclus.

Colonnes du tableau mensuel

  • Salarié : nom du salarié (tiré du titre de l'événement agenda).
  • Total heures : somme de toutes les heures (avec majorations nuit/dimanche/férié).
  • Ticket restaurant : nombre de jours où le total des heures réellement travaillées (sans majoration ×1,5 dimanche/férié/nuit ; pause −1 h si > 6 h), arrondi à deux décimales, est au moins 6 h.
  • Dimanches : nombre de dimanches travaillés.
  • Retards : heures de retard (importées ou manuelles).
  • Jours fériés : heures travaillées les jours fériés (théorique + réel combinés).
  • Net (H − Retards) : total heures − retards + bonus fériés selon le type de contrat.
  • HS du mois : heures supplémentaires calculées selon les règles du contrat.
  • Cumul HS : valeur heure_supp_cumulee Supabase (modifiable dans Équipe). Le calcul ne l'augmente pas ; seules les déductions HS (onglet Déductions) mettent à jour Supabase.
  • Absences : heures d'absence (uniquement pour les contrats à planning théorique).

Fonctionnalités de l'interface

  • Tri cliquable : cliquez sur les en-têtes de colonnes pour trier (nom, heures, HS, cumul, retards, absences, net).
  • Filtre par contrat : menu déroulant pour afficher un seul type de contrat.
  • Import retards : bouton pour importer les retards depuis le classeur Google Sheets existant.
  • Planning apprentis : interface jour par jour pour marquer entreprise (E) ou fac (F) avec raccourcis par semaine.
  • Page /saisie : retards et absences école (saisie locale).
  • Accès : tout utilisateur connecté avec Google a les mêmes droits dans l'application (tableau complet, import cumul HS, onglets Retards / Apprentis / Déductions, sync feuille). La liste dans « Jannat saisie » sert de référence (emails, nom planning optionnel).
  • Synchronisation : retards, apprentis, déductions, cumul HS et liste des utilisateurs sont lus/écrits dans Google Sheets ; toute session connectée au classeur voit les mêmes données (cache local en complément).