add other employee hours and cost
This commit is contained in:
parent
80de65b053
commit
52ceb5ea85
|
@ -51,6 +51,8 @@ class Project(models.Model):
|
|||
consultant_cost = fields.Float("Actual Cost", compute='_compute_calc')
|
||||
actual_revenue = fields.Float("Actual Revenue", compute='_compute_calc')
|
||||
other_expenses = fields.Float(string='Other Expenses', related='expenses_amt')
|
||||
other_emp_hour = fields.Float("Other Employee Hour", compute='_compute_other_employee_cost')
|
||||
other_emp_cost = fields.Float("Other Employee Cost", compute='_compute_other_employee_cost')
|
||||
total_expenses = fields.Float(string='Total Expenses', digits=(16, 2), compute='_compute_calc', store=True)
|
||||
hourly_rate = fields.Float("Hourly Rate", default=0.0)
|
||||
hourly_rate2 = fields.Float("Hourly Ratee")
|
||||
|
@ -94,7 +96,7 @@ 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})
|
||||
|
||||
def _onchange_calculate_timesheet_hours(self):
|
||||
self.consultant_timesheet_hrs = [(6, 0, False)]
|
||||
|
@ -110,6 +112,27 @@ class Project(models.Model):
|
|||
'employee_id': rec[1],
|
||||
'timesheet_hour': rec[2]})
|
||||
|
||||
def _compute_other_employee_cost(self):
|
||||
for val in self:
|
||||
#######Code for order line consultant
|
||||
list1 = []
|
||||
if val.sale_line_employee_ids:
|
||||
for record1 in val.sale_line_employee_ids:
|
||||
list1.append(record1.employee_id.id)
|
||||
if val._origin.id:
|
||||
self._cr.execute('''SELECT project_id, employee_id, SUM(unit_amount), SUM(amount) FROM account_analytic_line
|
||||
where project_id = %(project_id)s
|
||||
GROUP BY project_id, employee_id''', {'project_id': val._origin.id})
|
||||
res = self._cr.fetchall()
|
||||
hour = 0.0
|
||||
cost = 0.0
|
||||
for record2 in res:
|
||||
if record2[1] not in list1:
|
||||
hour = hour + record2[2]
|
||||
cost = cost + abs(record2[3])
|
||||
val.other_emp_hour = hour
|
||||
val.other_emp_cost = cost
|
||||
|
||||
@api.depends('cost', 'expenses_amt', 'budgeted_revenue', 'is_check')
|
||||
def _compute_calc(self):
|
||||
for record in self:
|
||||
|
@ -133,15 +156,16 @@ class Project(models.Model):
|
|||
record.actual_revenue = record.hourly_rate * timesheet_hour
|
||||
record.budgeted_hours = hour
|
||||
record.timesheet_hour = timesheet_hour
|
||||
total_exp = record.consultant_cost + record.expenses_amt
|
||||
#total_exp = record.consultant_cost + record.expenses_amt
|
||||
total_exp = record.consultant_cost + record.other_emp_cost + record.expenses_amt
|
||||
record.total_expenses = total_exp
|
||||
#record.profit_amt = record.budgeted_revenue - total_exp
|
||||
# record.profit_amt = record.budgeted_revenue - total_exp
|
||||
# if record.profit_amt > 0 and record.budgeted_revenue > 0:
|
||||
# record.profit_per = (record.profit_amt / record.budgeted_revenue) * 100
|
||||
|
||||
##### CR Changes
|
||||
record.profit_amt = record.actual_revenue - record.total_expenses
|
||||
if record.profit_amt > 0.0 and record.actual_revenue > 0.0:
|
||||
if record.actual_revenue > 0.0:
|
||||
record.profit_per = (record.profit_amt / record.actual_revenue) * 100
|
||||
########################
|
||||
if record.project_type == 'hours_in_consultant' and record.budgeted_hours > 0.0:
|
||||
|
@ -217,6 +241,7 @@ class Project(models.Model):
|
|||
'default_res_model': 'project.consultant.hrs.report'}
|
||||
return action
|
||||
|
||||
|
||||
class ProjectConsultantTimesheetHrs(models.Model):
|
||||
_name = 'consultant.timesheet.hrs'
|
||||
_description = 'Project Consultant Timesheet Hrs'
|
||||
|
@ -355,4 +380,3 @@ class InheritProjectTask(models.Model):
|
|||
for stage in self:
|
||||
stage.write({'stage_id': stage_id.id,
|
||||
'active': False})
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
<field name="sale_line_id" string="Default Sales Order Item"
|
||||
invisible="1"
|
||||
options="{'no_create': True, 'no_edit': True, 'delete': False}"/>
|
||||
<field name="is_check" invisible="1"/>
|
||||
<field name="is_check" invisible="0"/>
|
||||
</group>
|
||||
<field name="sale_line_employee_ids"
|
||||
attrs="{'invisible': ['|', ('bill_type', '!=', 'customer_project'), ('pricing_type', '!=', 'employee_rate')]}">
|
||||
|
@ -111,6 +111,7 @@
|
|||
<!--<field name="cost"/>-->
|
||||
<field name="actual_revenue"/>
|
||||
<field name="consultant_cost"/>
|
||||
<field name="other_emp_cost"/>
|
||||
<field name="other_expenses" readonly="1"/>
|
||||
<field name="total_expenses"/>
|
||||
<field name="profit_amt"/>
|
||||
|
@ -122,6 +123,7 @@
|
|||
<field name="budgeted_hours2" attrs="{'invisible': [('project_type','!=','hours_no_limit')],
|
||||
'required': [('project_type','=','hours_no_limit')]}"/>
|
||||
<field name="timesheet_hour"/>
|
||||
<field name="other_emp_hour"/>
|
||||
<field name="hourly_rate" attrs="{'readonly': [('project_type','!=','hours_no_limit')]}"/>
|
||||
<field name="budgeted_hour_week" invisible="1"/>
|
||||
</group>
|
||||
|
|
Loading…
Reference in New Issue