| 
						
						
							
								
							
						
						
					 | 
					@ -51,63 +51,66 @@ class MrpWorkorder(models.Model): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            Boolean: Returns true | 
					 | 
					 | 
					            Boolean: Returns true | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					        """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        res = super(MrpWorkorder, self).button_start() | 
					 | 
					 | 
					        res = super(MrpWorkorder, self).button_start() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        for rec in self: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            project = self.env['project.project'].search( | 
					 | 
					 | 
					            project = self.env['project.project'].search( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            [('name', '=', ("MO: {}".format(self.production_id.name)))]) | 
					 | 
					 | 
					                [('name', '=', ("MO: {}".format(rec.production_id.name)))]) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            if project: | 
					 | 
					 | 
					            if project: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                task_id = project.task_ids.search([('name', '=', ( | 
					 | 
					 | 
					                task_id = project.task_ids.search([('name', '=', ( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                "{} in {} for {} on {}".format(self.name, | 
					 | 
					 | 
					                    "{} in {} for {} on {}".format(rec.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                               self.workcenter_id.name, | 
					 | 
					 | 
					                                                   rec.workcenter_id.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                               self.product_id.display_name, | 
					 | 
					 | 
					                                                   rec.product_id.display_name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                               str(self.date_start))))]) | 
					 | 
					 | 
					                                                   str(rec.date_start))))]) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                if not task_id: | 
					 | 
					 | 
					                if not task_id: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    task_id = self.env['project.task'].create({ | 
					 | 
					 | 
					                    task_id = self.env['project.task'].create({ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'name': ("{} in {} for {} on {}".format(self.name, | 
					 | 
					 | 
					                        'name': ("{} in {} for {} on {}".format(rec.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                                            self.workcenter_id.name, | 
					 | 
					 | 
					                                                                rec.workcenter_id.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                                            self.product_id.display_name, | 
					 | 
					 | 
					                                                                rec.product_id.display_name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                                            str(self.date_start))), | 
					 | 
					 | 
					                                                                str(rec.date_start))), | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                        'project_id': project.id, | 
					 | 
					 | 
					                        'project_id': project.id, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'date_assign': self.date_start, | 
					 | 
					 | 
					                        'date_assign': rec.date_start, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'date_deadline': self.date_finished, | 
					 | 
					 | 
					                        'date_deadline': rec.date_finished, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'allocated_hours': self.duration_expected, | 
					 | 
					 | 
					                        'allocated_hours': rec.duration_expected, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                    }) | 
					 | 
					 | 
					                    }) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    self.env['account.analytic.line'].create({ | 
					 | 
					 | 
					                    self.env['account.analytic.line'].create({ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                        'task_id': task_id.id, | 
					 | 
					 | 
					                        'task_id': task_id.id, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                        'date': datetime.today(), | 
					 | 
					 | 
					                        'date': datetime.today(), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'name': ("{} in {} for {}".format(self.name, | 
					 | 
					 | 
					                        'name': ("{} in {} for {}".format(rec.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                                      self.workcenter_id.name, | 
					 | 
					 | 
					                                                          rec.workcenter_id.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                                      self.product_id.display_name)), | 
					 | 
					 | 
					                                                          rec.product_id.display_name)), | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'employee_id': self.employee_id.id, | 
					 | 
					 | 
					                        'employee_id': rec.employee_id.id, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                        'is_manufacturing': True | 
					 | 
					 | 
					                        'is_manufacturing': True | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    }) | 
					 | 
					 | 
					                    }) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            else: | 
					 | 
					 | 
					            else: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                project_id = self.env['project.project'].create( | 
					 | 
					 | 
					                project_id = self.env['project.project'].create( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                {'name': ("MO: {}".format(self.production_id.name)), | 
					 | 
					 | 
					                    {'name': ("MO: {}".format(rec.production_id.name)), | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                     'is_manufacturing': True}) | 
					 | 
					 | 
					                     'is_manufacturing': True}) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                task_id = project_id.task_ids.search([('name', '=', ( | 
					 | 
					 | 
					                task_id = project_id.task_ids.search([('name', '=', ( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                "{} in {} for {} on {}".format(self.name, | 
					 | 
					 | 
					                    "{} in {} for {} on {}".format(rec.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                               self.workcenter_id.name, | 
					 | 
					 | 
					                                                   rec.workcenter_id.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                               self.product_id.display_name, | 
					 | 
					 | 
					                                                   rec.product_id.display_name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                               str(self.date_start))))]) | 
					 | 
					 | 
					                                                   str(rec.date_start))))]) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                if not task_id: | 
					 | 
					 | 
					                if not task_id: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    task_id = self.env['project.task'].create({ | 
					 | 
					 | 
					                    task_id = self.env['project.task'].create({ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'name': ("{} in {} for {} on {}".format(self.name, | 
					 | 
					 | 
					                        'name': ("{} in {} for {} on {}".format(rec.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                                            self.workcenter_id.name, | 
					 | 
					 | 
					                                                                rec.workcenter_id.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                                            self.product_id.display_name, | 
					 | 
					 | 
					                                                                rec.product_id.display_name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                                            str(self.date_start))), | 
					 | 
					 | 
					                                                                str(rec.date_start))), | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                        'project_id': project_id.id, | 
					 | 
					 | 
					                        'project_id': project_id.id, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'date_assign': self.date_start, | 
					 | 
					 | 
					                        'date_assign': rec.date_start, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'date_deadline': self.date_finished, | 
					 | 
					 | 
					                        'date_deadline': rec.date_finished, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'allocated_hours': self.duration_expected, | 
					 | 
					 | 
					                        'allocated_hours': rec.duration_expected, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                    }) | 
					 | 
					 | 
					                    }) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    self.env['account.analytic.line'].create({ | 
					 | 
					 | 
					                    self.env['account.analytic.line'].create({ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                        'task_id': task_id.id, | 
					 | 
					 | 
					                        'task_id': task_id.id, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                        'date': datetime.today(), | 
					 | 
					 | 
					                        'date': datetime.today(), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'name': ("{} in {} for {}".format(self.name, | 
					 | 
					 | 
					                        'name': ("{} in {} for {}".format(rec.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                                      self.workcenter_id.name, | 
					 | 
					 | 
					                                                          rec.workcenter_id.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                                      self.product_id.display_name)), | 
					 | 
					 | 
					                                                          rec.product_id.display_name)), | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    'employee_id': self.employee_id.id, | 
					 | 
					 | 
					                        'employee_id': rec.employee_id.id, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                        'is_manufacturing': True | 
					 | 
					 | 
					                        'is_manufacturing': True | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    }) | 
					 | 
					 | 
					                    }) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return res | 
					 | 
					 | 
					        return res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def button_pending(self): | 
					 | 
					 | 
					    def button_pending(self): | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -117,20 +120,22 @@ class MrpWorkorder(models.Model): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            Boolean: Returns true | 
					 | 
					 | 
					            Boolean: Returns true | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					        """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        res = super(MrpWorkorder, self).button_pending() | 
					 | 
					 | 
					        res = super(MrpWorkorder, self).button_pending() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        for rec in self: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            project = self.env['project.project'].search( | 
					 | 
					 | 
					            project = self.env['project.project'].search( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            [('name', '=', ("MO: {}".format(self.production_id.name)))]) | 
					 | 
					 | 
					                [('name', '=', ("MO: {}".format(rec.production_id.name)))]) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            task_id = project.task_ids.search([('name', '=', ( | 
					 | 
					 | 
					            task_id = project.task_ids.search([('name', '=', ( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            "{} in {} for {} on {}".format(self.name, self.workcenter_id.name, | 
					 | 
					 | 
					                "{} in {} for {} on {}".format(rec.name, rec.workcenter_id.name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                           self.product_id.display_name, | 
					 | 
					 | 
					                                               rec.product_id.display_name, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                                           str(self.date_start))))]) | 
					 | 
					 | 
					                                               str(rec.date_start))))]) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            task_id.write({ | 
					 | 
					 | 
					            task_id.write({ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            'allocated_hours': self.duration_expected | 
					 | 
					 | 
					                'allocated_hours': rec.duration_expected | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            }) | 
					 | 
					 | 
					            }) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        timesheet = task_id.mapped('timesheet_ids') | 
					 | 
					 | 
					            timesheets = task_id.mapped('timesheet_ids') | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        for rec in timesheet: | 
					 | 
					 | 
					            for timesheet in timesheets: | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					            rec.write({ | 
					 | 
					 | 
					                timesheet.write({ | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                'unit_amount': self.duration, | 
					 | 
					 | 
					                    'unit_amount': rec.duration, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                }) | 
					 | 
					 | 
					                }) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return res | 
					 | 
					 | 
					        return res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def button_finish(self): | 
					 | 
					 | 
					    def button_finish(self): | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |