[IMP] Partnership Analysis, Activation Status

bzr revid: fp@tinyerp.com-20120209161544-t6ypbbb4g9r2dd4z
This commit is contained in:
Fabien Pinckaers 2012-02-09 17:15:44 +01:00
parent 77065685ca
commit 20c91167a3
7 changed files with 128 additions and 30 deletions

View File

@ -13,6 +13,7 @@
<field name="code" groups="base.group_extended"/>
<field name="quantity"/>
<field name="date"/>
<field name="date_start" invisible="1"/>
<field name="user_id" invisible="1"/>
<field name="parent_id" invisible="1"/>
<field name="partner_id" invisible="1"/>

View File

@ -43,13 +43,13 @@
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Associated Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="State" icon="terp-personal" domain="[]" context="{'group_by':'state'}"/>
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<separator orientation="vertical"/>
<filter string="Parent" icon="terp-folder-orange" domain="[]" context="{'group_by':'parent_id'}"/>
<!--
<separator orientation="vertical"/>
<filter string="Start Date" icon="terp-go-month" domain="[]" context="{'group_by' : 'date_start'}" />
-->
<filter string="End Date" icon="terp-go-month" domain="[]" context="{'group_by' : 'date'}" />
</group>
</search>

View File

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

View File

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

View File

@ -10,10 +10,10 @@
<field name="arch" type="xml">
<search string="Partner assigned Analysis">
<group col="20" colspan="8">
<field name="country_id" />
<field name="grade_id"/>
<field name="user_id"/>
<field name="section_id"/>
<field name="user_id"/>
<field name="grade_id"/>
<field name="activation"/>
</group>
<newline/>
<group expand="1" string="Group By...">
@ -24,11 +24,17 @@
<filter string="Section" icon="terp-personal+"
domain="[]"
context="{'group_by':'section_id'}" />
<filter string="Activation" name="group_activation" icon="terp-stock_symbol-selection"
domain="[]" context="{'group_by':'activation'}" />
<filter string="Grade" name="group_grade" icon="terp-stock_symbol-selection"
domain="[]" context="{'group_by':'grade_id'}" />
<filter string="Name" name="" icon="terp-stock_symbol-selection"
domain="[]" context="{'group_by':'name'}" />
<filter string="Partner" name="" icon="terp-stock_symbol-selection"
domain="[]" context="{'group_by':'partner_id'}" />
<separator orientation="vertical" />
<filter string="Date Partnership" name="group_date_partnership" icon="terp-stock_symbol-selection"
domain="[]" context="{'group_by':'date_partnership'}" />
<filter string="Date Review" name="group_date_review" icon="terp-stock_symbol-selection"
domain="[]" context="{'group_by':'date_review'}" />
</group>
</search>
</field>
@ -42,13 +48,16 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Opportunities Assignment Analysis">
<field name="name" invisible="1"/>
<field name="partner_id" invisible="1"/>
<field name="country_id" invisible="1"/>
<field name="grade_id" invisible="1"/>
<field name="activation" invisible="1"/>
<field name="date_review" invisible="1"/>
<field name="date_partnership" invisible="1"/>
<field name="section_id" invisible="1" groups="base.group_extended"/>
<field name="user_id" invisible="1"/>
<field name="nbr" string="#Partner" sum="#Partner"/>
<field name="opp"/>
<field name="turnover"/>
</tree>
</field>
</record>
@ -58,7 +67,7 @@
<record id="action_report_crm_partner_assign" model="ir.actions.act_window">
<field name="name">Partnership Analysis</field>
<field name="res_model">crm.partner.report.assign</field>
<field name="context">{'search_default_group_country': 1, 'search_default_group_grade': 1, 'group_by_no_leaf':1,'group_by':[]}</field>
<field name="context">{'search_default_group_grade': 1, 'group_by_no_leaf':1,'group_by':[]}</field>
<field name="view_mode">tree</field>
<field name="domain">[('grade_id', '!=', False)]</field>
</record>

View File

@ -1,6 +1,40 @@
<?xml version="1.0"?>
<openerp>
<data>
<!--Partner Activation -->
<record model="ir.ui.view" id="res_partner_activation_form">
<field name="name">openerp_custom.res.partner.activation.form</field>
<field name="model">res.partner.activation</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Activation">
<field name="name" />
<field name="sequence" />
</form>
</field>
</record>
<record model="ir.ui.view" id="res_partner_activation_tree">
<field name="name">openerp_custom.res.partner.activation.tree</field>
<field name="model">res.partner.activation</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Activation">
<field name="name" />
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="res_partner_activation_act">
<field name="name">Partner Activations</field>
<field name="res_model">res.partner.activation</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="res_partner_activation_config_mi" parent="base.menu_config_address_book" action="res_partner_activation_act"/>
<!--Partner Grade -->
@ -47,6 +81,7 @@
<field name="arch" type="xml">
<field name="user_id" position="after">
<field name="grade_id"/>
<field name="activation"/>
</field>
</field>
</record>
@ -71,19 +106,31 @@
<field name="arch" type="xml">
<xpath expr="//notebook[last()]" position="inside">
<page string="Geo Localization">
<field name="grade_id" widget="selection"/>
<group colspan="2" col="2">
<separator string="Partner Activation" colspan="2"/>
<field name="grade_id" widget="selection"/>
<field name="activation" widget="selection"/>
<field name="partner_weight"/>
</group>
<group colspan="2" col="2">
<separator string="Partner Review" colspan="2"/>
<field name="date_review"/>
<field name="date_review_next"/>
<field name="date_partnership"/>
</group>
<group colspan="2" col="2">
<separator string="Geo Localization" colspan="2"/>
<button
string="Geo Localize"
name="geo_localize"
colspan="2"
icon="gtk-apply"
type="object"/>
<field name="partner_latitude"/>
<field name="partner_longitude"/>
<field name="date_localization"/>
</group>
<newline/>
<field name="partner_weight"/>
<label string="" colspan="1"/>
<button
string="Geo Localize"
name="geo_localize"
icon="gtk-apply"
type="object"/>
<newline/>
<field name="partner_latitude"/>
<field name="partner_longitude"/>
<field name="date_localization"/>
<field name="opportunity_assigned_ids" colspan="4" nolabel="1">
<tree string="Assigned Opportunities" colors="blue:state=='pending';gray:state=='cancel'">
@ -122,5 +169,18 @@
</xpath>
</field>
</record>
<record id="view_res_partner_filter_group_activation" model="ir.ui.view">
<field name="name">res.partner.geo.inherit.search</field>
<field name="model">res.partner</field>
<field name="type">search</field>
<field name="inherit_id" ref="base.view_res_partner_filter"/>
<field name="arch" type="xml">
<filter string="Salesman" position="after">
<filter string="Activation" context="{'group_by' : 'activation'}" domain="[]" icon="terp-personal" />
</filter>
</field>
</record>
</data>
</openerp>

View File

@ -4,3 +4,4 @@ access_ crm_lead_report_assign_all,crm.lead.report.assign.all,model_crm_lead_rep
access_crm_partner_report,crm.partner.report.assign.all,model_crm_partner_report_assign,base.group_sale_salesman,1,0,0,0
access_res_partner_grade,res.partner.grade,model_res_partner_grade,base.group_sale_salesman,1,1,1,0
access_res_partner_grade_manager,res.partner.grade.manager,model_res_partner_grade,base.group_sale_manager,1,1,1,1
"access_partner_activation_manager","res.partner.activation.manager","model_res_partner_activation","base.group_partner_manager",1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
4 access_crm_partner_report crm.partner.report.assign.all model_crm_partner_report_assign base.group_sale_salesman 1 0 0 0
5 access_res_partner_grade res.partner.grade model_res_partner_grade base.group_sale_salesman 1 1 1 0
6 access_res_partner_grade_manager res.partner.grade.manager model_res_partner_grade base.group_sale_manager 1 1 1 1
7 access_partner_activation_manager res.partner.activation.manager model_res_partner_activation base.group_partner_manager 1 1 1 1