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)
|
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)
|
||||||
|
|||||||
@@ -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 []
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user