You need to sign in to do that
Don't have an account?

need to stop this code firing twice after update
i have tried a couple of things but no success........need to stop the duplicate opps after updates.....pulling my hair out
trigger easycontacttrigger on Contact (before insert, after insert, before update, after update, before delete, after delete, after undelete){ if(Trigger.isUpdate && Trigger.isAfter ){ easycontacttriggerhelper.sellercon (Trigger.new); easycontacttriggerhelper.buyerconConveyancy(Trigger.new); easycontacttriggerhelper.buyerconMortgage(Trigger.new); easycontacttriggerhelper.buyerconhomebuyerreport(Trigger.new); easycontacttriggerhelper.buyerconutilityswitchgas(Trigger.new); easycontacttriggerhelper.buyerconutilityswitchwater(Trigger.new); easycontacttriggerhelper.buyerconutilityswitchelec(Trigger.new); easycontacttriggerhelper.buyerconremovals(Trigger.new); easycontacttriggerhelper.buyercongassafetycheck(Trigger.new); easycontacttriggerhelper.buyerconpattest(Trigger.new); easycontacttriggerhelper.buyerconaffiliates(Trigger.new); } if(Trigger.isinsert && Trigger.isafter){ easycontacttriggerhelper.sellercon2 (Trigger.new); easycontacttriggerhelper.buyerconConveyancy2(Trigger.new); easycontacttriggerhelper.buyerconMortgage2(Trigger.new); easycontacttriggerhelper.buyerconhomebuyerreport2(Trigger.new); easycontacttriggerhelper.buyerconutilityswitchgas2(Trigger.new); easycontacttriggerhelper.buyerconutilityswitchwater2(Trigger.new); easycontacttriggerhelper.buyerconutilityswitchelec2(Trigger.new); easycontacttriggerhelper.buyerconremovals2(Trigger.new); easycontacttriggerhelper.buyercongassafetycheck2(Trigger.new); easycontacttriggerhelper.buyerconpattest2(Trigger.new); easycontacttriggerhelper.buyerconaffiliates2(Trigger.new); } if(Trigger.isinsert && Trigger.isbefore){ easycontacttriggerhelper.contactuserfields(Trigger.new); } if(Trigger.isupdate && Trigger.isbefore){ easycontacttriggerhelper.contactuserfields(Trigger.new); } }
public with sharing class easycontacttriggerhelper { public static void sellercon (list<Contact> cons) { list<Easy_Opportunity__c> opplist = new list <Easy_Opportunity__c>(); recordtype[] tt = [Select r.Id, r.SobjectType, r.Name From RecordType r where sobjecttype ='Easy_Opportunity__c' and Name = 'Residential Sales']; for(Contact con : cons){ if( con.Stage__c == 'Lead' && con.contacttype__c != null && con.contacttype__C.containsany('Seller Residential') ) { Easy_Opportunity__c newopp = new Easy_Opportunity__c (); newopp.ownerid = con.allocated_user__c; newopp.name = 'Market Appraisal'; newopp.account_name__c = con.accountid; newopp.CurrencyIsoCode = con.currencyisocode; newopp.stage__c = 'New'; newopp.recordtypeid = tt[0].Id; newopp.Contact_Name__c = con.id; newopp.Close_Date__c = Date.today().addDays(2); opplist.add(newopp); } } //outsideforloop // if(oppList.size() > 0){ insert opplist; list<Product__c> pdlist = new list <Product__c>(); recordtype[] aa = [Select r.Id, r.SobjectType, r.Name From RecordType r where sobjecttype ='Product__c' and Name = 'Residential Sales']; for(Easy_Opportunity__c eachopp:opplist){ Product__c newpd = new Product__c(); newpd.name = 'Market Appraisal'; newpd.Sale_Price__c = 0.00; newpd.recordtypeid = aa[0].id; newpd.Easy_Opportunity__c = eachopp.id; pdlist.add(newpd); } insert pdlist; } } }
Then you'd update your trigger like
The static's lifetime is the life of the transaction so when you set it in your first trigger run it will stay set until the transaction is complete.