[IMP/FIX] res_partner_addres model clean up for crm, lead, phonecall, meeting

bzr revid: jam@tinyerp.com-20120305110346-6vn4he5imzlu53iv
This commit is contained in:
Jigar Amin - OpenERP 2012-03-05 16:33:46 +05:30
commit e88e09aff5
15 changed files with 60 additions and 110 deletions

View File

@ -178,7 +178,6 @@ class crm_base(object):
date_closed
user_id
partner_id
partner_address_id
"""
def _get_default_partner_address(self, cr, uid, context=None):
"""Gives id of default address for current user
@ -238,7 +237,7 @@ class crm_base(object):
"""
data = {'value': {'email_from': False, 'phone':False}}
if add:
address = self.pool.get('res.partner.address').browse(cr, uid, add)
address = self.pool.get('res.partner').browse(cr, uid, add)
data['value'] = {'email_from': address and address.email or False ,
'phone': address and address.phone or False}
if 'phone' not in self._columns:
@ -254,7 +253,6 @@ class crm_base(object):
data={}
if part:
addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact'])
data = {'partner_address_id': addr['contact']}
data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value'])
return {'value': data}

View File

@ -40,7 +40,7 @@ class crm_lead(crm_case, osv.osv):
_name = "crm.lead"
_description = "Lead/Opportunity"
_order = "priority,date_action,id desc"
_inherit = ['mail.thread','res.partner.address']
_inherit = ['mail.thread','res.partner']
def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None):
access_rights_uid = access_rights_uid or uid
@ -170,7 +170,7 @@ class crm_lead(crm_case, osv.osv):
domain="['|',('section_id','=',section_id),('section_id','=',False)]", help="From which campaign (seminar, marketing campaign, mass mailing, ...) did this contact come from?"),
'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel (mail, direct, phone, ...)"),
'contact_name': fields.char('Contact Name', size=64),
'partner_name': fields.char("Customer Name", size=64,help='The name of the future partner that will be created while converting the lead into opportunity', select=1),
'partner_name': fields.char("Customer Name", size=64,help='The name of the future partner company that will be created while converting the lead into opportunity', select=1),
'optin': fields.boolean('Opt-In', help="If opt-in is checked, this contact has accepted to receive emails."),
'optout': fields.boolean('Opt-Out', help="If opt-out is checked, this contact has refused to receive emails or unsubscribed to a campaign."),
'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', help="Type is used to separate Leads and Opportunities"),
@ -194,7 +194,6 @@ class crm_lead(crm_case, osv.osv):
# Only used for type opportunity
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', domain="[('partner_id','=',partner_id)]"),
'probability': fields.float('Probability (%)',group_operator="avg"),
'planned_revenue': fields.float('Expected Revenue'),
'ref': fields.reference('Reference', selection=crm._links_get, size=128),
@ -205,8 +204,8 @@ class crm_lead(crm_case, osv.osv):
'title_action': fields.char('Next Action', size=64),
'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_ids', '=', section_id)]"),
'color': fields.integer('Color Index'),
'partner_address_name': fields.related('partner_address_id', 'name', type='char', string='Partner Contact Name', readonly=True),
'partner_address_email': fields.related('partner_address_id', 'email', type='char', string='Partner Contact Email', readonly=True),
'partner_address_name': fields.related('partner_id', 'name', type='char', string='Partner Contact Name', readonly=True),
'partner_address_email': fields.related('partner_id', 'email', type='char', string='Partner Contact Email', readonly=True),
'company_currency': fields.related('company_id', 'currency_id', 'symbol', type='char', string='Company Currency', readonly=True),
'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True),
'user_login': fields.related('user_id', 'login', type='char', string='User Login', readonly=True),
@ -230,7 +229,7 @@ class crm_lead(crm_case, osv.osv):
"""
if not add:
return {'value': {'email_from': False, 'country_id': False}}
address = self.pool.get('res.partner.address').browse(cr, uid, add)
address = self.pool.get('res.partner').browse(cr, uid, add)
return {'value': {'email_from': address.email, 'phone': address.phone, 'country_id': address.country_id.id}}
def on_change_optin(self, cr, uid, ids, optin):
@ -501,8 +500,7 @@ class crm_lead(crm_case, osv.osv):
first_opportunity = opportunities_list[0]
tail_opportunities = opportunities_list[1:]
fields = ['partner_id', 'title', 'name', 'categ_id', 'channel_id', 'city', 'company_id', 'contact_name', 'country_id',
'partner_address_id', 'type_id', 'user_id', 'section_id', 'state_id', 'description', 'email', 'fax', 'mobile',
fields = ['partner_id', 'title', 'name', 'categ_id', 'channel_id', 'city', 'company_id', 'contact_name', 'country_id', 'type_id', 'user_id', 'section_id', 'state_id', 'description', 'email', 'fax', 'mobile',
'partner_name', 'phone', 'probability', 'planned_revenue', 'street', 'street2', 'zip', 'create_date', 'date_action_last',
'date_action_next', 'email_from', 'email_cc', 'partner_name']
@ -546,7 +544,6 @@ class crm_lead(crm_case, osv.osv):
'stage_id': stage_id or False,
'date_action': time.strftime('%Y-%m-%d %H:%M:%S'),
'date_open': time.strftime('%Y-%m-%d %H:%M:%S'),
'partner_address_id': contact_id,
}
def _convert_opportunity_notification(self, cr, uid, lead, context=None):
@ -580,15 +577,42 @@ class crm_lead(crm_case, osv.osv):
}, context=context)
return True
def _lead_create_partner(self, cr, uid, lead, context=None):
def _lead_create_contact(self, cr, uid, lead, name, is_company, parent_id=False, context=None):
partner = self.pool.get('res.partner')
partner_id = partner.create(cr, uid, {
'name': lead.partner_name or lead.contact_name or lead.name,
'user_id': lead.user_id.id,
'comment': lead.description,
'section_id': lead.section_id.id or False,
'address': []
})
vals = { 'name': name,
'user_id': lead.user_id.id,
'comment': lead.description,
'section_id': lead.section_id.id or False,
'parent_id': parent_id,
'phone': lead.phone,
'mobile': lead.mobile,
'email': lead.email_from and to_email(lead.email_from)[0],
'fax': lead.fax,
'title': lead.title and lead.title.id or False,
'function': lead.function,
'street': lead.street,
'street2': lead.street2,
'zip': lead.zip,
'city': lead.city,
'country_id': lead.country_id and lead.country_id.id or False,
'state_id': lead.state_id and lead.state_id.id or False,
'is_company': is_company,
}
partner = partner.create(cr, uid,vals, context)
return partner
def _create_lead_partner(self, cr, uid, lead, context=None):
partner_id = False
if lead.partner_name and lead.contact_name:
partner_id = self._lead_create_contact(cr, uid, lead, lead.partner_name, 'partner', context=context)
self._lead_create_contact(cr, uid, lead, lead.contact_name, 'contact', partner_id, context=context)
elif lead.partner_name and not lead.contact_name:
partner_id = self._lead_create_contact(cr, uid, lead, lead.partner_name, 'partner', context=context)
elif not lead.partner_name and lead.contact_name:
partner_id = self._lead_create_contact(cr, uid, lead, lead.contact_name, 'contact', context=context)
else:
partner_id = self._lead_create_contact(cr, uid, lead, lead.name, 'contact', context=context)
return partner_id
def _lead_set_partner(self, cr, uid, lead, partner_id, context=None):
@ -597,29 +621,9 @@ class crm_lead(crm_case, osv.osv):
if partner_id:
res_partner.write(cr, uid, partner_id, {'section_id': lead.section_id.id or False})
contact_id = res_partner.address_get(cr, uid, [partner_id])['default']
res = lead.write({'partner_id' : partner_id, 'partner_address_id': contact_id}, context=context)
res = lead.write({'partner_id' : partner_id, }, context=context)
return res
def _lead_create_partner_address(self, cr, uid, lead, partner_id, context=None):
address = self.pool.get('res.partner.address')
return address.create(cr, uid, {
'partner_id': partner_id,
'name': lead.contact_name,
'phone': lead.phone,
'mobile': lead.mobile,
'email': lead.email_from and to_email(lead.email_from)[0],
'fax': lead.fax,
'title': lead.title and lead.title.id or False,
'function': lead.function,
'street': lead.street,
'street2': lead.street2,
'zip': lead.zip,
'city': lead.city,
'country_id': lead.country_id and lead.country_id.id or False,
'state_id': lead.state_id and lead.state_id.id or False,
})
def convert_partner(self, cr, uid, ids, action='create', partner_id=False, context=None):
"""
This function convert partner based on action.
@ -632,8 +636,7 @@ class crm_lead(crm_case, osv.osv):
for lead in self.browse(cr, uid, ids, context=context):
if action == 'create':
if not partner_id:
partner_id = self._lead_create_partner(cr, uid, lead, context=context)
self._lead_create_partner_address(cr, uid, lead, partner_id, context=context)
partner_id = self._create_lead_partner(cr, uid, lead, context)
self._lead_set_partner(cr, uid, lead, partner_id, context=context)
partner_ids[lead.id] = partner_id
return partner_ids
@ -694,9 +697,8 @@ class crm_lead(crm_case, osv.osv):
'date' : schedule_time,
'section_id' : section_id or False,
'partner_id': lead.partner_id and lead.partner_id.id or False,
'partner_address_id': lead.partner_address_id and lead.partner_address_id.id or False,
'partner_phone' : phone or lead.phone or (lead.partner_address_id and lead.partner_address_id.phone or False),
'partner_mobile' : lead.partner_address_id and lead.partner_address_id.mobile or False,
'partner_phone' : phone or lead.phone or (lead.partner_id and lead.partner_id.phone or False),
'partner_mobile' : lead.partner_id and lead.partner_id.mobile or False,
'priority': lead.priority,
}

View File

@ -103,7 +103,6 @@
</record>
<record id="crm_case_mgroperations0" model="crm.lead">
<field name="partner_address_id" ref="base.res_partner_address_1"/>
<field eval="1" name="active"/>
<field name="type_id" ref="crm.type_lead3"/>
<field name="partner_id" ref="base.res_partner_9"/>
@ -240,7 +239,6 @@
<!-- Demo Opportunities -->
<record id="crm_case_construstazunits0" model="crm.lead">
<field eval="60" name="probability"/>
<field name="partner_address_id" ref="base.res_partner_address_zen"/>
<field eval="1" name="active"/>
<field name="type">opportunity</field>
<field name="type_id" ref="crm.type_lead1"/>
@ -256,7 +254,6 @@
<field eval="'Conf call with purchase manager'" name="title_action"/>
</record>
<record id="crm_case_rdroundfundingunits0" model="crm.lead">
<field name="partner_address_id" ref="base.res_partner_address_1"/>
<field eval="1" name="active"/>
<field name="type">opportunity</field>
<field name="type_id" ref="crm.type_lead2"/>
@ -307,7 +304,6 @@
<field name="type">opportunity</field>
<field name="type_id" ref="crm.type_lead2"/>
<field name="partner_id" ref="base.res_partner_accent"/>
<field name="partner_address_id" ref="base.res_partner_address_accent"/>
<field eval="'3'" name="priority"/>
<field name="user_id" ref="base.user_root"/>
<field eval="'open'" name="state"/>
@ -332,7 +328,6 @@
<field name="type">opportunity</field>
<field name="type_id" ref="crm.type_lead2"/>
<field name="partner_id" ref="base.res_partner_2"/>
<field name="partner_address_id" ref="base.res_partner_address_9"/>
<field eval="'3'" name="priority"/>
<field name="user_id" ref="base.user_root"/>
<field eval="'open'" name="state"/>
@ -353,7 +348,6 @@
</record>
<record id="crm_case_mediapoleunits0" model="crm.lead">
<field eval="100" name="probability"/>
<field name="partner_address_id" ref="base.res_partner_address_3"/>
<field eval="1" name="active"/>
<field name="type">opportunity</field>
<field name="type_id" ref="crm.type_lead1"/>
@ -372,7 +366,6 @@
</record>
<record id="crm_case_abcfuelcounits0" model="crm.lead">
<field eval="80" name="probability"/>
<field name="partner_address_id" ref="base.res_partner_address_marcdubois0"/>
<field eval="1" name="active"/>
<field name="type">opportunity</field>
<field name="type_id" ref="crm.type_lead1"/>
@ -397,7 +390,6 @@
</record>
<record id="crm_case_dirtminingltdunits25" model="crm.lead">
<field eval="30" name="probability"/>
<field name="partner_address_id" ref="base.res_partner_address_wong"/>
<field eval="1" name="active"/>
<field name="type">opportunity</field>
<field name="partner_id" ref="base.res_partner_maxtor"/>
@ -426,7 +418,6 @@
</record>
<record id="crm_case_dirtminingltdunits10" model="crm.lead">
<field eval="30" name="probability"/>
<field name="partner_address_id" ref="base.res_partner_address_3000"/>
<field eval="1" name="active"/>
<field name="type">opportunity</field>
<field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/>
@ -450,7 +441,6 @@
</record>
<record id="crm_case_construstazunits0" model="crm.lead">
<field eval="60" name="probability"/>
<field name="partner_address_id" ref="base.res_partner_address_thymbra"/>
<field eval="1" name="active"/>
<field name="type">opportunity</field>
<field name="type_id" ref="crm.type_lead1"/>
@ -473,7 +463,6 @@
</record>
<record id="crm_case_ericdubois4" model="crm.lead">
<field eval="65" name="probability"/>
<field name="partner_address_id" ref="base.res_partner_address_ericdubois0"/>
<field eval="1" name="active"/>
<field name="type">opportunity</field>
<field name="type_id" ref="crm.type_lead1"/>
@ -496,7 +485,6 @@
<field name="country_id" ref="base.be"/>
</record>
<record id="crm_case_fabiendupont" model="crm.lead">
<field name="partner_address_id" ref="base.res_partner_address_fabiendupont0"/>
<field eval="1" name="active"/>
<field name="type">opportunity</field>
<field name="type_id" ref="crm.type_lead1"/>
@ -509,7 +497,6 @@
<field eval="'Need more info about the onsite intervention'" name="name"/>
</record>
<record id="crm_case_shelvehouse" model="crm.lead">
<field name="partner_address_id" ref="base.res_partner_address_henrychard1"/>
<field eval="1" name="active"/>
<field name="type">opportunity</field>
<field name="type_id" ref="crm.type_lead1"/>

View File

@ -81,7 +81,7 @@
<notebook colspan="4">
<page string="Lead">
<group colspan="4" col="2">
<field name="partner_name" string="Partner Name" />
<field name="partner_name" string="Company Name" />
</group>
<group colspan="2" col="4">
<separator string="Contact" colspan="4" col="4"/>
@ -259,7 +259,6 @@
date_start="date_action" color="user_id">
<field name="name" />
<field name="partner_name" />
<field name="partner_address_id" />
</calendar>
</field>
</record>
@ -479,10 +478,7 @@
string="Create"
attrs="{'invisible':[('partner_id','!=',False)]}"/>
</group>
<field name="partner_address_id"
string="Contact"
on_change="onchange_partner_address_id(partner_address_id, email_from)"
colspan="1" />
<group col="3" colspan="2">
<field name="email_from" string="Email" />
<button string="Mail"

View File

@ -47,8 +47,6 @@ class crm_meeting(crm_base, osv.osv):
# From crm.case
'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}),
'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}),
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
domain="[('partner_id','=',partner_id)]", states={'done': [('readonly', True)]}),
'section_id': fields.many2one('crm.case.section', 'Sales Team', states={'done': [('readonly', True)]}, \
select=True, help='Sales team to which Case belongs to.'),
'email_from': fields.char('Email', size=128, states={'done': [('readonly', True)]}, help="These people will receive email."),

View File

@ -7,7 +7,6 @@
<!--For Meetings-->
<record id="crm_case_followuponproposal0" model="crm.meeting">
<field name="partner_address_id" ref="base.res_partner_address_wong"/>
<field eval="1" name="active"/>
<field name="partner_id" ref="base.res_partner_maxtor"/>
<field name="user_id" ref="base.user_root"/>
@ -22,7 +21,6 @@
</record>
<record id="crm_case_initialdiscussion0" model="crm.meeting">
<field name="partner_address_id" ref="base.res_partner_address_2"/>
<field eval="1" name="active"/>
<field eval="7.0" name="duration"/>
<field name="partner_id" ref="base.res_partner_10"/>
@ -37,7 +35,6 @@
</record>
<record id="crm_case_discusspricing0" model="crm.meeting">
<field name="partner_address_id" ref="base.res_partner_address_zen"/>
<field eval="1" name="active"/>
<field eval="3.0" name="duration"/>
<field name="partner_id" ref="base.res_partner_3"/>
@ -52,7 +49,6 @@
</record>
<record id="crm_case_reviewneeds0" model="crm.meeting">
<field name="partner_address_id" ref="base.res_partner_address_15"/>
<field eval="1" name="active"/>
<field eval="6.0" name="duration"/>
<field name="partner_id" ref="base.res_partner_11"/>
@ -66,7 +62,6 @@
</record>
<record id="crm_case_changesindesigning0" model="crm.meeting">
<field name="partner_address_id" ref="base.res_partner_address_1"/>
<field eval="1" name="active"/>
<field eval="05" name="duration"/>
<field name="partner_id" ref="base.res_partner_9"/>
@ -81,7 +76,6 @@
</record>
<record id="crm_case_updatethedata0" model="crm.meeting">
<field name="partner_address_id" ref="base.res_partner_address_7"/>
<field eval="1" name="active"/>
<field name="partner_id" ref="base.res_partner_4"/>
<field name="user_id" ref="base.user_root"/>

View File

@ -60,9 +60,6 @@
<separator colspan="2" string="Contacts"/>
<field name="partner_id" string="Partner"
on_change="onchange_partner_id(partner_id)" />
<field name="partner_address_id"
string="Contact"
on_change="onchange_partner_address_id(partner_address_id, email_from)" />
<field name="email_from"/>
</group><group col="2" colspan="2">
<separator colspan="2" string="Visibility"/>
@ -156,7 +153,6 @@
</page>
<page string="Other">
<field name="user_id"/>
<field name="partner_address_id" select="1" />
<newline />
</page>
</notebook>

View File

@ -44,8 +44,6 @@ class crm_phonecall(crm_base, osv.osv):
select=True, help='Sales team to which Case belongs to.'),
'user_id': fields.many2one('res.users', 'Responsible'),
'partner_id': fields.many2one('res.partner', 'Partner'),
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
domain="[('partner_id','=',partner_id)]"),
'company_id': fields.many2one('res.company', 'Company'),
'description': fields.text('Description'),
'state': fields.selection([
@ -67,8 +65,6 @@ class crm_phonecall(crm_base, osv.osv):
domain="['|',('section_id','=',section_id),('section_id','=',False),\
('object_id.model', '=', 'crm.phonecall')]"),
'partner_phone': fields.char('Phone', size=32),
'partner_contact': fields.related('partner_address_id', 'name', \
type="char", string="Contact", size=128),
'partner_mobile': fields.char('Mobile', size=32),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
'date_closed': fields.datetime('Closed', readonly=True),
@ -95,7 +91,7 @@ class crm_phonecall(crm_base, osv.osv):
res = super(crm_phonecall, self).onchange_partner_address_id(cr, uid, ids, add, email)
res.setdefault('value', {})
if add:
address = self.pool.get('res.partner.address').browse(cr, uid, add)
address = self.pool.get('res.partner').browse(cr, uid, add)
res['value']['partner_phone'] = address.phone
res['value']['partner_mobile'] = address.mobile
return res
@ -153,7 +149,6 @@ class crm_phonecall(crm_base, osv.osv):
'date' : schedule_time,
'section_id' : section_id or False,
'partner_id': call.partner_id and call.partner_id.id or False,
'partner_address_id': call.partner_address_id and call.partner_address_id.id or False,
'partner_phone' : call.partner_phone,
'partner_mobile' : call.partner_mobile,
'priority': call.priority,
@ -180,9 +175,9 @@ class crm_phonecall(crm_base, osv.osv):
return self.write(cr, uid, ids, {'partner_id' : partner_id}, context=context)
def _call_create_partner_address(self, cr, uid, phonecall, partner_id, context=None):
address = self.pool.get('res.partner.address')
address = self.pool.get('res.partner')
return address.create(cr, uid, {
'partner_id': partner_id,
'parent_id': partner_id,
'name': phonecall.name,
'phone': phonecall.partner_phone,
})
@ -227,7 +222,6 @@ class crm_phonecall(crm_base, osv.osv):
def convert_opportunity(self, cr, uid, ids, opportunity_summary=False, partner_id=False, planned_revenue=0.0, probability=0.0, context=None):
partner = self.pool.get('res.partner')
address = self.pool.get('res.partner.address')
opportunity = self.pool.get('crm.lead')
opportunity_dict = {}
default_contact = False
@ -237,14 +231,12 @@ class crm_phonecall(crm_base, osv.osv):
if partner_id:
address_id = partner.address_get(cr, uid, [partner_id])['default']
if address_id:
default_contact = address.browse(cr, uid, address_id, context=context)
default_contact = partner.browse(cr, uid, address_id, context=context)
opportunity_id = opportunity.create(cr, uid, {
'name': opportunity_summary or call.name,
'planned_revenue': planned_revenue,
'probability': probability,
'partner_id': partner_id or False,
'partner_address_id': default_contact and default_contact.id,
'phone': default_contact and default_contact.phone,
'mobile': default_contact and default_contact.mobile,
'section_id': call.section_id and call.section_id.id or False,
'description': call.description or False,

View File

@ -5,7 +5,6 @@
((((((((((( Demo Cases )))))))))))
-->
<record id="crm_case_phone01" model="crm.phonecall">
<field name="partner_address_id" ref="base.res_partner_address_15"/>
<field eval="time.strftime('%Y-%m-04 10:45:36')" name="date"/>
<field name="partner_id" ref="base.res_partner_11"/>
<field eval="&quot;3&quot;" name="priority"/>
@ -21,7 +20,6 @@
<field eval="&quot;done&quot;" name="state"/>
</record>
<record id="crm_case_phone02" model="crm.phonecall">
<field name="partner_address_id" ref="base.res_partner_address_6"/>
<field eval="time.strftime('%Y-%m-11 11:19:25')" name="date"/>
<field name="partner_id" ref="base.res_partner_6"/>
<field eval="&quot;4&quot;" name="priority"/>
@ -37,7 +35,6 @@
<field eval="&quot;done&quot;" name="state"/>
</record>
<record id="crm_case_phone03" model="crm.phonecall">
<field name="partner_address_id" ref="base.res_partner_address_2"/>
<field eval="time.strftime('%Y-%m-15 17:44:12')" name="date"/>
<field name="partner_id" ref="base.res_partner_10"/>
<field eval="&quot;2&quot;" name="priority"/>
@ -68,7 +65,6 @@
<field eval="3.45" name="duration"/>
</record>
<record id="crm_case_phone05" model="crm.phonecall">
<field name="partner_address_id" ref="base.res_partner_address_10"/>
<field eval="time.strftime('%Y-%m-28 16:20:43')" name="date"/>
<field name="partner_id" ref="base.res_partner_5"/>
<field eval="&quot;3&quot;" name="priority"/>

View File

@ -28,7 +28,6 @@
<field name="date"/>
<field name="name"/>
<field name="partner_id"/>
<field name="partner_contact"/>
<field name="partner_phone"/>
<field name="user_id"/>
<field name="categ_id" invisible="1"/>
@ -91,8 +90,6 @@
attrs="{'invisible':[('partner_id','!=',False)]}"
groups="base.group_partner_manager"/>
<newline/>
<field name="partner_address_id"
on_change="onchange_partner_address_id(partner_address_id)" />
<newline/>
<field name="partner_mobile" />
</group>
@ -140,9 +137,7 @@
<field name="partner_id"
on_change="onchange_partner_id(partner_id)"
string="Partner" />
<field name="partner_address_id"
on_change="onchange_partner_address_id(partner_address_id)"
invisible="1"/>
<field name="partner_phone"
invisible="1"/>
<field name="user_id" groups="base.group_extended"/>

View File

@ -64,7 +64,6 @@ class res_partner(osv.osv):
'planned_revenue' : planned_revenue,
'probability' : probability,
'partner_id' : partner_id,
'partner_address_id' : address,
'categ_id' : categ_ids and categ_ids[0] or '',
'state' :'draft',
'type': 'opportunity'

View File

@ -24,7 +24,7 @@
<field name="inherit_id" ref="base.view_partner_tree"/>
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<field name="country" position="after">
<field name="phone" position="after">
<field name="section_id" completion="1" widget="selection"
groups="base.group_extended"/>
</field>

View File

@ -67,8 +67,6 @@ class crm_lead2opportunity_partner(osv.osv_memory):
ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id), ('type', '=', 'opportunity'), '!', ('state', 'in', ['done', 'cancel'])])
if ids:
opportunities.append(ids[0])
if not partner_id:
label = False
opp_ids = []

View File

@ -55,9 +55,9 @@ class crm_opportunity2phonecall(osv.osv_memory):
if 'note' in fields:
res.update({'note': opp.description})
if 'contact_name' in fields:
res.update({'contact_name': opp.partner_address_id and opp.partner_address_id.name or False})
res.update({'contact_name': opp.partner_id and opp.partner_id.name or False})
if 'phone' in fields:
res.update({'phone': opp.phone or (opp.partner_address_id and opp.partner_address_id.phone or False)})
res.update({'phone': opp.phone or (opp.partner_id and opp.partner_id.phone or False)})
return res
def action_schedule(self, cr, uid, ids, context=None):

View File

@ -38,17 +38,16 @@ class crm_phonecall2partner(osv.osv_memory):
phonecall_obj = self.pool.get('crm.phonecall')
partner_obj = self.pool.get('res.partner')
contact_obj = self.pool.get('res.partner.address')
rec_ids = context and context.get('active_ids', [])
value = {}
partner_id = False
for phonecall in phonecall_obj.browse(cr, uid, rec_ids, context=context):
partner_ids = partner_obj.search(cr, uid, [('name', '=', phonecall.name or phonecall.name)])
if not partner_ids and phonecall.email_from:
address_ids = contact_obj.search(cr, uid, ['|', ('phone', '=', phonecall.partner_phone), ('mobile','=',phonecall.partner_mobile)])
address_ids = partner_obj.search(cr, uid, ['|', ('phone', '=', phonecall.partner_phone), ('mobile','=',phonecall.partner_mobile)])
if address_ids:
addresses = contact_obj.browse(cr, uid, address_ids)
partner_ids = addresses and [addresses[0].partner_id.id] or False
addresses = partner_ids.browse(cr, uid, address_ids)
partner_ids = addresses and [addresses[0].parent_id.id] or False
partner_id = partner_ids and partner_ids[0] or False
return partner_id