mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[WIP] Refactoring Cardex
This commit is contained in:
@@ -34,9 +34,9 @@ class Wizard(models.TransientModel):
|
||||
# return current room line (onlyone in this case)
|
||||
return reservations
|
||||
for res in reservations:
|
||||
# return the first room line with free space for a cardex
|
||||
# return the first room line with free space for a checkin
|
||||
# TODO: add 'done' to res.state condition... Maybe too restrictive right now
|
||||
if res.cardex_count < (res.adults + res.children) and \
|
||||
if res.checkin_partner_count < (res.adults + res.children) and \
|
||||
res.state not in ["cancelled"]:
|
||||
return res
|
||||
elif 'reservation_id' in self.env.context:
|
||||
@@ -50,14 +50,14 @@ class Wizard(models.TransientModel):
|
||||
# no partner by default. User must search and choose one
|
||||
return False
|
||||
|
||||
def default_cardex_ids(self):
|
||||
def default_checkin_partner_ids(self):
|
||||
if ('reservation_ids' and 'folio') in self.env.context:
|
||||
ids = [item[1] for item in self.env.context.get('reservation_ids')]
|
||||
reservations = self.env['hotel.reservation'].browse(ids)
|
||||
for res in reservations:
|
||||
return res.cardex_ids
|
||||
return res.checkin_partner_ids
|
||||
|
||||
def default_cardex_ids(self):
|
||||
def default_checkin_partner_ids(self):
|
||||
if ('reservation_ids' and 'folio') in self.env.context:
|
||||
ids = [item[1] for item in self.env.context.get('reservation_ids')]
|
||||
reservations = self.env['hotel.reservation'].browse(ids)
|
||||
@@ -65,38 +65,38 @@ class Wizard(models.TransientModel):
|
||||
return res.segmentation_id
|
||||
|
||||
''' TODO: clean-up
|
||||
def default_count_cardex(self):
|
||||
def default_count_checkin_partner(self):
|
||||
if 'reservation_ids' and 'folio' in self.env.context:
|
||||
ids = [item[1] for item in self.env.context['reservation_ids']]
|
||||
reservations = self.env['hotel.reservation'].browse(ids)
|
||||
for res in reservations:
|
||||
return res.cardex_count
|
||||
return res.checkin_partner_count
|
||||
'''
|
||||
''' TODO: clean-up
|
||||
def default_pending_cardex(self):
|
||||
def default_pending_checkin_partner(self):
|
||||
if 'reservation_ids' and 'folio' in self.env.context:
|
||||
ids = [item[1] for item in self.env.context['reservation_ids']]
|
||||
reservations = self.env['hotel.reservation'].browse(ids)
|
||||
for res in reservations:
|
||||
return res.adults + res.children - res.cardex_count
|
||||
return res.adults + res.children - res.checkin_partner_count
|
||||
'''
|
||||
''' TODO: clean-up - list of checkins on smart button clean is not used anymore
|
||||
def comp_checkin_list_visible(self):
|
||||
if 'partner_id' in self.env.context:
|
||||
self.list_checkin_cardex = False
|
||||
self.list_checkin_checkin_partner = False
|
||||
return
|
||||
'''
|
||||
def comp_checkin_edit(self):
|
||||
if 'edit_cardex' in self.env.context:
|
||||
if 'edit_checkin_partner' in self.env.context:
|
||||
return True
|
||||
return False
|
||||
|
||||
cardex_ids = fields.Many2many('cardex', 'reservation_id',
|
||||
default=default_cardex_ids)
|
||||
# count_cardex = fields.Integer('Cardex counter',
|
||||
# default=default_count_cardex)
|
||||
# pending_cardex = fields.Integer('Cardex pending',
|
||||
# default=default_pending_cardex)
|
||||
checkin_partner_ids = fields.Many2many('hotel_checkin_partner', 'reservation_id',
|
||||
default=default_checkin_partner_ids)
|
||||
# count_checkin_partner = fields.Integer('Checkin counter',
|
||||
# default=default_count_checkin_partner)
|
||||
# pending_checkin_partner = fields.Integer('Checkin pending',
|
||||
# default=default_pending_checkin_partner)
|
||||
partner_id = fields.Many2one('res.partner',
|
||||
default=default_partner_id)
|
||||
reservation_id = fields.Many2one('hotel.reservation',
|
||||
@@ -106,24 +106,24 @@ class Wizard(models.TransientModel):
|
||||
exit_date = fields.Date(default=default_exit_date,
|
||||
required=True)
|
||||
|
||||
firstname_cardex = fields.Char('Firstname',
|
||||
firstname_checkin_partner = fields.Char('Firstname',
|
||||
required=True)
|
||||
lastname_cardex = fields.Char('Lastname',
|
||||
lastname_checkin_partner = fields.Char('Lastname',
|
||||
required=True)
|
||||
|
||||
email_cardex = fields.Char('E-mail')
|
||||
email_checkin_partner = fields.Char('E-mail')
|
||||
|
||||
mobile_cardex = fields.Char('Mobile')
|
||||
mobile_checkin_partner = fields.Char('Mobile')
|
||||
|
||||
segmentation_id = fields.Many2many(
|
||||
related='reservation_id.folio_id.segmentation_ids')
|
||||
|
||||
|
||||
''' TODO: clean-up - list of checkins on smart button clean is not used anymore
|
||||
list_checkin_cardex = fields.Boolean(compute=comp_checkin_list_visible,
|
||||
list_checkin_checkin_partner = fields.Boolean(compute=comp_checkin_list_visible,
|
||||
default=True, store=True)
|
||||
'''
|
||||
# edit_checkin_cardex = fields.Boolean(default=comp_checkin_edit,
|
||||
# edit_checkin_checkin_partner = fields.Boolean(default=comp_checkin_edit,
|
||||
# store=True)
|
||||
|
||||
op_select_partner = fields.Selection([
|
||||
@@ -142,38 +142,38 @@ class Wizard(models.TransientModel):
|
||||
if self.op_select_partner == 'S':
|
||||
partner_vals = {
|
||||
'id': self.partner_id.id,
|
||||
'firstname': self.firstname_cardex,
|
||||
'lastname': self.lastname_cardex,
|
||||
'email': self.email_cardex,
|
||||
'mobile': self.mobile_cardex,
|
||||
'firstname': self.firstname_checkin_partner,
|
||||
'lastname': self.lastname_checkin_partner,
|
||||
'email': self.email_checkin_partner,
|
||||
'mobile': self.mobile_checkin_partner,
|
||||
}
|
||||
self.partner_id.sudo().write(partner_vals)
|
||||
elif self.op_select_partner == 'C':
|
||||
partner_vals = {
|
||||
'firstname': self.firstname_cardex,
|
||||
'lastname': self.lastname_cardex,
|
||||
'email': self.email_cardex,
|
||||
'mobile': self.mobile_cardex,
|
||||
'firstname': self.firstname_checkin_partner,
|
||||
'lastname': self.lastname_checkin_partner,
|
||||
'email': self.email_checkin_partner,
|
||||
'mobile': self.mobile_checkin_partner,
|
||||
}
|
||||
new_partner = self.env['res.partner'].create(partner_vals)
|
||||
self.partner_id = self.env['res.partner'].browse(new_partner.id)
|
||||
|
||||
# prepare checkin values
|
||||
cardex_val = {
|
||||
checkin_partner_val = {
|
||||
'partner_id': self.partner_id.id,
|
||||
'enter_date': self.enter_date,
|
||||
'exit_date': self.exit_date
|
||||
}
|
||||
record_id = self.env['hotel.reservation'].browse(
|
||||
self.reservation_id.id)
|
||||
# save the cardex for this reservation
|
||||
# save the checkin for this reservation
|
||||
record_id.write({
|
||||
'cardex_ids': [(0, False, cardex_val)],
|
||||
'checkin_partner_ids': [(0, False, checkin_partner_val)],
|
||||
'segmentation_id': self.segmentation_id,
|
||||
})
|
||||
|
||||
# update the state of the current reservation
|
||||
if record_id.cardex_count > 0:
|
||||
if record_id.checkin_partner_count > 0:
|
||||
record_id.state = 'booking'
|
||||
record_id.is_checkin = False
|
||||
folio = self.env['hotel.folio'].browse(self.reservation_id.folio_id.id)
|
||||
@@ -192,11 +192,11 @@ class Wizard(models.TransientModel):
|
||||
ids = [item[1] for item in self.env.context['reservation_ids']]
|
||||
reservations = self.env['hotel.reservation'].browse(ids)
|
||||
for res in reservations:
|
||||
_logger.info('reservation cardex_count %d', res.cardex_count)
|
||||
_logger.info('reservation checkin_partner_count %d', res.checkin_partner_count)
|
||||
|
||||
# return {
|
||||
# 'domain': {'reservation_id': [('folio_id','=', self.env.context['folio']), 'count_cardex','=','2']},
|
||||
# 'warning': {'title': "Warning", 'message': self.env.context['cardex_count']},
|
||||
# 'domain': {'reservation_id': [('folio_id','=', self.env.context['folio']), 'count_checkin_partner','=','2']},
|
||||
# 'warning': {'title': "Warning", 'message': self.env.context['checkin_partner_count']},
|
||||
# }
|
||||
'''
|
||||
|
||||
@@ -204,10 +204,10 @@ class Wizard(models.TransientModel):
|
||||
def onchange_partner_id(self):
|
||||
# update partner fields
|
||||
write_vals = {
|
||||
'firstname_cardex': self.partner_id.firstname,
|
||||
'lastname_cardex': self.partner_id.lastname,
|
||||
'email_cardex': self.partner_id.email,
|
||||
'mobile_cardex': self.partner_id.mobile,
|
||||
'firstname_checkin_partner': self.partner_id.firstname,
|
||||
'lastname_checkin_partner': self.partner_id.lastname,
|
||||
'email_checkin_partner': self.partner_id.email,
|
||||
'mobile_checkin_partner': self.partner_id.mobile,
|
||||
}
|
||||
# show the checkin fields if a partner is selected
|
||||
if self.op_select_partner == 'S' and self.partner_id.id != False:
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<group col="4">
|
||||
<field options="{'no_quick_create': True, 'no_create_edit' : True, 'no_open': True}"
|
||||
name="reservation_id" nolabel="1"
|
||||
domain="[('folio_id','=',context.get('folio')), ('state', '!=', 'cancelled'), ('cardex_pending_count', '>', 0)]"
|
||||
domain="[('folio_id','=',context.get('folio')), ('state', '!=', 'cancelled'), ('checkin_partner_pending_count', '>', 0)]"
|
||||
style="max-width: 95%; width: 32.2em"/>
|
||||
</group>
|
||||
<group col="4">
|
||||
@@ -25,13 +25,13 @@
|
||||
</group>
|
||||
|
||||
<group col="4" attrs="{'invisible':[('checkin_mode', '=', 0)]}" >
|
||||
<field name="firstname_cardex" colspan="2"/>
|
||||
<field name="lastname_cardex" colspan="2"/>
|
||||
<field name="firstname_checkin_partner" colspan="2"/>
|
||||
<field name="lastname_checkin_partner" colspan="2"/>
|
||||
</group>
|
||||
|
||||
<group col="4" attrs="{'invisible':[('checkin_mode', '=', 0)]}" >
|
||||
<field name="email_cardex" colspan="2"/>
|
||||
<field name="mobile_cardex" colspan="2"/>
|
||||
<field name="email_checkin_partner" colspan="2"/>
|
||||
<field name="mobile_checkin_partner" colspan="2"/>
|
||||
</group>
|
||||
|
||||
<footer>
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
<field name="checkin_mode" invisible="True"/>
|
||||
<!-- <field name="checkin_show" invisible="True"/> -->
|
||||
<!-- <field name="edit_checkin_cardex" invisible="True"/> -->
|
||||
<!-- <field name="edit_checkin_checkin_partner" invisible="True"/> -->
|
||||
</footer>
|
||||
</sheet>
|
||||
</form>
|
||||
@@ -66,17 +66,17 @@
|
||||
<label for="reservation_id" string="Resevation"/>
|
||||
<field name="reservation_id" nolabel="1" domain="[('folio_id','=',context.get('folio'))]"/>
|
||||
<button type="action" class="oe_stat_button"
|
||||
id="cardex_smart_button"
|
||||
id="checkin_partner_smart_button"
|
||||
icon="fa-user-plus"
|
||||
name="%(launch_checkin_wizard_add)d"
|
||||
context="{'reservation_id': reservation_id, 'hidden_cardex': True}">
|
||||
context="{'reservation_id': reservation_id, 'hidden_checkin_partner': True}">
|
||||
<div>
|
||||
<field name="pending_cardex"
|
||||
<field name="pending_checkin_partner"
|
||||
string="Pending" widget="statinfo"/>
|
||||
</div>
|
||||
</button>
|
||||
</group>
|
||||
<field name="cardex_ids" readonly="1"/>
|
||||
<field name="checkin_partner_ids" readonly="1"/>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
Reference in New Issue
Block a user