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 """