From c84b9d902ed49b90f5ff4f3dd7872d124ebce211 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 17 Apr 2020 19:46:13 +0200 Subject: [PATCH] Fermeture Covid --- constants.py | 5 ++++- database.py | 13 +++++++++---- facture.py | 7 ++++++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/constants.py b/constants.py index 33d7b0a1..dff594be 100755 --- a/constants.py +++ b/constants.py @@ -281,12 +281,14 @@ ACCUEIL_NON_FACTURE = 1 # jours de nettoyage par exemple MOIS_SANS_FACTURE = 2 # si présence dans cette periode (mois d'août par exemple), elle est répartie sur les autres mois de l'année MOIS_FACTURE_UNIQUEMENT_HEURES_SUPP = 4 # si présence dans cette periode (mois d'août par exemple), le contrat réparti sur les autres mois de l'année, seules les suppléments / déductions sont facturés +FERMETURE_NON_PRISE_EN_COMPTE_MENSUALISATION = 5 # congers sur la route, confinement au moyen âge lorsque les tests massifs n'étaient pas possibles ... ModeCongeItems = [ ("Fermeture de l'établissement", 0), ("Accueil non facturé", ACCUEIL_NON_FACTURE), ("Pas de facture pendant ce mois", MOIS_SANS_FACTURE), - ("Uniquement supplément/déduction", MOIS_FACTURE_UNIQUEMENT_HEURES_SUPP) + ("Uniquement supplément/déduction", MOIS_FACTURE_UNIQUEMENT_HEURES_SUPP), + ("Fermeture non prise en compte dans la mensualisation", FERMETURE_NON_PRISE_EN_COMPTE_MENSUALISATION) ] # Modes d'arrondi des heures de presence @@ -344,6 +346,7 @@ MALADE_SANS_JUSTIFICATIF = -5 ABSENCE_NON_PREVENUE = -4 HOPITAL = -3 +FERMETURE_EXCEPTIONNELLE = -12 MALADE = -2 VACANCES = -1 ABSENT = 0 diff --git a/database.py b/database.py index 28556921..5a589710 100644 --- a/database.py +++ b/database.py @@ -387,6 +387,7 @@ def calcule_jours_conges(self): self.jours_fermeture = {} self.jours_fete = set() self.jours_weekend = [] + self.jours_fermeture_non_prevus = {} self.mois_sans_facture = {} self.mois_facture_uniquement_heures_supp = {} for year in range(config.first_date.year, config.last_date.year + 1): @@ -411,10 +412,14 @@ def calcule_jours_conges(self): def AddPeriode(debut, fin, conge): date = debut while date <= fin: - self.periodes_fermeture[date] = conge - self.jours_fermeture[date] = conge - if date not in self.jours_feries: - self.jours_conges.add(date) + if conge.options == FERMETURE_NON_PRISE_EN_COMPTE_MENSUALISATION: + if date not in self.jours_feries: + self.jours_fermeture_non_prevus[date] = conge + else: + self.periodes_fermeture[date] = conge + self.jours_fermeture[date] = conge + if date not in self.jours_feries: + self.jours_conges.add(date) date += datetime.timedelta(1) self.liste_conges.append((debut, fin)) diff --git a/facture.py b/facture.py index 661aa5f5..a82aa0bb 100644 --- a/facture.py +++ b/facture.py @@ -267,7 +267,12 @@ def __init__(self, inscrit, annee, mois, options=0): # if self.options & TRACES: # print(" heures supplémentaires :", cotisation.heures_realisees, "-", reste_heures, "=", cotisation.heures_supplementaires, "heures") - if jour_ouvre: + if date in database.creche.jours_fermeture_non_prevus: + self.jours_contractualises += 1 + inscritState = inscrit.GetState(date, inscrit.creche.arrondi_facturation) + heures_reference = inscritState.heures_contractualisees + self.CalculeDeduction(cotisation, heures_reference) + elif jour_ouvre: cotisation.jours_ouvres += 1 inscritState = inscrit.GetState(date, inscrit.creche.arrondi_facturation) # print date, str(inscritState)