[ADD]pms: Multiproperty domains in master models (#56)

* [IMP]pms: Multiproperty domains in master models

* [FIX]pms: syntax errors fixed

* [FIX]pms: Pre-commit

Co-authored-by: Darío Lodeiros <dario@commitsun.com>
This commit is contained in:
braisab
2021-03-07 16:20:14 +01:00
committed by GitHub
parent caec88df40
commit 220bffa5b7
13 changed files with 464 additions and 29 deletions

View File

@@ -33,4 +33,7 @@ from . import test_pms_wizard_folio
from . import test_pms_res_users
from . import test_pms_amenity
from . import test_pms_room
from . import test_pms_board_service_line
from . import test_pms_board_service_room_type
from . import test_pms_board_service_room_type_line
from . import test_pms_folio_invoice

View File

@@ -0,0 +1,46 @@
from odoo.exceptions import ValidationError
from .common import TestHotel
class TestPmsBoardService(TestHotel):
def test_property_integrity(self):
self.company1 = self.env["res.company"].create(
{
"name": "Pms_Company_Test",
}
)
self.property1 = self.env["pms.property"].create(
{
"name": "Pms_property_test1",
"company_id": self.company1.id,
"default_pricelist_id": self.env.ref("product.list0").id,
}
)
self.property2 = self.env["pms.property"].create(
{
"name": "Pms_property_test2",
"company_id": self.company1.id,
"default_pricelist_id": self.env.ref("product.list0").id,
}
)
self.product = self.env["product.product"].create(
{"name": "Product", "pms_property_ids": self.property1}
)
self.board_service = self.env["pms.board.service"].create(
{
"name": "Board Service",
"price_type": "fixed",
}
)
with self.assertRaises(ValidationError):
board_service_line = self.board_service_line = self.env[
"pms.board.service.line"
].create(
{
"product_id": self.product.id,
"pms_board_service_id": self.board_service.id,
}
)
board_service_line.pms_property_ids = [self.property2.id]

View File

@@ -0,0 +1,70 @@
from odoo.exceptions import ValidationError
from .common import TestHotel
class TestPmsBoardServiceRoomType(TestHotel):
def _create_common_scenario(self):
self.company1 = self.env["res.company"].create(
{
"name": "Pms_Company_Test",
}
)
self.property1 = self.env["pms.property"].create(
{
"name": "Pms_property_test1",
"company_id": self.company1.id,
"default_pricelist_id": self.env.ref("product.list0").id,
}
)
self.property2 = self.env["pms.property"].create(
{
"name": "Pms_property_test2",
"company_id": self.company1.id,
"default_pricelist_id": self.env.ref("product.list0").id,
}
)
self.board_service = self.env["pms.board.service"].create(
{"name": "Board Service", "price_type": "fixed"}
)
self.room_type_class = self.env["pms.room.type.class"].create(
{"name": "Room Type Class", "code_class": "SIN1"}
)
self.room_type = self.env["pms.room.type"].create(
{
"name": "Room Type",
"code_type": "Type1",
"class_id": self.room_type_class.id,
}
)
def test_room_type_property_integrity(self):
self._create_common_scenario()
self.room_type.pms_property_ids = [self.property1.id]
with self.assertRaises(ValidationError):
self.board_service_room_type = self.env[
"pms.board.service.room.type"
].create(
{
"pms_board_service_id": self.board_service.id,
"pms_room_type_id": self.room_type.id,
"price_type": "fixed",
"pms_property_ids": self.property2,
}
)
def test_pricelist_property_integrity(self):
self._create_common_scenario()
self.pricelist = self.env["product.pricelist"].create(
{"name": "pricelist_1", "pms_property_ids": [self.property1.id]}
)
with self.assertRaises(ValidationError):
self.env["pms.board.service.room.type"].create(
{
"pms_board_service_id": self.board_service.id,
"pms_room_type_id": self.room_type.id,
"price_type": "fixed",
"pricelist_id": self.pricelist.id,
"pms_property_ids": self.property2,
}
)

View File

@@ -0,0 +1,63 @@
from odoo.exceptions import ValidationError
from .common import TestHotel
class TestPmsBoardServiceRoomTypeLine(TestHotel):
def test_check_product_property_integrity(self):
self.company1 = self.env["res.company"].create(
{
"name": "Pms_Company_Test",
}
)
self.property1 = self.env["pms.property"].create(
{
"name": "Pms_property_test1",
"company_id": self.company1.id,
"default_pricelist_id": self.env.ref("product.list0").id,
}
)
self.property2 = self.env["pms.property"].create(
{
"name": "Pms_property_test2",
"company_id": self.company1.id,
"default_pricelist_id": self.env.ref("product.list0").id,
}
)
self.board_service = self.env["pms.board.service"].create(
{"name": "Board Service", "price_type": "fixed"}
)
self.room_type_class = self.env["pms.room.type.class"].create(
{
"name": "Room Type Class",
"pms_property_ids": self.property1,
"code_class": "SIN1",
}
)
self.room_type = self.env["pms.room.type"].create(
{
"name": "Room Type",
"code_type": "Type1",
"class_id": self.room_type_class.id,
}
)
self.board_service_room_type = self.env["pms.board.service.room.type"].create(
{
"pms_board_service_id": self.board_service.id,
"pms_room_type_id": self.room_type.id,
"price_type": "fixed",
"pms_property_ids": self.property1,
}
)
self.product = self.env["product.product"].create(
{"name": "Product", "pms_property_ids": self.property2}
)
with self.assertRaises(ValidationError):
self.env["pms.board.service.room.type.line"].create(
{
"pms_board_service_room_type_id": self.board_service_room_type.id,
"product_id": self.product.id,
}
)

View File

@@ -148,3 +148,17 @@ class TestPmsPricelist(common.TransactionCase):
"cancelation_rule_id": self.cancelation_rule.id,
}
)
def test_availability_plan_property_integrity(self):
self.create_common_scenario()
self.availability_plan = self.env["pms.room.type.availability.plan"].create(
{"name": "Availability Plan", "pms_property_ids": [self.property1.id]}
)
with self.assertRaises(ValidationError):
self.env["product.pricelist"].create(
{
"name": "Pricelist",
"pms_property_ids": [self.property2.id],
"availability_plan_id": self.availability_plan.id,
}
)

View File

@@ -725,3 +725,85 @@ class TestRoomTypeCodePropertyUniqueness(TestRoomType):
}
)
r.pms_property_ids = [(4, self.p1.id)]
def test_check_board_service_property_integrity(self):
self.company1 = self.env["res.company"].create(
{
"name": "Pms_Company_Test",
}
)
self.property1 = self.env["pms.property"].create(
{
"name": "Pms_property_test1",
"company_id": self.company1.id,
"default_pricelist_id": self.env.ref("product.list0").id,
}
)
self.property2 = self.env["pms.property"].create(
{
"name": "Pms_property_test2",
"company_id": self.company1.id,
"default_pricelist_id": self.env.ref("product.list0").id,
}
)
self.room_type_class = self.env["pms.room.type.class"].create(
{"name": "Room Type Class", "code_class": "SIN1"}
)
self.room_type = self.env["pms.room.type"].create(
{
"name": "Room Type",
"code_type": "Type1",
"pms_property_ids": self.property2,
"class_id": self.room_type_class.id,
}
)
self.board_service = self.env["pms.board.service"].create(
{"name": "Board Service", "price_type": "fixed"}
)
with self.assertRaises(ValidationError):
self.env["pms.board.service.room.type"].create(
{
"pms_board_service_id": self.board_service.id,
"pms_room_type_id": self.room_type.id,
"price_type": "fixed",
"pricelist_id": self.env.ref("product.list0").id,
"pms_property_ids": self.property2,
}
)
def test_check_amenities_property_integrity(self):
self.company1 = self.env["res.company"].create(
{
"name": "Pms_Company_Test",
}
)
self.property1 = self.env["pms.property"].create(
{
"name": "Pms_property_test1",
"company_id": self.company1.id,
"default_pricelist_id": self.env.ref("product.list0").id,
}
)
self.property2 = self.env["pms.property"].create(
{
"name": "Pms_property_test2",
"company_id": self.company1.id,
"default_pricelist_id": self.env.ref("product.list0").id,
}
)
self.amenity = self.env["pms.amenity"].create(
{"name": "Amenity", "pms_property_ids": self.property1}
)
self.room_type_class = self.env["pms.room.type.class"].create(
{"name": "Room Type Class", "code_class": "SIN1"}
)
with self.assertRaises(ValidationError):
self.env["pms.room.type"].create(
{
"name": "Room Type",
"code_type": "Type1",
"class_id": self.room_type_class.id,
"pms_property_ids": [self.property2.id],
"room_amenity_ids": [self.amenity.id],
}
)