completed assignment

This commit is contained in:
2025-04-02 17:50:49 +05:30
parent 35e7485001
commit 72f2541f58
32 changed files with 531 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
trigger Assign1 on Account (before insert, before update)
{
for (Account acc: trigger.new)
{
if(acc.Name.contains('Tech'))
{
acc.Industry = 'Technology';
}
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,13 @@
trigger AssignAccountOwner on Account (before insert)
{
Map<String, Id> industryUserMap = new Map<String, Id>{
'Technology' => 'UI1',
'Healthcare' => 'UI2'
};
for (Account acc : Trigger.new)
{
if (industryUserMap.containsKey(acc.Industry)) {
acc.OwnerId = industryUserMap.get(acc.Industry);
}
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,18 @@
trigger CategorizedOpprtunity on Opportunity (before insert, before update) {
for (Opportunity opp : Trigger.New)
{
if (opp.Amount != null)
{
if (opp.Amount < 10000)
{
opp.Category__c = 'Small';
}
else if (opp.Amount >= 10000 && opp.Amount < 50000)
{
opp.Category__c = 'Medium';
} else if (opp.Amount >= 50000) {
opp.Category__c = 'Large';
}
}
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,3 @@
trigger CreateCaseEmail on EmailMessage (before insert) {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,31 @@
trigger DiscountOpportunity on Opportunity (before insert,before update) {
Map<Decimal, Decimal> discountTiers = new Map<Decimal, Decimal>
{
100000 => 0.10,
50000 => 0.05
};
Decimal maxDiscount = 20000;
for (Opportunity opportunity : Trigger.New)
{
Decimal discountAmount = 0;
for (Decimal tierAmount : discountTiers.keySet())
{
if (opportunity.Amount >= tierAmount)
{
discountAmount = opportunity.Amount * discountTiers.get(tierAmount);
break;
}
}
if (discountAmount > maxDiscount) {
opportunity.Discount_Amount__c.addError('Maximum discount exceeded!');
} else {
opportunity.Discount_Amount__c = discountAmount;
}
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,25 @@
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!');
}
}
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,3 @@
trigger GenerateInvoiceNumber on Invoice (before insert) {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,10 @@
trigger PreventHighValue on Opportunity (before insert)
{
for (Opportunity opp : Trigger.Old)
{
if (opp.Amount != null && opp.Amount > 100000)
{
Trigger.OldMap.get(opp.Id).addError('Cannot delete high-value opportunities!');
}
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,3 @@
trigger TotalRevenue on Account (before insert) {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,3 @@
trigger UpdateAccount on Opportunity (before insert) {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,25 @@
trigger UpdateCase on CaseComment (before insert) {
Map<String, String> keywordToStatus = new Map<String, String> {
'resolved' => 'Closed',
'fixed' => 'Closed',
'completed' => 'Closed',
'reopen' => 'Reopened',
'reopened' => 'Reopened'
};
for (CaseComment comment : Trigger.New) {
Case theCase = [
SELECT Id, Status
FROM Case
WHERE Id = :comment.ParentId
];
for (String keyword : keywordToStatus.keySet()) {
if (comment.CommentBody.toLowerCase().contains(keyword.toLowerCase())) {
theCase.Status = keywordToStatus.get(keyword);
update theCase;
break;
}
}
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,14 @@
trigger ValidNumber on Contact (before insert)
{
String phonePattern = '(123) 456-7890';
for (Contact contact : Trigger.New)
{
if (!Pattern.matches(phonePattern, contact.Phone))
{
contact.Phone.addError('Invalid phone format!');
}
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>

View File

@@ -0,0 +1,31 @@
trigger ValidateAccount on Account (before insert) {
Set<String> accountNames = new Set<String>();
for (Account account : Trigger.New)
{
if (accountNames.contains(account.Name))
{
account.Name.addError('Account name already exists!');
}
else {
accountNames.add(account.Name);
}
}
List<Account> existingAccounts = [
SELECT Id, Name
FROM Account
WHERE Name IN :accountNames
];
for (Account account : Trigger.New)
{
for (Account existingAccount : existingAccounts)
{
if (account.Name == existingAccount.Name && account.Id != existingAccount.Id)
{
account.Name.addError('Account name already exists!');
}
}
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<status>Active</status>
</ApexTrigger>