function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Pallavi DesireddyPallavi Desireddy 

Hi , i need to insert record once and rest of the time i need to update the inserted record

This is my code below,
Insertertion of AddInsurance__c object  is working fine ,But only once i need to insert and rest of time i need to update
trigger UpdatePatient on Contact (after insert) {
   
       // List<Contact> contactList = new List<Contact>();
        Contact con = [Select Id,Insurance__c,InsuranceSec__c,InsuranceTeri__c,InsurancePri__c,InsuranceSecd__c,
                       InsuranceTerit__c from Contact  where Id IN : Trigger.New];
        List<String> insuranceName = new List<String>();
        insuranceName.add(con.Insurance__c);
        insuranceName.add(con.InsuranceSec__c);
        insuranceName.add(con.InsuranceTeri__c);
        System.debug('insuranceName ====>'+insuranceName);
        
        Map<String,Id>  MapInsu =new  Map<String,Id>();
        List<Add_Insurance__c> addinsurances=new List<Add_Insurance__c>();
        List<Insurance__c> listInsurance=[Select Id,Patient__c,Name,Address__c, Co_Pay__c,Group_Number__c,Insured_Id__c,Address_1__c, State__c, City__c, Zip__c, Payer_Id__c
                                          from Insurance__c  where Name IN :insuranceName];
        System.debug('listInsurance ====>'+listInsurance.size());
        
        List<string> insNamelIst = new List<string>();
        for(Insurance__c ins : listInsurance){
            MapInsu.put(ins.Name,ins.Id);
        }
        for(Contact c : Trigger.New){
            Id insuranceId;
            for(String nam: insuranceName){
                if(c.Insurance__c ==nam && String.isNotBlank(c.Insurance__c)){
                    insuranceId = MapInsu.get(nam);
                    Add_Insurance__c addins=new Add_Insurance__c();
                    addins.Insurance__c=insuranceId;
                    addins.Patient__c=c.Id;
                    addins.From__c=c.From__c;
                    addins.To__c=c.To__c;
                    addins.Insurance_Type__c=c.Bill_Type__c;
                    addins.Insured__c=c.P_Insured_Name__c; 
                    addins.Status__c=c.Insurance_Status__c;
                    addins.Co_Pay__c=c.Copay__c;
                    addins.Group_Number__c=c.Group_No__c;
                    addins.Insured_Id__c=c.Insured_IdPri__c;
                    addins.Source_of_Payment__c=c.Source_Of_Payment__c;
                    addins.Insured_DOB__c=c.DOBpri__c;
                    addins.Insured_Gender__c=c.Insured_Gender__c;
                    addins.Relationship__c=c.Relationship__c;
                    addinsurances.add(addins);
                    System.debug('1 ====>'+listInsurance.size());
                    
                }else 
                    if(c.InsuranceSec__c == nam && String.isNotBlank(c.InsuranceSec__c)){
                        insuranceId = MapInsu.get(nam);
                        Add_Insurance__c addins=new Add_Insurance__c();
                        addins.Insurance__c=insuranceId;
                        addins.Patient__c=c.Id;
                        addins.From__c=c.FromSec__c;
                        addins.To__c=c.ToSec__c;
                        addins.Insurance_Type__c=c.Bill_TypeSec__c;
                        addins.Insured__c=c.Insured_NameSec__c; 
                        addins.Status__c=c.Insurance_StatusSec__c;
                        addins.Insured_Id__c=c.Insured_IdSec__c; 
                        addins.Co_Pay__c=c.Co_PaySec__c    ;
                        addins.Group_Number__c=c.Group_NoSec__c;
                        addins.Source_of_Payment__c=c.Source_of_PaymentSec__c;
                        addins.Insured_DOB__c=c.Insured_DOBSec__c;
                        addins.Insured_Gender__c=c.Insured_GenderSec__c;
                        addins.Relationship__c=c.RelationShipSec__c;
                        
                        addinsurances.add(addins);
                        System.debug('2 ====>'+listInsurance.size());
                    }else
                        if(c.InsuranceTeri__c ==nam && String.isNotBlank(c.InsuranceTeri__c)){
                            insuranceId = MapInsu.get(nam);
                            Add_Insurance__c addins=new Add_Insurance__c();
                            addins.Insurance__c=insuranceId;
                            addins.Patient__c=c.Id;
                            addins.From__c=c.FromTeri__c;
                            addins.To__c=c.ToTeri__c;
                            addins.Insurance_Type__c=c.Bill_TypeTeri__c;
                            addins.Insured__c=c.Insured_NameTeri__c; 
                            addins.Status__c=c.Insurance_StatusTeri__c;
                            addins.Insured_Id__c=c.Insured_IdTeri__c; 
                            addins.Co_Pay__c=c.Co_PayTeri__c;
                            addins.Source_of_Payment__c=c.Source_of_PaymentTeri__c;
                            addins.Group_Number__c=c.Group_NoTeri__c;
                            addins.Insured_DOB__c=c.Insured_DOBTeri__c;
                            addins.Insured_Gender__c=c.Insured_GenderTeri__c;
                            addins.Relationship__c=c.RelationShipTeri__c;
                            addinsurances.add(addins);
                            System.debug('3 ====>'+listInsurance.size());
                        }
            }
        }
        insert addinsurances;
        System.debug('addinsurances ====>'+addinsurances.size());
        System.debug('addinsurances ====>'+addinsurances);
    
    
     
}
Danish HodaDanish Hoda
Hi Pallavi,
Please use below code:
Note: I have presumed Add_Insurances__r as the child-relationship name between Contact and Add_Insurance__c.
trigger UpdatePatient on Contact (after insert) {
   
       // List<Contact> contactList = new List<Contact>();
        Contact con = [Select Id,Insurance__c,InsuranceSec__c,InsuranceTeri__c,InsurancePri__c,InsuranceSecd__c,
                       InsuranceTerit__c, (select id from Add_Insurances__r) from Contact  where Id IN : Trigger.New];
        List<String> insuranceName = new List<String>();
        insuranceName.add(con.Insurance__c);
        insuranceName.add(con.InsuranceSec__c);
        insuranceName.add(con.InsuranceTeri__c);
        System.debug('insuranceName ====>'+insuranceName);
        
        Map<String,Id>  MapInsu =new  Map<String,Id>();
        List<Add_Insurance__c> addinsurances=new List<Add_Insurance__c>();
        List<Insurance__c> listInsurance=[Select Id,Patient__c,Name,Address__c, Co_Pay__c,Group_Number__c,Insured_Id__c,Address_1__c, State__c, City__c, Zip__c, Payer_Id__c
                                          from Insurance__c  where Name IN :insuranceName];
        System.debug('listInsurance ====>'+listInsurance.size());
        
        List<string> insNamelIst = new List<string>();
        for(Insurance__c ins : listInsurance){
            MapInsu.put(ins.Name,ins.Id);
        }
        for(Contact c : [Select Id,Insurance__c,InsuranceSec__c,InsuranceTeri__c,InsurancePri__c,InsuranceSecd__c,
                       InsuranceTerit__c, (select id from Add_Insurances__r) from Contact  where Id IN : Trigger.New]){
            Id insuranceId;
            for(String nam: insuranceName){
                if(c.Insurance__c ==nam && String.isNotBlank(c.Insurance__c)){
					Add_Insurance__c addins=new Add_Insurance__c();
					if(!c.Add_Insurances__r.isEmpty())	addins = c.c.Add_Insurances__r[0].Id;
                    insuranceId = MapInsu.get(nam);
                    addins.Insurance__c=insuranceId;
                    addins.Patient__c=c.Id;
                    addins.From__c=c.From__c;
                    addins.To__c=c.To__c;
                    addins.Insurance_Type__c=c.Bill_Type__c;
                    addins.Insured__c=c.P_Insured_Name__c; 
                    addins.Status__c=c.Insurance_Status__c;
                    addins.Co_Pay__c=c.Copay__c;
                    addins.Group_Number__c=c.Group_No__c;
                    addins.Insured_Id__c=c.Insured_IdPri__c;
                    addins.Source_of_Payment__c=c.Source_Of_Payment__c;
                    addins.Insured_DOB__c=c.DOBpri__c;
                    addins.Insured_Gender__c=c.Insured_Gender__c;
                    addins.Relationship__c=c.Relationship__c;
                    addinsurances.add(addins);
                    System.debug('1 ====>'+listInsurance.size());
                }else 
                    if(c.InsuranceSec__c == nam && String.isNotBlank(c.InsuranceSec__c)){
						Add_Insurance__c addins=new Add_Insurance__c();
						if(!c.Add_Insurances__r.isEmpty())	addins = c.c.Add_Insurances__r[0].Id;
                        insuranceId = MapInsu.get(nam);
                        addins.Insurance__c=insuranceId;
                        addins.Patient__c=c.Id;
                        addins.From__c=c.FromSec__c;
                        addins.To__c=c.ToSec__c;
                        addins.Insurance_Type__c=c.Bill_TypeSec__c;
                        addins.Insured__c=c.Insured_NameSec__c; 
                        addins.Status__c=c.Insurance_StatusSec__c;
                        addins.Insured_Id__c=c.Insured_IdSec__c; 
                        addins.Co_Pay__c=c.Co_PaySec__c    ;
                        addins.Group_Number__c=c.Group_NoSec__c;
                        addins.Source_of_Payment__c=c.Source_of_PaymentSec__c;
                        addins.Insured_DOB__c=c.Insured_DOBSec__c;
                        addins.Insured_Gender__c=c.Insured_GenderSec__c;
                        addins.Relationship__c=c.RelationShipSec__c;
                        
                        addinsurances.add(addins);
                        System.debug('2 ====>'+listInsurance.size());
                    }else
                        if(c.InsuranceTeri__c ==nam && String.isNotBlank(c.InsuranceTeri__c)){
                            Add_Insurance__c addins=new Add_Insurance__c();
							if(!c.Add_Insurances__r.isEmpty())	addins = c.c.Add_Insurances__r[0].Id;
							insuranceId = MapInsu.get(nam);
                            addins.Insurance__c=insuranceId;
                            addins.Patient__c=c.Id;
                            addins.From__c=c.FromTeri__c;
                            addins.To__c=c.ToTeri__c;
                            addins.Insurance_Type__c=c.Bill_TypeTeri__c;
                            addins.Insured__c=c.Insured_NameTeri__c; 
                            addins.Status__c=c.Insurance_StatusTeri__c;
                            addins.Insured_Id__c=c.Insured_IdTeri__c; 
                            addins.Co_Pay__c=c.Co_PayTeri__c;
                            addins.Source_of_Payment__c=c.Source_of_PaymentTeri__c;
                            addins.Group_Number__c=c.Group_NoTeri__c;
                            addins.Insured_DOB__c=c.Insured_DOBTeri__c;
                            addins.Insured_Gender__c=c.Insured_GenderTeri__c;
                            addins.Relationship__c=c.RelationShipTeri__c;
                            addinsurances.add(addins);
                            System.debug('3 ====>'+listInsurance.size());
                        }
            }
        }
        upsert addinsurances;
        System.debug('addinsurances ====>'+addinsurances.size());
        System.debug('addinsurances ====>'+addinsurances);
    
    
     
}