diff --git a/pms/demo/pms_reservation.xml b/pms/demo/pms_reservation.xml
index 57c858299..fb6c62c86 100644
--- a/pms/demo/pms_reservation.xml
+++ b/pms/demo/pms_reservation.xml
@@ -24,6 +24,20 @@
2
+ onboard
+
@@ -58,6 +72,15 @@
1
+
@@ -67,6 +90,14 @@
1
+
@@ -129,6 +160,13 @@
2
+
@@ -164,6 +202,13 @@
2
+
@@ -217,6 +262,14 @@
3
+
@@ -225,6 +278,12 @@
1
+
2
@@ -235,6 +294,14 @@
3
+
@@ -244,7 +311,20 @@
2
1
- confirm
+ onboard
+
diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py
index def65db15..f67124df4 100644
--- a/pms/models/pms_checkin_partner.py
+++ b/pms/models/pms_checkin_partner.py
@@ -38,6 +38,11 @@ class PmsCheckinPartner(models.Model):
name = fields.Char("Name", related="partner_id.name")
email = fields.Char("E-mail", related="partner_id.email")
mobile = fields.Char("Mobile", related="partner_id.mobile")
+ image_128 = fields.Image(related="partner_id.image_128")
+ segmentation_ids = fields.Many2many(
+ related="reservation_id.segmentation_ids",
+ readonly=True,
+ )
arrival = fields.Datetime("Enter")
departure = fields.Datetime("Exit")
state = fields.Selection(
@@ -59,6 +64,7 @@ class PmsCheckinPartner(models.Model):
def _compute_identifier(self):
for record in self:
# TODO: Identifier
+ checkins = []
if record.reservation_id.filtered("preferred_room_id"):
checkins = record.reservation_id.checkin_partner_ids
record.identifier = (
@@ -93,7 +99,7 @@ class PmsCheckinPartner(models.Model):
record.state = "precheckin"
def _checkin_mandatory_fields(self):
- return ["name", "email"]
+ return ["name"]
# Constraints and onchanges
diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py
index 94149e51e..d63b01c46 100644
--- a/pms/models/pms_folio.py
+++ b/pms/models/pms_folio.py
@@ -244,14 +244,11 @@ class PmsFolio(models.Model):
tracking=True,
)
# Checkin Fields-----------------------------------------------------
- booking_pending = fields.Integer(
- "Booking pending", compute="_compute_checkin_partner_count"
+ reservation_pending_arrival_ids = fields.One2many(
+ string="Pending Arrival Rooms", compute="_compute_reservations_pending_arrival"
)
- checkin_partner_count = fields.Integer(
- "Checkin counter", compute="_compute_checkin_partner_count"
- )
- checkin_partner_pending_count = fields.Integer(
- "Checkin Pending", compute="_compute_checkin_partner_count"
+ reservations_pending_count = fields.Integer(
+ compute="_compute_reservations_pending_arrival"
)
# Invoice Fields-----------------------------------------------------
invoice_status = fields.Selection(
@@ -444,6 +441,16 @@ class PmsFolio(models.Model):
}
)
+ @api.depends("reservation_ids", "reservation_ids.state")
+ def _compute_reservations_pending_arrival(self):
+ for record in self:
+ record.reservation_pending_arrival_ids = record.reservation_ids.filtered(
+ lambda r: r.state in ("draft", "precheckin")
+ )
+ record.reservations_pending_count = len(
+ record.reservations_pending_arrival_ids
+ )
+
# TODO: Add return_ids to depends
@api.depends("amount_total", "payment_ids", "reservation_type", "state")
def _compute_amount(self):
diff --git a/pms/static/description/avatar.png b/pms/static/description/avatar.png
new file mode 100644
index 000000000..74861de3f
Binary files /dev/null and b/pms/static/description/avatar.png differ
diff --git a/pms/views/pms_checkin_partner_views.xml b/pms/views/pms_checkin_partner_views.xml
index d8b4ea75c..8fb5af300 100644
--- a/pms/views/pms_checkin_partner_views.xml
+++ b/pms/views/pms_checkin_partner_views.xml
@@ -4,7 +4,8 @@
id="action_checkin_partner"
name="Action checkin"
res_model="pms.checkin.partner"
- view_mode="tree,form"
+ view_mode="kanban,tree,form"
+ domain="[('state', '!=', 'draft')]"
/>