From 8d30c1246b7840d0c58ed16a008df71c4087eedf Mon Sep 17 00:00:00 2001 From: projectsodoo Date: Mon, 11 Jan 2021 22:09:15 +0530 Subject: [PATCH] Report type updated --- .../report/project_budget_amt_analysis.py | 48 ++++++++++++++----- .../project_budget_amt_analysis_views.xml | 4 +- .../report/project_budget_hrs_analysis.py | 2 +- .../project_budget_hrs_analysis_views.xml | 2 +- 4 files changed, 39 insertions(+), 17 deletions(-) diff --git a/project_report/report/project_budget_amt_analysis.py b/project_report/report/project_budget_amt_analysis.py index 0eafb06..24fcf82 100755 --- a/project_report/report/project_budget_amt_analysis.py +++ b/project_report/report/project_budget_amt_analysis.py @@ -24,7 +24,7 @@ class BudgetAmtAnalysis(models.Model): ('fixed_rate', 'Fixed rate'), ('employee_rate', 'Consultant rate') ], string="Pricing", readonly=True) - #employee_id = fields.Many2one('hr.employee', string='Employee', readonly=True) + employee_id = fields.Many2one('hr.employee', string='Consultant', readonly=True) #budgeted_revenue = fields.Float("Budgeted Revenue", digits=(16, 2), readonly=True, group_operator="sum") #actual_revenue = fields.Float("Actual Revenue", digits=(16, 2), readonly=True, group_operator="sum") @@ -33,38 +33,60 @@ class BudgetAmtAnalysis(models.Model): tools.drop_view_if_exists(self._cr, self._table) self._cr.execute(""" CREATE OR REPLACE VIEW %s AS ( - SELECT ROW_NUMBER() OVER() as id, project_id, partner_id, amount_type, pricing_type, project_type, revenue from ( + SELECT ROW_NUMBER() OVER() as id, project_id, partner_id, employee_id, amount_type, pricing_type, project_type, revenue from ( SELECT - row_number() OVER() AS id, PRO.id AS project_id, PRO.create_date AS create_date, PRO.partner_id AS partner_id, + null::int AS employee_id, 'Budgeted Revenue' as amount_type, PRO.pricing_type as pricing_type, PRO.project_type as project_type, PRO.budgeted_revenue AS revenue FROM project_project PRO - LEFT JOIN sale_order SO ON PRO.sale_order_id = SO.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 - WHERE PRO.active = 't' - group by Pro.id, PRO.partner_id, Pro.budgeted_revenue, so.amount_total - union - SELECT - row_number() OVER() AS id, + WHERE PRO.active = 't' and (PRO.pricing_type = 'fixed_rate' OR PRO.project_type = 'hours_no_limit') + union + SELECT PRO.id AS project_id, PRO.create_date AS create_date, PRO.partner_id AS partner_id, + Pro_emp.employee_id AS employee_id, + 'Budgeted Revenue' as amount_type, + PRO.pricing_type as pricing_type, + PRO.project_type as project_type, + Pro_emp.cost AS revenue + FROM project_project PRO + Left JOIN project_sale_line_employee_map Pro_emp ON Pro_emp.project_id = Pro.id + WHERE PRO.active = 't' and PRO.pricing_type = 'employee_rate' and PRO.project_type = 'hours_in_consultant' + union + SELECT + PRO.id AS project_id, + PRO.create_date AS create_date, + PRO.partner_id AS partner_id, + AAL.employee_id AS employee_id, + 'Actual Revenue' as amount_type, + PRO.pricing_type as pricing_type, + PRO.project_type as project_type, + (AAL.amount * -1) AS revenue + FROM project_project PRO + 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 + WHERE PRO.active = 't' and PRO.pricing_type = 'employee_rate' and PRO.project_type = 'hours_in_consultant' + union + SELECT + PRO.id AS project_id, + PRO.create_date AS create_date, + PRO.partner_id AS partner_id, + null::int AS employee_id, 'Actual Revenue' as amount_type, PRO.pricing_type as pricing_type, PRO.project_type as project_type, pro.total_expenses AS revenue FROM project_project PRO - LEFT JOIN sale_order SO ON PRO.sale_order_id = SO.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 WHERE PRO.active = 't' - group by Pro.id, PRO.partner_id, Pro.budgeted_revenue, so.amount_total + group by Pro.id, PRO.partner_id, Pro.budgeted_revenue order by create_date desc, project_id, amount_type desc) as res )""" % (self._table,)) diff --git a/project_report/report/project_budget_amt_analysis_views.xml b/project_report/report/project_budget_amt_analysis_views.xml index 4f1ad1a..1b34c31 100755 --- a/project_report/report/project_budget_amt_analysis_views.xml +++ b/project_report/report/project_budget_amt_analysis_views.xml @@ -40,9 +40,9 @@ - + + - diff --git a/project_report/report/project_budget_hrs_analysis.py b/project_report/report/project_budget_hrs_analysis.py index cc4eb32..f7bf342 100755 --- a/project_report/report/project_budget_hrs_analysis.py +++ b/project_report/report/project_budget_hrs_analysis.py @@ -35,7 +35,7 @@ class BudgetHrsAnalysis(models.Model): PRO.id AS project_id, PRO.create_date AS create_date, PRO.partner_id AS partner_id, - null AS employee_id, + null::int AS employee_id, 'Budgeted Hours' as hours_type, PRO.project_type as project_type, PRO.budgeted_hours AS hours diff --git a/project_report/report/project_budget_hrs_analysis_views.xml b/project_report/report/project_budget_hrs_analysis_views.xml index facf73e..eb27313 100755 --- a/project_report/report/project_budget_hrs_analysis_views.xml +++ b/project_report/report/project_budget_hrs_analysis_views.xml @@ -38,7 +38,7 @@ - +