[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:
commit
e88e09aff5
|
@ -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}
|
||||
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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."),
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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=""3"" name="priority"/>
|
||||
|
@ -21,7 +20,6 @@
|
|||
<field eval=""done"" 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=""4"" name="priority"/>
|
||||
|
@ -37,7 +35,6 @@
|
|||
<field eval=""done"" 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=""2"" 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=""3"" name="priority"/>
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 = []
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue