mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP] cancelation rule py guideline
This commit is contained in:
@@ -10,7 +10,8 @@ class HotelRoomAmenityType(models.Model):
|
|||||||
|
|
||||||
# Fields declaration
|
# Fields declaration
|
||||||
name = fields.Char('Amenity Type Name', translate=True, required=True)
|
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_ids = fields.One2many('hotel.amenity',
|
||||||
'room_amenity_type_id',
|
'room_amenity_type_id',
|
||||||
'Amenities in this category')
|
'Amenities in this category')
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Copyright 2017 Dario Lodeiros
|
# Copyright 2017 Dario
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
from odoo import api, fields, models, _
|
from odoo import api, fields, models, _
|
||||||
from odoo.addons import decimal_precision as dp
|
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([
|
board_pricelist = self.env['hotel.board.service.room.type'].search([
|
||||||
('pricelist_id', '=', record.pricelist_id.id),
|
('pricelist_id', '=', record.pricelist_id.id),
|
||||||
('hotel_room_type_id', '=', record.hotel_room_type_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)
|
('id', '!=', record.id)
|
||||||
])
|
])
|
||||||
if board_pricelist:
|
if board_pricelist:
|
||||||
@@ -89,7 +90,8 @@ class HotelBoardServiceRoomType(models.Model):
|
|||||||
board_pricelist = self.env['hotel.board.service.room.type'].search([
|
board_pricelist = self.env['hotel.board.service.room.type'].search([
|
||||||
('pricelist_id', '=', False),
|
('pricelist_id', '=', False),
|
||||||
('hotel_room_type_id', '=', record.hotel_room_type_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)
|
('id', '!=', record.id)
|
||||||
])
|
])
|
||||||
if board_pricelist:
|
if board_pricelist:
|
||||||
@@ -124,18 +126,18 @@ class HotelBoardServiceRoomType(models.Model):
|
|||||||
def create(self, vals):
|
def create(self, vals):
|
||||||
if 'hotel_board_service_id' in vals:
|
if 'hotel_board_service_id' in vals:
|
||||||
vals.update(
|
vals.update(
|
||||||
self.prepare_board_service_room_lines(
|
self.prepare_board_service_room_lines(
|
||||||
vals['hotel_board_service_id'])
|
vals['hotel_board_service_id'])
|
||||||
)
|
)
|
||||||
return super(HotelBoardServiceRoomType, self).create(vals)
|
return super(HotelBoardServiceRoomType, self).create(vals)
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def write(self, vals):
|
def write(self, vals):
|
||||||
if 'hotel_board_service_id' in vals:
|
if 'hotel_board_service_id' in vals:
|
||||||
vals.update(
|
vals.update(
|
||||||
self.prepare_board_service_room_lines(
|
self.prepare_board_service_room_lines(
|
||||||
vals['hotel_board_service_id'])
|
vals['hotel_board_service_id'])
|
||||||
)
|
)
|
||||||
return super(HotelBoardServiceRoomType, self).write(vals)
|
return super(HotelBoardServiceRoomType, self).write(vals)
|
||||||
|
|
||||||
# Business methods
|
# Business methods
|
||||||
@@ -148,8 +150,8 @@ class HotelBoardServiceRoomType(models.Model):
|
|||||||
board_service = self.env['hotel.board.service'].browse(
|
board_service = self.env['hotel.board.service'].browse(
|
||||||
board_service_id)
|
board_service_id)
|
||||||
for line in board_service.board_service_line_ids:
|
for line in board_service.board_service_line_ids:
|
||||||
cmds.append((0, False, {
|
cmds.append((0, False, {
|
||||||
'product_id': line.product_id.id,
|
'product_id': line.product_id.id,
|
||||||
'amount': line.amount
|
'amount': line.amount
|
||||||
}))
|
}))
|
||||||
return {'board_service_line_ids': cmds}
|
return {'board_service_line_ids': cmds}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
from odoo import fields, models
|
from odoo import fields, models
|
||||||
from odoo.addons import decimal_precision as dp
|
from odoo.addons import decimal_precision as dp
|
||||||
|
|
||||||
|
|
||||||
class HotelBoardServiceRoomTypeLine(models.Model):
|
class HotelBoardServiceRoomTypeLine(models.Model):
|
||||||
_name = 'hotel.board.service.room.type.line'
|
_name = 'hotel.board.service.room.type.line'
|
||||||
_description = 'Services on Board Service included in Room'
|
_description = 'Services on Board Service included in Room'
|
||||||
@@ -18,5 +19,6 @@ class HotelBoardServiceRoomTypeLine(models.Model):
|
|||||||
'Product',
|
'Product',
|
||||||
required=True,
|
required=True,
|
||||||
readonly=True)
|
readonly=True)
|
||||||
#TODO def default_amount "amount of service"
|
# TODO def default_amount "amount of service"
|
||||||
amount = fields.Float('Amount', digits=dp.get_precision('Product Price'), default=0.0)
|
amount = fields.Float('Amount', digits=dp.get_precision(
|
||||||
|
'Product Price'), default=0.0)
|
||||||
|
|||||||
@@ -9,11 +9,18 @@ class HotelCancelationRule(models.Model):
|
|||||||
_name = 'hotel.cancelation.rule'
|
_name = 'hotel.cancelation.rule'
|
||||||
_description = 'Cancelation Rules'
|
_description = 'Cancelation Rules'
|
||||||
|
|
||||||
|
# Fields declaration
|
||||||
name = fields.Char('Amenity Name', translate=True, required=True)
|
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)
|
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_intime = fields.Integer(
|
||||||
'Days Late',
|
'Days Late',
|
||||||
help='Maximum number of days for free cancellation before Checkin')
|
help='Maximum number of days for free cancellation before Checkin')
|
||||||
@@ -29,7 +36,5 @@ class HotelCancelationRule(models.Model):
|
|||||||
('all', 'All Days'),
|
('all', 'All Days'),
|
||||||
('days', 'Specify days')], 'No Show apply on', default='all')
|
('days', 'Specify days')], 'No Show apply on', default='all')
|
||||||
days_noshow = fields.Integer('NoShow first days', default="2")
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user