mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[WIP] Folio Group Management (#31)
* [WIP] Folio Checkins * [WIP] Process Partner checkin Import * [WIP] Process Partner checkin Import * [IMP] key fields to partner creation * [IMP] Views * [IMP] Folio Views
This commit is contained in:
@@ -93,3 +93,33 @@ class ResPartner(models.Model):
|
||||
raise models.ValidationError(_("Sale Channel must be entered"))
|
||||
if not record.is_agency and record.sale_channel_id:
|
||||
record.sale_channel_id = None
|
||||
|
||||
@api.constrains("mobile", "email")
|
||||
def _check_duplicated(self):
|
||||
for record in self:
|
||||
partner, field = record._search_duplicated()
|
||||
if partner:
|
||||
raise models.ValidationError(
|
||||
_(
|
||||
"Partner %s found with same %s (%s)",
|
||||
partner.name,
|
||||
partner._fields[field].string,
|
||||
getattr(record, field),
|
||||
)
|
||||
)
|
||||
|
||||
def _search_duplicated(self):
|
||||
self.ensure_one()
|
||||
partner = False
|
||||
for field in self._get_key_fields():
|
||||
if getattr(self, field):
|
||||
partner = self.search(
|
||||
[(field, "=", getattr(self, field)), ("id", "!=", self.id)]
|
||||
)
|
||||
if partner:
|
||||
field = field
|
||||
return partner, field
|
||||
|
||||
@api.model
|
||||
def _get_key_fields(self):
|
||||
return ["mobile", "email"]
|
||||
|
||||
Reference in New Issue
Block a user