You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							83 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							83 lines
						
					
					
						
							2.6 KiB
						
					
					
				
								from openerp import models, fields,api,http,SUPERUSER_ID,_
							 | 
						|
								from openerp.http import request
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								class Period(models.Model):
							 | 
						|
								    _name = 'salon.period'
							 | 
						|
								    _rec_name = 'display_booked'
							 | 
						|
								
							 | 
						|
								    name = fields.Float('Time')
							 | 
						|
								
							 | 
						|
								    # _sql_constraints = [
							 | 
						|
								    #     ('name_unique', 'unique(name)', 'This time is already exist !')]
							 | 
						|
								
							 | 
						|
								    chair_lines = fields.One2many('salon.period.line', 'period_id')
							 | 
						|
								    period_type = fields.Selection([('on', 'On'), ('off', 'Off')], default='on', string='On/Off')
							 | 
						|
								    off_reason = fields.Char()
							 | 
						|
								    day_id = fields.Many2one('salon.day')
							 | 
						|
								
							 | 
						|
								    @api.one
							 | 
						|
								    def _get_booked(self):
							 | 
						|
								        count = 0
							 | 
						|
								        for Each_Chair in self.chair_lines:
							 | 
						|
								            if Each_Chair.partner_id.id:
							 | 
						|
								                count += 1
							 | 
						|
								        if count < len(self.chair_lines):
							 | 
						|
								            self.booked = False
							 | 
						|
								        else:
							 | 
						|
								            self.booked = True
							 | 
						|
								    booked = fields.Boolean('Fully Booked', compute='_get_booked')
							 | 
						|
								
							 | 
						|
								    @api.one
							 | 
						|
								    def _get_display_booked(self):
							 | 
						|
								        count = 0
							 | 
						|
								        for Each_Chair in self.chair_lines:
							 | 
						|
								            if Each_Chair.partner_id.id:
							 | 
						|
								                count += 1
							 | 
						|
								        if count < len(self.chair_lines):
							 | 
						|
								             self.display_booked = str(self.name)
							 | 
						|
								        else:
							 | 
						|
								            self.display_booked = str(self.name) + '  -Fully Booked'
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								    display_booked = fields.Char(compute='_get_display_booked')
							 | 
						|
								    # @api.onchange('chair_lines')
							 | 
						|
								    # def unique_chair(self):
							 | 
						|
								    #     # GET VALUE TO CHILD CHAIR
							 | 
						|
								    #     selected_chair = str(request.session.get('onchange_chair_selected'))
							 | 
						|
								    #     request.session['onchange_chair_selected'] = None
							 | 
						|
								    #     already_exist = 0
							 | 
						|
								    #     for Each_Chair in self.chair_lines:
							 | 
						|
								    #         if Each_Chair.chair_id.name == selected_chair:
							 | 
						|
								    #             already_exist += 1
							 | 
						|
								    #     if already_exist >= 2:
							 | 
						|
								    #         return {'warning': {
							 | 
						|
								    #             'title': _('Constraint Error'),
							 | 
						|
								    #             'message': 'This chair is already selected for this period',
							 | 
						|
								    #             }}
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								class PeriodLine(models.Model):
							 | 
						|
								    _name = 'salon.period.line'
							 | 
						|
								
							 | 
						|
								    chair_id = fields.Many2one('salon.chair', string='Chair')
							 | 
						|
								    period_id = fields.Many2one('salon.period')
							 | 
						|
								    partner_id = fields.Many2one('res.partner', string='Customer')
							 | 
						|
								
							 | 
						|
								    @api.one
							 | 
						|
								    def _get_related_emp(self):
							 | 
						|
								        self.related_employee = self.chair_id.related_employee
							 | 
						|
								    related_employee = fields.Many2one('hr.employee', compute='_get_related_emp', string='Dressing Person')
							 | 
						|
								
							 | 
						|
								    @api.one
							 | 
						|
								    def _get_booked(self):
							 | 
						|
								        if self.partner_id:
							 | 
						|
								            self.booked = True
							 | 
						|
								        else:
							 | 
						|
								            self.booked = False
							 | 
						|
								    booked = fields.Boolean('Booked', compute='_get_booked')
							 | 
						|
								    book_no = fields.Char('Booking No', default=' ')
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 |