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
RahulRahul 

Hello Friends Please help me optimize this trigger. Its working fine but Many Soql Queries used. And In test class also I get error as too many SOQL queries. Thanks

public class QuoteHandler_PayTerms_GenerateDoc {
    Public void Documenttemplate(list<SBQQ__Quote__c> newlist){
        list<SBQQ__QuoteTemplate__c> qt1 = [select id,Name,SBQQ__Default__c  from SBQQ__QuoteTemplate__c WHERE name =:'Auto Renew'];
        list<SBQQ__QuoteTemplate__c> qt2 = [select id,Name,SBQQ__Default__c  from SBQQ__QuoteTemplate__c WHERE name =:'Auto Renew with Auto pay'];
        list<SBQQ__QuoteTemplate__c> qt3 = [select id,Name,SBQQ__Default__c  from SBQQ__QuoteTemplate__c WHERE name =:'Basic Template'];
        list<SBQQ__QuoteTemplate__c> qt4 = [select id,Name,SBQQ__Default__c  from SBQQ__QuoteTemplate__c WHERE name =:'Basic Template with Auto Pay Form'];
        list<SBQQ__QuoteTemplate__c> qt5 = [select id,Name,SBQQ__Default__c  from SBQQ__QuoteTemplate__c WHERE name =:'Auto Renew with 3% Annual Increment with Autopay'];
        list<SBQQ__QuoteTemplate__c> qt6 = [select id,Name,SBQQ__Default__c  from SBQQ__QuoteTemplate__c WHERE name =:'Auto Renew with 3% Annual Increment'];
        list<SBQQ__QuoteTemplate__c> list1 = new list<SBQQ__QuoteTemplate__c>();
            for(SBQQ__Quote__c ss : newlist)
            {
                if(ss.Document_Template__c=='Auto Renew' && ( ss.SBQQ__PaymentTerms__c=='Monthly' ||  ss.SBQQ__PaymentTerms__c=='Quarterly')   )
                {
                    for(SBQQ__QuoteTemplate__c qq2 : qt2)
                    {
                        for(SBQQ__QuoteTemplate__c qq1 :qt1)
                        {
                            for(SBQQ__QuoteTemplate__c qq3 :qt3)
                            {
                                for(SBQQ__QuoteTemplate__c qq4 :qt4)
                                {
                                    for(SBQQ__QuoteTemplate__c qq5 :qt5)
                                    {
                                        for(SBQQ__QuoteTemplate__c qq6 :qt6)
                                        {
                                    qq2.SBQQ__Default__c = true;
                                    qq1.SBQQ__Default__c = false;
                                    qq3.SBQQ__Default__c = false;
                                    qq4.SBQQ__Default__c = false;
                                    qq5.SBQQ__Default__c = false;
                                    qq6.SBQQ__Default__c = false;
                                    list1.add(qq1);
                                    list1.add(qq2);
                                    list1.add(qq3);
                                    list1.add(qq4);
                                    list1.add(qq5);
                                    list1.add(qq6);
                                    }
                                    }
                               }
                            }
                        }
                    }
                }
                if(ss.Document_Template__c=='Auto Renew' && ( ss.SBQQ__PaymentTerms__c=='Annual' ||  ss.SBQQ__PaymentTerms__c=='Semi-annual' || ss.SBQQ__PaymentTerms__c=='Upfront') )
                {
                    for(SBQQ__QuoteTemplate__c qq2 : qt2)
                    {
                        for(SBQQ__QuoteTemplate__c qq1 :qt1)
                        {
                            for(SBQQ__QuoteTemplate__c qq3 :qt3)
                            {
                                for(SBQQ__QuoteTemplate__c qq4 :qt4)
                                {
                                    for(SBQQ__QuoteTemplate__c qq5 :qt5)
                                    {
                                        for(SBQQ__QuoteTemplate__c qq6 :qt6)
                                        {
                                    qq2.SBQQ__Default__c = False;
                                    qq1.SBQQ__Default__c = True;
                                    qq3.SBQQ__Default__c = False;
                                    qq4.SBQQ__Default__c = False;
                                    qq5.SBQQ__Default__c = false;
                                    qq6.SBQQ__Default__c = false;
                                    list1.add(qq1);
                                    list1.add(qq2);
                                    list1.add(qq3);
                                    list1.add(qq4);
                                    list1.add(qq5);
                                    list1.add(qq6);
                                    }
                                    }
                               }
                            }
                        }
                    }
                }
                if(ss.Document_Template__c=='Auto Renew 3' && ( ss.SBQQ__PaymentTerms__c=='Quarterly' ||  ss.SBQQ__PaymentTerms__c=='Monthly') )
                {
                    for(SBQQ__QuoteTemplate__c qq2 : qt2)
                    {
                        for(SBQQ__QuoteTemplate__c qq1 :qt1)
                        {
                            for(SBQQ__QuoteTemplate__c qq3 :qt3)
                            {
                                for(SBQQ__QuoteTemplate__c qq4 :qt4)
                                {
                                    for(SBQQ__QuoteTemplate__c qq5 :qt5)
                                    {
                                        for(SBQQ__QuoteTemplate__c qq6 :qt6)
                                        {
                                    qq2.SBQQ__Default__c = False;
                                    qq1.SBQQ__Default__c = False;
                                    qq3.SBQQ__Default__c = False;
                                    qq4.SBQQ__Default__c = False;
                                    qq5.SBQQ__Default__c = True;
                                    qq6.SBQQ__Default__c = false;
                                    list1.add(qq1);
                                    list1.add(qq2);
                                    list1.add(qq3);
                                    list1.add(qq4);
                                    list1.add(qq5);
                                    list1.add(qq6);
                                    }
                                    }
                               }
                            }
                        }
                    update list1;
                    }
                }

 
NehaDabas16NehaDabas16
Hi Rahul,

Please describe in brief, what you are trying to achieve here. It would be easier to read the code after that.