From 9c3cf84c669c5c2c66ca899d3604b5168e3be52a Mon Sep 17 00:00:00 2001 From: Pablo Quesada Barriuso Date: Thu, 26 Jul 2018 19:32:40 +0200 Subject: [PATCH] [WIP] datetime by date --- hotel/models/hotel_reservation.py | 83 +++++++++++++++++++++---------- hotel/views/hotel_reservation.xml | 2 + 2 files changed, 60 insertions(+), 25 deletions(-) diff --git a/hotel/models/hotel_reservation.py b/hotel/models/hotel_reservation.py index 801628ae5..165ddbf2a 100644 --- a/hotel/models/hotel_reservation.py +++ b/hotel/models/hotel_reservation.py @@ -155,7 +155,54 @@ class HotelReservation(models.Model): @api.multi def _get_default_checkin(self): - import wdb; wdb.set_trace() + folio = False + # default_arrival_hour = self.env['ir.default'].sudo().get( + # 'res.config.settings', 'default_arrival_hour') + if 'folio_id' in self._context: + folio = self.env['hotel.folio'].search([ + ('id', '=', self._context['folio_id']) + ]) + if folio and folio.room_lines: + return folio.room_lines[0].checkin + else: + # tz_hotel = self.env['ir.default'].sudo().get( + # 'res.config.settings', 'tz_hotel') + # now_utc_dt = date_utils.now() + # ndate = "%s %s:00" % \ + # (now_utc_dt.strftime(DEFAULT_SERVER_DATE_FORMAT), + # default_arrival_hour) + # ndate_dt = date_utils.get_datetime(ndate, stz=tz_hotel) + # ndate_dt = date_utils.dt_as_timezone(ndate_dt, 'UTC') + # return ndate_dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT) + # return fields.Date.today() ¿? + return fields.Date.context_today(self) + + @api.multi + def _get_default_checkout(self): + folio = False + # default_departure_hour = self.env['ir.default'].sudo().get( + # 'res.config.settings', 'default_departure_hour') + if 'folio_id' in self._context: + folio = self.env['hotel.folio'].search([ + ('id', '=', self._context['folio_id']) + ]) + if folio and folio.room_lines: + return folio.room_lines[0].checkout + else: + # tz_hotel = self.env['ir.default'].sudo().get( + # 'res.config.settings', 'tz_hotel') + # now_utc_dt = date_utils.now() + timedelta(days=1) + # ndate = "%s %s:00" % \ + # (now_utc_dt.strftime(DEFAULT_SERVER_DATE_FORMAT), + # default_departure_hour) + # ndate_dt = date_utils.get_datetime(ndate, stz=tz_hotel) + # ndate_dt = date_utils.dt_as_timezone(ndate_dt, 'UTC') + # return ndate_dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT) + # return fields.Date.today() ¿? + return fields.Date.context_today(self, datetime.now() + timedelta(days=1)) + + @api.multi + def _get_default_arrival_hour(self): folio = False default_arrival_hour = self.env['ir.default'].sudo().get( 'res.config.settings', 'default_arrival_hour') @@ -164,20 +211,12 @@ class HotelReservation(models.Model): ('id', '=', self._context['folio_id']) ]) if folio and folio.room_lines: - return folio.room_lines[0].checkin + return folio.room_lines[0].arrival_hour else: - tz_hotel = self.env['ir.default'].sudo().get( - 'res.config.settings', 'tz_hotel') - now_utc_dt = date_utils.now() - ndate = "%s %s:00" % \ - (now_utc_dt.strftime(DEFAULT_SERVER_DATE_FORMAT), - default_arrival_hour) - ndate_dt = date_utils.get_datetime(ndate, stz=tz_hotel) - ndate_dt = date_utils.dt_as_timezone(ndate_dt, 'UTC') - return ndate_dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT) + return default_arrival_hour - @api.model - def _get_default_checkout(self): + @api.multi + def _get_default_departure_hour(self): folio = False default_departure_hour = self.env['ir.default'].sudo().get( 'res.config.settings', 'default_departure_hour') @@ -186,17 +225,9 @@ class HotelReservation(models.Model): ('id', '=', self._context['folio_id']) ]) if folio and folio.room_lines: - return folio.room_lines[0].checkout + return folio.room_lines[0].departure_hour else: - tz_hotel = self.env['ir.default'].sudo().get( - 'res.config.settings', 'tz_hotel') - now_utc_dt = date_utils.now() + timedelta(days=1) - ndate = "%s %s:00" % \ - (now_utc_dt.strftime(DEFAULT_SERVER_DATE_FORMAT), - default_departure_hour) - ndate_dt = date_utils.get_datetime(ndate, stz=tz_hotel) - ndate_dt = date_utils.dt_as_timezone(ndate_dt, 'UTC') - return ndate_dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT) + return default_departure_hour # @api.constrains('checkin', 'checkout') #Why dont run api.depends?¿? # def _computed_nights(self): @@ -284,9 +315,11 @@ class HotelReservation(models.Model): default=_get_default_checkout, track_visibility='onchange') arrival_hour = fields.Char('Arrival Hour', - help="HH:MM Format") + default=_get_default_arrival_hour, + help="Default Arrival Hour (HH:MM)") departure_hour = fields.Char('Departure Hour', - help="HH:MM Format") + default=_get_default_departure_hour, + help="Default Departure Hour (HH:MM)") room_type_id = fields.Many2one('hotel.room.type', string='Room Type', required=True, track_visibility='onchange') partner_id = fields.Many2one(related='folio_id.partner_id') diff --git a/hotel/views/hotel_reservation.xml b/hotel/views/hotel_reservation.xml index 04184080e..ea35b99e6 100644 --- a/hotel/views/hotel_reservation.xml +++ b/hotel/views/hotel_reservation.xml @@ -181,6 +181,8 @@ + +