diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py
index 2f92558..8d42ee8 100755
--- a/cor_custom/models/project.py
+++ b/cor_custom/models/project.py
@@ -40,9 +40,30 @@ class Project(models.Model):
budgeted_hours = fields.Float(string='Total Budgeted Hours', digits=(16, 2))
budgeted_revenue = fields.Float(string='Budgeted Revenue', digits=(16, 2))
+ expenses_per = fields.Float(string='Expenses (%)', digits=(16, 2))
+ expenses_amt = fields.Float(string='Expenses Amount', digits=(16, 2))
cost = fields.Float("Sum of Cost", compute='onchange_compute_values', store=True)
hourly_rate = fields.Float("Sum of Hourly rate", compute='onchange_compute_values', store=True)
budgeted_hour_week = fields.Float("Budgeted Hours(per week)", compute='onchange_compute_values', store=True)
+ total_expenses = fields.Float(string='Total Expenses', digits=(16, 2), compute='_compute_calc', store=True)
+ profit_amt = fields.Float(string='Profit Amount', digits=(16, 2), compute='_compute_calc', store=True)
+ profit_per = fields.Float(string='Porfit Percentage', digits=(16, 2), compute='_compute_calc', store=True)
+
+ @api.onchange('budgeted_revenue', 'expenses_per')
+ def onchange_expenses_per(self):
+ if self.budgeted_revenue > 0 and self.expenses_per > 0:
+ expense_amount = self.budgeted_revenue * (self.expenses_per / 100)
+ self.expenses_amt = expense_amount
+
+ @api.depends('cost', 'expenses_amt', 'budgeted_revenue')
+ def _compute_calc(self):
+ for record in self:
+ total_exp = record.cost + record.expenses_amt
+ record.total_expenses = total_exp
+ profit_amt = record.budgeted_revenue - total_exp
+ record.profit_amt = profit_amt
+ if record.profit_amt > 0 and record.budgeted_revenue > 0:
+ record.profit_per = (record.profit_amt / record.budgeted_revenue) * 100
@api.depends('sale_line_employee_ids')
def onchange_compute_values(self):
diff --git a/cor_custom/views/project_view.xml b/cor_custom/views/project_view.xml
index 605c378..d7c8efb 100755
--- a/cor_custom/views/project_view.xml
+++ b/cor_custom/views/project_view.xml
@@ -41,6 +41,8 @@
widget="radio"/>
+
+
@@ -87,11 +89,18 @@
-
+
+
+
+
+
+
+
+
diff --git a/project_report/report/project_budget_hrs_analysis.py b/project_report/report/project_budget_hrs_analysis.py
index 206b1b7..b0205d2 100755
--- a/project_report/report/project_budget_hrs_analysis.py
+++ b/project_report/report/project_budget_hrs_analysis.py
@@ -26,7 +26,7 @@ class BudgetHrsAnalysis(models.Model):
SELECT row_number() OVER() AS id,
PRO.id AS project_id,
PRO.partner_id AS partner_id,
- AAL.employee_id AS employee_id,
+ Pro_emp.employee_id AS employee_id,
CASE
WHEN Pro_emp.id is null THEN Pro.budgeted_hours
ELSE Pro_emp.budgeted_qty
@@ -38,7 +38,7 @@ class BudgetHrsAnalysis(models.Model):
LEFT JOIN account_analytic_line AAL ON AAL.account_id = AA.id and AAL.project_id = Pro.id
and AAL.employee_id = Pro_emp.employee_id
Where PRO.active = 't' and PRO.pricing_type!='fixed_rate'
- group by Pro.id, Pro_emp.id, PRO.partner_id, AAL.employee_id, AAL.unit_amount
+ group by Pro.id, Pro_emp.id, PRO.partner_id, Pro_emp.employee_id, AAL.unit_amount
)""" % (self._table,))