From 7ef00b3ec7f63fd2c0f801a4694d7179819bd1c0 Mon Sep 17 00:00:00 2001 From: "pawan.sharma" Date: Mon, 31 Oct 2022 18:26:16 +0530 Subject: [PATCH 1/4] Added resource add condition in write method --- cor_custom/models/project.py | 41 ++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py index eecfd77..0d1c331 100755 --- a/cor_custom/models/project.py +++ b/cor_custom/models/project.py @@ -85,18 +85,12 @@ class Project(models.Model): return value def write(self, vals): - res = super(Project, self).write(vals) - self.onchange_add_allowed_internal_users() - return res - ############# - - @api.onchange('allowed_internal_user_ids') - def onchange_add_allowed_internal_users(self): user_list = [] consultant_list = [] employee_obj = [] - if self.allowed_internal_user_ids: - user_list = self.allowed_internal_user_ids.ids + if 'allowed_internal_user_ids' in vals: + user_list = vals['allowed_internal_user_ids'][0][2] + res = super(Project, self).write(vals) if self.sale_line_employee_ids: for consultant in self.sale_line_employee_ids: consultant_list.append(consultant.employee_id.user_id.id) @@ -112,6 +106,35 @@ class Project(models.Model): self.sale_line_employee_ids.create({'project_id': self._origin.id, 'employee_id': employee, 'start_date': self.date_start}) + return res + ############# + + """@api.onchange('allowed_internal_user_ids', 'pricing_type') + def onchange_add_allowed_internal_users(self): + user_list = [] + consultant_list = [] + employee_obj = [] + if self.allowed_internal_user_ids: + user_list = self.allowed_internal_user_ids.ids + print('11111111', user_list) + if self.sale_line_employee_ids: + for consultant in self.sale_line_employee_ids: + consultant_list.append(consultant.employee_id.user_id.id) + print('222222222', consultant_list) + users = (set(user_list)) - (set(consultant_list)) + print('333333333', users) + for record in list(users): + emp_obj = self.env['hr.employee'].search([('user_id', '=', record)]).id + if emp_obj: + employee_obj.append(emp_obj) + print('44444444444', employee_obj) + if employee_obj: + for employee in employee_obj: + if self._origin.id: + if self.pricing_type == 'employee_rate': + self.sale_line_employee_ids.create({'project_id': self._origin.id, + 'employee_id': employee, + 'start_date': self.date_start})""" def _onchange_calculate_timesheet_hours(self): self.consultant_timesheet_hrs = [(6, 0, False)] From 7e966296c646613de2717a1be5daf39fd1b449fb Mon Sep 17 00:00:00 2001 From: "pawan.sharma" Date: Mon, 31 Oct 2022 18:32:53 +0530 Subject: [PATCH 2/4] change in create method related method for add resource --- cor_custom/models/project.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py index 54a46fd..7544e69 100755 --- a/cor_custom/models/project.py +++ b/cor_custom/models/project.py @@ -78,11 +78,11 @@ class Project(models.Model): is_check = fields.Boolean() ###### Added Create and write method for add default resource(31 Oct 2022) - # @api.model - # def create(self, vals): - # value = super(Project, self).create(vals) - # value.onchange_add_allowed_internal_users() - # return value + @api.model + def create(self, vals): + value = super(Project, self).create(vals) + value.add_allowed_internal_users() + return value def write(self, vals): user_list = [] @@ -109,32 +109,29 @@ class Project(models.Model): return res ############# - """@api.onchange('allowed_internal_user_ids', 'pricing_type') - def onchange_add_allowed_internal_users(self): + #@api.onchange('allowed_internal_user_ids', 'pricing_type') + #def onchange_add_allowed_internal_users(self): + def add_allowed_internal_users(self): user_list = [] consultant_list = [] employee_obj = [] if self.allowed_internal_user_ids: user_list = self.allowed_internal_user_ids.ids - print('11111111', user_list) if self.sale_line_employee_ids: for consultant in self.sale_line_employee_ids: consultant_list.append(consultant.employee_id.user_id.id) - print('222222222', consultant_list) users = (set(user_list)) - (set(consultant_list)) - print('333333333', users) for record in list(users): emp_obj = self.env['hr.employee'].search([('user_id', '=', record)]).id if emp_obj: employee_obj.append(emp_obj) - print('44444444444', employee_obj) if employee_obj: for employee in employee_obj: if self._origin.id: if self.pricing_type == 'employee_rate': self.sale_line_employee_ids.create({'project_id': self._origin.id, 'employee_id': employee, - 'start_date': self.date_start})""" + 'start_date': self.date_start}) def _onchange_calculate_timesheet_hours(self): self.consultant_timesheet_hrs = [(6, 0, False)] From a2418f282df1281b8613aa7ef182a2bd4e44c16c Mon Sep 17 00:00:00 2001 From: "pawan.sharma" Date: Mon, 31 Oct 2022 18:51:01 +0530 Subject: [PATCH 3/4] modify write method call method directly --- cor_custom/models/project.py | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py index 7544e69..11f04cc 100755 --- a/cor_custom/models/project.py +++ b/cor_custom/models/project.py @@ -85,27 +85,8 @@ class Project(models.Model): return value def write(self, vals): - user_list = [] - consultant_list = [] - employee_obj = [] - if 'allowed_internal_user_ids' in vals: - user_list = vals['allowed_internal_user_ids'][0][2] res = super(Project, self).write(vals) - if self.sale_line_employee_ids: - for consultant in self.sale_line_employee_ids: - consultant_list.append(consultant.employee_id.user_id.id) - users = (set(user_list)) - (set(consultant_list)) - for record in list(users): - emp_obj = self.env['hr.employee'].search([('user_id', '=', record)]).id - if emp_obj: - employee_obj.append(emp_obj) - if employee_obj: - for employee in employee_obj: - if self._origin.id: - if self.pricing_type == 'employee_rate': - self.sale_line_employee_ids.create({'project_id': self._origin.id, - 'employee_id': employee, - 'start_date': self.date_start}) + self.add_allowed_internal_users() return res ############# From 060551f72ec7d39af8b25293b85f81d1ffd319c4 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 31 Oct 2022 20:10:10 +0530 Subject: [PATCH 4/4] client reported issue reported --- cor_custom/models/project.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py index 11f04cc..4123740 100755 --- a/cor_custom/models/project.py +++ b/cor_custom/models/project.py @@ -86,7 +86,8 @@ class Project(models.Model): def write(self, vals): res = super(Project, self).write(vals) - self.add_allowed_internal_users() + if 'allowed_internal_user_ids' in vals: + self.add_allowed_internal_users() return res ############# @@ -103,7 +104,7 @@ class Project(models.Model): consultant_list.append(consultant.employee_id.user_id.id) users = (set(user_list)) - (set(consultant_list)) for record in list(users): - emp_obj = self.env['hr.employee'].search([('user_id', '=', record)]).id + emp_obj = self.env['hr.employee'].search([('user_id', '=', record)]) if emp_obj: employee_obj.append(emp_obj) if employee_obj: @@ -111,8 +112,9 @@ class Project(models.Model): if self._origin.id: if self.pricing_type == 'employee_rate': self.sale_line_employee_ids.create({'project_id': self._origin.id, - 'employee_id': employee, - 'start_date': self.date_start}) + 'employee_id': employee.id, + 'start_date': self.date_start, + 'employee_price': employee.timesheet_cost}) def _onchange_calculate_timesheet_hours(self): self.consultant_timesheet_hrs = [(6, 0, False)]