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