From bce76465343f1d57ef8accb5dba14f83c2abed86 Mon Sep 17 00:00:00 2001 From: Juliana Date: Mon, 4 Nov 2019 18:33:50 +0100 Subject: [PATCH] Pb UTC format --- models/vracoop_point_retrait.py | 39 ++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/models/vracoop_point_retrait.py b/models/vracoop_point_retrait.py index 57b6fd8..33020a9 100644 --- a/models/vracoop_point_retrait.py +++ b/models/vracoop_point_retrait.py @@ -2,6 +2,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import models, fields, api +import pytz # import dateutil.rrule as rrule # from datetime import date from dateutil.relativedelta import * @@ -10,6 +11,7 @@ from dateutil.rrule import rrule, DAILY, MINUTELY, rruleset from dateutil.parser import * # from datetime import * from datetime import datetime, timedelta +from pytz import timezone class VracoopPointRetrait(models.Model): _name = "vracoop.point.retrait" @@ -78,7 +80,19 @@ class VracoopPointRetrait(models.Model): ('dimanche', 6, 0, 'dim.'), ] for rec in self: - today_datetime = datetime.today() + + today_datetime_utc = datetime.now(timezone('UTC')) + today_datetime2 = today_datetime_utc.astimezone(timezone('Europe/Berlin')) + + today_datetime = datetime( + today_datetime2.year, + today_datetime2.month, + today_datetime2.day, + today_datetime2.hour, + today_datetime2.minute, + today_datetime2.second) + + # today_datetime = datetime.strptime(today_datetime2, "%Y-%m-%d %H:%M:%S") return_slot_list = [] vals = [] exclure_days_nb = rec.vracoop_retrait_time_ids.search_count([ @@ -144,20 +158,23 @@ class VracoopPointRetrait(models.Model): today_hour_available = today_datetime + timedelta( hours=corresponding_line.preparation_time) - for slot_elem in list_slot_per_day_morning: first_slot = slot_elem.strftime("%H:%M") slot_elem_last = slot_elem + timedelta( hours=corresponding_line.availability_time) last_slot = slot_elem_last.strftime("%H:%M") + if slot_elem >= last_morning_hour_week: + continue + if slot_elem.date() == today_datetime.date(): + if (slot_elem_last > last_morning_hour_week): + if (today_hour_available > last_morning_hour_week): + continue if (today_hour_available > slot_elem_last): continue if slot_elem_last >= last_morning_hour_week: slot_elem_last = last_morning_hour_week last_slot = slot_elem_last.strftime("%H:%M") - if slot_elem >= last_morning_hour_week: - continue # Check number of maximum withdrawal not reached first_slot_hour = first_slot.split(":") first_slot_float = float( @@ -168,20 +185,26 @@ class VracoopPointRetrait(models.Model): ('hour_retrait', '=', first_slot_float)]) if nb_sale_slot < rec.nb_max_retrait: slots.append((first_slot, last_slot)) - + for slot_elem in list_slot_per_day_noon: first_slot = slot_elem.strftime("%H:%M") slot_elem_last = slot_elem + timedelta( hours=corresponding_line.availability_time) last_slot = slot_elem_last.strftime("%H:%M") - if week.date() == today_datetime.date(): + if slot_elem >= last_noon_hour_week: + continue + + if slot_elem.date() == today_datetime.date(): + if (slot_elem_last > last_noon_hour_week): + if (today_hour_available > last_noon_hour_week): + continue if (today_hour_available > slot_elem_last): continue + if slot_elem_last >= last_noon_hour_week: slot_elem_last = last_noon_hour_week last_slot = slot_elem_last.strftime("%H:%M") - if slot_elem >= last_noon_hour_week: - continue + # Check number of maximum withdrawal not reached first_slot_hour = first_slot.split(":") first_slot_float = float(