//Trigger Check Duplicate
before insert, before update
Set leadid = new Set();
Map<String,Lead> phonemap = new Map<String,Lead>();
Map<String,Lead> emailmap = new Map<String,Lead>();
for(Lead l : Trigger.New){
if(phonemap.containsKey(l.Phone))
l.adderror('Another Lead with the same Phone no is already available');
else if(emailmap.containsKey(l.Email))
l.adderror('Another Lead with the same Email is already available');
else{
if(l.ID != null)
leadid.add(l.ID);
if(l.Phone != null)
phonemap.put(l.Phone,l);
if(l.Email != null)
emailmap.put(l.Email,l);
}
}
for(Lead L : [select ID,Phone,Email from Lead where ((Phone IN: phonemap.keyset() or Email IN: emailmap.keyset()) AND ID NOT IN: leadid)]){
Lead l1 = phonemap.get(l.Phone);
if(l1 != null)
l1.adderror('Another Lead with the same Phone no is already available');
else{
Lead l2 = emailmap.get(l.email);
if(l2 != null)
l2.adderror('Another Lead with the same Email is already available');
}
}
Scenario 11:-
//OpportunityTrigger
before insert, before update, before delete, after insert, after update, after delete, after undelete
List recname = new List();
TitanTrigger Titan=new TitanTrigger(); // titanTrigger is class
if(Trigger.isBefore){
if(Trigger.isUpdate || Trigger.isInsert){
for(Opportunity currentopportunity:Trigger.new){
Titan.Triggers.Attachmentsize.init(currentopportunity);
}
if(Trigger.isUpdate){
for(Opportunity currentopportunity:Trigger.new){
Titan.Triggers.StageNameError.init(currentopportunity,Trigger.oldmap.get(currentopportunity.id));
Titan.Triggers.stagevalidation.init(currentopportunity,Trigger.oldmap.get(currentopportunity.id));
}
}
}
}
if(Trigger.isBefore){
if(Trigger.isUpdate || Trigger.isInsert){
Titan.Triggers.Attachmentsize.Process(trigger.new);
if(Trigger.isInsert){
if(TitanTrigger.recursiveFlag)
Titan.Triggers.ownerchange.Process(trigger.new,1);
}
if(Trigger.isUpdate){
if(TitanTrigger.recursiveFlag)
{
recname=[select Id, Name, Description, DeveloperName, IsActive from RecordType where sobjecttype='Opportunity' ];
if(recname[0].Name !='Jewllery' ||recname[0].Name !='Watches')
{
system.debug('$$$$$$$$$$$$ '+recname[0].Name);
Titan.Triggers.ownerchange.Process(trigger.new,0);
Titan.Triggers.stagevalidation.Process(trigger.new);
}
}
}
}
}
Scenario 11:-
//sendInfoToQuote (By using Payment tracking bank details)
before insert, before update
List QL = New List();
set OppId = new set();
for(Payment_Tracker__c q1:Trigger.New){
oppId.add(q1.Opportunity__c);
}
for(Payment_Tracker__c pt:Trigger.new){
For(Quote Q:[select id,OpportunityId,Bank_Name__c,Cheque_Date__c,Cheque_No__c,Location_of_The_Bank__c,RTGS_No__c,
Advance_Received__c from Quote where opportunityId =:oppId]){
if(PT.Opportunity__c== Q.opportunityId && pt.Payment_Type__c=='Advance')
{
Q.Bank_Name__c = PT.Bank_Name__c;
Q.Cheque_Date__c= PT.Cheque_Date__c;
Q.Cheque_No__c=PT.Cheque_No__c;
Q.Location_of_The_Bank__c= PT.Location_of_The_Bank__c;
Q.RTGS_No__c= PT.RTGS_No__c;
Q.Advance_Received__c= PT.Amount_Recieved__c;
QL.add(Q);
}
}
}
update QL;
}
Scenario 13:-
//Trigger Update Completed Date
before insert,before update
for(Task t : Trigger.New){
if(t.Status == 'Completed')
t.Completed_Date_del__c = System.today();
}