add actual_revenue calculation

This commit is contained in:
Pawan Kumar 2021-01-25 12:17:52 +05:30
parent 9f74cc80af
commit 43a404c0e6
2 changed files with 8 additions and 0 deletions

View File

@ -48,6 +48,7 @@ class Project(models.Model):
expenses_amt = fields.Float(string='Expenses Amount', digits=(16, 2))
cost = fields.Float("Total Revenue", compute='onchange_compute_values', store=True)
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')
total_expenses = fields.Float(string='Total Expenses', digits=(16, 2), compute='_compute_calc', store=True)
hourly_rate = fields.Float("Hourly Rate", default=0.0)
@ -110,14 +111,17 @@ class Project(models.Model):
def _compute_calc(self):
for record in self:
consultant_cost = 0.0
actual_revenue = 0.0
hour = 0.0
for rec in record.sale_line_employee_ids:
consultant_cost = consultant_cost + rec.consultant_cost
actual_revenue = actual_revenue + rec.actual_revenue
hour = hour + rec.budgeted_qty
if record.pricing_type == 'fixed_rate':
for rec in record.consultant_timesheet_hrs:
consultant_cost = consultant_cost + rec.consultant_cost
record.consultant_cost = consultant_cost
record.actual_revenue = actual_revenue
record.budgeted_hours = hour
total_exp = record.consultant_cost + record.expenses_amt
record.total_expenses = total_exp
@ -224,6 +228,7 @@ class InheritProjectProductEmployeeMap(models.Model):
sale_line_id = fields.Many2one('sale.order.line', "Service", domain=[('is_service', '=', True)])
cost = fields.Float("Cost", default=0.0, store=True)
consultant_cost = fields.Float("Actual Cost", compute='_compute_timesheet_hour', default=0.0)
actual_revenue = fields.Float("Actual Revenue", compute='_compute_timesheet_hour', default=0.0)
hour_distribution = fields.Selection(related='project_id.hour_distribution')
role = fields.Selection([('Manager', 'Manager'),
@ -242,6 +247,7 @@ class InheritProjectProductEmployeeMap(models.Model):
else:
val.timesheet_hour = 0.0
val.consultant_cost = val.timesheet_hour * val.employee_price
val.actual_revenue = val.timesheet_hour * val.price_unit
def _compute_budgeted_hour_week(self):
for val in self:

View File

@ -128,6 +128,7 @@
<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"/>
</tree>
</field>
@ -144,6 +145,7 @@
<group>
<group attrs="{'invisible': [('pricing_type','=','fixed_rate')]}">
<!--<field name="cost"/>-->
<field name="actual_revenue"/>
<field name="consultant_cost"/>
<field name="other_expenses" readonly="1"/>
<field name="total_expenses"/>