From 74d2a5bf937cb5e816a5c7a692f8ed806e6b3659 Mon Sep 17 00:00:00 2001 From: Pawan Kumar Date: Wed, 30 Dec 2020 19:15:02 +0530 Subject: [PATCH] compute some field values --- cor_custom/models/project.py | 38 ++++++++++++++++--------------- cor_custom/views/project_view.xml | 4 +++- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py index 055b14b..2f92558 100755 --- a/cor_custom/models/project.py +++ b/cor_custom/models/project.py @@ -40,24 +40,26 @@ 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)) - 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') + 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) - @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 + @api.depends('sale_line_employee_ids') + def onchange_compute_values(self): + for record in self: + if record.project_type == 'hours_in_consultant': + val = 0.0 + 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 + budgeted_hour_week = budgeted_hour_week + rec.budgeted_hour_week + record.budgeted_hours = val + record.cost = cost + if val > 0.0: + record.hourly_rate = (cost/val) + record.budgeted_hour_week = budgeted_hour_week class InheritProjectProductEmployeeMap(models.Model): @@ -68,7 +70,7 @@ class InheritProjectProductEmployeeMap(models.Model): 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) - budgeted_hour_week = fields.Float("Budgeted Hours per week ", compute='_compute_budgeted_hour_week') + 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') diff --git a/cor_custom/views/project_view.xml b/cor_custom/views/project_view.xml index 14ca10b..605c378 100755 --- a/cor_custom/views/project_view.xml +++ b/cor_custom/views/project_view.xml @@ -65,9 +65,11 @@ - + -->