This commit is contained in:
parent
7b00bbbe79
commit
b158be74fd
@ -188,42 +188,39 @@ class HmsBookings(models.Model):
|
||||
status = fields.Many2one(comodel_name="hms.status", string="Status", compute="_compute_checkin_checkout_date", store=True)
|
||||
|
||||
booking_status_text = fields.Char(string="Booking Status ", compute="_compute_checkin_checkout_date", store=True)
|
||||
show_booking_status = fields.Boolean(string="Show Booking Status", compute="_compute_checkin_checkout_date", store=True)
|
||||
|
||||
status_text = fields.Char(string="Status ", compute="_compute_checkin_checkout_date", store=True)
|
||||
show_status = fields.Boolean(string="Show Status", compute="_compute_checkin_checkout_date", store=True)
|
||||
|
||||
@api.depends('roomStays', 'payment_ids')
|
||||
def _compute_checkin_checkout_date(self):
|
||||
for booking in self:
|
||||
# Status fields
|
||||
booking.show_booking_status = False
|
||||
booking.show_status = False
|
||||
if booking.roomStays.filtered(lambda stay: stay.bookingStatus.name == 'Confirmed'):
|
||||
booking.booking_status = self.env['hms.booking.status'].search([('name', '=', 'Confirmed')]).id
|
||||
booking.booking_status_text = f"Confirmed ({len(booking.roomStays.filtered(lambda stay: stay.bookingStatus.name == 'Confirmed'))} / {len(booking.roomStays)})"
|
||||
booking.show_booking_status = True
|
||||
elif not booking.roomStays.filtered(lambda stay: stay.bookingStatus.name != 'Cancelled'):
|
||||
booking.booking_status = self.env['hms.booking.status'].search([('name', '=', 'Cancelled')]).id
|
||||
booking.booking_status_text = "Cancelled"
|
||||
elif not booking.roomStays.filtered(lambda stay: stay.bookingStatus.name != 'Pending'):
|
||||
booking.booking_status = self.env['hms.booking.status'].search([('name', '=', 'UpcoPendingming')]).id
|
||||
|
||||
booking.booking_status = self.env['hms.booking.status'].search([('name', '=', 'Pending')]).id
|
||||
booking.booking_status_text = "Pending"
|
||||
if not booking.roomStays.filtered(lambda stay: stay.status.name == 'CheckedIn') and not booking.roomStays.filtered(lambda stay: stay.status.name == 'CheckedOut') and booking.roomStays.filtered(lambda stay: stay.status.name == 'New'):
|
||||
booking.status = self.env['hms.status'].search([('name', '=', 'Upcoming')]).id
|
||||
booking.status_text = "Upcoming"
|
||||
elif booking.roomStays.filtered(lambda stay: stay.status.name == 'CheckedIn'):
|
||||
checked_in_records = self.env['hms.status'].search([('name', '=', 'CheckedIn')])
|
||||
booking.status = checked_in_records.id
|
||||
booking.status_text = f"CheckedIn ({len(booking.roomStays.filtered(lambda stay: stay.status.name == 'CheckedIn'))} / {len(booking.roomStays)})"
|
||||
booking.show_status = True
|
||||
elif booking.roomStays.filtered(lambda stay: stay.status.name == 'CheckedOut'):
|
||||
checked_out_records = self.env['hms.status'].search([('name', '=', 'CheckedOut')])
|
||||
booking.status = checked_out_records.id
|
||||
booking.status_text = f"CheckedOut ({len(booking.roomStays.filtered(lambda stay: stay.status.name == 'CheckedOut'))} / {len(booking.roomStays)})"
|
||||
booking.show_status = True
|
||||
elif not booking.roomStays.filtered(lambda stay: stay.status.name != 'Cancelled'):
|
||||
booking.status = self.env['hms.status'].search([('name', '=', 'Cancelled')]).id
|
||||
booking.status_text = "Cancelled"
|
||||
elif not booking.roomStays.filtered(lambda stay: stay.status.name != 'No Show'):
|
||||
booking.status = self.env['hms.status'].search([('name', '=', 'No Show')]).id
|
||||
booking.status_text = "No Show"
|
||||
|
||||
# Computed fields
|
||||
checkin_dates = booking.roomStays.mapped('checkInDateTime')
|
||||
|
||||
@ -16,8 +16,8 @@
|
||||
<field name="sourceChannelName" optional="show"/>
|
||||
<field name="booking_date" optional="show"/>
|
||||
<field name="payment_status" optional="show"/>
|
||||
<field name="booking_status" optional="show"/>
|
||||
<field name="status" optional="show"/>
|
||||
<field name="booking_status_text" optional="show"/>
|
||||
<field name="status_text" optional="show"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
@ -62,15 +62,10 @@
|
||||
<field name="to_be_paid"/>
|
||||
<field name="expected_payment"/>
|
||||
<field name="currency" invisible="1"/>
|
||||
|
||||
<field name="booking_status" invisible="booking_status_text == True" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
|
||||
<field name="booking_status_text" invisible="booking_status_text == False"/>
|
||||
|
||||
<field name="status" invisible="show_status == True" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
|
||||
<field name="status_text" invisible="show_status == False"/>
|
||||
|
||||
<field name="show_status" invisible="1"/>
|
||||
<field name="booking_status_text" invisible="1"/>
|
||||
<field name="booking_status" invisible="1" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
|
||||
<field name="booking_status_text"/>
|
||||
<field name="status" invisible="1" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
|
||||
<field name="status_text"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
|
||||
@ -18,8 +18,8 @@
|
||||
<field name="sourceChannelName" optional="show"/>
|
||||
<field name="booking_date" optional="show"/>
|
||||
<field name="payment_status" optional="show"/>
|
||||
<field name="booking_status" optional="show"/>
|
||||
<field name="status" optional="show"/>
|
||||
<field name="booking_status_text" optional="show"/>
|
||||
<field name="status_text" optional="show"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
@ -65,15 +65,10 @@
|
||||
<field name="to_be_paid"/>
|
||||
<field name="expected_payment"/>
|
||||
<field name="currency" invisible="1"/>
|
||||
|
||||
<field name="booking_status" invisible="booking_status_text == True" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
|
||||
<field name="booking_status_text" invisible="booking_status_text == False"/>
|
||||
|
||||
<field name="status" invisible="show_status == True" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
|
||||
<field name="status_text" invisible="show_status == False"/>
|
||||
|
||||
<field name="show_status" invisible="1"/>
|
||||
<field name="booking_status_text" invisible="1"/>
|
||||
<field name="booking_status" invisible="1" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
|
||||
<field name="booking_status_text"/>
|
||||
<field name="status" invisible="1" options="{'no_open': True, 'no_create': True, 'no_create_edit': True, 'no_quick_create': True}"/>
|
||||
<field name="status_text"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user