[WIP] Wizard Reservation with services

This commit is contained in:
Dario Lodeiros
2019-03-13 20:30:55 +01:00
parent 245c496aaf
commit 773d5bbde8
5 changed files with 56 additions and 15 deletions

View File

@@ -55,6 +55,9 @@ class FolioWizard(models.TransientModel):
'res.config.settings', 'default_pricelist_id')
partner_id = fields.Many2one('res.partner', required=True, string="Customer")
email = fields.Char('E-mail')
mobile = fields.Char('Mobile')
pricelist_id = fields.Many2one('product.pricelist',
string='Pricelist',
required=True,
@@ -250,6 +253,8 @@ class FolioWizard(models.TransientModel):
'service_lines': services,
'internal_comment': self.internal_comment,
'credit_card_details': self.credit_card_details,
'email': self.email,
'mobile': self.mobile,
}
newfol = self.env['hotel.folio'].create(vals)
if self.confirm:
@@ -289,6 +294,22 @@ class HotelRoomTypeWizards(models.TransientModel):
checkout = fields.Date('Check Out', required=True,
default=_get_default_checkout)
can_confirm = fields.Boolean(compute="_can_confirm")
board_service_room_id = fields.Many2one('hotel.board.service.room.type',
string="Board Service")
@api.multi
@api.onchange('rooms_num')
def domain_board_service(self):
for line in self:
board_service_room_ids = []
if line.room_type_id:
pricelist_id = self.folio_wizard_id.pricelist_id.id
board_services_room_type = self.env['hotel.board.service.room.type'].\
search([('hotel_room_type_id', '=', self.room_type_id.id),
('pricelist_id', 'in', (pricelist_id, False))])
board_service_room_ids = board_services_room_type.ids
domain_boardservice = [('id', 'in', board_service_room_ids)]
return {'domain': {'board_service_room_id': domain_boardservice}}
@api.multi
def _can_confirm(self):
@@ -479,7 +500,7 @@ class ServiceWizard(models.TransientModel):
required=True,
default=1.0)
@api.onchange('product_id', 'reservation_wizard_ids')
@api.onchange('product_id')
def onchange_product_id(self):
if self.product_id:
# TODO change pricelist for partner

View File

@@ -12,13 +12,15 @@
<field name="checkin" required="1" />
<field name="checkout" required="1" />
<field name="partner_id"/>
<field name="credit_card_details" />
<field name="mobile" required="1"/>
<field name="email" required="1"/>
</group>
<group>
<field name="call_center" invisible="1" />
<field name="channel_type" required="1" force_save="1" attrs="{'readonly':[('call_center','=',True)]}"/>
<field name="pricelist_id"/>
<field name="internal_comment"/>
<field name="credit_card_details" />
</group>
</group>
<group>
@@ -32,7 +34,10 @@
<field name="max_rooms" />
<field name="folio_wizard_id" />
<field name="room_type_id" string="Room Type" force_save="1" readonly="1"/>
<field name="rooms_num" force_save="1" attrs="{'readonly': [('can_confirm','=',False)]}" />
<field name="rooms_num" force_save="1" attrs="{'readonly': [('can_confirm', '=', False)]}" />
<field name="board_service_room_id"
attrs="{'readonly': [('rooms_num', '=', 0)]}"
options="{'no_create': True,'no_open': True}" />
<field name="checkin" widget="date" />
<field name="checkout" widget="date" />
<field name="discount" force_save="1" attrs="{'readonly': [('can_confirm','=',False)]}"/>
@@ -75,7 +80,9 @@
nolabel="1" >
<tree string="Services" editable="buttom">
<field name="product_id" string="Service" options="{'no_create': True}"
domain="[('sale_ok', '=', True)]"/>
domain="[('sale_ok', '=', True),
('per_day', '=', False),
('per_person', '=', False)]"/>
<field name="folio_wizard_id" invisible = "1" />
<field name="product_uom_qty" />
<field name="price_unit" />