inherit
user_3048252145
python
4 years ago
3.0 kB
31
No Index
class HotelFolioLineExt(models.Model):
_inherit = "hotel.folio.line"
@api.onchange("checkin_date", "checkout_date")
def on_change_checkout(self):
res = super(HotelFolioLineExt, self).on_change_checkout()
hotel_room_obj = self.env["hotel.room"]
avail_prod_ids = []
hotel_room_ids = hotel_room_obj.search([])
for room in hotel_room_ids:
assigned = False
for line in room.room_reservation_line_ids:
if line.status != "cancel":
if (
self.checkin_date
<= line.check_in
<= self.checkout_date
) or (
self.checkin_date
<= line.check_out
<= self.checkout_date
):
assigned = True
elif (
line.check_in <= self.checkin_date <= line.check_out
) or (
line.check_in <= self.checkout_date <= line.check_out
):
assigned = True
if not assigned:
avail_prod_ids.append(room.product_id.id)
return res
@api.multi
def write(self, vals):
"""
Overrides orm write method.
@param self: The object pointer
@param vals: dictionary of fields value.
Update Hotel Room Reservation line history"""
reservation_line_obj = self.env["hotel.room.reservation.line"]
room_obj = self.env["hotel.room"]
prod_id = vals.get("product_id") or self.product_id.id
chkin = vals.get("checkin_date") or self.checkin_date
chkout = vals.get("checkout_date") or self.checkout_date
is_reserved = self.is_reserved
if prod_id and is_reserved:
prod_domain = [("product_id", "=", prod_id)]
prod_room = room_obj.search(prod_domain, limit=1)
if self.product_id and self.checkin_date and self.checkout_date:
old_prd_domain = [("product_id", "=", self.product_id.id)]
old_prod_room = room_obj.search(old_prd_domain, limit=1)
if prod_room and old_prod_room:
# Check for existing room lines.
srch_rmline = [
("room_id", "=", old_prod_room.id),
("check_in", "=", self.checkin_date),
("check_out", "=", self.checkout_date),
]
rm_lines = reservation_line_obj.search(srch_rmline)
if rm_lines:
rm_line_vals = {
"room_id": prod_room.id,
"check_in": chkin,
"check_out": chkout,
}
rm_lines.write(rm_line_vals)
return super(HotelFolioLineExt, self).write(vals)Editor is loading...