added project manager, role, end date, tagname, modifed profit amount and add optional attributes to tree view
This commit is contained in:
parent
f99905412d
commit
5d5eca3800
|
@ -10,10 +10,11 @@ class ProjectRevenueCustomReport3(models.Model):
|
|||
#_order = 'project_id'
|
||||
_auto = False
|
||||
|
||||
start_date = fields.Date(string='Start Date', readonly=True)
|
||||
start_date = fields.Date(related="project_id.date_start", string='Start Date', readonly=True)
|
||||
#start_datetime = fields.Datetime(string='Start Datetime111111111', readonly=True)
|
||||
#end_date = fields.Date(string='End Date', readonly=True)
|
||||
end_date = fields.Date(related="project_id.date", string='End Date', readonly=True)
|
||||
project_id = fields.Many2one('project.project', string='Project', readonly=True)
|
||||
project_manager = fields.Many2one('res.users', string='Project Manager', readonly=True)
|
||||
parent_project = fields.Many2one('project.project', string='Parent Project', readonly=True)
|
||||
partner_id = fields.Many2one('res.partner', string='Client', readonly=True)
|
||||
timesheet_id = fields.Integer(string='Timesheet ID', readonly=True)
|
||||
|
@ -60,6 +61,7 @@ with pro_data as (
|
|||
PRO.project_type,
|
||||
PRO.pricing_type,
|
||||
PRO.is_sub_project,
|
||||
PRO.user_id as project_manager,
|
||||
(select project_id from project_subproject_rel as par where pro.id=par.id limit 1) as parent_project,
|
||||
--(select PRO.id from project_subproject_rel as PAR where PRO.id=PAR.project_id limit 1) as parent_project,
|
||||
STRING_AGG(distinct tag_master.name, ', ') as tag_name,
|
||||
|
@ -82,6 +84,7 @@ sub_pro_data as (
|
|||
PRO.project_type,
|
||||
PRO.pricing_type,
|
||||
PRO.is_sub_project,
|
||||
PRO.user_id as project_manager,
|
||||
PRO.id as sub_project,
|
||||
(select project_id from project_subproject_rel as par where pro.id=par.id limit 1) as parent_project,
|
||||
--(select PRO.id from project_subproject_rel as PAR where PRO.id=PAR.project_id limit 1) as parent_project,
|
||||
|
@ -112,7 +115,7 @@ cons_data1 as (
|
|||
PRO_EMP.employee_price as cons_timesheet_cost,
|
||||
PRO_EMP.price_unit as cons_hourly_cost
|
||||
FROM project_sale_line_employee_map PRO_EMP
|
||||
group by start_date, end_date, project_id, employee_id, role, budgeted_revenue, budgeted_hours, cons_timesheet_cost, cons_hourly_cost
|
||||
group by start_date, end_date, project_id, employee_id, PRO_EMP.id, role, budgeted_revenue, budgeted_hours, cons_timesheet_cost, cons_hourly_cost
|
||||
),
|
||||
tsheet_data1 as (
|
||||
SELECT
|
||||
|
@ -141,13 +144,15 @@ invoice_date as (
|
|||
data1 as (
|
||||
SELECT
|
||||
TO_CHAR(start_datetime, 'YYYY-MM-01')::date as start_date,
|
||||
TO_CHAR(end_datetime, 'YYYY-MM-01')::date as end_date,
|
||||
pro_data.pproject_id as project_id,
|
||||
pro_data.project_active,
|
||||
pro_data.project_type,
|
||||
pro_data.pricing_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
AAL.sub_project,
|
||||
null::char as role,
|
||||
COALESCE(cons_data1.role, 'Employee') as role,
|
||||
pro_data.tag_name,
|
||||
pro_data.partner_id,
|
||||
AAL.employee_id,
|
||||
|
@ -166,7 +171,11 @@ data1 as (
|
|||
(0.0 - (sum(AAL.amount) * -1)) AS profit_amt,
|
||||
0.0 AS profit_per
|
||||
FROM pro_data
|
||||
right join account_analytic_line AAL on AAL.project_id=pro_data.pproject_id
|
||||
right join account_analytic_line AAL on AAL.project_id=pro_data.pproject_id
|
||||
LEFT JOIN cons_data1 ON cons_data1.project_id = AAL.project_id
|
||||
|
||||
AND cons_data1.employee_id = AAL.employee_id
|
||||
|
||||
where pro_data.pricing_type = 'fixed_rate'
|
||||
and AAL.sub_project is null
|
||||
and COALESCE(pro_data.is_sub_project, FALSE) = False
|
||||
|
@ -176,7 +185,9 @@ data1 as (
|
|||
pro_data.project_type,
|
||||
pro_data.pricing_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
AAL.sub_project,
|
||||
cons_data1.role,
|
||||
pro_data.tag_name,
|
||||
pro_data.partner_id,
|
||||
AAL.employee_id,
|
||||
|
@ -186,13 +197,15 @@ data1 as (
|
|||
data1_sub as (
|
||||
SELECT
|
||||
TO_CHAR(start_datetime, 'YYYY-MM-01')::date as start_date,
|
||||
TO_CHAR(end_datetime, 'YYYY-MM-01')::date as end_date,
|
||||
sub_pro_data.parent_project as project_id,
|
||||
sub_pro_data.project_active,
|
||||
sub_pro_data.project_type,
|
||||
sub_pro_data.pricing_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
AAL.sub_project,
|
||||
null::char as role,
|
||||
COALESCE(cons_data1.role, 'Employee') as role,
|
||||
sub_pro_data.tag_name,
|
||||
sub_pro_data.partner_id,
|
||||
AAL.employee_id,
|
||||
|
@ -211,7 +224,10 @@ data1_sub as (
|
|||
(0.0 - (sum(AAL.amount) * -1)) AS profit_amt,
|
||||
0.0 AS profit_per
|
||||
FROM sub_pro_data
|
||||
right join account_analytic_line AAL on AAL.sub_project=sub_pro_data.sub_project
|
||||
right join account_analytic_line AAL on AAL.sub_project=sub_pro_data.sub_project
|
||||
LEFT JOIN cons_data1 ON cons_data1.project_id = AAL.project_id
|
||||
|
||||
AND cons_data1.employee_id = AAL.employee_id
|
||||
where sub_pro_data.pricing_type = 'fixed_rate'
|
||||
and AAL.sub_project is not null
|
||||
and sub_pro_data.is_sub_project = TRUE
|
||||
|
@ -221,7 +237,9 @@ data1_sub as (
|
|||
sub_pro_data.project_type,
|
||||
sub_pro_data.pricing_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
AAL.sub_project,
|
||||
cons_data1.role,
|
||||
sub_pro_data.tag_name,
|
||||
sub_pro_data.partner_id,
|
||||
AAL.employee_id,
|
||||
|
@ -231,11 +249,13 @@ data1_sub as (
|
|||
data2 as (
|
||||
SELECT
|
||||
null::date as start_date,
|
||||
null::date as end_date,
|
||||
pro_data.pproject_id as project_id,
|
||||
pro_data.project_active,
|
||||
pro_data.project_type,
|
||||
pro_data.pricing_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
null::int as sub_project,
|
||||
null::char as role,
|
||||
pro_data.tag_name,
|
||||
|
@ -265,6 +285,7 @@ data2 as (
|
|||
pro_data.project_type,
|
||||
pro_data.pricing_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
sub_project,
|
||||
pro_data.tag_name,
|
||||
pro_data.partner_id,
|
||||
|
@ -274,11 +295,13 @@ data2 as (
|
|||
UNION
|
||||
SELECT
|
||||
TO_CHAR(AAL.start_datetime, 'YYYY-MM-01')::date as start_date,
|
||||
TO_CHAR(AAL.end_datetime, 'YYYY-MM-01')::date as end_date,
|
||||
pro_data.pproject_id as project_id,
|
||||
pro_data.project_active,
|
||||
pro_data.project_type,
|
||||
pro_data.pricing_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
AAL.sub_project,
|
||||
null::char as role,
|
||||
pro_data.tag_name,
|
||||
|
@ -311,6 +334,7 @@ SELECT
|
|||
pro_data.project_type,
|
||||
pro_data.pricing_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
AAL.sub_project,
|
||||
pro_data.tag_name,
|
||||
pro_data.partner_id,
|
||||
|
@ -326,11 +350,13 @@ SELECT
|
|||
data2_sub_project as (
|
||||
SELECT
|
||||
null::date as start_date,
|
||||
null::date as end_date,
|
||||
sub_pro_data.parent_project as project_id,
|
||||
sub_pro_data.project_active,
|
||||
sub_pro_data.project_type,
|
||||
sub_pro_data.pricing_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
sub_pro_data.sub_project,
|
||||
null::char as role,
|
||||
sub_pro_data.tag_name,
|
||||
|
@ -360,6 +386,7 @@ data2_sub_project as (
|
|||
sub_pro_data.project_type,
|
||||
sub_pro_data.pricing_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
sub_pro_data.sub_project,
|
||||
sub_pro_data.tag_name,
|
||||
sub_pro_data.partner_id,
|
||||
|
@ -369,11 +396,13 @@ data2_sub_project as (
|
|||
UNION
|
||||
SELECT
|
||||
TO_CHAR(start_datetime, 'YYYY-MM-01')::date as start_date,
|
||||
TO_CHAR(end_datetime, 'YYYY-MM-01')::date as end_date,
|
||||
sub_pro_data.pproject_id as project_id,
|
||||
sub_pro_data.project_active,
|
||||
sub_pro_data.project_type,
|
||||
sub_pro_data.pricing_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
AAL.sub_project,
|
||||
null::char as role,
|
||||
sub_pro_data.tag_name,
|
||||
|
@ -406,6 +435,7 @@ SELECT
|
|||
sub_pro_data.project_type,
|
||||
sub_pro_data.pricing_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
AAL.sub_project,
|
||||
sub_pro_data.tag_name,
|
||||
sub_pro_data.partner_id,
|
||||
|
@ -421,11 +451,13 @@ SELECT
|
|||
data3 as (
|
||||
SELECT
|
||||
null::date as start_date,
|
||||
null::date as end_date,
|
||||
pro_data.pproject_id as project_id,
|
||||
pro_data.project_active,
|
||||
pro_data.project_type,
|
||||
pro_data.pricing_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
null::int as sub_project,
|
||||
null::char as role,
|
||||
pro_data.tag_name,
|
||||
|
@ -456,6 +488,7 @@ SELECT
|
|||
pro_data.project_active,
|
||||
pro_data.project_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
pro_data.budgeted_revenue,
|
||||
pro_data.tag_name,
|
||||
pro_data.pricing_type,
|
||||
|
@ -465,11 +498,13 @@ SELECT
|
|||
UNION
|
||||
SELECT
|
||||
null::date as start_date,
|
||||
null::date as end_date,
|
||||
cons_data1.project_id,
|
||||
pro_data.project_active,
|
||||
pro_data.project_type,
|
||||
pro_data.pricing_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
null::int as sub_project,
|
||||
cons_data1.role,
|
||||
pro_data.tag_name,
|
||||
|
@ -500,6 +535,7 @@ SELECT
|
|||
pro_data.project_active,
|
||||
pro_data.project_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
cons_data1.role,
|
||||
pro_data.tag_name,
|
||||
pro_data.pricing_type,
|
||||
|
@ -507,11 +543,13 @@ SELECT
|
|||
UNION
|
||||
SELECT
|
||||
TO_CHAR(start_datetime, 'YYYY-MM-01')::date as start_date,
|
||||
TO_CHAR(end_datetime, 'YYYY-MM-01')::date as end_date,
|
||||
pro_data.pproject_id as project_id,
|
||||
pro_data.project_active,
|
||||
pro_data.project_type,
|
||||
pro_data.pricing_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
AAL.sub_project,
|
||||
cons_data1.role,
|
||||
pro_data.tag_name,
|
||||
|
@ -555,6 +593,7 @@ SELECT
|
|||
pro_data.project_active,
|
||||
pro_data.project_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
AAL.sub_project,
|
||||
cons_data1.role,
|
||||
pro_data.tag_name,
|
||||
|
@ -568,12 +607,14 @@ SELECT
|
|||
data3_sub_project as (
|
||||
SELECT
|
||||
null::date as start_date,
|
||||
null::date as end_date,
|
||||
--sub_pro_data.parent_project as project_id,
|
||||
sub_pro_data.pproject_id as project_id,
|
||||
sub_pro_data.project_active,
|
||||
sub_pro_data.project_type,
|
||||
sub_pro_data.pricing_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
sub_pro_data.sub_project,
|
||||
null::char as role,
|
||||
sub_pro_data.tag_name,
|
||||
|
@ -602,6 +643,7 @@ SELECT
|
|||
sub_pro_data.project_active,
|
||||
sub_pro_data.project_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
sub_pro_data.sub_project,
|
||||
sub_pro_data.budgeted_revenue,
|
||||
sub_pro_data.tag_name,
|
||||
|
@ -612,11 +654,13 @@ SELECT
|
|||
UNION
|
||||
SELECT
|
||||
null::date as start_date,
|
||||
null::date as end_date,
|
||||
sub_pro_data.pproject_id as project_id,
|
||||
sub_pro_data.project_active,
|
||||
sub_pro_data.project_type,
|
||||
sub_pro_data.pricing_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
sub_pro_data.sub_project,
|
||||
cons_data1.role,
|
||||
sub_pro_data.tag_name,
|
||||
|
@ -647,6 +691,7 @@ SELECT
|
|||
sub_pro_data.project_active,
|
||||
sub_pro_data.project_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
sub_pro_data.sub_project,
|
||||
cons_data1.role,
|
||||
sub_pro_data.tag_name,
|
||||
|
@ -655,11 +700,13 @@ SELECT
|
|||
UNION
|
||||
SELECT
|
||||
TO_CHAR(start_datetime, 'YYYY-MM-01')::date as start_date,
|
||||
TO_CHAR(end_datetime, 'YYYY-MM-01')::date as end_date,
|
||||
sub_pro_data.pproject_id as project_id,
|
||||
sub_pro_data.project_active,
|
||||
sub_pro_data.project_type,
|
||||
sub_pro_data.pricing_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
sub_pro_data.sub_project,
|
||||
cons_data1.role,
|
||||
sub_pro_data.tag_name,
|
||||
|
@ -703,6 +750,7 @@ SELECT
|
|||
sub_pro_data.project_active,
|
||||
sub_pro_data.project_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
sub_pro_data.sub_project,
|
||||
cons_data1.role,
|
||||
sub_pro_data.tag_name,
|
||||
|
@ -715,11 +763,13 @@ SELECT
|
|||
),
|
||||
invoice_data as (SELECT
|
||||
invoice_date.date as start_date,
|
||||
invoice_date.date as end_date,
|
||||
invoice_date.project_id,
|
||||
pro_data.project_active,
|
||||
pro_data.project_type,
|
||||
pro_data.pricing_type,
|
||||
pro_data.parent_project,
|
||||
pro_data.project_manager,
|
||||
null::int as sub_project,
|
||||
null::char as role,
|
||||
pro_data.tag_name,
|
||||
|
@ -737,7 +787,7 @@ invoice_data as (SELECT
|
|||
invoice_date.fixed_amount as actual_revenue,
|
||||
0 as actual_cost,
|
||||
0.0 AS expenses_amt,
|
||||
0.0 AS profit_amt,
|
||||
invoice_date.fixed_amount AS profit_amt,
|
||||
0.0 AS profit_per
|
||||
from invoice_date
|
||||
left join pro_data on pro_data.pproject_id = invoice_date.project_id --and pro_data.employee_id = invoice_date.employee_id
|
||||
|
@ -745,11 +795,13 @@ invoice_data as (SELECT
|
|||
),
|
||||
invoice_data_sub as (SELECT
|
||||
invoice_date.date as start_date,
|
||||
invoice_date.date as end_date,
|
||||
sub_pro_data.parent_project as project_id,
|
||||
sub_pro_data.project_active,
|
||||
sub_pro_data.project_type,
|
||||
sub_pro_data.pricing_type,
|
||||
sub_pro_data.parent_project,
|
||||
sub_pro_data.project_manager,
|
||||
sub_pro_data.sub_project,
|
||||
null::char as role,
|
||||
sub_pro_data.tag_name,
|
||||
|
@ -767,7 +819,7 @@ invoice_data_sub as (SELECT
|
|||
invoice_date.fixed_amount as actual_revenue,
|
||||
0 as actual_cost,
|
||||
0.0 AS expenses_amt,
|
||||
0.0 AS profit_amt,
|
||||
invoice_date.fixed_amount AS profit_amt,
|
||||
0.0 AS profit_per
|
||||
from invoice_date
|
||||
left join sub_pro_data on sub_pro_data.sub_project = invoice_date.project_id
|
||||
|
@ -793,7 +845,9 @@ select * from invoice_data_sub
|
|||
select
|
||||
ROW_NUMBER() OVER() as id,
|
||||
start_date,
|
||||
end_date,
|
||||
project_id,
|
||||
project_manager,
|
||||
project_active,
|
||||
project_type,
|
||||
pricing_type,
|
||||
|
@ -820,7 +874,9 @@ select
|
|||
from res
|
||||
group by
|
||||
start_date,
|
||||
end_date,
|
||||
project_id,
|
||||
project_manager,
|
||||
project_active,
|
||||
project_type,
|
||||
pricing_type,
|
||||
|
|
|
@ -41,22 +41,27 @@
|
|||
<field name="model">project.revenue.custom.report3</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Revenue Analysis" create="false" edit="false" delete="false">
|
||||
<field name="project_id"/>
|
||||
<field name="parent_project"/>
|
||||
<field name="sub_project"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="overall_budgeted_revenue"/>
|
||||
<field name="budgeted_revenue"/>
|
||||
<field name="actual_revenue"/>
|
||||
<field name="actual_cost"/>
|
||||
<field name="budgeted_hours"/>
|
||||
<field name="pro_hourly_rate"/>
|
||||
<field name="profit_amt"/>
|
||||
<field name="profit_per"/>
|
||||
<field name="unit_amount" widget="float_time"/>
|
||||
<field name="timesheet_cost"/>
|
||||
<field name="start_date"/>
|
||||
<field name="timesheet_sdatetime"/>
|
||||
<field name="project_id" optional="show"/>
|
||||
<field name="partner_id" optional="show"/>
|
||||
<field name="project_manager" optional="show"/>
|
||||
<field name="tag_name" optional="show"/>
|
||||
<field name="parent_project" optional="show"/>
|
||||
<field name="sub_project" optional="show"/>
|
||||
<field name="employee_id" optional="show"/>
|
||||
<field name="role" optional="show"/>
|
||||
<field name="overall_budgeted_revenue" optional="show"/>
|
||||
<field name="budgeted_revenue" optional="show"/>
|
||||
<field name="actual_revenue" optional="show"/>
|
||||
<field name="actual_cost" optional="show"/>
|
||||
<field name="budgeted_hours" optional="show"/>
|
||||
<field name="pro_hourly_rate" optional="show"/>
|
||||
<field name="profit_amt" optional="show" sum="Total Of Profit Amount"/>
|
||||
<field name="profit_per" optional="show"/>
|
||||
<field name="unit_amount" widget="float_time" optional="show"/>
|
||||
<field name="timesheet_cost" optional="show"/>
|
||||
<field name="start_date" optional="show"/>
|
||||
<field name="end_date" optional="show"/>
|
||||
<field name="timesheet_sdatetime" optional="show"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
Loading…
Reference in New Issue