Skip to main content

Need Trigger for before update account based on checkbox

In Account Sobject i have added two check-box's 1.Administrative Office and 2.Data Center

when user enter name and check anyone of it then Account Name is like Sam (A)/(D).

which i did with trigger using before insert event, Thats fine. Now when client edit the Account and change the checkbox it should update the Name again like Sam (D)/(A) according. But not updating with this code

here is my Trigger code for reference

trigger accName on Account (before insert, before update) {
    List<Account> acc;

    if (Trigger.isBefore) {
        if (Trigger.isInsert) {
            for(Account a:Trigger.New) {
                if(a.Administrative_Office__c == True) {
                    a.Name = a.Name + ' ( A ) ' ;
                }
                else if(a.Data_Center__c == True) {
                    a.Name = a.Name + ' ( D ) ' ;
                }
        else {
            if (Trigger.isUpdate) {
                List<Account> accn = new List<Account>();
                accn = [SELECT Id, Name 
                        FROM Account 
                        WHERE Id IN: Trigger.oldMap.keySet() 
                        LIMIT 1];

               for (Account au : accn) {
                   if(au.Administrative_Office__c == True) {
                       au.Name = au.Name + ' ( A ) ' ;
                   }
                   else if(au.Data_Center__c == True) {
                       au.Name = au.Name + ' ( D ) ' ;
                       //   au.Name = au.Name;
                   }
                   update accn;   
               } 
            }
        }
        insert a;   
        } 
      }
   }
}