Skip to main content
Sruthi M (Dev) a posé une question dans #Apex
I have a trigger on event to update opportunity checkbox field , based on the values from all the related event records  check box field

suppose if opp has three events->if any one of the related event record has check box==true then update opp.checkbox==true else false
4 réponses
  1. 10 févr. 2015, 07:09
    Hi S_mac,

    Lets suppose API Name of  checkBox field on event be ChckBox__c and on opportunity be oppChckBox__c 

    trigger UpdateCheckBoxOnOpp on Event (after insert,after update) {

        Set<Id> oppIds = new Set<Id>();

        List<Opportunity> lstOppToUpdate = new List<Opportunity>();

        for (Event e : Trigger.new) {

                if (e.WhatId != null && string.valueof(e.WhatId).startsWith('006')) {

                    oppIds.add(e.WhatId);

                }

            }

            if(!oppIds.isEmpty()){

                for(Opportunity opp:[SELECT Id,oppChckBox__c,(SELECT Id FROM Events WHERE ChckBox__c = true) FROM Opportunity WHERE Id IN : oppIds]){

                    if(opp.Events.size() > 0){

                        if(!opp.oppChckBox__c){

                            opp.oppChckBox__c = true;

                            lstOppToUpdate.add(opp);

                        }

                    }

                    else if(opp.oppChckBox__c){

                        opp.oppChckBox__c = false;

                        lstOppToUpdate.add(opp);

                    }

                }

            }

            

        if(lstOppToUpdate.size() > 0){

            update lstOppToUpdate;

        }

    }

    Regards,m

    Bhanu Mahesh
0/9000