Merge pull request #76 from hootel/pr_color_reservation

pr_color_reservation
This commit is contained in:
Darío Lodeiros
2018-12-09 10:17:02 +01:00
committed by GitHub
3 changed files with 76 additions and 116 deletions

View File

@@ -170,10 +170,6 @@ class HotelReservation(models.Model):
'confirm': [('readonly', False)],
'booking': [('readonly', False)],
})
reserve_color = fields.Char(compute='_compute_color', string='Color',
store=True)
reserve_color_text = fields.Char(compute='_compute_color', string='Color',
store=True)
service_ids = fields.One2many('hotel.service', 'ser_room_line')
pricelist_id = fields.Many2one('product.pricelist',
@@ -284,11 +280,8 @@ class HotelReservation(models.Model):
vals.update({'folio_id': folio.id,
'reservation_type': vals.get('reservation_type'),
'channel_type': vals.get('channel_type')})
#~ colors = self._generate_color()
vals.update({
'last_updated_res': fields.Datetime.now(),
#~ 'reserve_color': colors[0],
#~ 'reserve_color_text': colors[1],
})
if 'board_service_id' in vals:
board_services = []
@@ -629,99 +622,6 @@ class HotelReservation(models.Model):
self.update({'service_ids': [(6, 0, other_services.ids)] + board_services})
"""
COMPUTE RESERVE COLOR ----------------------------------------------
"""
@api.multi
def _generate_color(self):
self.ensure_one()
now_utc_dt = fields.Datetime.now()
ir_values_obj = self.env['ir.default']
reserv_color = '#FFFFFF'
reserv_color_text = '#000000'
# FIXME added for migration
return ('#4E9DC4', '#000000')
if self.reservation_type == 'staff':
reserv_color = ir_values_obj.get('res.config.settings', 'color_staff')
reserv_color_text = ir_values_obj.get(
'res.config.settings',
'color_letter_staff')
elif self.reservation_type == 'out':
reserv_color = ir_values_obj.get('res.config.settings', 'color_dontsell')
reserv_color_text = ir_values_obj.get(
'res.config.settings',
'color_letter_dontsell')
elif self.to_assign:
reserv_color = ir_values_obj.get('res.config.settings', 'color_to_assign')
reserv_color_text = ir_values_obj.get(
'res.config.settings',
'color_letter_to_assign')
elif self.state == 'draft':
reserv_color = ir_values_obj.get('res.config.settings', 'color_pre_reservation')
reserv_color_text = ir_values_obj.get(
'res.config.settings',
'color_letter_pre_reservation')
elif self.state == 'confirm':
if self.folio_id.pending_amount == 0:
reserv_color = ir_values_obj.get(
'res.config.settings', 'color_reservation_pay')
reserv_color_text = ir_values_obj.get(
'res.config.settings', 'color_letter_reservation_pay')
else:
reserv_color = ir_values_obj.get(
'res.config.settings', 'color_reservation')
reserv_color_text = ir_values_obj.get(
'res.config.settings', 'color_letter_reservation')
elif self.state == 'booking':
if self.folio_id.pending_amount == 0:
reserv_color = ir_values_obj.get(
'res.config.settings', 'color_stay_pay')
reserv_color_text = ir_values_obj.get(
'res.config.settings', 'color_letter_stay_pay')
else:
reserv_color = ir_values_obj.get(
'res.config.settings', 'color_stay')
reserv_color_text = ir_values_obj.get(
'res.config.settings', 'color_letter_stay')
else:
if self.folio_id.pending_amount == 0:
reserv_color = ir_values_obj.get(
'res.config.settings', 'color_checkout')
reserv_color_text = ir_values_obj.get(
'res.config.settings', 'color_letter_checkout')
else:
reserv_color = ir_values_obj.get(
'res.config.settings', 'color_payment_pending')
reserv_color_text = ir_values_obj.get(
'res.config.settings', 'color_letter_payment_pending')
return (reserv_color, reserv_color_text)
@api.depends('state', 'reservation_type', 'folio_id.pending_amount', 'to_assign')
def _compute_color(self):
_logger.info('_compute_color')
for record in self:
colors = record._generate_color()
record.update({
'reserve_color': colors[0],
'reserve_color_text': colors[1],
})
record.folio_id.color = colors[0]
# hotel_reserv_obj = self.env['hotel.reservation']
# if rec.splitted:
# master_reservation = rec.parent_reservation or rec
# splitted_reservs = hotel_reserv_obj.search([
# ('splitted', '=', True),
# '|', ('parent_reservation', '=', master_reservation.id),
# ('id', '=', master_reservation.id),
# ('folio_id', '=', rec.folio_id.id),
# ('id', '!=', rec.id),
# ])
# splitted_reservs.write({'reserve_color': rec.reserve_color})
"""
STATE WORKFLOW -----------------------------------------------------
"""

View File

@@ -13,6 +13,66 @@ _logger = logging.getLogger(__name__)
class HotelReservation(models.Model):
_inherit = 'hotel.reservation'
reserve_color = fields.Char(compute='_compute_color', string='Color',
store=True)
reserve_color_text = fields.Char(compute='_compute_color', string='Color',
store=True)
"""
COMPUTE RESERVE COLOR ----------------------------------------------
"""
@api.multi
def _generate_color(self):
self.ensure_one()
reserv_color = '#FFFFFF'
reserv_color_text = '#000000'
user = self.env.user
if self.reservation_type == 'staff':
reserv_color = user.color_staff
reserv_color_text = user.color_letter_staff
elif self.reservation_type == 'out':
reserv_color = user.color_dontsell
reserv_color_text = user.color_letter_dontsell
elif self.to_assign:
reserv_color = user.color_to_assign
reserv_color_text = user.color_letter_to_assign
elif self.state == 'draft':
reserv_color = user.color_pre_reservation
reserv_color_text = user.color_letter_pre_reservation
elif self.state == 'confirm':
if self.folio_id.pending_amount <= 0:
reserv_color = user.color_reservation_pay
reserv_color_text = user.color_letter_reservation_pay
else:
reserv_color = user.color_reservation
reserv_color_text = user.color_letter_reservation
elif self.state == 'booking':
if self.folio_id.pending_amount <= 0:
reserv_color = user.color_stay_pay
reserv_color_text = user.color_letter_stay_pay
else:
reserv_color = user.color_stay
reserv_color_text = user.color_letter_stay
else:
if self.folio_id.pending_amount <= 0:
reserv_color = user.color_checkout
reserv_color_text = user.color_letter_checkout
else:
reserv_color = user.color_payment_pending
reserv_color_text = user.color_letter_payment_pending
return (reserv_color, reserv_color_text)
@api.depends('state', 'reservation_type', 'folio_id.pending_amount', 'to_assign')
def _compute_color(self):
for record in self:
colors = record._generate_color()
record.update({
'reserve_color': colors[0],
'reserve_color_text': colors[1],
})
@api.model
def _hcalendar_reservation_data(self, reservations):
json_reservations = []

View File

@@ -81,27 +81,27 @@ class ResUsers(models.Model):
'calendar.event.type',
string="Deny Calander Event Tags")
color_pre_reservation = fields.Char('Pre-reservation', default='#A4A4A4')
color_reservation = fields.Char('Confirmed Reservation ', default='#4E9DC4')
color_reservation_pay = fields.Char('Paid Reservation', default='#66CCFF')
color_stay = fields.Char('Checkin', default='#b40606')
color_stay_pay = fields.Char('Paid Checkin', default='#54d12b')
color_checkout = fields.Char('Checkout', default='#FF0000')
color_pre_reservation = fields.Char('Pre-reservation', default='#A09FC9')
color_reservation = fields.Char('Confirmed Reservation ', default='#7C7BAD')
color_reservation_pay = fields.Char('Paid Reservation', default='#7C7BAD')
color_stay = fields.Char('Checkin', default='#FF4040')
color_stay_pay = fields.Char('Paid Checkin', default='#82BF07')
color_checkout = fields.Char('Checkout', default='#7E7E7E')
color_dontsell = fields.Char('Dont Sell', default='#000000')
color_staff = fields.Char('Staff', default='#FF9933')
color_to_assign = fields.Char('Ota Reservation to Assign', default='#DFFF00')
color_payment_pending = fields.Char('Payment Pending', default='#f70f0f')
color_staff = fields.Char('Staff', default='#C08686')
color_to_assign = fields.Char('Ota Reservation to Assign', default='#ED722E')
color_payment_pending = fields.Char('Payment Pending', default='#A24689')
color_letter_pre_reservation = fields.Char('Letter Pre-reservation', default='#000000')
color_letter_reservation = fields.Char('Letter Confirmed Reservation ', default='#000000')
color_letter_reservation_pay = fields.Char('Letter Paid Reservation', default='#000000')
color_letter_pre_reservation = fields.Char('Letter Pre-reservation', default='#FFFFFF')
color_letter_reservation = fields.Char('Letter Confirmed Reservation ', default='#FFFFFF')
color_letter_reservation_pay = fields.Char('Letter Paid Reservation', default='#FFFFFF')
color_letter_stay = fields.Char('Letter Checkin', default='#FFFFFF')
color_letter_stay_pay = fields.Char('Letter Stay Pay', default='#000000')
color_letter_stay_pay = fields.Char('Letter Stay Pay', default='#FFFFFF')
color_letter_checkout = fields.Char('Letter Checkout', default='#FFFFFF')
color_letter_dontsell = fields.Char('Letter Dont Sell', default='#FFFFFF')
color_letter_staff = fields.Char('Letter Staff', default='#000000')
color_letter_to_assign = fields.Char('Letter Ota to Assign', default='#000000')
color_letter_payment_pending = fields.Char('Letter Payment Pending', default='#000000')
color_letter_staff = fields.Char('Letter Staff', default='#FFFFFF')
color_letter_to_assign = fields.Char('Letter Ota to Assign', default='#FFFFFF')
color_letter_payment_pending = fields.Char('Letter Payment Pending', default='#FFFFFF')
def __init__(self, pool, cr):
""" Override of __init__ to add access rights.