def onchange_bsn_number(self): warning = {} for partner in self: if partner.bsn_number: # properly format the entered BSN partner.bsn_number = bsn.format(partner.bsn_number) # check is valid, otherwise display a warning if not bsn.is_valid(partner.bsn_number): msg = _('The BSN you entered (%s) is not valid.') warning = { 'title': _('Warning!'), 'message': msg % partner.bsn_number, } # search for another partner with the same BSN args = [('bsn_number', '=', partner.bsn_number), ('name', '!=', partner.name)] # refine search in case of multicompany setting if partner.company_id: args += [('company_id', '=', partner.company_id.id)] other_partner = self.search(args, limit=1) # if another partner exists, display a warning if other_partner: msg = _('Another person (%s) has the same BSN (%s).') warning = { 'title': _('Warning!'), 'message': msg % (other_partner.name, other_partner.bsn_number) } return {'warning': warning, }
def onchange_bsn_number(self): warning = {} if self.bsn_number: # properly format the entered BSN self.bsn_number = bsn.format(self.bsn_number) # check is valid, otherwise display a warning warning = self._warn_bsn_invalid() # search for another partner with the same BSN args = [("bsn_number", "=", self.bsn_number), ("name", "!=", self.name)] # refine search in case of multicompany setting if self.company_id: args += [("company_id", "=", self.company_id.id)] other_partner = self.search(args, limit=1) # if another partner exists, display a warning if other_partner: warning = other_partner._warn_bsn_existing() return {"warning": warning}