[IMP] Replace ser_room_line by reservation_id

This commit is contained in:
Dario Lodeiros
2019-09-24 20:13:45 +02:00
parent 54857a52d4
commit 6093d7823b
8 changed files with 35 additions and 35 deletions

View File

@@ -7758,7 +7758,7 @@ msgstr "Devoluciones"
#: model:ir.model.fields,field_description:hotel.field_hotel_reservation_room_id
#: model:ir.model.fields,field_description:hotel.field_hotel_reservation_wizard_room_id
#: model:ir.model.fields,field_description:hotel.field_hotel_service_line_room_id
#: model:ir.model.fields,field_description:hotel.field_hotel_service_ser_room_line
#: model:ir.model.fields,field_description:hotel.field_hotel_service_reservation_id
#: model:ir.ui.menu,name:hotel.menu_hotel_room
#: model:ir.ui.view,arch_db:hotel.hotel_reservation_view_form
msgid "Room"

View File

@@ -139,7 +139,7 @@ class HotelReservation(models.Model):
required=True)
service_ids = fields.One2many(
'hotel.service',
'ser_room_line')
'reservation_id')
pricelist_id = fields.Many2one(
'product.pricelist',
related='folio_id.pricelist_id')
@@ -680,7 +680,7 @@ class HotelReservation(models.Model):
'product_id': product.id,
'is_board_service': True,
'folio_id': self.folio_id.id,
'ser_room_line': self.id,
'reservation_id': self.id,
}
line = self.env['hotel.service'].new(res)
res.update(
@@ -920,7 +920,7 @@ class HotelReservation(models.Model):
dfrom=real_checkin,
days=service_days_diff,
per_person=service.product_id.per_person,
persons=service.ser_room_line.adults,
persons=service.reservation_id.adults,
old_line_days=service.service_line_ids,
consumed_on=service.product_id.consumed_on,
))
@@ -946,7 +946,7 @@ class HotelReservation(models.Model):
record.shared_folio = \
len(record.folio_id.reservation_ids) > 1 \
or any(record.folio_id.service_ids.filtered(
lambda x: x.ser_room_line.id != record.id))
lambda x: x.reservation_id.id != record.id))
@api.multi
def compute_board_services(self, vals):

View File

@@ -23,19 +23,19 @@ class HotelService(models.Model):
for rec in self:
name = []
name.append('%(name)s' % {'name': rec.name})
if rec.ser_room_line.name:
name.append('%(name)s' % {'name': rec.ser_room_line.name})
if rec.reservation_id.name:
name.append('%(name)s' % {'name': rec.reservation_id.name})
result.append((rec.id, ", ".join(name)))
return result
@api.model
def _default_ser_room_line(self):
def _default_reservation_id(self):
if self.env.context.get('reservation_ids'):
ids = [item[1] for item in self.env.context['reservation_ids']]
return self.env['hotel.reservation'].browse([
(ids)], limit=1)
elif self.env.context.get('default_ser_room_line'):
return self.env.context.get('default_ser_room_line')
elif self.env.context.get('default_reservation_id'):
return self.env.context.get('default_reservation_id')
return False
@api.model
@@ -56,10 +56,10 @@ class HotelService(models.Model):
'Folio',
ondelete='cascade',
default=_default_folio_id)
ser_room_line = fields.Many2one(
reservation_id = fields.Many2one(
'hotel.reservation',
'Room',
default=_default_ser_room_line)
default=_default_reservation_id)
service_line_ids = fields.One2many(
'hotel.service.line',
'service_id')
@@ -235,8 +235,8 @@ class HotelService(models.Model):
for record in self:
folio = record.folio_id or self.env['hotel.folio'].browse(
self.env.context.get('default_folio_id'))
reservation = record.ser_room_line or self.env.context.get(
'ser_room_line')
reservation = record.reservation_id or self.env.context.get(
'reservation_id')
currency = folio.currency_id if folio else reservation.currency_id
product = record.product_id
price = record.price_unit * (1 - (record.discount or 0.0) * 0.01)
@@ -277,14 +277,14 @@ class HotelService(models.Model):
vals = {}
vals['product_qty'] = 1.0
for record in self:
if record.per_day and record.ser_room_line:
if record.per_day and record.reservation_id:
product = record.product_id
if self.env.context.get('default_ser_room_line'):
if self.env.context.get('default_reservation_id'):
reservation = self.env['hotel.reservation'].browse(
self.env.context.get('default_ser_room_line')
self.env.context.get('default_reservation_id')
)
else:
reservation = record.ser_room_line
reservation = record.reservation_id
if reservation.splitted:
checkin = reservation.real_checkin
checkout = reservation.real_checkout
@@ -354,7 +354,7 @@ class HotelService(models.Model):
if not(name == '' and operator == 'ilike'):
args += [
'|',
('ser_room_line.name', operator, name),
('reservation_id.name', operator, name),
('name', operator, name)
]
return super(HotelService, self).name_search(
@@ -365,7 +365,7 @@ class HotelService(models.Model):
vals.update(self._prepare_add_missing_fields(vals))
if self.compute_lines_out_vals(vals):
reservation = self.env['hotel.reservation'].browse(
vals['ser_room_line'])
vals['reservation_id'])
product = self.env['product.product'].browse(vals['product_id'])
if reservation.splitted:
checkin = reservation.real_checkin
@@ -401,8 +401,8 @@ class HotelService(models.Model):
else:
for record in self:
reservations = self.env['hotel.reservation']
reservation = reservations.browse(vals['ser_room_line']) \
if 'ser_room_line' in vals else record.ser_room_line
reservation = reservations.browse(vals['reservation_id']) \
if 'reservation_id' in vals else record.reservation_id
if reservation.splitted:
checkin = reservation.real_checkin
checkout = reservation.real_checkout
@@ -459,8 +459,8 @@ class HotelService(models.Model):
# If company_id is set, always filter taxes by the company
folio = record.folio_id or self.env['hotel.folio'].browse(
self.env.context.get('default_folio_id'))
reservation = record.ser_room_line or self.env.context.get(
'ser_room_line')
reservation = record.reservation_id or self.env.context.get(
'reservation_id')
origin = folio if folio else reservation
record.tax_ids = record.product_id.taxes_id.filtered(
lambda r: not record.company_id or
@@ -469,8 +469,8 @@ class HotelService(models.Model):
@api.multi
def _get_display_price(self, product):
folio = self.folio_id or self.env.context.get('default_folio_id')
reservation = self.ser_room_line or self.env.context.get(
'ser_room_line')
reservation = self.reservation_id or self.env.context.get(
'reservation_id')
origin = folio if folio else reservation
if origin.pricelist_id.discount_policy == 'with_discount':
return product.with_context(pricelist=origin.pricelist_id.id).price
@@ -503,8 +503,8 @@ class HotelService(models.Model):
def _compute_price_unit(self):
self.ensure_one()
folio = self.folio_id or self.env.context.get('default_folio_id')
reservation = self.ser_room_line or self.env.context.get(
'ser_room_line')
reservation = self.reservation_id or self.env.context.get(
'reservation_id')
origin = reservation if reservation else folio
if origin:
partner = origin.partner_id

View File

@@ -42,7 +42,7 @@ class HotelServiceLine(models.Model):
store=True)
room_id = fields.Many2one(
string='Room',
related="service_id.ser_room_line",
related="service_id.reservation_id",
readonly=True,
store=True)
discount = fields.Float(

View File

@@ -250,7 +250,7 @@
type="action" icon="fa-coffee"/>
<group string="Reservation Services" name="reservation_services">
<field name="service_ids"
context="{'default_ser_room_line': active_id, 'default_folio_id': folio_id, 'form_view_ref':'hotel.hotel_service_view_form'}"
context="{'default_reservation_id': active_id, 'default_folio_id': folio_id, 'form_view_ref':'hotel.hotel_service_view_form'}"
nolabel="1">
<!-- If charge this view with tree_view_ref, its !crash! (field not found) when open reservation form from folio form... ¿?-->
<tree string="Services" editable="bottom"
@@ -264,7 +264,7 @@
attrs="{'invisible':[('is_board_service','=', False)]}" />
<field name="per_day" invisible="1" readonly="1"/>
<field name="folio_id" invisible="1"/>
<field name="ser_room_line" invisible="1"
<field name="reservation_id" invisible="1"
attrs = "{'required': [('per_day','=',True)]}" />
<field name="product_id"
domain="[('sale_ok', '=', True)]"

View File

@@ -62,7 +62,7 @@
<field name="folio_id" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="hotel_id" invisible="1"/>
<field name="ser_room_line"
<field name="reservation_id"
attrs = "{'required': [('per_day','=',True)]}" />
<field name="product_id"
domain="[('sale_ok', '=', True)]"

View File

@@ -294,8 +294,8 @@ class FolioAdvancePaymentInv(models.TransientModel):
for service in folio.service_ids.filtered(
lambda x: x.is_board_service == False and \
x.qty_to_invoice != 0 and \
(x.ser_room_line.id in self.reservation_ids.ids or \
not x.ser_room_line.id)):
(x.reservation_id.id in self.reservation_ids.ids or \
not x.reservation_id.id)):
invoice_lines[service.id] = {
'description': service.name,
'product_id': service.product_id.id,

View File

@@ -237,7 +237,7 @@ class HotelReservation(models.Model):
ON hf.closure_reason_id = rcr.id
LEFT JOIN hotel_board_service_room_type_rel AS hbsrt ON hr.board_service_room_id = hbsrt.id
LEFT JOIN hotel_board_service AS hbs ON hbsrt.hotel_board_service_id = hbs.id
LEFT JOIN hotel_service AS hs ON hr.id = hs.ser_room_line
LEFT JOIN hotel_service AS hs ON hr.id = hs.reservation_id
LEFT JOIN product_product AS pp2 ON hs.product_id = pp2.id
LEFT JOIN product_template AS pt2 ON pp2.product_tmpl_id = pt2.id
WHERE room_id IN %s AND (