add other employee hours and cost

This commit is contained in:
pawan.sharma 2022-04-14 18:04:35 +05:30
parent 80de65b053
commit 52ceb5ea85
2 changed files with 32 additions and 6 deletions

View File

@ -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})

View File

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