mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[ADD] Price type on board service template
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user