You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

55 lines
2.0 KiB

from odoo import api, fields, models, _
class ResPartner(models.Model):
_inherit = "res.partner"
legal_name = fields.Char()
@api.onchange('name')
def onchange_legal_name(self):
if self.legal_name == '':
self.legal_name = self.name
@api.multi
def name_get(self):
res = []
for partner in self:
name_legal = partner._get_name()
res.append((partner.id, name_legal))
return res
def _get_name(self):
partner = self
name = partner.legal_name or ''
if partner.company_name or partner.parent_id:
if not name and partner.type in ['invoice', 'delivery', 'other']:
name = \
dict(self.fields_get(['type'])['type']
['selection'])[partner.type]
if not partner.is_company:
name = \
"%s, %s" % (partner.commercial_company_name or
partner.parent_id.legal_name, name)
if self._context.get('show_address_only'):
name = partner._display_address(without_company=True)
if self._context.get('show_address'):
name = name + "\n" + partner._display_address(without_company=True)
name = name.replace('\n\n', '\n')
name = name.replace('\n\n', '\n')
if self._context.get('address_inline'):
name = name.replace('\n', ', ')
if self._context.get('show_email') and partner.email:
name = "%s <%s>" % (name, partner.email)
if self._context.get('html_format'):
name = name.replace('\n', '<br/>')
if self._context.get('show_vat') and partner.vat:
name = "%s - %s" % (name, partner.vat)
return name
@api.depends('is_company', 'legal_name', 'parent_id.name',
'type', 'company_name')
def _compute_display_name(self):
for partner in self:
partner.display_name = partner.legal_name