mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[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:
@@ -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)
|
||||
|
||||
@@ -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 []
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user