Multiproperty Constrains (#30)

* [IMP] add multiproperties demo data

* [IMP] add multiproperties checks in res_users

* [IMP] add test case in test_res_users

* [IMP] Add multiproperty checks in pms_amenity and pms_amenity_type

* [IMP] Add multiproperty in pms_board_service_room_type(pending review)

* [IMP] Add test case in test_pms_room_type_availability_rule to check multiproperties

* [IMP] Fixing test case in test_pms_room_type_availability_rule to check multiproperties

* [IMP] Add test case in test_pms_room_type_availability_rule

* [IMP] Removed field default_availability_plan_id from pms_property

* [IMP] Add multiproperty in pms_room_type_available_plan

* [IMP] pms: adding property in rooms_available

* [IMP] Add multiproperty in pms_room_type_availability_rule and product_pricelist(work in progress)

* [IMP] Add multiproperty in product_pricelist and product_pricelist_item

* [IMP] add multiproperties demo data

* [IMP] add multiproperties checks in res_users

* [IMP] add test case in test_res_users and pms_room_type_availability_rule

* [IMP] Add multiproperty checks in pms_amenity and pms_amenity_type

* [IMP] Add multiproperty in pms_board_service_room_type(pending review)

* [IMP] Removed field default_availability_plan_id from pms_property

* [IMP] Add multiproperty in pms_room_type_available_plan

* [IMP] pms: adding property in rooms_available

* [IMP] Add multiproperty in pms_room_type_availability_rule and product_pricelist(work in progress)

* [IMP] Add multiproperty in product_pricelist and product_pricelist_item

* [IMP] Pms: add compute_folio method in pms.service

* [IMP] Pms: add multiproperty integrity checks between room_type and its class

* [IMP] Pms: pms_property_id related to folio

* [IMP] Pms: add multiproperty integrity checks in pms_room with pms_room_type and pms_floor

* [IMP] Pms: adding multiproperty checks in room_type(work in progress)

* [IMP] Pms: Add property rules

* [FIX]pms: external ids security rules

* [FIX]pms: property checks

* [FIX]pms: get product on pricelist item multiproperty check

* [FIX]pms: delete test field default_plan

* [FIX]pms: property constrain to product from room type model

* [FIX]pms: ids references

* [IMP]pms: folio wizard price flow on odoo standar

Co-authored-by: Darío Lodeiros <dario@commitsun.com>
This commit is contained in:
Sara
2021-01-31 13:07:03 +01:00
committed by GitHub
parent 6cd01fb0d2
commit 57d3ab0c8a
34 changed files with 1298 additions and 241 deletions

View File

@@ -35,12 +35,6 @@ class PmsService(models.Model):
return self.env.context.get("default_reservation_id")
return False
@api.model
def _default_folio_id(self):
if "folio_id" in self._context:
return self._context["folio_id"]
return False
# Fields declaration
name = fields.Char(
"Service description",
@@ -52,7 +46,11 @@ class PmsService(models.Model):
"product.product", "Service", ondelete="restrict", required=True
)
folio_id = fields.Many2one(
"pms.folio", "Folio", ondelete="cascade", default=_default_folio_id
comodel_name="pms.folio",
string="Folio",
compute="_compute_folio_id",
readonly=False,
store=True
)
reservation_id = fields.Many2one(
"pms.reservation", "Room", default=_default_reservation_id
@@ -68,7 +66,7 @@ class PmsService(models.Model):
related="folio_id.company_id", string="Company", store=True, readonly=True
)
pms_property_id = fields.Many2one(
"pms.property", store=True, readonly=True, related="folio_id.pms_property_id"
comodel_name="pms.property", store=True, readonly=True, related="folio_id.pms_property_id"
)
tax_ids = fields.Many2many(
"account.tax",
@@ -372,6 +370,16 @@ class PmsService(models.Model):
else:
service.price_unit = 0
@api.depends(
"reservation_id"
)
def _compute_folio_id(self):
for record in self:
if record.reservation_id:
record.folio_id = record.reservation_id.folio_id
elif not record.folio_id:
record.folio_id = False
def _recompute_price(self):
# REVIEW: Conditional to avoid overriding already calculated prices,
# I'm not sure it's the best way