25 lines
770 B
Plaintext
25 lines
770 B
Plaintext
trigger DuplicateContact on Contact (before insert) {
|
|
Set<String> emailAddresses = new Set<String>();
|
|
|
|
for (Contact contact : Trigger.New) {
|
|
if (emailAddresses.contains(contact.Email)) {
|
|
contact.Email.addError('Email already exists!');
|
|
} else {
|
|
emailAddresses.add(contact.Email);
|
|
}
|
|
}
|
|
|
|
List<Contact> existingContacts = [
|
|
SELECT Id, Email
|
|
FROM Contact
|
|
WHERE Email IN :emailAddresses
|
|
];
|
|
|
|
for (Contact contact : Trigger.New) {
|
|
for (Contact existingContact : existingContacts) {
|
|
if (contact.Email == existingContact.Email && contact.Id != existingContact.Id) {
|
|
contact.Email.addError('Email already exists!');
|
|
}
|
|
}
|
|
}
|
|
} |