[WIP][IMP][11.0] hotel

This commit is contained in:
QS5ELkMu
2018-09-19 12:56:09 +02:00
parent e7bbc76dab
commit e7faa8476b
29 changed files with 503 additions and 437 deletions

View File

@@ -4,7 +4,6 @@
import datetime
from openerp import models, fields, api, _
from openerp.exceptions import except_orm, ValidationError
from odoo.addons.hotel import date_utils
class Cardex(models.Model):
@@ -53,7 +52,7 @@ class Cardex(models.Model):
@api.onchange('enter_date', 'exit_date')
def check_change_dates(self):
if self.exit_date <= self.enter_date:
date_1 = date_utils.get_datetime(self.enter_date)
date_1 = fields.Date.from_string(self.enter_date)
date_2 = date_1 + datetime.timedelta(days=1)
self.update({'exit_date': date_2, })
raise ValidationError(

View File

@@ -14,7 +14,6 @@ from odoo.tools import (
DEFAULT_SERVER_DATETIME_FORMAT,
DEFAULT_SERVER_DATE_FORMAT)
from odoo import models, fields, api, _
from odoo.addons.hotel import date_utils
_logger = logging.getLogger(__name__)
from odoo.addons import decimal_precision as dp
@@ -267,10 +266,8 @@ class HotelFolio(models.Model):
@api.multi
def action_folios_amount(self):
now_utc_dt = date_utils.now()
now_utc_str = now_utc_dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
reservations = self.env['hotel.reservation'].search([
('checkout', '<=', now_utc_str)
('checkout', '<=', fields.Date.today())
])
folio_ids = reservations.mapped('folio_id.id')
folios = self.env['hotel.folio'].search([('id', 'in', folio_ids)])

View File

@@ -284,7 +284,7 @@ class HotelReservation(models.Model):
'channel_type': vals.get('channel_type')})
#~ colors = self._generate_color()
vals.update({
'last_updated_res': date_utils.now(hours=True).strftime(DEFAULT_SERVER_DATETIME_FORMAT),
'last_updated_res': fields.Datetime.now(),
#~ 'reserve_color': colors[0],
#~ 'reserve_color_text': colors[1],
})
@@ -306,8 +306,7 @@ class HotelReservation(models.Model):
def write(self, vals):
if self.notify_update(vals):
vals.update({
'last_updated_res': date_utils.now(hours=True).strftime(
DEFAULT_SERVER_DATETIME_FORMAT)
'last_updated_res': fields.Datetime.now()
})
for record in self:
if record.compute_price_out_vals(vals):
@@ -902,15 +901,9 @@ class HotelReservation(models.Model):
@api.model
def daily_plan(self):
_logger.info('daily_plan')
today_utc_dt = date_utils.now()
yesterday_utc_dt = today_utc_dt - timedelta(days=1)
hotel_tz = self.env['ir.default'].sudo().get('res.config.settings',
'tz_hotel')
today_dt = date_utils.dt_as_timezone(today_utc_dt, hotel_tz)
yesterday_dt = date_utils.dt_as_timezone(yesterday_utc_dt, hotel_tz)
today_str = today_dt.strftime(DEFAULT_SERVER_DATE_FORMAT)
yesterday_str = yesterday_dt.strftime(DEFAULT_SERVER_DATE_FORMAT)
today_str = fields.Date.today()
yesterday_utc_dt = datetime.now() - timedelta(days=1)
yesterday_str = yesterday_utc_dt.strftime(DEFAULT_SERVER_DATE_FORMAT)
reservations_to_checkout = self.env['hotel.reservation'].search([
('state', 'not in', ['done']),
('checkout', '<', today_str)

View File

@@ -4,7 +4,6 @@ from datetime import datetime
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT
from odoo.addons.hotel import date_utils
class HotelRoomTypeRestrictionItem(models.Model):
@@ -59,8 +58,8 @@ class HotelRoomTypeRestrictionItem(models.Model):
self.date_start = False
self.date_end = False
elif self.date_start and self.date_end:
date_start_dt = date_utils.get_datetime(self.date_start)
date_end_dt = date_utils.get_datetime(self.date_end)
date_start_dt = fields.Date.from_string(self.date_start)
date_end_dt = fields.Date.from_string(self.date_end)
if date_end_dt < date_start_dt:
raise ValidationError(_("Invalid Dates"))

View File

@@ -6,7 +6,6 @@ import logging
from odoo import models, fields, api, _
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
from odoo.exceptions import UserError
from odoo.addons.hotel import date_utils
_logger = logging.getLogger(__name__)
from odoo.addons import decimal_precision as dp
@@ -91,12 +90,12 @@ class HotelServiceLine(models.Model):
('mail', 'Mail'),
('phone', 'Phone'),
('call', 'Call Center'),
('web','Web')], 'Sales Channel')
('web', 'Web')], 'Sales Channel')
ser_checkin = fields.Datetime('From Date', required=True,
default=_service_checkin)
ser_checkout = fields.Datetime('To Date', required=True,
default=_service_checkout)
ser_checkin = fields.Date('From Date', required=True,
default=_service_checkin)
ser_checkout = fields.Date('To Date', required=True,
default=_service_checkout)
ser_room_line = fields.Many2one('hotel.reservation', 'Room',
default=_default_ser_room_line)
@@ -199,20 +198,17 @@ class HotelServiceLine(models.Model):
-----------------------------------------------------------------
@param self: object pointer
'''
now_utc_dt = date_utils.now()
now_utc = fields.Date.today()
if not self.ser_checkin:
self.ser_checkin = now_utc_dt.strftime(
DEFAULT_SERVER_DATETIME_FORMAT)
self.ser_checkin = now_utc
if not self.ser_checkout:
self.ser_checkout = now_utc_dt.strftime(
DEFAULT_SERVER_DATETIME_FORMAT)
chkin_utc_dt = date_utils.get_datetime(self.ser_checkin)
chkout_utc_dt = date_utils.get_datetime(self.ser_checkout)
self.ser_checkout = now_utc
chkin_utc_dt = fields.Date.from_string(self.ser_checkin)
chkout_utc_dt = fields.Date.from_string(self.ser_checkout)
if chkout_utc_dt < chkin_utc_dt:
raise UserError(_('Checkout must be greater or equal checkin date'))
if self.ser_checkin and self.ser_checkout:
diffDate = date_utils.date_diff(self.ser_checkin,
self.ser_checkout, hours=False) + 1
diffDate = abs((self.ser_checkout - self.ser_checkin).days) + 1
# FIXME: Finalize method!
@api.multi

View File

@@ -5,7 +5,6 @@ from openerp import models, fields, api
from openerp.tools import (
DEFAULT_SERVER_DATE_FORMAT,
DEFAULT_SERVER_DATETIME_FORMAT)
from odoo.addons.hotel import date_utils
class MassiveChangesWizard(models.TransientModel):
@@ -17,8 +16,8 @@ class MassiveChangesWizard(models.TransientModel):
('1', 'Restrictions'),
('2', 'Pricelist'),
], string='Section', default='0')
date_start = fields.Datetime('Start Date', required=True)
date_end = fields.Datetime('End Date', required=True)
date_start = fields.Date('Start Date', required=True)
date_end = fields.Date('End Date', required=True)
dmo = fields.Boolean('Monday', default=True)
dtu = fields.Boolean('Tuesday', default=True)
dwe = fields.Boolean('Wednesday', default=True)
@@ -28,12 +27,11 @@ class MassiveChangesWizard(models.TransientModel):
dsu = fields.Boolean('Sunday', default=True)
applied_on = fields.Selection([
('0', 'Global'),
('1', 'Virtual Room'),
('1', 'Room Type'),
], string='Applied On', default='0')
# room_type_ids = fields.Many2many('hotel.virtual.room',
# string="Virtual Rooms")
room_type_ids = fields.Many2many('hotel.room.type',
string="Room Types")
room_type_ids = fields.Many2many('hotel.room.type', string="Room Types")
# Availability fields
change_avail = fields.Boolean(default=False)
@@ -251,12 +249,10 @@ class MassiveChangesWizard(models.TransientModel):
def _do_massive_change(self):
hotel_room_type_obj = self.env['hotel.room.type']
for record in self:
date_start_dt = date_utils.get_datetime(record.date_start,
hours=False)
date_start_dt = fields.Date.from_string(record.date_start)
date_end_dt = fields.Date.from_string(record.date_end)
# Use min '1' for same date
diff_days = date_utils.date_diff(record.date_start,
record.date_end,
hours=False) + 1
diff_days = abs((date_end_dt - date_start_dt).days) + 1
wedays = (record.dmo, record.dtu, record.dwe, record.dth,
record.dfr, record.dsa, record.dsu)
room_types = record.room_type_id if record.applied_on == '1' \

View File

@@ -21,10 +21,9 @@ class SplitReservationWizard(models.TransientModel):
reservation_id = self.env['hotel.reservation'].browse(
self.env.context.get('active_id'))
if reservation_id:
date_start_dt = date_utils.get_datetime(reservation_id.checkin)
date_end_dt = date_utils.get_datetime(reservation_id.checkout)
date_diff = date_utils.date_diff(date_start_dt, date_end_dt,
hours=False)
date_start_dt = fields.Date.from_string(reservation_id.checkin)
date_end_dt = fields.Date.from_string(reservation_id.checkout)
date_diff = abs((date_end_dt - date_start_dt).days)
for record in self:
new_start_date_dt = date_start_dt + \
timedelta(days=date_diff-record.nights)
@@ -41,7 +40,7 @@ class SplitReservationWizard(models.TransientModel):
tprice = [0.0, 0.0]
div_dt = date_utils.dt_no_hours(new_start_date_dt)
for rline in reservation_id.reservation_lines:
rline_dt = date_utils.get_datetime(rline.date, hours=False)
rline_dt = fields.Date.from_string(rline.date)
if rline_dt >= div_dt:
reservation_lines[1].append((0, False, {
'date': rline.date,