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 @@ - - -