make employee price editable
This commit is contained in:
parent
43a404c0e6
commit
04b319e372
|
@ -92,7 +92,6 @@ class Project(models.Model):
|
|||
self.sale_line_employee_ids.create({'project_id': self._origin.id,
|
||||
'employee_id': employee})"""
|
||||
|
||||
|
||||
def _onchange_calculate_timesheet_hours(self):
|
||||
self.consultant_timesheet_hrs = [(6, 0, False)]
|
||||
if self._origin.id:
|
||||
|
@ -104,8 +103,8 @@ class Project(models.Model):
|
|||
if res:
|
||||
for rec in res:
|
||||
self.consultant_timesheet_hrs.create({'project_id': rec[0],
|
||||
'employee_id': rec[1],
|
||||
'timesheet_hour': rec[2]})
|
||||
'employee_id': rec[1],
|
||||
'timesheet_hour': rec[2]})
|
||||
|
||||
@api.depends('cost', 'expenses_amt', 'budgeted_revenue')
|
||||
def _compute_calc(self):
|
||||
|
@ -134,7 +133,6 @@ class Project(models.Model):
|
|||
if record.project_type == 'hours_no_limit' and record.budgeted_hours2 > 0.0:
|
||||
record.hourly_rate = (record.budgeted_revenue / record.budgeted_hours2)
|
||||
|
||||
|
||||
@api.depends('manager_per', 'hour_distribution')
|
||||
def compute_percentage_hours(self):
|
||||
for record in self:
|
||||
|
@ -145,7 +143,6 @@ class Project(models.Model):
|
|||
# if self.manager_per > 100:
|
||||
# raise ValidationError(_("Percentage should be less than or equal to 100"))
|
||||
|
||||
|
||||
@api.onchange('budgeted_revenue', 'expenses_per')
|
||||
def onchange_expenses_per(self):
|
||||
if self.budgeted_revenue > 0 and self.expenses_per > 0:
|
||||
|
@ -197,16 +194,23 @@ class ProjectConsultantTimesheetHrs(models.Model):
|
|||
|
||||
project_id = fields.Many2one('project.project', "Project")
|
||||
employee_id = fields.Many2one('hr.employee')
|
||||
employee_price = fields.Float(string="Consultant Price", compute='_compute_consultant_timesheet_cost', default=0.0)
|
||||
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.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:
|
||||
|
@ -220,7 +224,7 @@ class InheritProjectProductEmployeeMap(models.Model):
|
|||
budgeted_uom = fields.Many2one('uom.uom', string='Budgeted UOM', related='sale_line_id.product_uom', readonly=True)
|
||||
# budgeted_uom = fields.Many2one('uom.uom', string='Budgeted UOM', related='timesheet_product_id.uom_id', readonly=True)
|
||||
timesheet_hour = fields.Float("Timesheet Hour", compute='_compute_timesheet_hour', default=0.0)
|
||||
employee_price = fields.Monetary(string="Consultant Price", related="employee_id.timesheet_cost", readonly=True)
|
||||
employee_price = fields.Monetary(string="Consultant Price")
|
||||
budgeted_hour_week = fields.Float("Budgeted Hours per week", compute='_compute_budgeted_hour_week')
|
||||
price_unit = fields.Float("Hourly Rate")
|
||||
currency_id = fields.Many2one('res.currency', string="Currency", compute='_compute_price_unit', store=True,
|
||||
|
@ -235,6 +239,13 @@ class InheritProjectProductEmployeeMap(models.Model):
|
|||
('Employee', 'Employee'), ], string="Role", default="Employee")
|
||||
distribution_per = fields.Float("%")
|
||||
|
||||
@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_timesheet_hour(self):
|
||||
for val in self:
|
||||
self._cr.execute('''SELECT project_id, employee_id, SUM(unit_amount) FROM account_analytic_line
|
||||
|
@ -292,6 +303,7 @@ class InheritProjectProductEmployeeMap(models.Model):
|
|||
# line.price_unit = 0
|
||||
line.currency_id = False
|
||||
|
||||
|
||||
class CustomProjectTags(models.Model):
|
||||
""" Tags of project's tasks """
|
||||
_name = "custom.project.tags"
|
||||
|
@ -301,4 +313,4 @@ class CustomProjectTags(models.Model):
|
|||
|
||||
_sql_constraints = [
|
||||
('name_uniq', 'unique (name)', "Tag name already exists!"),
|
||||
]
|
||||
]
|
||||
|
|
|
@ -125,8 +125,8 @@
|
|||
attrs="{'column_invisible': [('parent.sale_order_id', '=', False)]}"/>-->
|
||||
<!--<field name="budgeted_qty"
|
||||
attrs="{'column_invisible': [('parent.sale_order_id', '=', False)]}"/>-->
|
||||
<field name="employee_price"/>
|
||||
<field name="timesheet_hour"/>
|
||||
<field name="employee_price" widget="monetary" options="{'currency_field': 'currency_id'}"/>
|
||||
<field name="consultant_cost"/>
|
||||
<field name="actual_revenue"/>
|
||||
<field name="budgeted_hour_week" invisible="1"/>
|
||||
|
|
Loading…
Reference in New Issue