forked from Mapan/odoo17e
41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models, tools
|
|
|
|
|
|
class HelpdeskTicket(models.Model):
|
|
_inherit = 'helpdesk.ticket'
|
|
|
|
def _find_matching_partner(self, email_only=False, force_create=False, force_update=True):
|
|
""" Try to find a matching partner with available information on the
|
|
ticket, using notably customer's name, email, phone, ...
|
|
|
|
# TODO : Move this + the one from crm into mail_thread
|
|
|
|
:return: partner browse record
|
|
"""
|
|
self.ensure_one()
|
|
partner = self.partner_id
|
|
|
|
if not partner and self.partner_email:
|
|
partner = self.env['res.partner'].search([('email_normalized', '=', tools.email_normalize(self.partner_email))], limit=1)
|
|
|
|
if not partner and not email_only and self.partner_name:
|
|
partner = self.env['res.partner'].search([('name', 'ilike', self.partner_name)], limit=1)
|
|
|
|
if not partner and force_create:
|
|
partner = self.env['res.partner'].create({
|
|
'name': self.partner_name,
|
|
'email': self.partner_email,
|
|
'phone': self.partner_phone,
|
|
})
|
|
|
|
if partner and force_update:
|
|
if not partner.email and self.partner_email:
|
|
partner.email = self.partner_email
|
|
if not partner.phone and self.partner_phone:
|
|
partner.phone = self.partner_phone
|
|
|
|
return partner
|