From 0fce9bedd9b4969ed495b21bdff2eb62802901e7 Mon Sep 17 00:00:00 2001 From: "pawan.sharma" Date: Mon, 31 Oct 2022 13:38:10 +0530 Subject: [PATCH 1/3] Added Create and write method for add default resource --- cor_custom/models/project.py | 74 +++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 31 deletions(-) diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py index f08f0a0..eecfd77 100755 --- a/cor_custom/models/project.py +++ b/cor_custom/models/project.py @@ -77,6 +77,19 @@ class Project(models.Model): tag_ids = fields.Many2many('custom.project.tags', string='Tags') 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 + + 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 = [] @@ -97,7 +110,8 @@ 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}) + 'employee_id': employee, + 'start_date': self.date_start}) def _onchange_calculate_timesheet_hours(self): self.consultant_timesheet_hrs = [(6, 0, False)] @@ -270,35 +284,6 @@ class Project(models.Model): return action -class ProjectConsultantTimesheetHrs(models.Model): - _name = 'consultant.timesheet.hrs' - _description = 'Project Consultant Timesheet Hrs' - - project_id = fields.Many2one('project.project', "Project") - employee_id = fields.Many2one('hr.employee', string="Consultant") - employee_price = fields.Float(string="Consultant Price", default=0.0) - timesheet_hour = fields.Float("Timesheet Hour", default=0.0) - consultant_cost = fields.Float("Actual Cost", compute='_compute_consultant_timesheet_cost', default=0.0) - - @api.onchange('employee_id') - def onchange_employee_price(self): - if self.employee_id: - self.employee_price = self.employee_id.timesheet_cost - else: - self.employee_price = 0.0 - - def _compute_consultant_timesheet_cost(self): - for val in self: - # if val.employee_id.timesheet_cost: - # val.employee_price = val.employee_id.timesheet_cost - # else: - # val.employee_price = 0.0 - if val.timesheet_hour and val.employee_id.timesheet_cost: - val.consultant_cost = val.timesheet_hour * val.employee_id.timesheet_cost - else: - val.consultant_cost = 0.0 - - class InheritProjectProductEmployeeMap(models.Model): _inherit = 'project.sale.line.employee.map' @@ -320,7 +305,7 @@ class InheritProjectProductEmployeeMap(models.Model): role = fields.Selection([('Manager', 'Manager'), ('Employee', 'Employee'), ], string="Role", default="Employee") distribution_per = fields.Float("%") - start_date = fields.Date(string="Start Date") + start_date = fields.Date(string="Start Date", required='1') end_date = fields.Date(string="End Date") _sql_constraints = [ @@ -473,6 +458,33 @@ class InheritProjectProductEmployeeMap(models.Model): raise AccessError(_('Allocation Start date must be between %s to %s') % ( self.project_id.date_start.strftime('%d-%b-%Y'), self.project_id.date.strftime('%d-%b-%Y'))) +class ProjectConsultantTimesheetHrs(models.Model): + _name = 'consultant.timesheet.hrs' + _description = 'Project Consultant Timesheet Hrs' + + project_id = fields.Many2one('project.project', "Project") + employee_id = fields.Many2one('hr.employee', string="Consultant") + employee_price = fields.Float(string="Consultant Price", default=0.0) + timesheet_hour = fields.Float("Timesheet Hour", default=0.0) + consultant_cost = fields.Float("Actual Cost", compute='_compute_consultant_timesheet_cost', default=0.0) + + @api.onchange('employee_id') + def onchange_employee_price(self): + if self.employee_id: + self.employee_price = self.employee_id.timesheet_cost + else: + self.employee_price = 0.0 + + def _compute_consultant_timesheet_cost(self): + for val in self: + # if val.employee_id.timesheet_cost: + # val.employee_price = val.employee_id.timesheet_cost + # else: + # val.employee_price = 0.0 + if val.timesheet_hour and val.employee_id.timesheet_cost: + val.consultant_cost = val.timesheet_hour * val.employee_id.timesheet_cost + else: + val.consultant_cost = 0.0 class CustomProjectTags(models.Model): """ Tags of project's tasks """ From 1b88f819ea75232f495b6574e86139a66e1fe9bc Mon Sep 17 00:00:00 2001 From: "pawan.sharma" Date: Mon, 31 Oct 2022 13:51:56 +0530 Subject: [PATCH 2/3] Added Create method for add default resource --- cor_custom/models/project.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py index eecfd77..fb0a667 100755 --- a/cor_custom/models/project.py +++ b/cor_custom/models/project.py @@ -77,17 +77,17 @@ class Project(models.Model): tag_ids = fields.Many2many('custom.project.tags', string='Tags') is_check = fields.Boolean() - ###### Added Create and write method for add default resource(31 Oct 2022) + ###### Added Create 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 - def write(self, vals): - res = super(Project, self).write(vals) - self.onchange_add_allowed_internal_users() - return res + # def write(self, vals): + # res = super(Project, self).write(vals) + # self.onchange_add_allowed_internal_users() + # return res ############# @api.onchange('allowed_internal_user_ids') From 6e6bf91d10b11c6a66618f5fa1185005acc50335 Mon Sep 17 00:00:00 2001 From: "pawan.sharma" Date: Mon, 31 Oct 2022 14:28:36 +0530 Subject: [PATCH 3/3] Added Create method for add default resource --- cor_custom/models/project.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py index fb0a667..eecfd77 100755 --- a/cor_custom/models/project.py +++ b/cor_custom/models/project.py @@ -77,17 +77,17 @@ class Project(models.Model): tag_ids = fields.Many2many('custom.project.tags', string='Tags') is_check = fields.Boolean() - ###### Added Create method for add default resource(31 Oct 2022) + ###### 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 - # def write(self, vals): - # res = super(Project, self).write(vals) - # self.onchange_add_allowed_internal_users() - # return res + def write(self, vals): + res = super(Project, self).write(vals) + self.onchange_add_allowed_internal_users() + return res ############# @api.onchange('allowed_internal_user_ids')