[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) roomTypeId = fields.Integer(required=False, allow_none=True)
date = fields.String(required=False, allow_none=True) date = fields.String(required=False, allow_none=True)
quota = fields.Integer(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) pmsPropertyId = fields.Integer(required=False, allow_none=True)

View File

@@ -7,21 +7,8 @@ class ResUsers(models.Model):
availability_rule_field_ids = fields.Many2many( availability_rule_field_ids = fields.Many2many(
string="Availability Rules", string="Availability Rules",
help="Configurable availability rules", help="Configurable availability rules",
default=lambda self: self._default_avail_rule_fields(),
comodel_name="ir.model.fields", comodel_name="ir.model.fields",
relation="ir_model_fields_res_users_rel", relation="ir_model_fields_res_users_rel",
column1="ir_model_fields", column1="ir_model_fields",
column2="res_users", 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, closedDeparture=rule.closed_departure,
closedArrival=rule.closed_arrival, closedArrival=rule.closed_arrival,
quota=rule.quota if rule.quota != -1 else 0, quota=rule.quota if rule.quota != -1 else 0,
maxAvailability=rule.max_avail,
) )
result.append(availability_plan_rule_info) result.append(availability_plan_rule_info)
@@ -181,6 +182,8 @@ class PmsAvailabilityPlanService(Component):
vals.update({"closed_arrival": pms_avail_plan_rule_info.closedArrival}) vals.update({"closed_arrival": pms_avail_plan_rule_info.closedArrival})
if pms_avail_plan_rule_info.quota: if pms_avail_plan_rule_info.quota:
vals.update({"quota": 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) avail_plan_rule = self.env["pms.availability.plan.rule"].create(vals)
return avail_plan_rule.id return avail_plan_rule.id
@@ -207,14 +210,29 @@ class PmsAvailabilityPlanService(Component):
] ]
) )
if avail_rule: if avail_rule:
avail_rule.write( vals = dict()
{ if pms_avail_plan_rule_info.minStay:
"min_stay": pms_avail_plan_rule_info.minStay, vals.update({"min_stay": pms_avail_plan_rule_info.minStay})
"max_stay": pms_avail_plan_rule_info.maxStay, if pms_avail_plan_rule_info.minStayArrival:
"max_stay_arrival": pms_avail_plan_rule_info.maxStayArrival, vals.update(
"quota": pms_avail_plan_rule_info.quota, {"min_stay_arrival": pms_avail_plan_rule_info.minStayArrival}
"closed": pms_avail_plan_rule_info.closed, )
"closed_departure": pms_avail_plan_rule_info.closedDeparture, if pms_avail_plan_rule_info.maxStay:
"closed_arrival": pms_avail_plan_rule_info.closedArrival, 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" name="availability_rule_field_ids"
widget="many2many_tags" widget="many2many_tags"
options="{'no_create': True}" 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>
</group> </group>