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

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;
}
}
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;
}
}
Please describe in brief, what you are trying to achieve here. It would be easier to read the code after that.