[IMP] cancelation rule py guideline

This commit is contained in:
Dario Lodeiros
2019-09-24 17:15:40 +02:00
parent 60b789bef8
commit 3621e37dbb
4 changed files with 32 additions and 22 deletions

View File

@@ -10,7 +10,8 @@ class HotelRoomAmenityType(models.Model):
# Fields declaration
name = fields.Char('Amenity Type Name', translate=True, required=True)
hotel_ids = fields.Many2many('hotel.property', string='Hotels', required=False, ondelete='restrict')
hotel_ids = fields.Many2many(
'hotel.property', string='Hotels', required=False, ondelete='restrict')
room_amenity_ids = fields.One2many('hotel.amenity',
'room_amenity_type_id',
'Amenities in this category')

View File

@@ -1,4 +1,4 @@
# Copyright 2017 Dario Lodeiros
# Copyright 2017 Dario
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, fields, models, _
from odoo.addons import decimal_precision as dp
@@ -79,7 +79,8 @@ class HotelBoardServiceRoomType(models.Model):
board_pricelist = self.env['hotel.board.service.room.type'].search([
('pricelist_id', '=', record.pricelist_id.id),
('hotel_room_type_id', '=', record.hotel_room_type_id.id),
('hotel_board_service_id', '=', record.hotel_board_service_id.id),
('hotel_board_service_id', '=',
record.hotel_board_service_id.id),
('id', '!=', record.id)
])
if board_pricelist:
@@ -89,7 +90,8 @@ class HotelBoardServiceRoomType(models.Model):
board_pricelist = self.env['hotel.board.service.room.type'].search([
('pricelist_id', '=', False),
('hotel_room_type_id', '=', record.hotel_room_type_id.id),
('hotel_board_service_id', '=', record.hotel_board_service_id.id),
('hotel_board_service_id', '=',
record.hotel_board_service_id.id),
('id', '!=', record.id)
])
if board_pricelist:
@@ -124,18 +126,18 @@ class HotelBoardServiceRoomType(models.Model):
def create(self, vals):
if 'hotel_board_service_id' in vals:
vals.update(
self.prepare_board_service_room_lines(
vals['hotel_board_service_id'])
)
self.prepare_board_service_room_lines(
vals['hotel_board_service_id'])
)
return super(HotelBoardServiceRoomType, self).create(vals)
@api.multi
def write(self, vals):
if 'hotel_board_service_id' in vals:
vals.update(
self.prepare_board_service_room_lines(
vals['hotel_board_service_id'])
)
self.prepare_board_service_room_lines(
vals['hotel_board_service_id'])
)
return super(HotelBoardServiceRoomType, self).write(vals)
# Business methods
@@ -148,8 +150,8 @@ class HotelBoardServiceRoomType(models.Model):
board_service = self.env['hotel.board.service'].browse(
board_service_id)
for line in board_service.board_service_line_ids:
cmds.append((0, False, {
'product_id': line.product_id.id,
'amount': line.amount
}))
cmds.append((0, False, {
'product_id': line.product_id.id,
'amount': line.amount
}))
return {'board_service_line_ids': cmds}

View File

@@ -3,6 +3,7 @@
from odoo import fields, models
from odoo.addons import decimal_precision as dp
class HotelBoardServiceRoomTypeLine(models.Model):
_name = 'hotel.board.service.room.type.line'
_description = 'Services on Board Service included in Room'
@@ -18,5 +19,6 @@ class HotelBoardServiceRoomTypeLine(models.Model):
'Product',
required=True,
readonly=True)
#TODO def default_amount "amount of service"
amount = fields.Float('Amount', digits=dp.get_precision('Product Price'), default=0.0)
# TODO def default_amount "amount of service"
amount = fields.Float('Amount', digits=dp.get_precision(
'Product Price'), default=0.0)

View File

@@ -9,11 +9,18 @@ class HotelCancelationRule(models.Model):
_name = 'hotel.cancelation.rule'
_description = 'Cancelation Rules'
# Fields declaration
name = fields.Char('Amenity Name', translate=True, required=True)
pricelist_ids = fields.One2many(
'product.pricelist',
'cancelation_rule_id',
'Pricelist that use this rule')
hotel_ids = fields.Many2many(
'hotel.property',
string='Hotels',
required=False,
ondelete='restrict')
active = fields.Boolean('Active', default=True)
pricelist_ids = fields.One2many('product.pricelist',
'cancelation_rule_id',
'Pricelist that use this rule')
days_intime = fields.Integer(
'Days Late',
help='Maximum number of days for free cancellation before Checkin')
@@ -29,7 +36,5 @@ class HotelCancelationRule(models.Model):
('all', 'All Days'),
('days', 'Specify days')], 'No Show apply on', default='all')
days_noshow = fields.Integer('NoShow first days', default="2")
hotel_ids = fields.Many2many('hotel.property', string='Hotels', required=False,
ondelete='restrict')
#TODO: Constrain coherence hotel_ids pricelist and cancelation_rules
# TODO: Constrain coherence hotel_ids pricelist and cancelation_rules