[ADD]pms: sequence reservation

This commit is contained in:
Darío Lodeiros
2021-03-06 10:46:41 +01:00
parent 05cec12b24
commit d4b0c6f2ab
5 changed files with 38 additions and 22 deletions

View File

@@ -8,6 +8,13 @@
<field name="padding">5</field>
</record>
<record model="ir.sequence" id="seq_pms_reservation">
<field name="name">PMS Reservation</field>
<field name="code">pms.reservation</field>
<field name="prefix">R/</field>
<field name="padding">5</field>
</record>
<record model="ir.sequence" id="seq_pms_checkin">
<field name="name">PMS Checkin</field>
<field name="code">pms.checkin.partner</field>

View File

@@ -1,9 +1,26 @@
# Copyright 2017 Dario Lodeiros
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
from odoo import _, api, fields, models
class IrSequence(models.Model):
_inherit = "ir.sequence"
pms_property_id = fields.Many2one("pms.property", string="Property")
@api.model
def _next_sequence_property(self, pms_property_id, code):
sequence = self.search(
[
("code", "=", code),
("pms_property_id", "=", pms_property_id),
]
)
if not sequence:
sequence = self.search(
[
("code", "=", code),
("pms_property_id", "=", False),
]
)
return sequence._next_do() or _("New")

View File

@@ -207,23 +207,9 @@ class PmsCheckinPartner(models.Model):
)
if len(reservation.checkin_partner_ids) < reservation.adults:
if vals.get("identifier", _("New")) == _("New") or "identifier" not in vals:
pms_property_id = (
self.env.user.get_active_property_ids()[0]
if "pms_property_id" not in vals
else vals["pms_property_id"]
)
vals["identifier"] = (
self.env["ir.sequence"]
.search(
[
("code", "=", "pms.checkin.partner"),
"|",
("pms_property_id", "=", pms_property_id),
("pms_property_id", "=", False),
]
)
._next_do()
or _("New")
vals["identifier"] = self.env["ir.sequence"]._next_sequence_property(
pms_property_id=reservation.pms_property_id.id,
code="pms.checkin.partner",
)
return super(PmsCheckinPartner, self).create(vals)
if len(draft_checkins) > 0:

View File

@@ -814,13 +814,14 @@ class PmsFolio(models.Model):
def create(self, vals):
if vals.get("name", _("New")) == _("New") or "name" not in vals:
pms_property_id = (
self.env.user.pms_property_id.id
self.env.user.get_active_property_ids()[0]
if "pms_property_id" not in vals
else vals["pms_property_id"]
)
vals["name"] = self.env["ir.sequence"].search(
[("pms_property_id", "=", pms_property_id)]
).next_by_code("pms.folio") or _("New")
vals["name"] = self.env["ir.sequence"]._next_sequence_property(
pms_property_id=pms_property_id,
code="pms.folio",
)
result = super(PmsFolio, self).create(vals)
return result

View File

@@ -1409,6 +1409,11 @@ class PmsReservation(models.Model):
"reservation_type": vals.get("reservation_type"),
}
)
if vals.get("name", _("New")) == _("New") or "name" not in vals:
vals["name"] = self.env["ir.sequence"]._next_sequence_property(
pms_property_id=folio.pms_property_id.id,
code="pms.reservation",
)
record = super(PmsReservation, self).create(vals)
if record.preconfirm:
record.confirm()