[IMP]pms_api_rest: added max avail and min stay arrival in avail rule services, datamodel and res users model

This commit is contained in:
braisab
2022-08-08 11:54:18 +02:00
committed by Darío Lodeiros
parent 084d7cae9e
commit 1de22eb72e
4 changed files with 31 additions and 25 deletions

View File

@@ -23,4 +23,5 @@ class PmsAvailabilityPlanRuleInfo(Datamodel):
roomTypeId = fields.Integer(required=False, allow_none=True)
date = fields.String(required=False, allow_none=True)
quota = fields.Integer(required=False, allow_none=True)
maxAvailability = fields.Integer(required=False, allow_none=True)
pmsPropertyId = fields.Integer(required=False, allow_none=True)

View File

@@ -7,21 +7,8 @@ class ResUsers(models.Model):
availability_rule_field_ids = fields.Many2many(
string="Availability Rules",
help="Configurable availability rules",
default=lambda self: self._default_avail_rule_fields(),
comodel_name="ir.model.fields",
relation="ir_model_fields_res_users_rel",
column1="ir_model_fields",
column2="res_users",
)
def _default_avail_rule_fields(self):
default_avail_rule_fields = self.env["ir.model.fields"].search(
[
("model_id", "=", "pms.availability.plan.rule"),
("name", "in", ("min_stay", "quota")),
]
)
if default_avail_rule_fields:
return default_avail_rule_fields.ids
else:
return []

View File

@@ -135,6 +135,7 @@ class PmsAvailabilityPlanService(Component):
closedDeparture=rule.closed_departure,
closedArrival=rule.closed_arrival,
quota=rule.quota if rule.quota != -1 else 0,
maxAvailability=rule.max_avail,
)
result.append(availability_plan_rule_info)
@@ -181,6 +182,8 @@ class PmsAvailabilityPlanService(Component):
vals.update({"closed_arrival": pms_avail_plan_rule_info.closedArrival})
if pms_avail_plan_rule_info.quota:
vals.update({"quota": pms_avail_plan_rule_info.quota})
if pms_avail_plan_rule_info.maxAvailability:
vals.update({"max_avail": pms_avail_plan_rule_info.maxAvailability})
avail_plan_rule = self.env["pms.availability.plan.rule"].create(vals)
return avail_plan_rule.id
@@ -207,14 +210,29 @@ class PmsAvailabilityPlanService(Component):
]
)
if avail_rule:
avail_rule.write(
{
"min_stay": pms_avail_plan_rule_info.minStay,
"max_stay": pms_avail_plan_rule_info.maxStay,
"max_stay_arrival": pms_avail_plan_rule_info.maxStayArrival,
"quota": pms_avail_plan_rule_info.quota,
"closed": pms_avail_plan_rule_info.closed,
"closed_departure": pms_avail_plan_rule_info.closedDeparture,
"closed_arrival": pms_avail_plan_rule_info.closedArrival,
}
)
vals = dict()
if pms_avail_plan_rule_info.minStay:
vals.update({"min_stay": pms_avail_plan_rule_info.minStay})
if pms_avail_plan_rule_info.minStayArrival:
vals.update(
{"min_stay_arrival": pms_avail_plan_rule_info.minStayArrival}
)
if pms_avail_plan_rule_info.maxStay:
vals.update({"max_stay": pms_avail_plan_rule_info.maxStay})
if pms_avail_plan_rule_info.maxStayArrival:
vals.update(
{"max_stay_arrival": pms_avail_plan_rule_info.maxStayArrival}
)
if pms_avail_plan_rule_info.closed:
vals.update({"closed": pms_avail_plan_rule_info.closed})
if pms_avail_plan_rule_info.closedDeparture:
vals.update(
{"closed_departure": pms_avail_plan_rule_info.closedDeparture}
)
if pms_avail_plan_rule_info.closedArrival:
vals.update({"closed_arrival": pms_avail_plan_rule_info.closedArrival})
if pms_avail_plan_rule_info.quota:
vals.update({"quota": pms_avail_plan_rule_info.quota})
if pms_avail_plan_rule_info.maxAvailability:
vals.update({"max_avail": pms_avail_plan_rule_info.maxAvailability})
avail_rule.write(vals)

View File

@@ -15,7 +15,7 @@
name="availability_rule_field_ids"
widget="many2many_tags"
options="{'no_create': True}"
domain="['&',('model_id', '=', 'pms.availability.plan.rule'), ('name', 'in', ('min_stay', 'max_stay', 'quota', 'max_stay_arrival', 'closed_arrival', 'closed', 'closed_departure'))]"
domain="['&',('model_id', '=', 'pms.availability.plan.rule'), ('name', 'in', ('min_stay', 'max_stay', 'quota', 'max_stay_arrival', 'closed_arrival', 'closed', 'closed_departure', 'min_stay_arrival', 'max_avail'))]"
/>
</group>
</group>