[WIP] origin and priority

This commit is contained in:
Darío Lodeiros
2020-10-12 12:46:41 +02:00
parent badd01b4f6
commit b064b82a29
2 changed files with 42 additions and 0 deletions

View File

@@ -46,6 +46,11 @@ class PmsFolio(models.Model):
states={"done": [("readonly", True)]},
help="Room reservation detail.",
)
number_of_rooms = fields.Integer(
"Number of Rooms",
compute="_compute_number_of_rooms",
store="True",
)
service_ids = fields.One2many(
"pms.service",
"folio_id",
@@ -289,6 +294,13 @@ class PmsFolio(models.Model):
sequence = fields.Integer(string="Sequence", default=10)
# Compute and Search methods
@api.depends("reservation_ids", "reservation_ids.state")
def _compute_number_of_rooms(self):
for folio in self:
folio.number_of_rooms = len(folio.reservation_ids.filtered(
lambda a: a.state != "cancelled"
))
@api.depends("partner_id")
def _compute_pricelist_id(self):
for folio in self:
@@ -300,6 +312,7 @@ class PmsFolio(models.Model):
if folio.pricelist_id.id != pricelist_id:
# TODO: Warning change de pricelist?
folio.pricelist_id = pricelist_id
@api.depends("partner_id")
def _compute_user_id(self):
for folio in self:

View File

@@ -94,6 +94,7 @@ class PmsReservation(models.Model):
name = fields.Text(
"Reservation Description", compute="_compute_name", store=True, readonly=False,
)
priority = fields.Integer(compute="_compute_priority", store="True", index=True)
room_id = fields.Many2one(
"pms.room",
string="Room",
@@ -293,6 +294,15 @@ class PmsReservation(models.Model):
string="Sales Channel",
default="direct",
)
subchannel_direct = fields.Selection([
("door", "Door"),
("mail", "Mail"),
("phone", "Phone"),
],
string="Direct Channel",
)
origin = fields.Char("Origin", compute="_compute_origin", store=True)
detail_origin = fields.Char("Detail Origin", compute="_compute_detail_origin", store=True)
# TODO: Review functionality of last_update_res
last_updated_res = fields.Datetime(
"Last Updated", compute="_compute_last_updated_res", store=True, readonly=False,
@@ -412,6 +422,11 @@ class PmsReservation(models.Model):
else:
reservation.name = "/"
@api.depends("checkin")
def _compute_priority(self):
#TODO: Logic priority (100 by example)
self.priority = 100
@api.depends("reservation_line_ids", "reservation_line_ids.room_id")
def _compute_room_id(self):
for reservation in self:
@@ -1053,6 +1068,20 @@ class PmsReservation(models.Model):
record.checkin_partner_count = 0
record.checkin_partner_pending_count = 0
@api.depends("channel_type", "subchannel_direct")
def _compute_origin(self):
for reservation in self:
if reservation.channel_type == "direct":
reservation.origin = reservation.subchannel_direct
elif reservation.channel_type == "agency":
reservation.origin = reservation.agency_id.name
@api.depends("origin")
def _compute_detail_origin(self):
for reservation in self:
if reservation.channel_type in ["direct","agency"]:
reservation.detail_origin = reservation.sudo().create_uid.name
# https://www.odoo.com/es_ES/forum/ayuda-1/question/calculated-fields-in-search-filter-possible-118501
def _search_checkin_partner_pending(self, operator, value):