[ADD] Base template produtc/prices to Board Services

This commit is contained in:
Dario Lodeiros
2018-12-16 13:36:21 +01:00
parent ee97d7f3f1
commit 8c1863e196
8 changed files with 63 additions and 23 deletions

View File

@@ -30,3 +30,4 @@ from . import hotel_room_closure_reason
from . import hotel_service_line
from . import hotel_board_service
from . import hotel_board_service_room_type_line
from . import hotel_board_service_line

View File

@@ -1,6 +1,7 @@
# Copyright 2017 Dario Lodeiros
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models, fields
from odoo import api, models, fields
from odoo.addons import decimal_precision as dp
class HotelBoardService(models.Model):
@@ -8,11 +9,20 @@ class HotelBoardService(models.Model):
_description = "Board Services"
name = fields.Char('Board Name', size=64, required=True, index=True)
service_ids = fields.Many2many(comodel_name='product.product',
relation='hotel_board_services_reservation',
column1='board_id',
column2='service_id')
sequence = fields.Integer('Sequence')
board_service_line_ids = fields.One2many('hotel.board.service.line',
'hotel_board_service_id')
hotel_board_service_room_type_ids = fields.One2many(
'hotel.board.service.room.type', 'hotel_board_service_id')
amount = fields.Float('Amount',
digits=dp.get_precision('Product Price'),
compute='_compute_board_amount',
store=True)
@api.depends('board_service_line_ids.amount')
def _compute_board_amount(self):
for record in self:
total = 0
for service in record.board_service_line_ids:
total += service.amount
record.update({'amount': total})

View File

@@ -0,0 +1,29 @@
# Copyright 2017 Dario Lodeiros
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, fields, models, _
from odoo.addons import decimal_precision as dp
from odoo.exceptions import UserError
class HotelBoardServiceLine(models.Model):
_name = 'hotel.board.service.line'
_description = 'Services on Board Service included'
def _get_default_price(self):
if self.product_id:
return self.product_id.list_price
hotel_board_service_id = fields.Many2one(
'hotel.board.service', 'Board Service', ondelete='cascade', required=True)
product_id = fields.Many2one(
'product.product', 'Product', required=True)
amount = fields.Float('Amount',
digits=dp.get_precision('Product Price'), default=_get_default_price)
@api.onchange('product_id')
def onchange_product_id(self):
if self.product_id:
self.update({'amount': self.product_id.list_price})

View File

@@ -82,11 +82,10 @@ class HotelBoardServiceRoomType(models.Model):
"""
cmds=[(5,0,0)]
board_service = self.env['hotel.board.service'].browse(board_service_id)
today = fields.Date.today()
for product in board_service.service_ids:
for line in board_service.board_service_line_ids:
cmds.append((0, False, {
'product_id': product.id,
'amount': product.list_price #TODO: default amomunt?¿
'product_id': line.product_id.id,
'amount': line.amount
}))
return {'board_service_line_ids': cmds}