From 5abc0f89eaaba13cdb053eb978ff5bd817808e76 Mon Sep 17 00:00:00 2001
From: "rch (Open ERP)" <>
Date: Wed, 21 Apr 2010 15:42:25 +0530
Subject: [PATCH] [IMP]: Improve Project Issue, Claim, Lead, Fundraising,
Oppertunities, Phonecall SQL report views.
bzr revid: rch_open_erp-20100421101225-1c3d5st9lrpv9y91
---
addons/crm/report/crm_claim_report.py | 8 +--
addons/crm/report/crm_claim_report_view.xml | 28 +++++++----
addons/crm/report/crm_fundraising_report.py | 15 +++---
.../report/crm_fundraising_report_view.xml | 33 +++++++------
addons/crm/report/crm_lead_report.py | 7 ++-
addons/crm/report/crm_lead_report_view.xml | 26 ++++++----
addons/crm/report/crm_opportunity_report.py | 11 +++--
.../report/crm_opportunity_report_view.xml | 30 +++++++-----
addons/crm/report/crm_phonecall_report.py | 7 ++-
.../crm/report/crm_phonecall_report_view.xml | 27 +++++-----
addons/crm/report/crm_report.py | 9 +++-
addons/crm/report/crm_report_view.xml | 49 +++++++++++++------
.../report/project_issue_report.py | 4 +-
.../report/project_issue_report_view.xml | 47 ++----------------
14 files changed, 169 insertions(+), 132 deletions(-)
diff --git a/addons/crm/report/crm_claim_report.py b/addons/crm/report/crm_claim_report.py
index 03e439d889e..5352bf0b36e 100644
--- a/addons/crm/report/crm_claim_report.py
+++ b/addons/crm/report/crm_claim_report.py
@@ -32,7 +32,7 @@ class crm_claim_report(osv.osv):
_description = "CRM Claim Report"
_columns = {
- 'delay_close': fields.char('Delay to close', size=20, readonly=True),
+ 'delay_close': fields.float('Delay to close', digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"),
'stage_id': fields.many2one ('crm.case.stage', 'Stage', \
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.claim')]", readonly=True),
@@ -56,6 +56,7 @@ class crm_claim_report(osv.osv):
min(c.id) as id,
to_char(c.create_date, 'YYYY') as name,
to_char(c.create_date, 'MM') as month,
+ to_char(c.create_date, 'YYYY-MM-DD') as day,
c.state,
c.user_id,
c.stage_id,
@@ -67,12 +68,13 @@ class crm_claim_report(osv.osv):
0 as avg_answers,
0.0 as perc_done,
0.0 as perc_cancel,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ date_trunc('day',c.create_date) as create_date,
+ avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close
from
crm_claim c
group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), \
c.state, c.user_id,c.section_id, c.stage_id,\
- c.categ_id,c.partner_id,c.company_id
+ c.categ_id,c.partner_id,c.company_id,c.create_date,to_char(c.create_date, 'YYYY-MM-DD')
)""")
crm_claim_report()
diff --git a/addons/crm/report/crm_claim_report_view.xml b/addons/crm/report/crm_claim_report_view.xml
index cf3fb8f7a57..19efd09e1e3 100644
--- a/addons/crm/report/crm_claim_report_view.xml
+++ b/addons/crm/report/crm_claim_report_view.xml
@@ -10,15 +10,16 @@
tree
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -66,12 +67,19 @@
search
+
+
+
+
+
+
+
@@ -82,7 +90,7 @@
crm.claim.report
form
tree,graph
- {"search_default_User":1,"search_default_This Year":1,"search_default_This Month":1}
+ {"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}
diff --git a/addons/crm/report/crm_fundraising_report.py b/addons/crm/report/crm_fundraising_report.py
index d0ff60a4055..af867ea0008 100644
--- a/addons/crm/report/crm_fundraising_report.py
+++ b/addons/crm/report/crm_fundraising_report.py
@@ -35,10 +35,10 @@ class crm_fundraising_report(osv.osv):
'categ_id': fields.many2one('crm.case.categ', 'Category', \
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.fundraising')]"),
- 'probability': fields.float('Avg. Probability', readonly=True),
- 'amount_revenue': fields.float('Est.Revenue', readonly=True),
- 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True),
- 'delay_close': fields.char('Delay to close', size=20, readonly=True),
+ 'probability': fields.float('Avg. Probability',digits=(16,2),readonly=True, group_operator="avg"),
+ 'amount_revenue': fields.float('Est.Revenue',readonly=True,digits=(16,2)),
+ 'amount_revenue_prob': fields.float('Est. Rev*Prob.',digits=(16,2),readonly=True),
+ 'delay_close': fields.float('Delay to close', digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"),
'partner_id': fields.many2one('res.partner', 'Partner'),
'company_id': fields.many2one('res.company', 'Company'),
}
@@ -56,6 +56,7 @@ class crm_fundraising_report(osv.osv):
min(c.id) as id,
to_char(c.create_date, 'YYYY') as name,
to_char(c.create_date, 'MM') as month,
+ to_char(c.create_date, 'YYYY-MM-DD') as day,
c.state,
c.user_id,
c.section_id,
@@ -66,14 +67,16 @@ class crm_fundraising_report(osv.osv):
0 as avg_answers,
0.0 as perc_done,
0.0 as perc_cancel,
+ date_trunc('day',c.create_date) as create_date,
sum(planned_revenue) as amount_revenue,
sum(planned_revenue*probability)::decimal(16,2) as amount_revenue_prob,
avg(probability)::decimal(16,2) as probability,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close
from
crm_fundraising c
group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),\
- c.state, c.user_id,c.section_id,c.categ_id,c.partner_id,c.company_id
+ c.state, c.user_id,c.section_id,c.categ_id,c.partner_id,c.company_id,
+ c.create_date,to_char(c.create_date, 'YYYY-MM-DD')
)""")
crm_fundraising_report()
diff --git a/addons/crm/report/crm_fundraising_report_view.xml b/addons/crm/report/crm_fundraising_report_view.xml
index 4b017f9add5..28f0acb40cc 100644
--- a/addons/crm/report/crm_fundraising_report_view.xml
+++ b/addons/crm/report/crm_fundraising_report_view.xml
@@ -10,19 +10,20 @@
tree
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -67,8 +68,12 @@
search
-
-
+
+
+
+
+
+
@@ -79,7 +84,7 @@
crm.fundraising.report
form
tree,graph
- {"search_default_User":1,"search_default_This Year":1,"search_default_This Month":1}
+ {"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}
diff --git a/addons/crm/report/crm_lead_report.py b/addons/crm/report/crm_lead_report.py
index 806b3f14367..d400700c0b5 100644
--- a/addons/crm/report/crm_lead_report.py
+++ b/addons/crm/report/crm_lead_report.py
@@ -38,7 +38,7 @@ class crm_lead_report(osv.osv):
_description = "CRM Lead Report"
_columns = {
- 'delay_close': fields.char('Delay to close', size=20, readonly=True),
+ 'delay_close': fields.float('Delay to close',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"),
'categ_id': fields.many2one('crm.case.categ', 'Category',\
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.lead')]" , readonly=True),
@@ -62,6 +62,7 @@ class crm_lead_report(osv.osv):
min(c.id) as id,
to_char(c.create_date, 'YYYY') as name,
to_char(c.create_date, 'MM') as month,
+ to_char(c.create_date, 'YYYY-MM-DD') as day,
c.state as state,
c.user_id,
c.stage_id,
@@ -73,11 +74,13 @@ class crm_lead_report(osv.osv):
0 as avg_answers,
0.0 as perc_done,
0.0 as perc_cancel,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ date_trunc('day',c.create_date) as create_date,
+ avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close
from
crm_lead c
group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),\
c.state, c.user_id,c.section_id,c.stage_id,categ_id,c.partner_id,c.company_id
+ ,c.create_date,to_char(c.create_date, 'YYYY-MM-DD')
)""")
crm_lead_report()
diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml
index da2408d5c2a..614fb84ff4d 100644
--- a/addons/crm/report/crm_lead_report_view.xml
+++ b/addons/crm/report/crm_lead_report_view.xml
@@ -10,14 +10,15 @@
tree
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -63,12 +64,19 @@
search
+
+
+
+
+
+
+
@@ -78,7 +86,7 @@
Leads
crm.lead.report
form
- {"search_default_User":1,"search_default_This Year":1,"search_default_This Month":1}
+ {"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}
tree,graph
diff --git a/addons/crm/report/crm_opportunity_report.py b/addons/crm/report/crm_opportunity_report.py
index a7a304820b0..a3af4be8b7c 100644
--- a/addons/crm/report/crm_opportunity_report.py
+++ b/addons/crm/report/crm_opportunity_report.py
@@ -40,7 +40,7 @@ class crm_opportunity_report(osv.osv):
'probability': fields.float('Avg. Probability', readonly=True,group_operator='avg'),
'amount_revenue': fields.float('Est.Revenue', readonly=True),
'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True),
- 'delay_close': fields.char('Delay to close', size=20, readonly=True),
+ 'delay_close': fields.float('Delay to close',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"),
'categ_id': fields.many2one('crm.case.categ', 'Category',\
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.opportunity')]", readonly=True),
@@ -64,6 +64,7 @@ class crm_opportunity_report(osv.osv):
min(c.id) as id,
to_char(c.create_date, 'YYYY') as name,
to_char(c.create_date, 'MM') as month,
+ to_char(c.create_date, 'YYYY-MM-DD') as day,
c.state as state,
c.user_id,
c.section_id,
@@ -75,21 +76,25 @@ class crm_opportunity_report(osv.osv):
0 as avg_answers,
0.0 as perc_done,
0.0 as perc_cancel,
+ date_trunc('day',c.create_date) as create_date,
sum(planned_revenue) as amount_revenue,
sum((planned_revenue*probability)/100.0)::decimal(16,2) as amount_revenue_prob,
avg(probability)::decimal(16,2) as probability,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close
from
crm_opportunity c
group by
to_char(c.create_date, 'YYYY'),
to_char(c.create_date, 'MM'),
+ to_char(c.create_date, 'YYYY-MM-DD'),
c.state,
c.user_id,
c.section_id,
c.stage_id,
c.categ_id,
- c.partner_id,company_id
+ c.partner_id,
+ company_id,
+ create_date
)""")
crm_opportunity_report()
diff --git a/addons/crm/report/crm_opportunity_report_view.xml b/addons/crm/report/crm_opportunity_report_view.xml
index 0d9167612a3..05c5d23d656 100644
--- a/addons/crm/report/crm_opportunity_report_view.xml
+++ b/addons/crm/report/crm_opportunity_report_view.xml
@@ -10,20 +10,21 @@
tree
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
@@ -69,6 +70,12 @@
search
+
+
+
+
+
+
@@ -78,6 +85,7 @@
+
@@ -88,7 +96,7 @@
crm.opportunity.report
form
tree,graph
- {"search_default_User":1,"search_default_This Year":1,"search_default_This Month":1}
+ {"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}
diff --git a/addons/crm/report/crm_phonecall_report.py b/addons/crm/report/crm_phonecall_report.py
index a72bfbd9c1f..40b34779aba 100644
--- a/addons/crm/report/crm_phonecall_report.py
+++ b/addons/crm/report/crm_phonecall_report.py
@@ -31,7 +31,7 @@ class crm_phonecall_report(osv.osv):
_inherit = "crm.case.report"
_columns = {
- 'delay_close': fields.char('Delay to close', size=20, readonly=True),
+ 'delay_close': fields.float('Delay to close', digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"),
'categ_id': fields.many2one('crm.case.categ', 'Category', \
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.phonecall')]"),
@@ -52,6 +52,7 @@ class crm_phonecall_report(osv.osv):
min(c.id) as id,
to_char(c.create_date, 'YYYY') as name,
to_char(c.create_date, 'MM') as month,
+ to_char(c.create_date, 'YYYY-MM-DD') as day,
c.state,
c.user_id,
c.section_id,
@@ -62,11 +63,13 @@ class crm_phonecall_report(osv.osv):
0 as avg_answers,
0.0 as perc_done,
0.0 as perc_cancel,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+ date_trunc('day',c.create_date) as create_date,
+ avg(extract('epoch' from (c.date_closed-c.create_date)))/(3600*24) as delay_close
from
crm_phonecall c
group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),\
c.state, c.user_id,c.section_id, c.categ_id,c.partner_id,c.company_id
+ ,to_char(c.create_date, 'YYYY-MM-DD'),c.create_date
)""")
crm_phonecall_report()
diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml
index a33a10a0a42..b9a6f0029f6 100644
--- a/addons/crm/report/crm_phonecall_report_view.xml
+++ b/addons/crm/report/crm_phonecall_report_view.xml
@@ -10,16 +10,17 @@
tree
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -64,8 +65,12 @@
search
-
-
+
+
+
+
+
+
@@ -76,7 +81,7 @@
crm.phonecall.report
form
tree,graph
- {"search_default_User":1,"search_default_This Year":1,"search_default_This Month":1}
+ {"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}
diff --git a/addons/crm/report/crm_report.py b/addons/crm/report/crm_report.py
index dd11e7dab89..21248f4bef4 100644
--- a/addons/crm/report/crm_report.py
+++ b/addons/crm/report/crm_report.py
@@ -89,6 +89,8 @@ class crm_case_report(osv.osv):
('09', 'September'), ('10', 'October'),\
('11', 'November'), ('12', 'December')], 'Month', readonly=True),
'company_id': fields.many2one('res.company', 'Company', readonly=True),
+ 'create_date': fields.datetime('Create Date', readonly=True),
+ 'day': fields.char('Day', size=128, readonly=True)
}
_order = 'name desc, user_id'
@@ -104,15 +106,18 @@ class crm_case_report(osv.osv):
min(c.id) as id,
to_char(c.create_date, 'YYYY') as name,
to_char(c.create_date, 'MM') as month,
+ to_char(c.create_date, 'YYYY-MM-DD') as day,
c.state,
c.user_id,
c.section_id,
c.company_id,
- count(*) as nbr
+ count(*) as nbr,
+ c.create_date as create_date
from
crm_case c
- group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),\
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),
c.state, c.user_id,c.section_id,c.company_id
+ ,c.create_date,to_char(c.create_date, 'YYYY-MM-DD')
)""")
crm_case_report()
diff --git a/addons/crm/report/crm_report_view.xml b/addons/crm/report/crm_report_view.xml
index 83a7187dbba..97fa4feb6f1 100644
--- a/addons/crm/report/crm_report_view.xml
+++ b/addons/crm/report/crm_report_view.xml
@@ -63,21 +63,29 @@
-
+
+
-
+
+
+
+
-
-
-
-
-
+
+
+
-
+
-
+
+
+
+
+
+
+
@@ -123,6 +141,9 @@
domain="[]" context="{'group_by':'categ_id'}" />
+
+
diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py
index 5a3b9b2c8ea..ebcafa68a57 100644
--- a/addons/project_issue/report/project_issue_report.py
+++ b/addons/project_issue/report/project_issue_report.py
@@ -17,12 +17,10 @@ class project_issue_report(osv.osv):
'project_id':fields.many2one('project.project', 'Project',readonly=True),
'type_id': fields.many2one('crm.case.resource.type', 'Type', domain="[('object_id.model', '=', 'project.issue')]"),
'date_closed': fields.datetime('Close Date', readonly=True),
- 'create_date': fields.datetime('Create Date', readonly=True),
'assigned_to' : fields.many2one('res.users', 'Assigned to',readonly=True),
'partner_id': fields.many2one('res.partner','Partner',domain="[('object_id.model', '=', 'project.issue')]"),
'canal_id': fields.many2one('res.partner.canal', 'Channel',readonly=True),
- 'task_id': fields.many2one('project.task', 'Task',domain="[('object_id.model', '=', 'project.issue')]" ),
- 'day': fields.char('Day', size=128, readonly=True)
+ 'task_id': fields.many2one('project.task', 'Task',domain="[('object_id.model', '=', 'project.issue')]" )
}
def init(self, cr):
tools.drop_view_if_exists(cr, 'project_issue_report')
diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml
index fe47a1c9ad7..228d6bfde00 100644
--- a/addons/project_issue/report/project_issue_report_view.xml
+++ b/addons/project_issue/report/project_issue_report_view.xml
@@ -15,7 +15,7 @@
-
+
@@ -50,51 +50,19 @@
search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
+
-
+
@@ -104,12 +72,10 @@
-
+
-
-
@@ -126,9 +92,6 @@
-
-
-