mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP]pms: unique board_service_room_type by property
This commit is contained in:
@@ -808,6 +808,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_economic" />
|
<field name="pms_room_type_id" ref="pms_room_type_economic" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_eco_half_board"
|
id="pms_board_service_room_eco_half_board"
|
||||||
@@ -815,6 +816,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_half_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_half_board" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_economic" />
|
<field name="pms_room_type_id" ref="pms_room_type_economic" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_eco_full_board"
|
id="pms_board_service_room_eco_full_board"
|
||||||
@@ -822,6 +824,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_economic" />
|
<field name="pms_room_type_id" ref="pms_room_type_economic" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<!-- Room Single -->
|
<!-- Room Single -->
|
||||||
<record
|
<record
|
||||||
@@ -830,6 +833,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_single" />
|
<field name="pms_room_type_id" ref="pms_room_type_single" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_single_half_board"
|
id="pms_board_service_room_single_half_board"
|
||||||
@@ -837,6 +841,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_half_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_half_board" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_single" />
|
<field name="pms_room_type_id" ref="pms_room_type_single" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_single_full_board"
|
id="pms_board_service_room_single_full_board"
|
||||||
@@ -844,6 +849,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_single" />
|
<field name="pms_room_type_id" ref="pms_room_type_single" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<!-- Room Double -->
|
<!-- Room Double -->
|
||||||
<record
|
<record
|
||||||
@@ -852,6 +858,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_double" />
|
<field name="pms_room_type_id" ref="pms_room_type_double" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_double_half_board"
|
id="pms_board_service_room_double_half_board"
|
||||||
@@ -859,6 +866,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_half_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_half_board" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_double" />
|
<field name="pms_room_type_id" ref="pms_room_type_double" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_full_board"
|
id="pms_board_service_room_full_board"
|
||||||
@@ -866,6 +874,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_double" />
|
<field name="pms_room_type_id" ref="pms_room_type_double" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<!-- Room Triple -->
|
<!-- Room Triple -->
|
||||||
<record
|
<record
|
||||||
@@ -874,6 +883,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_triple" />
|
<field name="pms_room_type_id" ref="pms_room_type_triple" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_triple_full_board"
|
id="pms_board_service_room_triple_full_board"
|
||||||
@@ -881,6 +891,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_triple" />
|
<field name="pms_room_type_id" ref="pms_room_type_triple" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<!-- Room Quadruple -->
|
<!-- Room Quadruple -->
|
||||||
<record
|
<record
|
||||||
@@ -889,6 +900,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
||||||
<field name="pms_room_type_id" ref="pms_room_type_quadruple" />
|
<field name="pms_room_type_id" ref="pms_room_type_quadruple" />
|
||||||
|
<field name="pms_property_id" ref="pms.main_pms_property" />
|
||||||
</record>
|
</record>
|
||||||
<!-- Room Grand suite -->
|
<!-- Room Grand suite -->
|
||||||
<record
|
<record
|
||||||
@@ -897,6 +909,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
||||||
<field name="pms_room_type_id" ref="demo_pms_room_type_grand_suite" />
|
<field name="pms_room_type_id" ref="demo_pms_room_type_grand_suite" />
|
||||||
|
<field name="pms_property_id" ref="san_carlos_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_grand_suite_half_board"
|
id="pms_board_service_room_grand_suite_half_board"
|
||||||
@@ -904,6 +917,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_half_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_half_board" />
|
||||||
<field name="pms_room_type_id" ref="demo_pms_room_type_grand_suite" />
|
<field name="pms_room_type_id" ref="demo_pms_room_type_grand_suite" />
|
||||||
|
<field name="pms_property_id" ref="san_carlos_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_grand_suite_full_board"
|
id="pms_board_service_room_grand_suite_full_board"
|
||||||
@@ -911,6 +925,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
||||||
<field name="pms_room_type_id" ref="demo_pms_room_type_grand_suite" />
|
<field name="pms_room_type_id" ref="demo_pms_room_type_grand_suite" />
|
||||||
|
<field name="pms_property_id" ref="san_carlos_property" />
|
||||||
</record>
|
</record>
|
||||||
<!-- Room Junior suite -->
|
<!-- Room Junior suite -->
|
||||||
<record
|
<record
|
||||||
@@ -919,6 +934,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
<field name="pms_board_service_id" ref="pms_board_service_breakfast" />
|
||||||
<field name="pms_room_type_id" ref="demo_pms_room_type_junior_suite" />
|
<field name="pms_room_type_id" ref="demo_pms_room_type_junior_suite" />
|
||||||
|
<field name="pms_property_id" ref="san_carlos_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_junior_suite_half_board"
|
id="pms_board_service_room_junior_suite_half_board"
|
||||||
@@ -926,6 +942,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_half_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_half_board" />
|
||||||
<field name="pms_room_type_id" ref="demo_pms_room_type_junior_suite" />
|
<field name="pms_room_type_id" ref="demo_pms_room_type_junior_suite" />
|
||||||
|
<field name="pms_property_id" ref="san_carlos_property" />
|
||||||
</record>
|
</record>
|
||||||
<record
|
<record
|
||||||
id="pms_board_service_room_junior_suite_full_board"
|
id="pms_board_service_room_junior_suite_full_board"
|
||||||
@@ -933,6 +950,7 @@
|
|||||||
>
|
>
|
||||||
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
<field name="pms_board_service_id" ref="pms_board_service_full_board" />
|
||||||
<field name="pms_room_type_id" ref="demo_pms_room_type_junior_suite" />
|
<field name="pms_room_type_id" ref="demo_pms_room_type_junior_suite" />
|
||||||
|
<field name="pms_property_id" ref="san_carlos_property" />
|
||||||
</record>
|
</record>
|
||||||
<!-- room.closure.reason -->
|
<!-- room.closure.reason -->
|
||||||
<record id="pms_room_closure_reason_maintenance" model="room.closure.reason">
|
<record id="pms_room_closure_reason_maintenance" model="room.closure.reason">
|
||||||
|
|||||||
@@ -21,18 +21,14 @@ class PmsBoardServiceRoomType(models.Model):
|
|||||||
ondelete="cascade",
|
ondelete="cascade",
|
||||||
check_pms_properties=True,
|
check_pms_properties=True,
|
||||||
)
|
)
|
||||||
pms_property_ids = fields.Many2many(
|
pms_property_id = fields.Many2one(
|
||||||
string="Properties",
|
string="Property",
|
||||||
help="Properties with access to the element;"
|
help="Property with access to the element;"
|
||||||
" if not set, all properties can access",
|
" if not set, all property can access",
|
||||||
required=False,
|
required=False,
|
||||||
ondelete="restrict",
|
ondelete="restrict",
|
||||||
comodel_name="pms.property",
|
comodel_name="pms.property",
|
||||||
relation="pms_board_service_room_type_pms_property_rel",
|
|
||||||
column1="pms_board_service_room_type_id",
|
|
||||||
column2="pms_property_id",
|
|
||||||
check_pms_properties=True,
|
check_pms_properties=True,
|
||||||
compute="_compute_pms_property_ids",
|
|
||||||
store=True,
|
store=True,
|
||||||
)
|
)
|
||||||
pms_room_type_id = fields.Many2one(
|
pms_room_type_id = fields.Many2one(
|
||||||
@@ -64,43 +60,6 @@ class PmsBoardServiceRoomType(models.Model):
|
|||||||
help="Indicates if this board service is applied by default in the room type",
|
help="Indicates if this board service is applied by default in the room type",
|
||||||
)
|
)
|
||||||
|
|
||||||
@api.depends(
|
|
||||||
"pms_room_type_id",
|
|
||||||
"pms_room_type_id.pms_property_ids",
|
|
||||||
"pms_board_service_id",
|
|
||||||
"pms_board_service_id.pms_property_ids",
|
|
||||||
)
|
|
||||||
def _compute_pms_property_ids(self):
|
|
||||||
for record in self:
|
|
||||||
if (
|
|
||||||
record.pms_room_type_id.pms_property_ids
|
|
||||||
and record.pms_board_service_id.pms_property_ids
|
|
||||||
):
|
|
||||||
record.pms_property_ids = self.env["pms.property"].search(
|
|
||||||
[
|
|
||||||
(
|
|
||||||
"id",
|
|
||||||
"in",
|
|
||||||
list(
|
|
||||||
set(record.pms_room_type_id.pms_property_ids.ids)
|
|
||||||
& set(record.pms_board_service_id.pms_property_ids.ids)
|
|
||||||
),
|
|
||||||
)
|
|
||||||
]
|
|
||||||
)
|
|
||||||
elif (
|
|
||||||
record.pms_room_type_id.pms_property_ids
|
|
||||||
and not record.pms_board_service_id.pms_property_ids
|
|
||||||
):
|
|
||||||
record.pms_property_ids = record.pms_room_type_id.pms_property_ids
|
|
||||||
elif (
|
|
||||||
not record.pms_room_type_id.pms_property_ids
|
|
||||||
and record.pms_board_service_id.pms_property_ids
|
|
||||||
):
|
|
||||||
record.pms_property_ids = record.pms_board_service_id.pms_property_ids
|
|
||||||
else:
|
|
||||||
record.pms_property_ids = False
|
|
||||||
|
|
||||||
@api.depends("board_service_line_ids.amount")
|
@api.depends("board_service_line_ids.amount")
|
||||||
def _compute_board_amount(self):
|
def _compute_board_amount(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
@@ -119,7 +78,7 @@ class PmsBoardServiceRoomType(models.Model):
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
@api.constrains("by_default")
|
@api.constrains("by_default")
|
||||||
def constrains_duplicated_board_defaul(self):
|
def constrains_duplicated_board_default(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
default_boards = (
|
default_boards = (
|
||||||
record.pms_room_type_id.board_service_room_type_ids.filtered(
|
record.pms_room_type_id.board_service_room_type_ids.filtered(
|
||||||
@@ -127,7 +86,12 @@ class PmsBoardServiceRoomType(models.Model):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
# TODO Check properties (with different propertys is allowed)
|
# TODO Check properties (with different propertys is allowed)
|
||||||
if any(default_boards.filtered(lambda l: l.id != record.id)):
|
if any(
|
||||||
|
default_boards.filtered(
|
||||||
|
lambda l: l.id != record.id
|
||||||
|
and l.pms_property_id == record.pms_property_id
|
||||||
|
)
|
||||||
|
):
|
||||||
raise UserError(_("""Only can set one default board service"""))
|
raise UserError(_("""Only can set one default board service"""))
|
||||||
|
|
||||||
def open_board_lines_form(self):
|
def open_board_lines_form(self):
|
||||||
@@ -156,14 +120,14 @@ class PmsBoardServiceRoomType(models.Model):
|
|||||||
@api.model
|
@api.model
|
||||||
def create(self, vals):
|
def create(self, vals):
|
||||||
# properties = False
|
# properties = False
|
||||||
if "pms_board_service_id" in vals:
|
if "pms_board_service_id" in vals and "board_service_line_ids" not in vals:
|
||||||
vals.update(
|
vals.update(
|
||||||
self.prepare_board_service_reservation_ids(vals["pms_board_service_id"])
|
self.prepare_board_service_reservation_ids(vals["pms_board_service_id"])
|
||||||
)
|
)
|
||||||
return super(PmsBoardServiceRoomType, self).create(vals)
|
return super(PmsBoardServiceRoomType, self).create(vals)
|
||||||
|
|
||||||
def write(self, vals):
|
def write(self, vals):
|
||||||
if "pms_board_service_id" in vals:
|
if "pms_board_service_id" in vals and "board_service_line_ids" not in vals:
|
||||||
vals.update(
|
vals.update(
|
||||||
self.prepare_board_service_reservation_ids(vals["pms_board_service_id"])
|
self.prepare_board_service_reservation_ids(vals["pms_board_service_id"])
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Copyright 2017 Dario Lodeiros
|
# Copyright 2017 Dario Lodeiros
|
||||||
# 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 fields, models
|
||||||
|
|
||||||
|
|
||||||
class PmsBoardServiceRoomTypeLine(models.Model):
|
class PmsBoardServiceRoomTypeLine(models.Model):
|
||||||
@@ -16,15 +16,13 @@ class PmsBoardServiceRoomTypeLine(models.Model):
|
|||||||
comodel_name="pms.board.service.room.type",
|
comodel_name="pms.board.service.room.type",
|
||||||
ondelete="cascade",
|
ondelete="cascade",
|
||||||
)
|
)
|
||||||
pms_property_ids = fields.Many2many(
|
pms_property_id = fields.Many2one(
|
||||||
string="Properties",
|
string="Property",
|
||||||
help="Properties with access to the element;"
|
help="Property with access to the element;"
|
||||||
" if not set, all properties can access",
|
" if not set, all properties can access",
|
||||||
comodel_name="pms.property",
|
comodel_name="pms.property",
|
||||||
relation="pms_board_service_room_type_line_pms_property_rel",
|
|
||||||
column1="pms_board_service_room_type_id",
|
|
||||||
column2="pms_property_id",
|
|
||||||
check_pms_properties=True,
|
check_pms_properties=True,
|
||||||
|
related="pms_board_service_room_type_id.pms_property_id",
|
||||||
)
|
)
|
||||||
product_id = fields.Many2one(
|
product_id = fields.Many2one(
|
||||||
string="Product",
|
string="Product",
|
||||||
@@ -34,41 +32,12 @@ class PmsBoardServiceRoomTypeLine(models.Model):
|
|||||||
check_pms_properties=True,
|
check_pms_properties=True,
|
||||||
domain="[('is_pms_available', '=', True)]",
|
domain="[('is_pms_available', '=', True)]",
|
||||||
)
|
)
|
||||||
# TODO def default_amount "amount of service"
|
|
||||||
amount = fields.Float(
|
amount = fields.Float(
|
||||||
string="Amount",
|
string="Amount",
|
||||||
help="Price for this Board Service Room Type Line/Product",
|
help="Price for this Board Service Room Type Line/Product",
|
||||||
default=0.0,
|
default=lambda self: self._default_amount(),
|
||||||
digits=("Product Price"),
|
digits=("Product Price"),
|
||||||
)
|
)
|
||||||
|
|
||||||
@api.model
|
def _default_amount(self):
|
||||||
def create(self, vals):
|
return self.product_id.list_price
|
||||||
properties = False
|
|
||||||
if "pms_board_service_room_type_id" in vals:
|
|
||||||
board_service = self.env["pms.board.service.room.type"].browse(
|
|
||||||
vals["pms_board_service_room_type_id"]
|
|
||||||
)
|
|
||||||
properties = board_service.pms_property_ids
|
|
||||||
if properties:
|
|
||||||
vals.update(
|
|
||||||
{
|
|
||||||
"pms_property_ids": properties,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
return super(PmsBoardServiceRoomTypeLine, self).create(vals)
|
|
||||||
|
|
||||||
def write(self, vals):
|
|
||||||
properties = False
|
|
||||||
if "pms_board_service_room_type_id" in vals:
|
|
||||||
board_service = self.env["pms.board.service.room.type"].browse(
|
|
||||||
vals["pms_board_service_room_type_id"]
|
|
||||||
)
|
|
||||||
properties = board_service.pms_property_ids
|
|
||||||
if properties:
|
|
||||||
vals.update(
|
|
||||||
{
|
|
||||||
"pms_property_ids": properties,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
return super(PmsBoardServiceRoomTypeLine, self).write(vals)
|
|
||||||
|
|||||||
@@ -827,6 +827,7 @@ class PmsReservation(models.Model):
|
|||||||
[
|
[
|
||||||
("pms_room_type_id", "=", reservation.room_type_id.id),
|
("pms_room_type_id", "=", reservation.room_type_id.id),
|
||||||
("by_default", "=", True),
|
("by_default", "=", True),
|
||||||
|
("pms_property_id", "=", reservation.pms_property_id.id),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
if (
|
if (
|
||||||
|
|||||||
@@ -144,25 +144,6 @@ class ProductPricelist(models.Model):
|
|||||||
)
|
)
|
||||||
return items
|
return items
|
||||||
|
|
||||||
@api.constrains("pricelist_type", "item_ids", "pms_property_ids")
|
|
||||||
def _check_pricelist_type(self):
|
|
||||||
for record in self:
|
|
||||||
if record.item_ids:
|
|
||||||
for item in record.item_ids:
|
|
||||||
if record.pricelist_type == "daily" and (
|
|
||||||
item.compute_price != "fixed"
|
|
||||||
or len(item.pms_property_ids) != 1
|
|
||||||
or not item.date_end_consumption
|
|
||||||
or not item.date_start_consumption
|
|
||||||
or item.date_end_consumption != item.date_start_consumption
|
|
||||||
):
|
|
||||||
raise ValidationError(
|
|
||||||
_(
|
|
||||||
"Daily Plan must have fixed price, "
|
|
||||||
"only one property and its items must be daily"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
@api.constrains("is_pms_available", "availability_plan_id")
|
@api.constrains("is_pms_available", "availability_plan_id")
|
||||||
def _check_is_pms_available(self):
|
def _check_is_pms_available(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
|
|||||||
@@ -23,6 +23,10 @@ class ProductProduct(models.Model):
|
|||||||
super(ProductProduct, self)._compute_product_price()
|
super(ProductProduct, self)._compute_product_price()
|
||||||
|
|
||||||
def _compute_board_price(self):
|
def _compute_board_price(self):
|
||||||
|
pms_property_id = (
|
||||||
|
self.env.context.get("property")
|
||||||
|
or self.env.user.get_active_property_ids()[0]
|
||||||
|
)
|
||||||
for record in self:
|
for record in self:
|
||||||
if self._context.get("board_service"):
|
if self._context.get("board_service"):
|
||||||
record.board_price = (
|
record.board_price = (
|
||||||
@@ -35,6 +39,7 @@ class ProductProduct(models.Model):
|
|||||||
self._context.get("board_service"),
|
self._context.get("board_service"),
|
||||||
),
|
),
|
||||||
("product_id", "=", record.id),
|
("product_id", "=", record.id),
|
||||||
|
("pms_property_id", "=", pms_property_id),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
.amount
|
.amount
|
||||||
|
|||||||
@@ -102,7 +102,7 @@
|
|||||||
<field name="model_id" ref="model_pms_board_service_room_type" />
|
<field name="model_id" ref="model_pms_board_service_room_type" />
|
||||||
<field name="global" eval="True" />
|
<field name="global" eval="True" />
|
||||||
<field name="domain_force">
|
<field name="domain_force">
|
||||||
['|',('pms_property_ids','=',False),('pms_property_ids', 'in',
|
['|',('pms_property_id','=',False),('pms_property_id', 'in',
|
||||||
user.get_active_property_ids())]
|
user.get_active_property_ids())]
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|||||||
@@ -770,6 +770,7 @@ class TestPmsBookingEngine(TestPms):
|
|||||||
{
|
{
|
||||||
"pms_room_type_id": self.test_room_type_double.id,
|
"pms_room_type_id": self.test_room_type_double.id,
|
||||||
"pms_board_service_id": self.board_service_test.id,
|
"pms_board_service_id": self.board_service_test.id,
|
||||||
|
"pms_property_id": self.pms_property1.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# self.board_service_room_type.flush()
|
# self.board_service_room_type.flush()
|
||||||
@@ -853,6 +854,7 @@ class TestPmsBookingEngine(TestPms):
|
|||||||
{
|
{
|
||||||
"pms_room_type_id": self.test_room_type_double.id,
|
"pms_room_type_id": self.test_room_type_double.id,
|
||||||
"pms_board_service_id": self.board_service_test.id,
|
"pms_board_service_id": self.board_service_test.id,
|
||||||
|
"pms_property_id": self.pms_property1.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
discount = 15
|
discount = 15
|
||||||
|
|||||||
@@ -493,6 +493,7 @@ class TestPmsFolioInvoice(TestPms):
|
|||||||
{
|
{
|
||||||
"pms_room_type_id": self.room_type_double.id,
|
"pms_room_type_id": self.room_type_double.id,
|
||||||
"pms_board_service_id": self.board_service1.id,
|
"pms_board_service_id": self.board_service1.id,
|
||||||
|
"pms_property_id": self.property.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.reservation1 = self.env["pms.reservation"].create(
|
self.reservation1 = self.env["pms.reservation"].create(
|
||||||
@@ -549,6 +550,7 @@ class TestPmsFolioInvoice(TestPms):
|
|||||||
{
|
{
|
||||||
"pms_room_type_id": self.room_type_double.id,
|
"pms_room_type_id": self.room_type_double.id,
|
||||||
"pms_board_service_id": self.board_service1.id,
|
"pms_board_service_id": self.board_service1.id,
|
||||||
|
"pms_property_id": self.property.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.reservation1 = self.env["pms.reservation"].create(
|
self.reservation1 = self.env["pms.reservation"].create(
|
||||||
@@ -606,6 +608,7 @@ class TestPmsFolioInvoice(TestPms):
|
|||||||
{
|
{
|
||||||
"pms_room_type_id": self.room_type_double.id,
|
"pms_room_type_id": self.room_type_double.id,
|
||||||
"pms_board_service_id": self.board_service1.id,
|
"pms_board_service_id": self.board_service1.id,
|
||||||
|
"pms_property_id": self.property.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.reservation1 = self.env["pms.reservation"].create(
|
self.reservation1 = self.env["pms.reservation"].create(
|
||||||
@@ -761,6 +764,7 @@ class TestPmsFolioInvoice(TestPms):
|
|||||||
{
|
{
|
||||||
"pms_room_type_id": self.demo_room_type_double.id,
|
"pms_room_type_id": self.demo_room_type_double.id,
|
||||||
"pms_board_service_id": self.board_service1.id,
|
"pms_board_service_id": self.board_service1.id,
|
||||||
|
"pms_property_id": self.pms_property_demo.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# ACT
|
# ACT
|
||||||
@@ -863,6 +867,7 @@ class TestPmsFolioInvoice(TestPms):
|
|||||||
{
|
{
|
||||||
"pms_room_type_id": self.room_type_double.id,
|
"pms_room_type_id": self.room_type_double.id,
|
||||||
"pms_board_service_id": self.board_service1.id,
|
"pms_board_service_id": self.board_service1.id,
|
||||||
|
"pms_property_id": self.property.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# ACT
|
# ACT
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ class TestPmsFolioSaleLine(TestPms):
|
|||||||
{
|
{
|
||||||
"pms_room_type_id": self.room_type_double.id,
|
"pms_room_type_id": self.room_type_double.id,
|
||||||
"pms_board_service_id": self.board_service_test.id,
|
"pms_board_service_id": self.board_service_test.id,
|
||||||
|
"pms_property_id": self.pms_property1.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.extra_service = self.env["pms.service"].create(
|
self.extra_service = self.env["pms.service"].create(
|
||||||
|
|||||||
@@ -389,6 +389,7 @@ class TestPmsMultiproperty(TestPms):
|
|||||||
{
|
{
|
||||||
"pms_room_type_id": room_type_double.id,
|
"pms_room_type_id": room_type_double.id,
|
||||||
"pms_board_service_id": board_service_test.id,
|
"pms_board_service_id": board_service_test.id,
|
||||||
|
"pms_property_id": self.pms_property1.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# ASSERT
|
# ASSERT
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<group>
|
<group>
|
||||||
<field name="amount" />
|
<field name="amount" />
|
||||||
<field name="board_service_line_ids">
|
<field name="board_service_line_ids">
|
||||||
<field name="pms_property_ids" invisible="1" />
|
<field name="pms_property_id" />
|
||||||
<tree editable="bottom">
|
<tree editable="bottom">
|
||||||
<field
|
<field
|
||||||
name="pms_board_service_room_type_id"
|
name="pms_board_service_room_type_id"
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
/>
|
/>
|
||||||
<field name="product_id" />
|
<field name="product_id" />
|
||||||
<field name="amount" />
|
<field name="amount" />
|
||||||
<field name="pms_property_ids" invisible="1" />
|
<field name="pms_property_id" invisible="1" />
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</group>
|
</group>
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
<field name="pms_room_type_id" invisible="1" />
|
<field name="pms_room_type_id" invisible="1" />
|
||||||
<field name="pms_board_service_id" />
|
<field name="pms_board_service_id" />
|
||||||
<field name="amount" />
|
<field name="amount" />
|
||||||
<field name="pms_property_ids" invisible="1" />
|
<field name="pms_property_id" />
|
||||||
<button
|
<button
|
||||||
type="object"
|
type="object"
|
||||||
class="oe_stat_button"
|
class="oe_stat_button"
|
||||||
|
|||||||
@@ -353,7 +353,12 @@ class AvailabilityWizard(models.TransientModel):
|
|||||||
string="Board Service",
|
string="Board Service",
|
||||||
help="Board Service included in the room",
|
help="Board Service included in the room",
|
||||||
comodel_name="pms.board.service.room.type",
|
comodel_name="pms.board.service.room.type",
|
||||||
domain="[('pms_room_type_id','=',room_type_id)]",
|
domain="""
|
||||||
|
[
|
||||||
|
('pms_room_type_id','=',room_type_id),
|
||||||
|
('pms_property_id','=',pms_property_id)
|
||||||
|
]
|
||||||
|
""",
|
||||||
check_pms_properties=True,
|
check_pms_properties=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -84,6 +84,7 @@
|
|||||||
decoration-primary="value_num_rooms_selected > 0"
|
decoration-primary="value_num_rooms_selected > 0"
|
||||||
decoration-bf="value_num_rooms_selected > 0"
|
decoration-bf="value_num_rooms_selected > 0"
|
||||||
>
|
>
|
||||||
|
<field name="pms_property_id" invisible="1" />
|
||||||
<field
|
<field
|
||||||
name="room_type_id"
|
name="room_type_id"
|
||||||
readonly="1"
|
readonly="1"
|
||||||
|
|||||||
@@ -386,8 +386,7 @@ class WizardFolioChanges(models.TransientModel):
|
|||||||
lambda x: x.pms_board_service_id.id == new_board_service_id
|
lambda x: x.pms_board_service_id.id == new_board_service_id
|
||||||
and (
|
and (
|
||||||
reservation.folio_id.pms_property_id.id
|
reservation.folio_id.pms_property_id.id
|
||||||
in x.pms_property_ids.ids
|
== x.pms_property_id.ids
|
||||||
or not x.pms_property_ids
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user