diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py index 2f5e405..591bae7 100755 --- a/cor_custom/models/project.py +++ b/cor_custom/models/project.py @@ -48,6 +48,10 @@ class Project(models.Model): 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) + consultant_cost = fields.Float("Sum of Cost", compute='onchange_compute_values', store=True) + total_cost = fields.Float("Cost") + total_hourly_rate = fields.Float("Cost") + total_budgeted_hour_week = fields.Float("Cost") @api.onchange('budgeted_revenue', 'expenses_per') def onchange_expenses_per(self): @@ -71,13 +75,16 @@ class Project(models.Model): if record.project_type == 'hours_in_consultant': val = 0.0 cost = 0.0 + consultant_cost = 0.0 budgeted_hour_week = 0.0 for rec in record.sale_line_employee_ids: val = val + rec.budgeted_qty cost = cost + rec.cost + consultant_cost = consultant_cost + rec.consultant_cost budgeted_hour_week = budgeted_hour_week + rec.budgeted_hour_week record.budgeted_hours = val record.cost = cost + record.consultant_cost = cost if val > 0.0: record.hourly_rate = (cost/val) record.budgeted_hour_week = budgeted_hour_week @@ -89,7 +96,7 @@ class Project(models.Model): price_unit = price_unit + rec.price_unit count = count + 1 print('price_unit', price_unit, count) - if record.budgeted_hours > 0.0: + if record.budgeted_hours > 0.0 and count > 0.0: avg =(record.budgeted_hours/count) hourly_rate = price_unit * avg print('ppppppppppp', avg, hourly_rate) @@ -101,17 +108,19 @@ class Project(models.Model): 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_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) timesheet_hour = fields.Float("Timesheet Hour", compute='_compute_timesheet_hour', default=0.0) + employee_price = fields.Monetary(string="Consultant Price", related="employee_id.timesheet_cost", readonly=True) budgeted_hour_week = fields.Float("Budgeted Hours per week", compute='_compute_budgeted_hour_week') price_unit = fields.Float("Hourly rate") currency_id = fields.Many2one('res.currency', string="Currency", compute='_compute_price_unit', store=True, readonly=False) sale_line_id = fields.Many2one('sale.order.line', "Service", domain=[('is_service', '=', True)]) cost = fields.Float("Cost", compute='_compute_total_cost') + consultant_cost = fields.Float("Cost", compute='_compute_total_cost') + total = fields.Float("Total") def _compute_timesheet_hour(self): for val in self: @@ -135,6 +144,7 @@ class InheritProjectProductEmployeeMap(models.Model): def _compute_total_cost(self): for val in self: val.cost = val.budgeted_qty * val.price_unit + val.consultant_cost = val.timesheet_hour * val.employee_price @api.depends('sale_line_id', 'sale_line_id.price_unit', 'timesheet_product_id') def _compute_price_unit(self): diff --git a/cor_custom/views/project_view.xml b/cor_custom/views/project_view.xml index 5835b26..2ea00ad 100755 --- a/cor_custom/views/project_view.xml +++ b/cor_custom/views/project_view.xml @@ -74,15 +74,16 @@ - - - + + + + @@ -96,6 +97,7 @@ +