add actual_revenue calculation
This commit is contained in:
parent
9f74cc80af
commit
43a404c0e6
|
@ -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:
|
||||
|
|
|
@ -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"/>
|
||||
|
|
Loading…
Reference in New Issue