From dad5e3aae64d40191e10e7aa71ddc76705c45ab8 Mon Sep 17 00:00:00 2001 From: Alicia FLOREZ Date: Wed, 29 May 2013 11:25:52 +0200 Subject: [PATCH] =?utf8?q?=C3=80=20finir=20:=20Travail=20calcul=20jours=20ou?= =?utf8?q?vr=C3=A9s=20entre=202=20dates?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- axes.py | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/axes.py b/axes.py index 7989c5b..f448c07 100644 --- a/axes.py +++ b/axes.py @@ -3,6 +3,7 @@ ''' from openerp.osv import osv, fields +from datetime import * class Mesurable(osv.Model): @@ -46,6 +47,75 @@ class Mesurable(osv.Model): ] +#=============== TODO TRAVAIL CALCUL JOURS OUVRES ============================== +# def _annee_bissextile(self, annee): # TODO vérifier le besoin de self +# """ Retourne vrai si l'année est bissextile, faux sinon. """ +# return (annee % 4 == 0 and annee % 100 != 0 or annee % 400 == 0) +# +# +# def _get_date_paques(self, annee): # TODO vérifier le besoin de self +# """ +# Retourne la date du dimanque de pâques pour une année donnée +# sous la forme d'un objet date. +# """ +# a = annee % 19 +# b = annee // 100 +# c = annee % 100 +# d = (19 * a + b - b // 4 - ((b - (b + 8) // 25 + 1) // 3) + 15) % 30 +# e = (32 + 2 * (b % 4) + 2 * (c // 4) - d - (c % 4)) % 7 +# f = d + e - 7 * ((a + 11 * d + 22 * e) // 451) + 114 +# mois = f // 31 +# jours = f % 31 + 1 +# return date(annee, mois, jours) +# +# +# def get_jours_feries(self, annee): +# """ +# Retourne une liste contenant les jours fériés d'une année donnée. +# """ +# date_paques = _get_date_paques(self, annee) +# return [ +# date_paques+timedelta(days=1), # Lundi de Pâques +# date_paques+timedelta(days=39), # Jeudi de l'Ascension +# date_paques+timedelta(days=50), # Lundi de Pentecôte +# date(annee, 1, 1), # Jour de l'An +# date(annee, 5, 1), # Fête du travail +# date(annee, 5, 8), # Armistice 1945 +# date(annee, 7, 14), # Fête Nationale +# date(annee, 8, 15), # Assomption +# date(annee, 11, 1), # Toussaint +# date(annee, 11, 11), # Armistice 1918 +# date(annee, 12, 25), # Noël +# ] +# +# def _jour_ouvre(self, d): +# """ Retourne vrai si la date est un jour ouvre, faux sinon.""" +# if (5,6).__contains__(d.weekday()) or _get_jours_feries(d.year).__contains__(d): +# return False +# else: +# return True +# +# def _nb_jours_ouvre_entre_2_dates(self, d1, d2): +# """ +# Retourne le nombre de jours ouvres entre deux dates données. +# +# >>> nb_jours_ouvre_entre_2_dates(date(2013, 5, 1), date(2013, 7, 31)) +# 62 +# >>> nb_jours_ouvre_entre_2_dates(date(2013, 7, 31), date(2013, 5, 1)) +# 62 +# """ +# if d1>d2: +# d1, d2 = d2, d1 # Switch les 2 dates pour que d1 soit la plus petite +# tmp = d1 +# jour_ouvres = 0 +# while tmp <= d2: +# if _jour_ouvre(self, tmp): # Si tmp est un jour ouvre +# jour_ouvres += 1 +# tmp += timedelta(days=1) +# return jour_ouvres +#=============================================================================== + + class Chantier(osv.Model): _name = "cmmi.axes.chantier" -- 1.7.10.4