[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

@@ -50,7 +50,7 @@
'views/hotel_board_service_views.xml',
'views/hotel_checkin_partner_views.xml',
'views/hotel_room_type_availability_views.xml',
'views/hotel_board_service_room_type.xml',
'views/hotel_board_service_room_type_views.xml',
'data/cron_jobs.xml',
'data/records.xml',
'data/email_template_cancel.xml',

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}

View File

@@ -18,3 +18,4 @@ access_hotel_folio,access_hotel_folio,model_hotel_folio,base.group_user,1,0,0,0
access_hotel_room_type,access_hotel_room_type,model_hotel_room_type,base.group_user,1,0,0,0
access_hotel_board_service_room_type,access_hotel_board_service_room_type,model_hotel_board_service_room_type,base.group_user,1,0,0,0
access_hotel_board_service_room_type_line,access_hotel_board_service_room_type_line,model_hotel_board_service_room_type_line,base.group_user,1,0,0,0
access_hotel_board_service_line,access_hotel_board_service_line,model_hotel_board_service_line,base.group_user,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
18 access_hotel_room_type access_hotel_room_type model_hotel_room_type base.group_user 1 0 0 0
19 access_hotel_board_service_room_type access_hotel_board_service_room_type model_hotel_board_service_room_type base.group_user 1 0 0 0
20 access_hotel_board_service_room_type_line access_hotel_board_service_room_type_line model_hotel_board_service_room_type_line base.group_user 1 0 0 0
21 access_hotel_board_service_line access_hotel_board_service_line model_hotel_board_service_line base.group_user 1 0 0 0

View File

@@ -3,20 +3,20 @@
<!--==================================================== Board Services ==================================================== -->
<!-- Form view of hotel board service -->
<record model="ir.ui.view" id="hotel_board_service_view_form">
<record model="ir.ui.view" id="hotel_board_service_form">
<field name="name">hotel.board.service.form</field>
<field name="model">hotel.board.service</field>
<field name="arch" type="xml">
<form string="Hotel Board Service">
<sheet>
<group>
<field name="name" select="1" />
<field name="sequence" />
</group>
<group>
<field name="service_ids" />
</group>
</sheet>
<form string="Board Service Line">
<group>
<field name="amount"/>
<field name="board_service_line_ids">
<tree editable="bottom">
<field name="product_id"/>
<field name="amount" />
</tree>
</field>
</group>
</form>
</field>
</record>
@@ -28,7 +28,7 @@
<field name="arch" type="xml">
<tree string="Hotel Board Services">
<field name="name" />
<field name="sequence" />
<field name="amount" />
</tree>
</field>
</record>