From 20c91167a308db595f7dbf026a8672df0ed7a703 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Thu, 9 Feb 2012 17:15:44 +0100 Subject: [PATCH] [IMP] Partnership Analysis, Activation Status bzr revid: fp@tinyerp.com-20120209161544-t6ypbbb4g9r2dd4z --- addons/account/project/project_view.xml | 1 + .../account_analytic_analysis_menu.xml | 8 +- .../crm_partner_assign/partner_geo_assign.py | 16 +++- .../report/crm_partner_report.py | 23 +++-- .../report/crm_partner_report_view.xml | 25 ++++-- .../crm_partner_assign/res_partner_view.xml | 84 ++++++++++++++++--- .../security/ir.model.access.csv | 1 + 7 files changed, 128 insertions(+), 30 deletions(-) diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index 07400c68534..9f9aca2c8fb 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -13,6 +13,7 @@ + diff --git a/addons/account_analytic_analysis/account_analytic_analysis_menu.xml b/addons/account_analytic_analysis/account_analytic_analysis_menu.xml index fb74d51194d..86f437ae8bd 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis_menu.xml +++ b/addons/account_analytic_analysis/account_analytic_analysis_menu.xml @@ -43,13 +43,13 @@ - - + + + - diff --git a/addons/crm_partner_assign/partner_geo_assign.py b/addons/crm_partner_assign/partner_geo_assign.py index 08c4f7d23b6..14f698837e1 100644 --- a/addons/crm_partner_assign/partner_geo_assign.py +++ b/addons/crm_partner_assign/partner_geo_assign.py @@ -57,6 +57,16 @@ class res_partner_grade(osv.osv): } res_partner_grade() +class res_partner_activation(osv.osv): + _name = 'res.partner.activation' + _order = 'sequence' + + _columns = { + 'sequence' : fields.integer('Sequence'), + 'name' : fields.char('Name', size=32, required=True), + } + +res_partner_activation() class res_partner(osv.osv): _inherit = "res.partner" @@ -68,7 +78,11 @@ class res_partner(osv.osv): help="Gives the probability to assign a lead to this partner. (0 means no assignation.)"), 'opportunity_assigned_ids': fields.one2many('crm.lead', 'partner_assigned_id',\ 'Assigned Opportunities'), - 'grade_id': fields.many2one('res.partner.grade', 'Partner Grade') + 'grade_id': fields.many2one('res.partner.grade', 'Partner Grade'), + 'activation' : fields.many2one('res.partner.activation', 'Activation', select=1), + 'date_partnership' : fields.date('Partnership Date'), + 'date_review' : fields.date('Latest Partner Review'), + 'date_review_next' : fields.date('Next Partner Review'), } _defaults = { 'partner_weight': lambda *args: 0 diff --git a/addons/crm_partner_assign/report/crm_partner_report.py b/addons/crm_partner_assign/report/crm_partner_report.py index c5afe9b5b82..1e69a73c5fa 100644 --- a/addons/crm_partner_assign/report/crm_partner_report.py +++ b/addons/crm_partner_assign/report/crm_partner_report.py @@ -28,13 +28,16 @@ class crm_partner_report_assign(osv.osv): _auto = False _description = "CRM Partner Report" _columns = { - 'name': fields.char('Partner name', size=64, required=False, readonly=True), + 'partner_id': fields.many2one('res.partner', 'Partner', required=False, readonly=True), 'grade_id':fields.many2one('res.partner.grade', 'Grade', readonly=True), + 'activation' : fields.many2one('res.partner.activation', 'Activation', select=1), 'user_id':fields.many2one('res.users', 'User', readonly=True), + 'date_review' : fields.date('Latest Partner Review'), + 'date_partnership' : fields.date('Partnership Date'), 'country_id':fields.many2one('res.country', 'Country', readonly=True), 'section_id':fields.many2one('crm.case.section', 'Sales Team', readonly=True), - 'nbr': fields.integer('# of Partner', readonly=True), 'opp': fields.integer('# of Opportunity', readonly=True), + 'turnover': fields.float('Turnover', readonly=True), } def init(self, cr): @@ -48,13 +51,23 @@ class crm_partner_report_assign(osv.osv): CREATE OR REPLACE VIEW crm_partner_report_assign AS ( SELECT p.id, - p.name, + p.id as partner_id, (SELECT country_id FROM res_partner_address a WHERE a.partner_id=p.id AND country_id is not null limit 1) as country_id, p.grade_id, + p.activation, + p.date_review, + p.date_partnership, p.user_id, p.section_id, - 1 as nbr, - (SELECT count(id) FROM crm_lead WHERE partner_assigned_id=p.id) AS opp + (SELECT count(id) FROM crm_lead WHERE partner_assigned_id=p.id) AS opp, + (SELECT + sum(price_total) + FROM + account_invoice_report + WHERE + partner_id=p.id and + type in ('out_invoice','out_refund') and + state in ('open','paid')) AS turnover FROM res_partner p diff --git a/addons/crm_partner_assign/report/crm_partner_report_view.xml b/addons/crm_partner_assign/report/crm_partner_report_view.xml index 8ac65f6b57e..3225ef93f8d 100644 --- a/addons/crm_partner_assign/report/crm_partner_report_view.xml +++ b/addons/crm_partner_assign/report/crm_partner_report_view.xml @@ -10,10 +10,10 @@ - - - + + + @@ -24,11 +24,17 @@ + - + + + @@ -42,13 +48,16 @@ tree - + + + + - + @@ -58,7 +67,7 @@ Partnership Analysis crm.partner.report.assign - {'search_default_group_country': 1, 'search_default_group_grade': 1, 'group_by_no_leaf':1,'group_by':[]} + {'search_default_group_grade': 1, 'group_by_no_leaf':1,'group_by':[]} tree [('grade_id', '!=', False)] diff --git a/addons/crm_partner_assign/res_partner_view.xml b/addons/crm_partner_assign/res_partner_view.xml index c340483f024..f9d9d946ead 100644 --- a/addons/crm_partner_assign/res_partner_view.xml +++ b/addons/crm_partner_assign/res_partner_view.xml @@ -1,6 +1,40 @@ + + + + + openerp_custom.res.partner.activation.form + res.partner.activation + form + +
+ + + + +
+ + openerp_custom.res.partner.activation.tree + res.partner.activation + tree + + + + + + + + + Partner Activations + res.partner.activation + form + tree,form + + + + @@ -47,6 +81,7 @@ + @@ -71,19 +106,31 @@ - + + + + + + + + + + + + + + +