[ADD] Price type on board service template

This commit is contained in:
Dario Lodeiros
2018-12-17 11:18:01 +01:00
parent ee7ddc70b9
commit f598f65f45
3 changed files with 27 additions and 22 deletions

View File

@@ -11,6 +11,9 @@ class HotelBoardService(models.Model):
name = fields.Char('Board Name', size=64, required=True, index=True)
board_service_line_ids = fields.One2many('hotel.board.service.line',
'hotel_board_service_id')
price_type = fields.Selection([
('fixed','Fixed'),
('percent','Percent')], string='Type', default='fixed', required=True)
hotel_board_service_room_type_ids = fields.One2many(
'hotel.board.service.room.type', 'hotel_board_service_id')
amount = fields.Float('Amount',

View File

@@ -65,6 +65,7 @@ class HotelBoardServiceRoomType(models.Model):
action = self.env.ref('hotel.action_hotel_board_service_room_type_view').read()[0]
action['views'] = [(self.env.ref('hotel.hotel_board_service_room_type_form').id, 'form')]
action['res_id'] = self.id
action['target'] = 'new'
return action
@api.depends('board_service_line_ids.amount')

View File

@@ -205,29 +205,30 @@ class HotelService(models.Model):
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')
partner = folio.partner_id if folio else reservation.partner_id
pricelist = folio.pricelist_id if folio else reservation.pricelist_id
if reservation and self.is_board_service:
board_room_type = reservation.board_service_room_id
if board_room_type.price_type == 'fixed':
return self.env['hotel.board.service.room.type.line'].search([
('hotel_board_service_room_type_id', '=', board_room_type.id),
('product_id','=',self.product_id.id)]).amount
if folio or reservation:
partner = folio.partner_id if folio else reservation.partner_id
pricelist = folio.pricelist_id if folio else reservation.pricelist_id
if reservation and self.is_board_service:
board_room_type = reservation.board_service_room_id
if board_room_type.price_type == 'fixed':
return self.env['hotel.board.service.room.type.line'].search([
('hotel_board_service_room_type_id', '=', board_room_type.id),
('product_id','=',self.product_id.id)]).amount
else:
return (reservation.price_total * self.env['hotel.board.service.room.type.line'].search([
('hotel_board_service_room_type_id', '=', board_room_type.id),
('product_id','=',self.product_id.id)]).amount) / 100
else:
return (reservation.price_total * self.env['hotel.board.service.room.type.line'].search([
('hotel_board_service_room_type_id', '=', board_room_type.id),
('product_id','=',self.product_id.id)]).amount) / 100
else:
product = self.product_id.with_context(
lang=partner.lang,
partner=partner.id,
quantity=self.product_qty,
date=folio.date_order or fields.Date.today(),
pricelist=pricelist.id,
uom=self.product_id.uom_id.id,
fiscal_position=False
)
return self.env['account.tax']._fix_tax_included_price_company(self._get_display_price(product), product.taxes_id, self.tax_ids, folio.company_id)
product = self.product_id.with_context(
lang=partner.lang,
partner=partner.id,
quantity=self.product_qty,
date=folio.date_order or fields.Date.today(),
pricelist=pricelist.id,
uom=self.product_id.uom_id.id,
fiscal_position=False
)
return self.env['account.tax']._fix_tax_included_price_company(self._get_display_price(product), product.taxes_id, self.tax_ids, folio.company_id)