diff --git a/project_report/report/project_revenue_custom_report2.py b/project_report/report/project_revenue_custom_report2.py index 8da428d..4388793 100755 --- a/project_report/report/project_revenue_custom_report2.py +++ b/project_report/report/project_revenue_custom_report2.py @@ -11,6 +11,7 @@ class ProjectRevenueCustomReport2(models.Model): _auto = False project_id = fields.Many2one('project.project', string='Project', readonly=True) + timesheet_id = fields.Integer(string='Timesheet ID', readonly=True) parent_project = fields.Many2one('project.project', string='Parent Project', readonly=True) partner_id = fields.Many2one('res.partner', string='Client', readonly=True) pricing_type = fields.Selection([ @@ -35,6 +36,7 @@ class ProjectRevenueCustomReport2(models.Model): actual_cost = fields.Float("Actual Cost", digits=(16, 2), readonly=True, group_operator="sum") overall_budgeted_revenue = fields.Float("Overall Budgeted Rev.", digits=(16, 2), readonly=True, group_operator="sum") overall_hourly_rate = fields.Float("Overall Hourly Rate", digits=(16, 2), group_operator="sum") + project_active = fields.Boolean('Active') def init(self): @@ -43,7 +45,9 @@ class ProjectRevenueCustomReport2(models.Model): self._cr.execute(""" CREATE OR REPLACE VIEW %s AS ( SELECT ROW_NUMBER() OVER() as id, - project_id, + project_id, + timesheet_id, + project_active, parentproject as parent_project, project_type, pricing_type, @@ -64,6 +68,8 @@ class ProjectRevenueCustomReport2(models.Model): timesheet_sdatetime from ( select pro.id AS project_id, + AAL.id as timesheet_id, + pro.active as project_active, (select project_id from project_subproject_rel as par where pro.id=par.id limit 1) as parentproject, pro.partner_id AS partner_id, pro.project_type AS project_type, @@ -85,10 +91,12 @@ class ProjectRevenueCustomReport2(models.Model): FROM project_project PRO RIGHT JOIN account_analytic_account AA ON PRO.analytic_account_id = AA.id RIGHT JOIN account_analytic_line AAL ON AAL.account_id = AA.id and AAL.project_id = PRO.id - WHERE PRO.active = 't' and PRO.pricing_type = 'fixed_rate' + WHERE PRO.pricing_type = 'fixed_rate' UNION select pro.id AS project_id, + null as timesheet_id, + pro.active as project_active, (select project_id from project_subproject_rel as par where pro.id=par.id limit 1) as parentproject, pro.partner_id AS partner_id, pro.project_type AS project_type, @@ -108,10 +116,12 @@ class ProjectRevenueCustomReport2(models.Model): 0.0 AS profit_per, null::timestamp as timesheet_sdatetime FROM project_project PRO - WHERE PRO.active = 't' and PRO.pricing_type = 'employee_rate' and PRO.project_type='hours_no_limit' + WHERE PRO.pricing_type = 'employee_rate' and PRO.project_type='hours_no_limit' UNION select pro.id AS project_id, + AAL.id as timesheet_id, + pro.active as project_active, (select project_id from project_subproject_rel as par where pro.id=par.id limit 1) as parentproject, pro.partner_id AS partner_id, pro.project_type AS project_type, @@ -133,10 +143,12 @@ class ProjectRevenueCustomReport2(models.Model): FROM project_project PRO RIGHT JOIN account_analytic_account AA ON PRO.analytic_account_id = AA.id RIGHT JOIN account_analytic_line AAL ON AAL.account_id = AA.id and AAL.project_id = PRO.id - WHERE PRO.active = 't' and PRO.pricing_type = 'employee_rate' and PRO.project_type='hours_no_limit' + WHERE PRO.pricing_type = 'employee_rate' and PRO.project_type='hours_no_limit' UNION select pro.id AS project_id, + null as timesheet_id, + pro.active as project_active, (select project_id from project_subproject_rel as par where pro.id=par.id limit 1) as parentproject, pro.partner_id AS partner_id, pro.project_type AS project_type, @@ -159,10 +171,12 @@ class ProjectRevenueCustomReport2(models.Model): Left JOIN project_sale_line_employee_map pro_emp ON pro_emp.project_id = pro.id LEFT JOIN account_analytic_account AA ON PRO.analytic_account_id = AA.id 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='employee_rate' and PRO.project_type='hours_in_consultant' + WHERE PRO.pricing_type='employee_rate' and PRO.project_type='hours_in_consultant' UNION select pro.id AS project_id, + null as timesheet_id, + pro.active as project_active, (select project_id from project_subproject_rel as par where pro.id=par.id limit 1) as parentproject, pro.partner_id AS partner_id, pro.project_type AS project_type, @@ -182,10 +196,12 @@ class ProjectRevenueCustomReport2(models.Model): 0.0 as profit_per, null::timestamp as timesheet_sdatetime FROM project_project PRO - WHERE PRO.active = 't' and PRO.pricing_type='employee_rate' and PRO.project_type='hours_in_consultant' + WHERE PRO.pricing_type='employee_rate' and PRO.project_type='hours_in_consultant' UNION select pro.id AS project_id, + AAL.id as timesheet_id, + pro.active as project_active, (select project_id from project_subproject_rel as par where pro.id=par.id limit 1) as parentproject, pro.partner_id AS partner_id, pro.project_type AS project_type, @@ -211,7 +227,7 @@ class ProjectRevenueCustomReport2(models.Model): LEFT JOIN account_analytic_line AAL ON AAL.account_id = AA.id and AAL.project_id = PRO.id Left JOIN project_sale_line_employee_map pro_emp ON pro_emp.project_id = pro.id and AAL.employee_id = pro_emp.employee_id LEFT JOIN hr_employee EMP ON AAL.employee_id = EMP.id - WHERE PRO.active = 't' and PRO.pricing_type='employee_rate' and PRO.project_type='hours_in_consultant' + WHERE PRO.pricing_type='employee_rate' and PRO.project_type='hours_in_consultant' ) res )""" % (self._table,)) diff --git a/project_report/report/project_revenue_custom_report2_views.xml b/project_report/report/project_revenue_custom_report2_views.xml index 662ba10..dfda5ea 100755 --- a/project_report/report/project_revenue_custom_report2_views.xml +++ b/project_report/report/project_revenue_custom_report2_views.xml @@ -17,7 +17,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -72,11 +72,18 @@ + + + + +