[IMP] Views

This commit is contained in:
Dario Lodeiros
2019-01-29 19:30:55 +01:00
parent 49b88cdb22
commit e450035e0b
3 changed files with 109 additions and 101 deletions

View File

@@ -280,7 +280,7 @@ class HotelFolio(models.Model):
'amount_total': amount_untaxed + amount_tax,
})
@api.depends('amount_total', 'payment_ids', 'return_ids')
@api.depends('amount_total', 'payment_ids', 'return_ids', 'reservation_type')
@api.multi
def compute_amount(self):
acc_pay_obj = self.env['account.payment']
@@ -630,64 +630,73 @@ class HotelFolio(models.Model):
@api.depends('room_lines')
def _compute_has_confirmed_reservations_to_send(self):
has_to_send = False
for rline in self.room_lines:
if rline.splitted:
master_reservation = rline.parent_reservation or rline
has_to_send = self.env['hotel.reservation'].search_count([
('splitted', '=', True),
('folio_id', '=', self.id),
('to_send', '=', True),
('state', 'in', ('confirm', 'booking')),
'|',
('parent_reservation', '=', master_reservation.id),
('id', '=', master_reservation.id),
]) > 0
elif rline.to_send and rline.state in ('confirm', 'booking'):
has_to_send = True
break
self.has_confirmed_reservations_to_send = has_to_send
if self.reservation_type != 'out':
for rline in self.room_lines:
if rline.splitted:
master_reservation = rline.parent_reservation or rline
has_to_send = self.env['hotel.reservation'].search_count([
('splitted', '=', True),
('folio_id', '=', self.id),
('to_send', '=', True),
('state', 'in', ('confirm', 'booking')),
'|',
('parent_reservation', '=', master_reservation.id),
('id', '=', master_reservation.id),
]) > 0
elif rline.to_send and rline.state in ('confirm', 'booking'):
has_to_send = True
break
self.has_confirmed_reservations_to_send = has_to_send
else:
self.has_confirmed_reservations_to_send = False
@api.depends('room_lines')
def _compute_has_cancelled_reservations_to_send(self):
has_to_send = False
for rline in self.room_lines:
if rline.splitted:
master_reservation = rline.parent_reservation or rline
has_to_send = self.env['hotel.reservation'].search_count([
('splitted', '=', True),
('folio_id', '=', self.id),
('to_send', '=', True),
('state', '=', 'cancelled'),
'|',
('parent_reservation', '=', master_reservation.id),
('id', '=', master_reservation.id),
]) > 0
elif rline.to_send and rline.state == 'cancelled':
has_to_send = True
break
self.has_cancelled_reservations_to_send = has_to_send
if self.reservation_type != 'out':
for rline in self.room_lines:
if rline.splitted:
master_reservation = rline.parent_reservation or rline
has_to_send = self.env['hotel.reservation'].search_count([
('splitted', '=', True),
('folio_id', '=', self.id),
('to_send', '=', True),
('state', '=', 'cancelled'),
'|',
('parent_reservation', '=', master_reservation.id),
('id', '=', master_reservation.id),
]) > 0
elif rline.to_send and rline.state == 'cancelled':
has_to_send = True
break
self.has_cancelled_reservations_to_send = has_to_send
else:
self.has_cancelled_reservations_to_send = False
@api.depends('room_lines')
def _compute_has_checkout_to_send(self):
has_to_send = True
for rline in self.room_lines:
if rline.splitted:
master_reservation = rline.parent_reservation or rline
nreservs = self.env['hotel.reservation'].search_count([
('splitted', '=', True),
('folio_id', '=', self.id),
('to_send', '=', True),
('state', '=', 'done'),
'|',
('parent_reservation', '=', master_reservation.id),
('id', '=', master_reservation.id),
])
if nreservs != len(self.room_lines):
if self.reservation_type != 'out':
for rline in self.room_lines:
if rline.splitted:
master_reservation = rline.parent_reservation or rline
nreservs = self.env['hotel.reservation'].search_count([
('splitted', '=', True),
('folio_id', '=', self.id),
('to_send', '=', True),
('state', '=', 'done'),
'|',
('parent_reservation', '=', master_reservation.id),
('id', '=', master_reservation.id),
])
if nreservs != len(self.room_lines):
has_to_send = False
elif not rline.to_send or rline.state != 'done':
has_to_send = False
elif not rline.to_send or rline.state != 'done':
has_to_send = False
break
self.has_checkout_to_send = has_to_send
break
self.has_checkout_to_send = has_to_send
else:
self.has_checkout_to_send = False
@api.multi
def send_reservation_mail(self):

View File

@@ -838,7 +838,7 @@ class HotelReservation(models.Model):
@api.depends('reservation_line_ids.discount')
def _compute_discount(self):
for record in self:
record.discount = sum(line.price * (1 - (line.discount or 0.0) * 0.01) \
record.discount = sum(line.price * ((line.discount or 0.0) * 0.01) \
for line in record.reservation_line_ids)
@api.depends('reservation_line_ids.price', 'discount', 'tax_ids')
@@ -1022,9 +1022,13 @@ class HotelReservation(models.Model):
def _compute_checkin_partner_count(self):
_logger.info('_compute_checkin_partner_count')
for record in self:
record.checkin_partner_count = len(record.checkin_partner_ids)
record.checkin_partner_pending_count = (record.adults + record.children) \
- len(record.checkin_partner_ids)
if record.reservation_type != 'out':
record.checkin_partner_count = len(record.checkin_partner_ids)
record.checkin_partner_pending_count = (record.adults + record.children) \
- len(record.checkin_partner_ids)
else:
record.checkin_partner_count = 0
record.checkin_partner_pending_count = 0
# https://www.odoo.com/es_ES/forum/ayuda-1/question/calculated-fields-in-search-filter-possible-118501
@api.multi