diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py
index ea297e9..055b14b 100755
--- a/cor_custom/models/project.py
+++ b/cor_custom/models/project.py
@@ -38,41 +38,47 @@ class Project(models.Model):
" them or by someone of their company.")
allow_billable = fields.Boolean("Billable", default=True, help="Invoice your time and material from tasks.")
- budgeted_hours = fields.Float(string='Budgeted Hours', digits=(16, 2))
+ budgeted_hours = fields.Float(string='Total Budgeted Hours', digits=(16, 2))
budgeted_revenue = fields.Float(string='Budgeted Revenue', digits=(16, 2))
+ cost = fields.Float("Sum of Cost", compute='onchange_compute_hours')
+ hourly_rate = fields.Float("Sum of Hourly rate", compute='onchange_compute_hours')
+ budgeted_hour_week = fields.Float("Budgeted Hours(per week)", compute='onchange_compute_hours')
- # @api.onchange('sale_line_employee_ids','sale_line_employee_ids.budgeted_qty', 'project_id')
- # def onchange_(self):
- # if self.project_type == 'hours_in_consultant':
- # print('555555555')
- # val = 0.0
- # for rec in self.sale_line_employee_ids:
- # val = val + rec.budgeted_qty
- # print('66666666666666666', val)
- # print('777777777', val)
- # self.budgeted_hours = val
-
-
-
+ @api.depends('sale_line_employee_ids.budgeted_qty', 'sale_line_employee_ids.budgeted_qty')
+ def onchange_compute_hours(self):
+ if self.project_type == 'hours_in_consultant':
+ val = 0.0
+ cost = 0.0
+ budgeted_hour_week = 0.0
+ for rec in self.sale_line_employee_ids:
+ val = val + rec.budgeted_qty
+ cost = cost + rec.cost
+ budgeted_hour_week = budgeted_hour_week + rec.budgeted_hour_week
+ self.budgeted_hours = val
+ self.cost = cost
+ self.hourly_rate = (self.cost/self.budgeted_hours)
+ self.budgeted_hour_week = budgeted_hour_week
class InheritProjectProductEmployeeMap(models.Model):
_inherit = 'project.sale.line.employee.map'
employee_price = fields.Monetary(string="Consultant Price", related="employee_id.timesheet_cost", readonly=True)
- budgeted_qty = fields.Float(string='Budgeted Hours', store=True)
+ budgeted_qty = fields.Float(string='Budgeted Hours', store=True)
budgeted_uom = fields.Many2one('uom.uom', string='Budgeted UOM', related='sale_line_id.product_uom', readonly=True)
- #budgeted_uom = fields.Many2one('uom.uom', string='Budgeted UOM', related='timesheet_product_id.uom_id', readonly=True)
+ # budgeted_uom = fields.Many2one('uom.uom', string='Budgeted UOM', related='timesheet_product_id.uom_id', readonly=True)
timesheet_hour = fields.Float("Timesheet Hour", compute='_compute_timesheet_hour', default=0.0)
budgeted_hour_week = fields.Float("Budgeted Hours per week ", compute='_compute_budgeted_hour_week')
price_unit = fields.Float("Hourly rate", compute='_compute_price_unit', store=True, readonly=True)
sale_line_id = fields.Many2one('sale.order.line', "Service", domain=[('is_service', '=', True)])
+ cost = fields.Float("Cost", compute='_compute_total_cost')
def _compute_timesheet_hour(self):
for val in self:
self._cr.execute('''SELECT project_id, employee_id, SUM(unit_amount) FROM account_analytic_line
where project_id = %(project_id)s and employee_id = %(employee_id)s
- GROUP BY project_id, employee_id''', { 'project_id': val.project_id._origin.id, 'employee_id': val.employee_id.id,})
+ GROUP BY project_id, employee_id''',
+ {'project_id': val.project_id._origin.id, 'employee_id': val.employee_id.id, })
res = self._cr.fetchone()
if res and res[2]:
val.timesheet_hour = res[2]
@@ -82,8 +88,21 @@ class InheritProjectProductEmployeeMap(models.Model):
def _compute_budgeted_hour_week(self):
for val in self:
if val.employee_id and val.employee_id.budgeted_hour_week > 0 and val.budgeted_qty:
- val.budgeted_hour_week = (val.budgeted_qty /val.employee_id.budgeted_hour_week)
+ val.budgeted_hour_week = (val.budgeted_qty / val.employee_id.budgeted_hour_week)
else:
val.budgeted_hour_week = 0
+ def _compute_total_cost(self):
+ for val in self:
+ val.cost = val.budgeted_qty * val.price_unit
+ # @api.onchange('employee_id', 'budgeted_qty')
+ # def onchange_(self):
+ # for val in self:
+ # rec = 0.0
+ # if val.project_id.project_type == 'hours_in_consultant':
+ # print('555555555')
+ # rec = rec + rec.budgeted_qty
+ # print('66666666666666666', rec)
+ # print('777777777', rec)
+ # self.budgeted_hours = rec
diff --git a/cor_custom/views/project_view.xml b/cor_custom/views/project_view.xml
index a6120e8..14ca10b 100755
--- a/cor_custom/views/project_view.xml
+++ b/cor_custom/views/project_view.xml
@@ -39,11 +39,11 @@
widget="radio"/>