diff options
| author | Harry (Open ERP) <hmo@tinyerp.com> | 2010-03-03 12:45:21 +0530 |
|---|---|---|
| committer | Harry (Open ERP) <hmo@tinyerp.com> | 2010-03-03 12:45:21 +0530 |
| commit | cf22b4673600a4770a22ff8b4bce9861732ed1a1 (patch) | |
| tree | d8c498b4a270f301a7a0cdec66f2dca61e71dc14 | |
| parent | 6fddf816d290d8a93139d2333b1b63e537bc2060 (diff) | |
| parent | 2794713f314a0e07593e70cc9bddeba3654dff53 (diff) | |
[MERGE]
bzr revid: hmo@tinyerp.com-20100303071521-2j3rlqv1cu4kaf1b
| -rw-r--r-- | addons/report_crm/__terp__.py | 2 | ||||
| -rw-r--r-- | addons/report_crm/report_crm_claim.py | 215 | ||||
| -rw-r--r-- | addons/report_crm/report_crm_claim_view.xml | 411 | ||||
| -rw-r--r-- | addons/report_crm/report_crm_lead.py | 260 | ||||
| -rw-r--r-- | addons/report_crm/report_crm_lead_view.xml | 487 | ||||
| -rw-r--r-- | addons/report_crm/report_crm_opportunity.py | 211 | ||||
| -rw-r--r-- | addons/report_crm/report_crm_opportunity_view.xml | 412 | ||||
| -rw-r--r-- | addons/report_crm/report_crm_view.xml | 14 |
8 files changed, 153 insertions, 1859 deletions
diff --git a/addons/report_crm/__terp__.py b/addons/report_crm/__terp__.py index 9d9dae37390..6e0870fa24e 100644 --- a/addons/report_crm/__terp__.py +++ b/addons/report_crm/__terp__.py @@ -30,7 +30,7 @@ 'website': 'http://www.openerp.com', 'depends': ['crm'], 'init_xml': [], - 'update_xml': ['security/ir.model.access.csv', + 'update_xml': [#'security/ir.model.access.csv', 'report_crm_view.xml', 'report_crm_lead_view.xml', 'report_crm_claim_view.xml', diff --git a/addons/report_crm/report_crm_claim.py b/addons/report_crm/report_crm_claim.py index 2586ad2131e..7501e27ab37 100644 --- a/addons/report_crm/report_crm_claim.py +++ b/addons/report_crm/report_crm_claim.py @@ -1,9 +1,8 @@ from osv import fields,osv import tools -class report_crm_claim_user(osv.osv): - _name = "report.crm.claim.user" - _description = "Claim by user and section" +class report_crm_claim(osv.osv): + _name = "report.crm.claim" _auto = False _inherit = "report.crm.case.user" _columns = { @@ -12,11 +11,13 @@ class report_crm_claim_user(osv.osv): 'amount_costs': fields.float('Est.Cost', readonly=True), 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True), 'delay_close': fields.char('Delay to close', size=20, readonly=True), + 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True), + 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]"), } def init(self, cr): - tools.drop_view_if_exists(cr, 'report_crm_claim_user') + tools.drop_view_if_exists(cr, 'report_crm_claim') cr.execute(""" - create or replace view report_crm_claim_user as ( + create or replace view report_crm_claim as ( select min(c.id) as id, to_char(c.create_date, 'YYYY') as name, @@ -24,43 +25,8 @@ class report_crm_claim_user(osv.osv): c.state, c.user_id, c.section_id, - count(*) as nbr, - sum(planned_revenue) as amount_revenue, - sum(planned_cost) as amount_costs, - 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 - 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 - )""") -report_crm_claim_user() - -class report_crm_claim_categ(osv.osv): - _name = "report.crm.claim.categ" - _description = "Claim by section and category" - _auto = False - _inherit = "report.crm.case.categ" - _columns = { - 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]"), - 'amount_revenue': fields.float('Est.Revenue', readonly=True), - 'amount_costs': fields.float('Est.Cost', readonly=True), - 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True), - 'probability': fields.float('Avg. Probability', readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - - def init(self, cr): - tools.drop_view_if_exists(cr, 'report_crm_claim_categ') - cr.execute(""" - create or replace view report_crm_claim_categ as ( - select - min(c.id) as id, - to_char(c.create_date, 'YYYY') as name, - to_char(c.create_date, 'MM') as month, + c.stage_id, c.categ_id, - c.state, - c.section_id, count(*) as nbr, sum(planned_revenue) as amount_revenue, sum(planned_cost) as amount_costs, @@ -69,169 +35,8 @@ class report_crm_claim_categ(osv.osv): to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close from crm_claim c - group by c.categ_id,to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state,c.section_id + 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 )""") -report_crm_claim_categ() - -class report_crm_claim_section(osv.osv): - _name = "report.crm.claim.section" - _description = "Claim by Section" - _auto = False - _inherit = "report.crm.case.section" - - def _get_data(self, cr, uid, ids, field_name, arg, context={}): - res = {} - state_perc = 0.0 - avg_ans = 0.0 - - for case in self.browse(cr, uid, ids, context): - if field_name != 'avg_answers': - state = field_name[5:] - cr.execute("select count(*) from crm_claim where section_id =%s and state='%s'"%(case.section_id.id,state)) - state_cases = cr.fetchone()[0] - perc_state = (state_cases / float(case.nbr_cases) ) * 100 - - res[case.id] = perc_state - else: - cr.execute('select count(*) from crm_case_log l where l.section_id=%s'%(case.section_id.id)) - logs = cr.fetchone()[0] - - avg_ans = logs / case.nbr_cases - res[case.id] = avg_ans - - return res - - _columns = { - 'avg_answers': fields.function(_get_data,string='Avg. Answers', method=True,type="integer"), - 'perc_done': fields.function(_get_data,string='%Done', method=True,type="float"), - 'perc_cancel': fields.function(_get_data,string='%Cancel', method=True,type="float"), - 'delay_close': fields.char('Delay to close', size=20, readonly=True), - } - _order = 'name desc, section_id' - def init(self, cr): - tools.drop_view_if_exists(cr, 'report_crm_claim_section') - cr.execute(""" - create or replace view report_crm_claim_section as ( - select - min(c.id) as id, - to_char(c.create_date, 'YYYY') as name, - to_char(c.create_date, 'MM') as month, - count(*) as nbr_cases, - c.section_id as section_id, - 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 - from - crm_claim c - group by to_char(c.create_date, 'YYYY'),to_char(c.create_date, 'MM'),c.section_id - )""") -report_crm_claim_section() - -class report_crm_claim_section_type(osv.osv): - _name = "report.crm.claim.section.type" - _inherit = "report.crm.case.section.type" - _description = "Claims by section and type" - _auto = False - _columns = { - 'type_id': fields.many2one('crm.case.resource.type', 'Claim Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True), - 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True), - 'amount_revenue': fields.float('Est.Revenue', readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - _order = 'type_id' - - def init(self, cr): - tools.sql.drop_view_if_exists(cr, "report_crm_claim_section_type") - cr.execute(""" - create view report_crm_claim_section_type as ( - select - min(c.id) as id, - to_char(c.create_date,'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.user_id, - c.state, - c.type_id, - c.stage_id, - c.section_id, - count(*) as nbr, - sum(planned_revenue) as amount_revenue, - to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close - from - crm_claim c - where c.type_id is not null - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.type_id, c.section_id)""") - -report_crm_claim_section_type() - -class report_crm_claim_section_categ_stage(osv.osv): - _name = "report.crm.claim.section.categ.stage" - _inherit = "report.crm.case.section.categ.stage" - _description = "Claims by Section, Category and Stage" - _auto = False - _columns = { - 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True), - 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - _order = 'stage_id, categ_id' - - def init(self, cr): - tools.sql.drop_view_if_exists(cr, "report_crm_claim_section_categ_stage") - cr.execute(""" - create view report_crm_claim_section_categ_stage as ( - select - min(c.id) as id, - to_char(c.create_date,'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.user_id, - c.categ_id, - c.state, - c.stage_id, - c.section_id, - count(*) as nbr, - to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close - from - crm_claim c - where c.categ_id is not null AND c.stage_id is not null - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.state, c.stage_id, c.section_id)""") - -report_crm_claim_section_categ_stage() - -class report_crm_claim_section_categ_type(osv.osv): - _name = "report.crm.claim.section.categ.type" - _inherit = "report.crm.case.section.categ.type" - _description = "Claims by Section, Category and Type" - _auto = False - _columns = { - 'categ_id':fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True), - 'type_id': fields.many2one('crm.case.resource.type', 'Claim Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True), - 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.claim')]", readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - _order = 'categ_id, type_id' - - def init(self, cr): - tools.sql.drop_view_if_exists(cr, "report_crm_claim_section_categ_type") - cr.execute(""" - create view report_crm_claim_section_categ_type as ( - select - min(c.id) as id, - to_char(c.create_date, 'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.user_id, - c.categ_id, - c.type_id, - c.state, - c.stage_id, - c.section_id, - count(*) as nbr, - to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close - from - crm_claim c - where c.categ_id is not null AND c.type_id is not null - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.type_id, c.state, c.stage_id, c.section_id)""") - -report_crm_claim_section_categ_type() +report_crm_claim() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/report_crm/report_crm_claim_view.xml b/addons/report_crm/report_crm_claim_view.xml index 43d57306596..b0553e64f09 100644 --- a/addons/report_crm/report_crm_claim_view.xml +++ b/addons/report_crm/report_crm_claim_view.xml @@ -5,24 +5,27 @@ Claim by user and section --> - <record id="view_crm_claim_user_tree" model="ir.ui.view"> - <field name="name">report.crm.claim.user.tree</field> - <field name="model">report.crm.claim.user</field> - <field name="inherit_id" ref="view_crm_case_user_tree"/> + <record id="view_report_crm_claim_tree" model="ir.ui.view"> + <field name="name">report.crm.claim.tree</field> + <field name="model">report.crm.claim</field> <field name="type">tree</field> <field name="arch" type="xml"> - <field name="nbr" position="after"> + <tree string="Leads"> + <field name="name" /> + <field name="month"/> + <field name="nbr" string="#Claim"/> <field name="delay_close"/> <field name="amount_revenue"/> - <field name="amount_costs"/> <field name="amount_revenue_prob"/> <field name="probability"/> - </field> + <field name="stage_id" invisible="1"/> + <field name="categ_id" invisible="1"/> + </tree> </field> </record> - <record id="view_crm_claim_user_form" model="ir.ui.view"> - <field name="name">report.crm.claim.user.form</field> - <field name="model">report.crm.claim.user</field> + <record id="view_crm_claim_form" model="ir.ui.view"> + <field name="name">report.crm.claim.form</field> + <field name="model">report.crm.claim</field> <field name="inherit_id" ref="view_crm_case_user_form"/> <field name="type">form</field> <field name="arch" type="xml"> @@ -36,12 +39,12 @@ </field> </record> - <record id="view_crm_claim_user_graph" model="ir.ui.view"> - <field name="name">report.crm.claim.user.graph</field> - <field name="model">report.crm.claim.user</field> + <record id="view_crm_claim_graph" model="ir.ui.view"> + <field name="name">report.crm.claim.graph</field> + <field name="model">report.crm.claim</field> <field name="type">graph</field> <field name="arch" type="xml"> - <graph orientation="horizontal" string="Claims by User and Section" type="bar"> + <graph orientation="horizontal" string="Claims" type="bar"> <field name="state"/> <field name="nbr" operator="+"/> <field group="True" name="user_id"/> @@ -49,9 +52,9 @@ </field> </record> - <record id="view_crm_claim_user_filter" model="ir.ui.view"> - <field name="name">report.crm.claim.user.select</field> - <field name="model">report.crm.claim.user</field> + <record id="view_crm_claim_filter" model="ir.ui.view"> + <field name="name">report.crm.claim.select</field> + <field name="model">report.crm.claim</field> <field name="inherit_id" ref="view_crm_case_user_filter"/> <field name="type">search</field> <field name="arch" type="xml"> @@ -60,368 +63,24 @@ </field> </record> - <record id="action_report_crm_claim_user_tree" model="ir.actions.act_window"> - <field name="name">Claim by User and Section</field> - <field name="res_model">report.crm.claim.user</field> + <record id="action_report_crm_claim_tree" model="ir.actions.act_window"> + <field name="name">Claim</field> + <field name="res_model">report.crm.claim</field> <field name="view_type">form</field> <field name="view_mode">graph,tree</field> - <field name="view_id" ref="view_crm_claim_user_graph"/> - <field name="search_view_id" ref="view_crm_claim_user_filter"/> + <field name="view_id" ref="view_crm_claim_graph"/> + <!-- field name="search_view_id" ref="view_crm_claim_filter"/ --> </record> - <menuitem name="Claim" id="menu_crm_claim_tree" parent="crm.next_id_52"/> - <menuitem action="action_report_crm_claim_user_tree" id="menu_crm_claim_user_tree" parent="menu_crm_claim_tree"/> + + <record model="ir.actions.act_window.view" id="action_report_crm_lead_tree1"> + <field name="sequence" eval="2"/> + <field name="view_mode">tree</field> + <field name="view_id" ref="view_report_crm_claim_tree"/> + <field name="act_window_id" ref="action_report_crm_claim_tree"/> + </record> + - <!-- # Claims by section and category of case --> - - <record id="view_crm_claim_categ_tree" model="ir.ui.view"> - <field name="name">report.crm.claim.categ.tree</field> - <field name="model">report.crm.claim.categ</field> - <field name="inherit_id" ref="view_crm_case_categ_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="nbr" position="after"> - <field name="delay_close"/> - <field name="amount_revenue"/> - <field name="amount_costs"/> - <field name="amount_revenue_prob"/> - <field name="probability"/> - </field> - </field> - </record> - <record id="view_crm_claim_categ_form" model="ir.ui.view"> - <field name="name">report.crm.claim.categ.form</field> - <field name="model">report.crm.claim.categ</field> - <field name="inherit_id" ref="view_crm_case_categ_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="nbr" position="after"> - <field name="delay_close"/> - <field name="amount_revenue"/> - <field name="amount_costs"/> - <field name="amount_revenue_prob"/> - <field name="probability"/> - </field> - </field> - </record> - - <record id="view_crm_claim_categ_graph" model="ir.ui.view"> - <field name="name">report.crm.claim.categ.graph</field> - <field name="model">report.crm.claim.categ</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph orientation="horizontal" string="Claims by Section and Categories" type="bar"> - <field name="state"/> - <field name="nbr" operator="+"/> - <field group="True" name="categ_id"/> - </graph> - </field> - </record> + <menuitem name="Claim" id="menu_crm_claim_tree" action="action_report_crm_claim_tree" parent="crm.next_id_52"/> - <record id="view_crm_claim_categ_filter" model="ir.ui.view"> - <field name="name">report.crm.claim.categ.select</field> - <field name="model">report.crm.claim.categ</field> - <field name="inherit_id" ref="view_crm_case_categ_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="state" position="before"> - </field> - </field> - </record> - - <record id="action_report_crm_claim_categ_tree" model="ir.actions.act_window"> - <field name="name">Claims by Categories and Section</field> - <field name="res_model">report.crm.claim.categ</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="view_id" ref="view_crm_claim_categ_graph"/> - <field name="search_view_id" ref="view_crm_claim_categ_filter"/> - </record> - <menuitem action="action_report_crm_claim_categ_tree" id="menu_crm_claim_categ_tree" parent="menu_crm_claim_tree"/> - - <!-- Claim by Section --> - - <record id="view_report_crm_claim_section_tree" model="ir.ui.view"> - <field name="name">report.crm.claim.section.tree</field> - <field name="model">report.crm.claim.section</field> - <field name="inherit_id" ref="view_report_crm_case_section_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="nbr_cases" position="after"> - <field name="avg_answers"/> - <field name="perc_done" select="2"/> - <field name="perc_cancel" select="2"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record id="view_report_crm_claim_section_graph" model="ir.ui.view"> - <field name="name">report.crm.claim.section.graph</field> - <field name="model">report.crm.claim.section</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph orientation="horizontal" string="claims by Section" type="bar"> - <field name="name"/> - <field name="nbr_cases" operator="+"/> - </graph> - </field> - </record> - - <record id="view_report_crm_claim_section_filter" model="ir.ui.view"> - <field name="name">report.crm.claim.section.select</field> - <field name="model">report.crm.claim.section</field> - <field name="inherit_id" ref="view_report_crm_case_section_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="nbr_cases" position="before"> - </field> - </field> - </record> - - <record id="action_report_crm_claim_section_tree" model="ir.actions.act_window"> - <field name="name">Claims by Section</field> - <field name="res_model">report.crm.claim.section</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="view_id" ref="view_report_crm_claim_section_graph"/> - <field name="search_view_id" ref="view_report_crm_claim_section_filter"/> - </record> - <menuitem action="action_report_crm_claim_section_tree" id="menu_crm_claim_section_tree" parent="menu_crm_claim_tree"/> - - # - # Claims by section and type - # - - <record model="ir.ui.view" id="view_crm_claim_section_categ_tree"> - <field name="name">CRM Report - Sections and Type(Tree)</field> - <field name="model">report.crm.claim.section.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="type_id"/> - <field name="stage_id"/> - <field name="amount_revenue"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_claim_section_categ_form"> - <field name="name">CRM Report - Sections and Type(Form)</field> - <field name="model">report.crm.claim.section.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="type_id"/> - <field name="stage_id"/> - <field name="amount_revenue"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record model="ir.ui.view" id="view_crm_claim_section_categ_graph"> - <field name="name">CRM Report - Sections and Type(Graph)</field> - <field name="model">report.crm.claim.section.type</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Cases by Section and Type" type="bar" orientation="horizontal"> - <field name="type_id"/> - <field name="amount_revenue" operator="+"/> - <field name="section_id" group="True"/> - </graph> - </field> - </record> - <record id="view_crm_claim_section_categ_filter" model="ir.ui.view"> - <field name="name">CRM Report - Sections and Type(Select)</field> - <field name="model">report.crm.claim.section.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="section_id" position="after"> - <field name="type_id"/> - </field> - </field> - </record> - - <record model="ir.actions.act_window" id="action_report_crm_claim_section_categ_tree"> - <field name="res_model">report.crm.claim.section.type</field> - <field name="name">Claims by section and type</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="search_view_id" ref="view_crm_claim_section_categ_filter"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_claim_section_categ_graph"> - <field name="sequence" eval="1"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="view_crm_claim_section_categ_graph"/> - <field name="act_window_id" ref="action_report_crm_claim_section_categ_tree"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_claim_section_categ_tree"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="view_crm_claim_section_categ_tree"/> - <field name="act_window_id" ref="action_report_crm_claim_section_categ_tree"/> - </record> - <menuitem action="action_report_crm_claim_section_categ_tree" id="menu_crm_claim_section_categ_tree" parent="menu_crm_claim_tree"/> - - # - # Claims by section, category and stage - # - - <record model="ir.ui.view" id="view_crm_claim_section_categ_stage_tree"> - <field name="name">CRM Report - Section, Category and Stage(Tree)</field> - <field name="model">report.crm.claim.section.categ.stage</field> - <field name="inherit_id" ref="view_crm_case_section_categ_stage_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_claim_section_categ_stage_form"> - <field name="name">CRM Report - Section, Category and Stage(Form)</field> - <field name="model">report.crm.claim.section.categ.stage</field> - <field name="inherit_id" ref="view_crm_case_section_categ_stage_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record model="ir.ui.view" id="view_crm_claim_section_categ_stage_graph"> - <field name="name">CRM Report - Section, Category and Stage(Select)</field> - <field name="model">report.crm.claim.section.categ.stage</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Claims by Section, Category and Stage" type="bar" orientation="horizontal"> - <field name="categ_id"/> - <field name="nbr" operator="+"/> - <field name="section_id" group="True"/> - </graph> - </field> - </record> - <record id="view_crm_claim_section_categ_stage_filter" model="ir.ui.view"> - <field name="name">CRM Report - Section, Category and Stage(Select)</field> - <field name="model">report.crm.claim.section.categ.stage</field> - <field name="inherit_id" ref="view_crm_case_section_categ_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="section_id" position="after"> - <field name="categ_id"/> - <field name="stage_id"/> - </field> - </field> - </record> - - <record model="ir.actions.act_window" id="action_report_crm_claim_section_categ_stage_tree"> - <field name="res_model">report.crm.claim.section.categ.stage</field> - <field name="name">Claims by section, category and stage</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="search_view_id" ref="view_crm_claim_section_categ_stage_filter"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_claim_section_categ_stage_graph"> - <field name="sequence" eval="1"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="view_crm_claim_section_categ_stage_graph"/> - <field name="act_window_id" ref="action_report_crm_claim_section_categ_stage_tree"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_claim_section_categ_stage_tree"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="view_crm_claim_section_categ_stage_tree"/> - <field name="act_window_id" ref="action_report_crm_claim_section_categ_stage_tree"/> - </record> - <menuitem action="action_report_crm_claim_section_categ_stage_tree" id="menu_crm_claim_section_categ_stage_tree" parent="menu_crm_claim_tree"/> - - # - # Claims by section, category and type - # - - <record model="ir.ui.view" id="view_crm_claim_section_categ_type_tree"> - <field name="name">CRM Report - Section, Category and Type(Tree)</field> - <field name="model">report.crm.claim.section.categ.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_type_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="type_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_claim_section_categ_type_form"> - <field name="name">CRM Report - Section, Category and Type(Form)</field> - <field name="model">report.crm.claim.section.categ.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_type_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="type_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record model="ir.ui.view" id="view_crm_claim_section_categ_type_graph"> - <field name="name">CRM Report - Section, Category and Type(Select)</field> - <field name="model">report.crm.claim.section.categ.type</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Claims by Section, Category and Type" type="bar" orientation="horizontal"> - <field name="type_id"/> - <field name="nbr" operator="+"/> - <field name="section_id" group="True"/> - </graph> - </field> - </record> - <record id="view_crm_claim_section_categ_type_filter" model="ir.ui.view"> - <field name="name">CRM Report - Section, Category and Type(Select)</field> - <field name="model">report.crm.claim.section.categ.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_type_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="section_id" position="after"> - <field name="categ_id" select="1"/> - <field name="type_id" select="1"/> - <field name="stage_id" select="1"/> - </field> - </field> - </record> - - <record model="ir.actions.act_window" id="action_report_crm_claim_section_categ_type_tree"> - <field name="res_model">report.crm.claim.section.categ.type</field> - <field name="name">Claims by section, category and type</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="search_view_id" ref="view_crm_claim_section_categ_type_filter"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_claim_section_categ_type_graph"> - <field name="sequence" eval="1"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="view_crm_claim_section_categ_type_graph"/> - <field name="act_window_id" ref="action_report_crm_claim_section_categ_type_tree"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_claim_section_categ_type_tree"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="view_crm_claim_section_categ_type_tree"/> - <field name="act_window_id" ref="action_report_crm_claim_section_categ_type_tree"/> - </record> - <menuitem action="action_report_crm_claim_section_categ_type_tree" id="menu_crm_claim_section_categ_type_tree" parent="menu_crm_claim_tree"/> - </data> -</openerp>
\ No newline at end of file +</openerp> diff --git a/addons/report_crm/report_crm_lead.py b/addons/report_crm/report_crm_lead.py index 479b93445c4..3f57835bf6c 100644 --- a/addons/report_crm/report_crm_lead.py +++ b/addons/report_crm/report_crm_lead.py @@ -1,273 +1,31 @@ from osv import fields,osv import tools -class report_crm_lead_user(osv.osv): - _name = "report.crm.lead.user" - _description = "Leads by user and section" +class report_crm_lead(osv.osv): + _name = "report.crm.lead" _auto = False _inherit = "report.crm.case.user" _columns = { - 'probability': fields.float('Avg. Probability', readonly=True), - 'amount_revenue': fields.float('Est.Revenue', readonly=True), - 'amount_costs': fields.float('Est.Cost', readonly=True), - 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True), 'delay_close': fields.char('Delay to close', size=20, readonly=True), - } - def init(self, cr): - tools.drop_view_if_exists(cr, 'report_crm_lead_user') - cr.execute(""" - create or replace view report_crm_lead_user as ( - select - min(c.id) as id, - to_char(c.create_date, 'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.state, - c.user_id, - c.section_id, - count(*) as nbr, - sum(planned_revenue) as amount_revenue, - sum(planned_cost) as amount_costs, - 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 - 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 - )""") -report_crm_lead_user() - -class report_crm_lead_categ(osv.osv): - _name = "report.crm.lead.categ" - _description = "Leads by section and category" - _auto = False - _inherit = "report.crm.case.categ" - _columns = { - 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]"), - 'amount_revenue': fields.float('Est.Revenue', readonly=True), - 'amount_costs': fields.float('Est.Cost', readonly=True), - 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True), - 'probability': fields.float('Avg. Probability', readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - - def init(self, cr): - tools.drop_view_if_exists(cr, 'report_crm_lead_categ') - cr.execute(""" - create or replace view report_crm_lead_categ as ( - select - min(c.id) as id, - to_char(c.create_date, 'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.categ_id, - c.state, - c.section_id, - count(*) as nbr, - sum(planned_revenue) as amount_revenue, - sum(planned_cost) as amount_costs, - 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 - from - crm_lead c - group by c.categ_id,to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state,c.section_id - )""") -report_crm_lead_categ() - -class report_crm_lead_section(osv.osv): - _name = "report.crm.lead.section" - _description = "Leads by Section" - _auto = False - _inherit = "report.crm.case.section" - - def _get_data(self, cr, uid, ids, field_name, arg, context={}): - res = {} - state_perc = 0.0 - avg_ans = 0.0 - - for case in self.browse(cr, uid, ids, context): - if field_name != 'avg_answers': - state = field_name[5:] - cr.execute("select count(*) from crm_lead where section_id =%s and state='%s'"%(case.section_id.id,state)) - state_cases = cr.fetchone()[0] - perc_state = (state_cases / float(case.nbr_cases) ) * 100 - - res[case.id] = perc_state - else: - cr.execute('select count(*) from crm_case_log l where l.section_id=%s'%(case.section_id.id)) - logs = cr.fetchone()[0] - - avg_ans = logs / case.nbr_cases - res[case.id] = avg_ans - - return res - - _columns = { - 'avg_answers': fields.function(_get_data,string='Avg. Answers', method=True,type="integer"), - 'perc_done': fields.function(_get_data,string='%Done', method=True,type="float"), - 'perc_cancel': fields.function(_get_data,string='%Cancel', method=True,type="float"), - 'delay_close': fields.char('Delay to close', size=20, readonly=True), - } - _order = 'name desc, section_id' - def init(self, cr): - tools.drop_view_if_exists(cr, 'report_crm_lead_section') - cr.execute(""" - create or replace view report_crm_lead_section as ( - select - min(c.id) as id, - to_char(c.create_date, 'YYYY') as name, - to_char(c.create_date, 'MM') as month, - count(*) as nbr_cases, - c.section_id as section_id, - 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 - from - crm_lead c - group by to_char(c.create_date, 'YYYY'),to_char(c.create_date, 'MM'),c.section_id - )""") -report_crm_lead_section() - -class report_crm_lead_section_stage(osv.osv): - _name = "report.crm.lead.section.stage" - _description = "Leads by section and stage" - _auto = False - _inherit = "report.crm.case.section.stage" - _columns = { - 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True), 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True), - 'amount_revenue': fields.float('Est.Revenue', readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - _order = 'stage_id, section_id' - - def init(self, cr): - tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_stage") - cr.execute(""" - create view report_crm_lead_section_stage as ( - select - min(c.id) as id, - to_char(c.create_date,'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.user_id, - c.state, - c.stage_id, - c.section_id, - c.categ_id, - count(*) as nbr, - sum(planned_revenue) as amount_revenue, - to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close - from - crm_lead c - where c.stage_id is not null - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.categ_id, c.section_id)""") - -report_crm_lead_section_stage() - -class report_crm_lead_section_type(osv.osv): - _name = "report.crm.lead.section.type" - _inherit = "report.crm.case.section.type" - _description = "Leads by section and type" - _auto = False - _columns = { - 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True), - 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True), - 'amount_revenue': fields.float('Est.Revenue', readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - _order = 'type_id' - - def init(self, cr): - tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_type") - cr.execute(""" - create view report_crm_lead_section_type as ( - select - min(c.id) as id, - to_char(c.create_date,'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.user_id, - c.state, - c.type_id, - c.stage_id, - c.section_id, - count(*) as nbr, - sum(planned_revenue) as amount_revenue, - to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close - from - crm_lead c - where c.type_id is not null - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.type_id, c.section_id)""") - -report_crm_lead_section_type() - -class report_crm_lead_section_categ_stage(osv.osv): - _name = "report.crm.lead.section.categ.stage" - _inherit = "report.crm.case.section.categ.stage" - _description = "Leads by Section, Category and Stage" - _auto = False - _columns = { - 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True), - 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - _order = 'stage_id, categ_id' - - def init(self, cr): - tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_categ_stage") - cr.execute(""" - create view report_crm_lead_section_categ_stage as ( - select - min(c.id) as id, - to_char(c.create_date,'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.user_id, - c.categ_id, - c.state, - c.stage_id, - c.section_id, - count(*) as nbr, - to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close - from - crm_lead c - where c.categ_id is not null AND c.stage_id is not null - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.state, c.stage_id, c.section_id)""") - -report_crm_lead_section_categ_stage() - -class report_crm_lead_section_categ_type(osv.osv): - _name = "report.crm.lead.section.categ.type" - _inherit = "report.crm.case.section.categ.type" - _description = "Leads by Section, Category and Type" - _auto = False - _columns = { - 'categ_id':fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True), - 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True), - 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), } - _order = 'categ_id, type_id' - def init(self, cr): - tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_categ_type") + tools.drop_view_if_exists(cr, 'report_crm_lead') cr.execute(""" - create view report_crm_lead_section_categ_type as ( + create or replace view report_crm_lead as ( select min(c.id) as id, to_char(c.create_date, 'YYYY') as name, to_char(c.create_date, 'MM') as month, - c.user_id, - c.categ_id, - c.type_id, c.state, + c.user_id, c.stage_id, c.section_id, count(*) as nbr, to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close from crm_lead c - where c.categ_id is not null AND c.type_id is not null - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.type_id, c.state, c.stage_id, c.section_id)""") - -report_crm_lead_section_categ_type() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file + 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 + )""") +report_crm_lead() +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/report_crm/report_crm_lead_view.xml b/addons/report_crm/report_crm_lead_view.xml index 8dbec663dd2..e7ed028a222 100644 --- a/addons/report_crm/report_crm_lead_view.xml +++ b/addons/report_crm/report_crm_lead_view.xml @@ -5,43 +5,39 @@ Leads by user and section --> - <record id="view_crm_lead_user_tree" model="ir.ui.view"> - <field name="name">report.crm.lead.user.tree</field> - <field name="model">report.crm.lead.user</field> - <field name="inherit_id" ref="view_crm_case_user_tree"/> + <record id="view_crm_lead_tree" model="ir.ui.view"> + <field name="name">report.crm.lead.tree</field> + <field name="model">report.crm.lead</field> <field name="type">tree</field> <field name="arch" type="xml"> - <field name="nbr" position="after"> - <field name="delay_close"/> - <field name="amount_revenue"/> - <field name="amount_costs"/> - <field name="amount_revenue_prob"/> - <field name="probability"/> - </field> + <tree string="Leads"> + <field name="name" /> + <field name="month"/> + <field name="nbr" /> + <field name="delay_close"/> + <field name="stage_id" invisible="1"/> + </tree> </field> </record> - <record id="view_crm_lead_user_form" model="ir.ui.view"> - <field name="name">report.crm.lead.user.form</field> - <field name="model">report.crm.lead.user</field> + <record id="view_crm_lead_form" model="ir.ui.view"> + <field name="name">report.crm.lead.form</field> + <field name="model">report.crm.lead</field> <field name="inherit_id" ref="view_crm_case_user_form"/> <field name="type">form</field> <field name="arch" type="xml"> <field name="nbr" position="after"> <field name="delay_close"/> - <field name="amount_revenue"/> - <field name="amount_costs"/> - <field name="amount_revenue_prob"/> - <field name="probability"/> + <field name="stage_id"/> </field> </field> </record> - <record id="view_crm_lead_user_graph" model="ir.ui.view"> - <field name="name">report.crm.lead.user.graph</field> - <field name="model">report.crm.lead.user</field> + <record id="view_crm_lead_graph" model="ir.ui.view"> + <field name="name">report.crm.lead.graph</field> + <field name="model">report.crm.lead</field> <field name="type">graph</field> <field name="arch" type="xml"> - <graph orientation="horizontal" string="Leads by User and Section" type="bar"> + <graph orientation="horizontal" string="Leads" type="bar"> <field name="state"/> <field name="nbr" operator="+"/> <field group="True" name="user_id"/> @@ -49,437 +45,36 @@ </field> </record> - <record id="view_crm_lead_user_filter" model="ir.ui.view"> - <field name="name">report.crm.lead.user.select</field> - <field name="model">report.crm.lead.user</field> + <record id="view_crm_lead_filter" model="ir.ui.view"> + <field name="name">report.crm.lead.select</field> + <field name="model">report.crm.lead</field> <field name="inherit_id" ref="view_crm_case_user_filter"/> <field name="type">search</field> <field name="arch" type="xml"> - <field name="state" position="before"> - </field> - </field> - </record> - - <record id="action_report_crm_lead_user_tree" model="ir.actions.act_window"> - <field name="name">Leads by User and Section</field> - <field name="res_model">report.crm.lead.user</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="view_id" ref="view_crm_lead_user_graph"/> - <field name="search_view_id" ref="view_crm_lead_user_filter"/> - </record> - <menuitem name="Leads" id="menu_crm_leads_tree" parent="crm.next_id_52"/> - <menuitem action="action_report_crm_lead_user_tree" id="menu_crm_lead_user_tree" parent="menu_crm_leads_tree"/> - - <!-- # Leads by section and category of case --> - - <record id="view_crm_lead_categ_tree" model="ir.ui.view"> - <field name="name">report.crm.lead.categ.tree</field> - <field name="model">report.crm.lead.categ</field> - <field name="inherit_id" ref="view_crm_case_categ_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="nbr" position="after"> - <field name="delay_close"/> - <field name="amount_revenue"/> - <field name="amount_costs"/> - <field name="amount_revenue_prob"/> - <field name="probability"/> - </field> - </field> - </record> - <record id="view_crm_lead_categ_form" model="ir.ui.view"> - <field name="name">report.crm.lead.categ.form</field> - <field name="model">report.crm.lead.categ</field> - <field name="inherit_id" ref="view_crm_case_categ_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="nbr" position="after"> - <field name="delay_close"/> - <field name="amount_revenue"/> - <field name="amount_costs"/> - <field name="amount_revenue_prob"/> - <field name="probability"/> - </field> - </field> - </record> - - <record id="view_crm_lead_categ_graph" model="ir.ui.view"> - <field name="name">report.crm.lead.categ.graph</field> - <field name="model">report.crm.lead.categ</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph orientation="horizontal" string="Leads by Section and Categories" type="bar"> - <field name="state"/> - <field name="nbr" operator="+"/> - <field group="True" name="categ_id"/> - </graph> - </field> - </record> - - <record id="view_crm_lead_categ_filter" model="ir.ui.view"> - <field name="name">report.crm.lead.categ.select</field> - <field name="model">report.crm.lead.categ</field> - <field name="inherit_id" ref="view_crm_case_categ_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="state" position="before"> - </field> - </field> - </record> - - <record id="action_report_crm_lead_categ_tree" model="ir.actions.act_window"> - <field name="name">Leads by Categories and Section</field> - <field name="res_model">report.crm.lead.categ</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="view_id" ref="view_crm_lead_categ_graph"/> - <field name="search_view_id" ref="view_crm_lead_categ_filter"/> - </record> - <menuitem action="action_report_crm_lead_categ_tree" id="menu_crm_lead_categ_tree" parent="menu_crm_leads_tree"/> - - <!-- Leads by Section --> - - <record id="view_report_crm_lead_section_tree" model="ir.ui.view"> - <field name="name">report.crm.lead.section.tree</field> - <field name="model">report.crm.lead.section</field> - <field name="inherit_id" ref="view_report_crm_case_section_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="nbr_cases" position="after"> - <field name="avg_answers"/> - <field name="perc_done" select="2"/> - <field name="perc_cancel" select="2"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record id="view_report_crm_lead_section_graph" model="ir.ui.view"> - <field name="name">report.crm.lead.section.graph</field> - <field name="model">report.crm.lead.section</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph orientation="horizontal" string="Leads by Section" type="bar"> - <field name="name"/> - <field name="nbr_cases" operator="+"/> - </graph> - </field> - </record> - - <record id="view_report_crm_lead_section_filter" model="ir.ui.view"> - <field name="name">report.crm.lead.section.select</field> - <field name="model">report.crm.lead.section</field> - <field name="inherit_id" ref="view_report_crm_case_section_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="nbr_cases" position="before"> - </field> + <search string="Search"> + <field name="state" position="before"/> + </search> </field> </record> - - <record id="action_report_crm_lead_section_tree" model="ir.actions.act_window"> - <field name="name">Leads by Section</field> - <field name="res_model">report.crm.lead.section</field> + + + <record id="action_report_crm_lead_tree" model="ir.actions.act_window"> + <field name="name">Leads</field> + <field name="res_model">report.crm.lead</field> <field name="view_type">form</field> <field name="view_mode">graph,tree</field> - <field name="view_id" ref="view_report_crm_lead_section_graph"/> - <field name="search_view_id" ref="view_report_crm_lead_section_filter"/> + <field name="view_id" ref="view_crm_lead_graph"/> + <!-- field name="search_view_id" ref="view_crm_lead_filter"/ --> </record> - <menuitem action="action_report_crm_lead_section_tree" id="menu_crm_lead_section_tree" parent="menu_crm_leads_tree"/> - - - <!-- Cases by section and stage --> - <record model="ir.ui.view" id="view_crm_lead_section_stage_tree"> - <field name="name">Leads Report - Sections and Stage(Tree)</field> - <field name="model">report.crm.lead.section.stage</field> - <field name="inherit_id" ref="view_crm_case_section_stage_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="nbr" position="after"> - <field name="categ_id"/> - <field name="stage_id" select="2"/> - <field name="amount_revenue" select="2"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_lead_section_stage_form"> - <field name="name">Leads Report - Sections and Stage(Form)</field> - <field name="model">report.crm.lead.section.stage</field> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="nbr" position="after"> - <field name="categ_id"/> - <field name="stage_id" select="2"/> - <field name="amount_revenue" select="2"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_lead_section_stage_graph"> - <field name="name">Leads Report - Sections and Stage(Graph)</field> - <field name="model">report.crm.lead.section.stage</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Leads by Section and Stage" type="bar" orientation="horizontal"> - <field name="stage_id"/> - <field name="amount_revenue" operator="+"/> - <field name="section_id" group="True"/> - </graph> - </field> - </record> - <record id="view_crm_lead_section_stage_filter" model="ir.ui.view"> - <field name="name">Leads Report - Sections and Stage(Select)</field> - <field name="model">report.crm.lead.section.stage</field> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="state" position="before"> - </field> - </field> - </record> - - <record model="ir.actions.act_window" id="action_report_crm_lead_section_stage_tree"> - <field name="res_model">report.crm.lead.section.stage</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="view_id" ref="view_crm_lead_section_stage_tree"/> - <field name="search_view_id" ref="view_crm_lead_section_stage_filter"/> - </record> - - # - # Leads by section and type - # - - <record model="ir.ui.view" id="view_crm_lead_section_categ_tree"> - <field name="name">CRM Report - Sections and Type(Tree)</field> - <field name="model">report.crm.lead.section.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="type_id"/> - <field name="stage_id"/> - <field name="amount_revenue"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_lead_section_categ_form"> - <field name="name">CRM Report - Sections and Type(Form)</field> - <field name="model">report.crm.lead.section.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="type_id"/> - <field name="stage_id"/> - <field name="amount_revenue"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record model="ir.ui.view" id="view_crm_lead_section_categ_graph"> - <field name="name">CRM Report - Sections and Type(Graph)</field> - <field name="model">report.crm.lead.section.type</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Leads by Section and Type" type="bar" orientation="horizontal"> - <field name="type_id"/> - <field name="amount_revenue" operator="+"/> - <field name="section_id" group="True"/> - </graph> - </field> - </record> - <record id="view_crm_lead_section_categ_filter" model="ir.ui.view"> - <field name="name">CRM Report - Sections and Type(Select)</field> - <field name="model">report.crm.lead.section.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="section_id" position="after"> - <field name="type_id"/> - </field> - </field> - </record> - - <record model="ir.actions.act_window" id="action_report_crm_lead_section_categ_tree"> - <field name="res_model">report.crm.lead.section.type</field> - <field name="name">Leads by section and type</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="search_view_id" ref="view_crm_lead_section_categ_filter"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_lead_section_categ_graph"> - <field name="sequence" eval="1"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="view_crm_lead_section_categ_graph"/> - <field name="act_window_id" ref="action_report_crm_lead_section_categ_tree"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_lead_section_categ_tree"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="view_crm_lead_section_categ_tree"/> - <field name="act_window_id" ref="action_report_crm_lead_section_categ_tree"/> - </record> - <menuitem action="action_report_crm_lead_section_categ_tree" id="menu_crm_lead_section_categ_tree" parent="menu_crm_leads_tree"/> - - # - # Leads by section, category and stage - # - - <record model="ir.ui.view" id="view_crm_lead_section_categ_stage_tree"> - <field name="name">CRM Report - Section, Category and Stage(Tree)</field> - <field name="model">report.crm.lead.section.categ.stage</field> - <field name="inherit_id" ref="view_crm_case_section_categ_stage_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_lead_section_categ_stage_form"> - <field name="name">CRM Report - Section, Category and Stage(Form)</field> - <field name="model">report.crm.lead.section.categ.stage</field> - <field name="inherit_id" ref="view_crm_case_section_categ_stage_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record model="ir.ui.view" id="view_crm_lead_section_categ_stage_graph"> - <field name="name">CRM Report - Section, Category and Stage(Select)</field> - <field name="model">report.crm.lead.section.categ.stage</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Leads by Section, Category and Stage" type="bar" orientation="horizontal"> - <field name="categ_id"/> - <field name="nbr" operator="+"/> - <field name="section_id" group="True"/> - </graph> - </field> - </record> - <record id="view_crm_lead_section_categ_stage_filter" model="ir.ui.view"> - <field name="name">CRM Report - Section, Category and Stage(Select)</field> - <field name="model">report.crm.lead.section.categ.stage</field> - <field name="inherit_id" ref="view_crm_case_section_categ_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="section_id" position="after"> - <field name="categ_id"/> - <field name="stage_id"/> - </field> - </field> - </record> - - <record model="ir.actions.act_window" id="action_report_crm_lead_section_categ_stage_tree"> - <field name="res_model">report.crm.lead.section.categ.stage</field> - <field name="name">Leads by section, category and stage</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="search_view_id" ref="view_crm_lead_section_categ_stage_filter"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_lead_section_categ_stage_graph"> - <field name="sequence" eval="1"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="view_crm_lead_section_categ_stage_graph"/> - <field name="act_window_id" ref="action_report_crm_lead_section_categ_stage_tree"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_lead_section_categ_stage_tree"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="view_crm_lead_section_categ_stage_tree"/> - <field name="act_window_id" ref="action_report_crm_lead_section_categ_stage_tree"/> - </record> - <menuitem action="action_report_crm_lead_section_categ_stage_tree" id="menu_crm_lead_section_categ_stage_tree" parent="menu_crm_leads_tree"/> - - # - # Leads by section, category and type - # - - <record model="ir.ui.view" id="view_crm_lead_section_categ_type_tree"> - <field name="name">CRM Report - Section, Category and Type(Tree)</field> - <field name="model">report.crm.lead.section.categ.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_type_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="type_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_lead_section_categ_type_form"> - <field name="name">CRM Report - Section, Category and Type(Form)</field> - <field name="model">report.crm.lead.section.categ.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_type_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="type_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record model="ir.ui.view" id="view_crm_lead_section_categ_type_graph"> - <field name="name">CRM Report - Section, Category and Type(Select)</field> - <field name="model">report.crm.lead.section.categ.type</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Leads by Section, Category and Type" type="bar" orientation="horizontal"> - <field name="type_id"/> - <field name="nbr" operator="+"/> - <field name="section_id" group="True"/> - </graph> - </field> - </record> - <record id="view_crm_lead_section_categ_type_filter" model="ir.ui.view"> - <field name="name">CRM Report - Section, Category and Type(Select)</field> - <field name="model">report.crm.lead.section.categ.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_type_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="section_id" position="after"> - <field name="categ_id" select="1"/> - <field name="type_id" select="1"/> - <field name="stage_id" select="1"/> - </field> - </field> - </record> - - <record model="ir.actions.act_window" id="action_report_crm_lead_section_categ_type_tree"> - <field name="res_model">report.crm.lead.section.categ.type</field> - <field name="name">Leads by section, category and type</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="search_view_id" ref="view_crm_lead_section_categ_type_filter"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_lead_section_categ_type_graph"> - <field name="sequence" eval="1"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="view_crm_lead_section_categ_type_graph"/> - <field name="act_window_id" ref="action_report_crm_lead_section_categ_type_tree"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_lead_section_categ_type_tree"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="view_crm_lead_section_categ_type_tree"/> - <field name="act_window_id" ref="action_report_crm_lead_section_categ_type_tree"/> - </record> - <menuitem action="action_report_crm_lead_section_categ_type_tree" id="menu_crm_lead_section_categ_type_tree" parent="menu_crm_leads_tree"/> + + <record model="ir.actions.act_window.view" id="action_report_crm_lead_tree1"> + <field name="sequence" eval="2"/> + <field name="view_mode">tree</field> + <field name="view_id" ref="view_crm_lead_tree"/> + <field name="act_window_id" ref="action_report_crm_lead_tree"/> + </record> + + + <menuitem name="Leads" id="menu_crm_leads_tree" parent="crm.next_id_52" action="action_report_crm_lead_tree"/> </data> </openerp> diff --git a/addons/report_crm/report_crm_opportunity.py b/addons/report_crm/report_crm_opportunity.py index 6671d72fd8b..501b4c2855d 100644 --- a/addons/report_crm/report_crm_opportunity.py +++ b/addons/report_crm/report_crm_opportunity.py @@ -1,9 +1,8 @@ from osv import fields,osv import tools -class report_crm_opportunity_user(osv.osv): - _name = "report.crm.opportunity.user" - _description = "Opportunity by user and section" +class report_crm_opportunity(osv.osv): + _name = "report.crm.opportunity" _auto = False _inherit = "report.crm.case.user" _columns = { @@ -11,11 +10,13 @@ class report_crm_opportunity_user(osv.osv): '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), + 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"), + 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True), } def init(self, cr): - tools.drop_view_if_exists(cr, 'report_crm_opportunity_user') + tools.drop_view_if_exists(cr, 'report_crm_opportunity') cr.execute(""" - create or replace view report_crm_opportunity_user as ( + create or replace view report_crm_opportunity as ( select min(c.id) as id, to_char(c.create_date, 'YYYY') as name, @@ -23,41 +24,8 @@ class report_crm_opportunity_user(osv.osv): c.state, c.user_id, c.section_id, - count(*) as nbr, - 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 - from - crm_opportunity c - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state, c.user_id,c.section_id - )""") -report_crm_opportunity_user() - -class report_crm_opportunity_categ(osv.osv): - _name = "report.crm.opportunity.categ" - _description = "Opportunity by section and category" - _auto = False - _inherit = "report.crm.case.categ" - _columns = { - 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"), - 'amount_revenue': fields.float('Est.Revenue', readonly=True), - 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True), - 'probability': fields.float('Avg. Probability', readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - - def init(self, cr): - tools.drop_view_if_exists(cr, 'report_crm_opportunity_categ') - cr.execute(""" - create or replace view report_crm_opportunity_categ as ( - select - min(c.id) as id, - to_char(c.create_date, 'YYYY') as name, - to_char(c.create_date, 'MM') as month, c.categ_id, - c.state, - c.section_id, + c.stage_id, count(*) as nbr, sum(planned_revenue) as amount_revenue, sum(planned_revenue*probability)::decimal(16,2) as amount_revenue_prob, @@ -65,168 +33,7 @@ class report_crm_opportunity_categ(osv.osv): to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close from crm_opportunity c - group by c.categ_id,to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state,c.section_id - )""") -report_crm_opportunity_categ() - -class report_crm_opportunity_section(osv.osv): - _name = "report.crm.opportunity.section" - _description = "Opportunity by Section" - _auto = False - _inherit = "report.crm.case.section" - - def _get_data(self, cr, uid, ids, field_name, arg, context={}): - res = {} - state_perc = 0.0 - avg_ans = 0.0 - - for case in self.browse(cr, uid, ids, context): - if field_name != 'avg_answers': - state = field_name[5:] - cr.execute("select count(*) from crm_opportunity where section_id =%s and state='%s'"%(case.section_id.id,state)) - state_cases = cr.fetchone()[0] - perc_state = (state_cases / float(case.nbr_cases) ) * 100 - - res[case.id] = perc_state - else: - cr.execute('select count(*) from crm_case_log l where l.section_id=%s'%(case.section_id.id)) - logs = cr.fetchone()[0] - - avg_ans = logs / case.nbr_cases - res[case.id] = avg_ans - - return res - - _columns = { - 'avg_answers': fields.function(_get_data,string='Avg. Answers', method=True,type="integer"), - 'perc_done': fields.function(_get_data,string='%Done', method=True,type="float"), - 'perc_cancel': fields.function(_get_data,string='%Cancel', method=True,type="float"), - 'delay_close': fields.char('Delay to close', size=20, readonly=True), - } - _order = 'name desc, section_id' - def init(self, cr): - tools.drop_view_if_exists(cr, 'report_crm_opportunity_section') - cr.execute(""" - create or replace view report_crm_opportunity_section as ( - select - min(c.id) as id, - to_char(c.create_date, 'YYYY') as name, - to_char(c.create_date, 'MM') as month, - count(*) as nbr_cases, - c.section_id as section_id, - 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 - from - crm_opportunity c - group by to_char(c.create_date, 'YYYY'),to_char(c.create_date, 'MM'),c.section_id + 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 )""") -report_crm_opportunity_section() - -class report_crm_opportunity_section_type(osv.osv): - _name = "report.crm.opportunity.section.type" - _inherit = "report.crm.case.section.type" - _description = "Opportunity by section and type" - _auto = False - _columns = { - 'type_id': fields.many2one('crm.case.resource.type', 'Opportunity Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True), - 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True), - 'amount_revenue': fields.float('Est.Revenue', readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - _order = 'type_id' - - def init(self, cr): - tools.sql.drop_view_if_exists(cr, "report_crm_opportunity_section_type") - cr.execute(""" - create view report_crm_opportunity_section_type as ( - select - min(c.id) as id, - to_char(c.create_date,'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.user_id, - c.state, - c.type_id, - c.stage_id, - c.section_id, - count(*) as nbr, - sum(planned_revenue) as amount_revenue, - to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close - from - crm_opportunity c - where c.type_id is not null - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.type_id, c.section_id)""") - -report_crm_opportunity_section_type() - -class report_crm_opportunity_section_categ_stage(osv.osv): - _name = "report.crm.opportunity.section.categ.stage" - _inherit = "report.crm.case.section.categ.stage" - _description = "Opportunity by Section, Category and Stage" - _auto = False - _columns = { - 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True), - 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - _order = 'stage_id, categ_id' - - def init(self, cr): - tools.sql.drop_view_if_exists(cr, "report_crm_opportunity_section_categ_stage") - cr.execute(""" - create view report_crm_opportunity_section_categ_stage as ( - select - min(c.id) as id, - to_char(c.create_date,'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.user_id, - c.categ_id, - c.state, - c.stage_id, - c.section_id, - count(*) as nbr, - to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close - from - crm_opportunity c - where c.categ_id is not null AND c.stage_id is not null - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.state, c.stage_id, c.section_id)""") - -report_crm_opportunity_section_categ_stage() - -class report_crm_opportunity_section_categ_type(osv.osv): - _name = "report.crm.opportunity.section.categ.type" - _inherit = "report.crm.case.section.categ.type" - _description = "Opportunity by Section, Category and Type" - _auto = False - _columns = { - 'categ_id':fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True), - 'type_id': fields.many2one('crm.case.resource.type', 'Opportunity Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True), - 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]", readonly=True), - 'delay_close': fields.char('Delay Close', size=20, readonly=True), - } - _order = 'categ_id, type_id' - - def init(self, cr): - tools.sql.drop_view_if_exists(cr, "report_crm_opportunity_section_categ_type") - cr.execute(""" - create view report_crm_opportunity_section_categ_type as ( - select - min(c.id) as id, - to_char(c.create_date, 'YYYY') as name, - to_char(c.create_date, 'MM') as month, - c.user_id, - c.categ_id, - c.type_id, - c.state, - c.stage_id, - c.section_id, - count(*) as nbr, - to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close - from - crm_opportunity c - where c.categ_id is not null AND c.type_id is not null - group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.type_id, c.state, c.stage_id, c.section_id)""") - -report_crm_opportunity_section_categ_type() +report_crm_opportunity() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/report_crm/report_crm_opportunity_view.xml b/addons/report_crm/report_crm_opportunity_view.xml index 17310cfd0aa..293beb8f3d9 100644 --- a/addons/report_crm/report_crm_opportunity_view.xml +++ b/addons/report_crm/report_crm_opportunity_view.xml @@ -5,24 +5,29 @@ Opportunities by user and section --> - <record id="view_crm_opportunity_user_tree" model="ir.ui.view"> - <field name="name">report.crm.opportunity.user.tree</field> - <field name="model">report.crm.opportunity.user</field> - <field name="inherit_id" ref="view_crm_case_user_tree"/> + <record id="view_crm_opportunity_tree" model="ir.ui.view"> + <field name="name">report.crm.opportunity.tree</field> + <field name="model">report.crm.opportunity</field> <field name="type">tree</field> <field name="arch" type="xml"> - <field name="nbr" position="after"> + <tree string="Opportunities"> + <field name="name" /> + <field name="month"/> + <field name="nbr" string="#Opportunities"/> <field name="delay_close"/> <field name="amount_revenue"/> - <field name="amount_costs"/> <field name="amount_revenue_prob"/> <field name="probability"/> - </field> - </field> + <field name="state"/> + <field name="user_id" invisible="1"/> + <field name="stage_id" invisible="1"/> + <field name="categ_id" invisible="1"/> + </tree> + </field> </record> - <record id="view_crm_opportunity_user_form" model="ir.ui.view"> - <field name="name">report.crm.opportunity.user.form</field> - <field name="model">report.crm.opportunity.user</field> + <record id="view_crm_opportunity_form" model="ir.ui.view"> + <field name="name">report.crm.opportunity.form</field> + <field name="model">report.crm.opportunity</field> <field name="inherit_id" ref="view_crm_case_user_form"/> <field name="type">form</field> <field name="arch" type="xml"> @@ -36,12 +41,12 @@ </field> </record> - <record id="view_crm_opportunity_user_graph" model="ir.ui.view"> - <field name="name">report.crm.opportunity.user.graph</field> - <field name="model">report.crm.opportunity.user</field> + <record id="view_crm_opportunity_graph" model="ir.ui.view"> + <field name="name">report.crm.opportunity.graph</field> + <field name="model">report.crm.opportunity</field> <field name="type">graph</field> <field name="arch" type="xml"> - <graph orientation="horizontal" string="Opportunity by User and Section" type="bar"> + <graph orientation="horizontal" string="Opportunity" type="bar"> <field name="state"/> <field name="nbr" operator="+"/> <field group="True" name="user_id"/> @@ -49,9 +54,9 @@ </field> </record> - <record id="view_crm_opportunity_user_filter" model="ir.ui.view"> - <field name="name">report.crm.opportunity.user.select</field> - <field name="model">report.crm.opportunity.user</field> + <record id="view_crm_opportunity_filter" model="ir.ui.view"> + <field name="name">report.crm.opportunity.select</field> + <field name="model">report.crm.opportunity</field> <field name="inherit_id" ref="view_crm_case_user_filter"/> <field name="type">search</field> <field name="arch" type="xml"> @@ -60,367 +65,20 @@ </field> </record> - <record id="action_report_crm_opportunity_user_tree" model="ir.actions.act_window"> - <field name="name">Opportunity by User and Section</field> - <field name="res_model">report.crm.opportunity.user</field> + <record id="action_report_crm_opportunity_tree" model="ir.actions.act_window"> + <field name="name">Opportunity</field> + <field name="res_model">report.crm.opportunity</field> <field name="view_type">form</field> <field name="view_mode">graph,tree</field> - <field name="view_id" ref="view_crm_opportunity_user_graph"/> - <field name="search_view_id" ref="view_crm_opportunity_user_filter"/> - </record> - <menuitem name="Opportinities" id="menu_crm_opportunity_tree" parent="crm.next_id_52"/> - <menuitem action="action_report_crm_opportunity_user_tree" id="menu_crm_opportunity_user_tree" parent="menu_crm_opportunity_tree"/> - - <!-- # Opportunity by section and category of case --> - - <record id="view_crm_opportunity_categ_tree" model="ir.ui.view"> - <field name="name">report.crm.opportunity.categ.tree</field> - <field name="model">report.crm.opportunity.categ</field> - <field name="inherit_id" ref="view_crm_case_categ_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="nbr" position="after"> - <field name="delay_close"/> - <field name="amount_revenue"/> - <field name="amount_costs"/> - <field name="amount_revenue_prob"/> - <field name="probability"/> - </field> - </field> - </record> - <record id="view_crm_opportunity_categ_form" model="ir.ui.view"> - <field name="name">report.crm.opportunity.categ.form</field> - <field name="model">report.crm.opportunity.categ</field> - <field name="inherit_id" ref="view_crm_case_categ_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="nbr" position="after"> - <field name="delay_close"/> - <field name="amount_revenue"/> - <field name="amount_costs"/> - <field name="amount_revenue_prob"/> - <field name="probability"/> - </field> - </field> - </record> - - <record id="view_crm_opportunity_categ_graph" model="ir.ui.view"> - <field name="name">report.crm.opportunity.categ.graph</field> - <field name="model">report.crm.opportunity.categ</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph orientation="horizontal" string="Opportunity by Section and Categories" type="bar"> - <field name="state"/> - <field name="nbr" operator="+"/> - <field group="True" name="categ_id"/> - </graph> - </field> + <field name="view_id" ref="view_crm_opportunity_graph"/> + <!-- field name="search_view_id" ref="view_crm_opportunity_filter"/ --> </record> - - <record id="view_crm_opportunity_categ_filter" model="ir.ui.view"> - <field name="name">report.crm.opportunity.categ.select</field> - <field name="model">report.crm.opportunity.categ</field> - <field name="inherit_id" ref="view_crm_case_categ_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="state" position="before"> - </field> - </field> - </record> - - <record id="action_report_crm_opportunity_categ_tree" model="ir.actions.act_window"> - <field name="name">Opportunity by Categories and Section</field> - <field name="res_model">report.crm.opportunity.categ</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="view_id" ref="view_crm_opportunity_categ_graph"/> - <field name="search_view_id" ref="view_crm_opportunity_categ_filter"/> - </record> - <menuitem action="action_report_crm_opportunity_categ_tree" id="menu_crm_opportunity_categ_tree" parent="menu_crm_opportunity_tree"/> - - <!-- Opportunity by Section --> - - <record id="view_report_crm_opportunity_section_tree" model="ir.ui.view"> - <field name="name">report.crm.opportunity.section.tree</field> - <field name="model">report.crm.opportunity.section</field> - <field name="inherit_id" ref="view_report_crm_case_section_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="nbr_cases" position="after"> - <field name="avg_answers"/> - <field name="perc_done" select="2"/> - <field name="perc_cancel" select="2"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record id="view_report_crm_opportunity_section_graph" model="ir.ui.view"> - <field name="name">report.crm.opportunity.section.graph</field> - <field name="model">report.crm.opportunity.section</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph orientation="horizontal" string="Opportunity by Section" type="bar"> - <field name="name"/> - <field name="nbr_cases" operator="+"/> - </graph> - </field> - </record> - - <record id="view_report_crm_opportunity_section_filter" model="ir.ui.view"> - <field name="name">report.crm.opportunity.section.select</field> - <field name="model">report.crm.opportunity.section</field> - <field name="inherit_id" ref="view_report_crm_case_section_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="nbr_cases" position="before"> - </field> - </field> - </record> - - <record id="action_report_crm_opportunity_section_tree" model="ir.actions.act_window"> - <field name="name">Opportunity by Section</field> - <field name="res_model">report.crm.opportunity.section</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="view_id" ref="view_report_crm_opportunity_section_graph"/> - <field name="search_view_id" ref="view_report_crm_opportunity_section_filter"/> - </record> - <menuitem action="action_report_crm_opportunity_section_tree" id="menu_crm_opportunity_section_tree" parent="menu_crm_opportunity_tree"/> - - # - # Opportunity by section and type - # - - <record model="ir.ui.view" id="view_crm_opportunity_section_categ_tree"> - <field name="name">CRM Report - Sections and Type(Tree)</field> - <field name="model">report.crm.opportunity.section.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="type_id"/> - <field name="stage_id"/> - <field name="amount_revenue"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_opportunity_section_categ_form"> - <field name="name">CRM Report - Sections and Type(Form)</field> - <field name="model">report.crm.opportunity.section.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="type_id"/> - <field name="stage_id"/> - <field name="amount_revenue"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record model="ir.ui.view" id="view_crm_opportunity_section_categ_graph"> - <field name="name">CRM Report - Sections and Type(Graph)</field> - <field name="model">report.crm.opportunity.section.type</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Opportunity by Section and Type" type="bar" orientation="horizontal"> - <field name="type_id"/> - <field name="amount_revenue" operator="+"/> - <field name="section_id" group="True"/> - </graph> - </field> - </record> - <record id="view_crm_opportunity_section_categ_filter" model="ir.ui.view"> - <field name="name">CRM Report - Sections and Type(Select)</field> - <field name="model">report.crm.opportunity.section.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="section_id" position="after"> - <field name="type_id"/> - </field> - </field> - </record> - - <record model="ir.actions.act_window" id="action_report_crm_opportunity_section_categ_tree"> - <field name="res_model">report.crm.opportunity.section.type</field> - <field name="name">Opportunity by section and type</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="search_view_id" ref="view_crm_opportunity_section_categ_filter"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_opportunity_section_categ_graph"> - <field name="sequence" eval="1"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="view_crm_opportunity_section_categ_graph"/> - <field name="act_window_id" ref="action_report_crm_opportunity_section_categ_tree"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_opportunity_section_categ_tree"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="view_crm_opportunity_section_categ_tree"/> - <field name="act_window_id" ref="action_report_crm_opportunity_section_categ_tree"/> - </record> - <menuitem action="action_report_crm_opportunity_section_categ_tree" id="menu_crm_opportunity_section_categ_tree" parent="menu_crm_opportunity_tree"/> - - # - # Opportunity by section, category and stage - # - - <record model="ir.ui.view" id="view_crm_opportunity_section_categ_stage_tree"> - <field name="name">CRM Report - Section, Category and Stage(Tree)</field> - <field name="model">report.crm.opportunity.section.categ.stage</field> - <field name="inherit_id" ref="view_crm_case_section_categ_stage_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_opportunity_section_categ_stage_form"> - <field name="name">CRM Report - Section, Category and Stage(Form)</field> - <field name="model">report.crm.opportunity.section.categ.stage</field> - <field name="inherit_id" ref="view_crm_case_section_categ_stage_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record model="ir.ui.view" id="view_crm_opportunity_section_categ_stage_graph"> - <field name="name">CRM Report - Section, Category and Stage(Select)</field> - <field name="model">report.crm.opportunity.section.categ.stage</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Opportunity by Section, Category and Stage" type="bar" orientation="horizontal"> - <field name="categ_id"/> - <field name="nbr" operator="+"/> - <field name="section_id" group="True"/> - </graph> - </field> - </record> - <record id="view_crm_opportunity_section_categ_stage_filter" model="ir.ui.view"> - <field name="name">CRM Report - Section, Category and Stage(Select)</field> - <field name="model">report.crm.opportunity.section.categ.stage</field> - <field name="inherit_id" ref="view_crm_case_section_categ_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="section_id" position="after"> - <field name="categ_id"/> - <field name="stage_id"/> - </field> - </field> - </record> - - <record model="ir.actions.act_window" id="action_report_crm_opportunity_section_categ_stage_tree"> - <field name="res_model">report.crm.opportunity.section.categ.stage</field> - <field name="name">Opportunity by section, category and stage</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="search_view_id" ref="view_crm_opportunity_section_categ_stage_filter"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_opportunity_section_categ_stage_graph"> - <field name="sequence" eval="1"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="view_crm_opportunity_section_categ_stage_graph"/> - <field name="act_window_id" ref="action_report_crm_opportunity_section_categ_stage_tree"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_opportunity_section_categ_stage_tree"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="view_crm_opportunity_section_categ_stage_tree"/> - <field name="act_window_id" ref="action_report_crm_opportunity_section_categ_stage_tree"/> - </record> - <menuitem action="action_report_crm_opportunity_section_categ_stage_tree" id="menu_crm_opportunity_section_categ_stage_tree" parent="menu_crm_opportunity_tree"/> - - # - # opportunitys by section, category and type - # - - <record model="ir.ui.view" id="view_crm_opportunity_section_categ_type_tree"> - <field name="name">CRM Report - Section, Category and Type(Tree)</field> - <field name="model">report.crm.opportunity.section.categ.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_type_tree"/> - <field name="type">tree</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="type_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - <record model="ir.ui.view" id="view_crm_opportunity_section_categ_type_form"> - <field name="name">CRM Report - Section, Category and Type(Form)</field> - <field name="model">report.crm.opportunity.section.categ.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_type_form"/> - <field name="type">form</field> - <field name="arch" type="xml"> - <field name="user_id" position="after"> - <field name="categ_id"/> - <field name="type_id"/> - <field name="stage_id"/> - <field name="delay_close"/> - </field> - </field> - </record> - - <record model="ir.ui.view" id="view_crm_opportunity_section_categ_type_graph"> - <field name="name">CRM Report - Section, Category and Type(Select)</field> - <field name="model">report.crm.opportunity.section.categ.type</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Opportunity by Section, Category and Type" type="bar" orientation="horizontal"> - <field name="type_id"/> - <field name="nbr" operator="+"/> - <field name="section_id" group="True"/> - </graph> - </field> - </record> - <record id="view_crm_opportunity_section_categ_type_filter" model="ir.ui.view"> - <field name="name">CRM Report - Section, Category and Type(Select)</field> - <field name="model">report.crm.opportunity.section.categ.type</field> - <field name="inherit_id" ref="view_crm_case_section_categ_type_filter"/> - <field name="type">search</field> - <field name="arch" type="xml"> - <field name="section_id" position="after"> - <field name="categ_id" select="1"/> - <field name="type_id" select="1"/> - <field name="stage_id" select="1"/> - </field> - </field> - </record> - - <record model="ir.actions.act_window" id="action_report_crm_opportunity_section_categ_type_tree"> - <field name="res_model">report.crm.opportunity.section.categ.type</field> - <field name="name">Opportunity by section, category and type</field> - <field name="view_type">form</field> - <field name="view_mode">graph,tree</field> - <field name="search_view_id" ref="view_crm_opportunity_section_categ_type_filter"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_opportunity_section_categ_type_graph"> - <field name="sequence" eval="1"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="view_crm_opportunity_section_categ_type_graph"/> - <field name="act_window_id" ref="action_report_crm_opportunity_section_categ_type_tree"/> - </record> - <record model="ir.actions.act_window.view" id="action_crm_opportunity_section_categ_type_tree"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="view_crm_opportunity_section_categ_type_tree"/> - <field name="act_window_id" ref="action_report_crm_opportunity_section_categ_type_tree"/> - </record> - <menuitem action="action_report_crm_opportunity_section_categ_type_tree" id="menu_crm_opportunity_section_categ_type_tree" parent="menu_crm_opportunity_tree"/> + <record model="ir.actions.act_window.view" id="action_report_crm_l_opportunity_tree1"> + <field name="sequence" eval="2"/> + <field name="view_mode">tree</field> + <field name="view_id" ref="view_crm_opportunity_tree"/> + <field name="act_window_id" ref="action_report_crm_opportunity_tree"/> + </record> + <menuitem name="Opportinities" action="action_report_crm_opportunity_tree" id="menu_crm_opportunity_tree" parent="crm.next_id_52"/> </data> </openerp> diff --git a/addons/report_crm/report_crm_view.xml b/addons/report_crm/report_crm_view.xml index 7b46928cb6b..c5189871ea8 100644 --- a/addons/report_crm/report_crm_view.xml +++ b/addons/report_crm/report_crm_view.xml @@ -56,11 +56,13 @@ <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Cases by User"> - <group col="12" colspan="4"> + <group col="16" colspan="8"> <filter string="My Cases" icon="terp-hr" domain="[('user_id','=',uid)]" help="My cases by section"/> <separator orientation="vertical"/> <filter string="This Year" icon="terp-hr" domain="[('name','=',time.localtime()[0])]"/> <filter string="This Month" icon="terp-hr" domain="[('month','=',time.strftime('%%m'))]"/> + <filter string="Won" icon="terp-hr" domain="[('state','=','done')]"/> + <filter string="Lost" icon="terp-hr" domain="[('state','=','cancel')]"/> <separator orientation="vertical"/> <field name="name" select="1"/> <field name="month" select="1"/> @@ -69,6 +71,16 @@ <field name="nbr" select="1"/> <field name="state" select="1"/> </group> + <group expand="1" string="Group By..." colspan="4" col="8"> + <filter string="User" icon="terp-sale" domain="[]" context="{'group_by':'user_id'}"/> + <filter string="Section" icon="terp-sale" domain="[]" context="{'group_by':'section_id'}"/> + <filter string="State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/> + <filter string="Stage" icon="terp-sale" domain="[]" context="{'group_by':'stage_id'}"/> + <filter string="Month" icon="terp-sale" domain="[]" context="{'group_by':'month'}"/> + <filter string="Category" icon="terp-sale" domain="[]" context="{'group_by':'categ_id'}"/> + </group> + + </search> </field> </record> |
