You need to sign in to do that
Don't have an account?
GYAN ANDRUS
Query Inside the for loop,how to rectify this issue without changing this logic,can anyone help .URGENT!!!!!!!!!!!!!!!!!!
List <peer__Investment_Booking__c> TEMPInvestmentBookingList = new List<peer__Investment_Booking__c>();
peer__Investment_Booking__c TEMPInvestmentBooking1;
bookingOrderList = [SELECT Id, peer__Investor__c,Insured_Amount__c,Total_Insured_Amount__c FROM peer__Booking_Order__c WHERE peer__Investor__c =: account.Id];
/*List<Id> bookingId = new List<Id>();
for(peer__Booking_Order__c tempbookingOrder:bookingOrderList){
bookingId.add(tempbookingOrder.Id);
}
investmentBookingList = [SELECT peer__Investment_Amount__c,Insured_Percentage__c,Insured_Amount__c,Premium_Component__c,peer__Loan_Application__c
FROM peer__Investment_Booking__c WHERE peer__Booking_Order__c IN :bookingId];
for(j=0;j<investmentBookingList.size();j++)
{
investmentBooking = investmentBookingList.get(j);
TEMPInvestmentBookingList.add(investmentBooking);
}*/
for(i=0;i<bookingOrderList.size();i++)
{
bookingOrder = bookingOrderList.get(i);
investmentBookingList = [SELECT peer__Investment_Amount__c,Insured_Percentage__c,Insured_Amount__c,Premium_Component__c,peer__Loan_Application__c
FROM peer__Investment_Booking__c WHERE peer__Booking_Order__c =: bookingOrder.Id];
for(j=0;j<investmentBookingList.size();j++)
{
investmentBooking = investmentBookingList.get(j);
TEMPInvestmentBookingList.add(investmentBooking);
}
}
for(i=0;i<TEMPInvestmentBookingList.size();i++)
{
investmentBooking = TEMPInvestmentBookingList.get(i);
j=i+1;
while(j<TEMPInvestmentBookingList.size())
{
TEMPInvestmentBooking1 = TEMPInvestmentBookingList.get(j);
if(investmentBooking.peer__Loan_Application__c == TEMPInvestmentBooking1.peer__Loan_Application__c)
{
investmentBooking.peer__Investment_Amount__c = investmentBooking.peer__Investment_Amount__c + TEMPInvestmentBooking1.peer__Investment_Amount__c;
TEMPInvestmentBookingList.remove(j);
}
else{
j++;
}
}
}
peer__Investment_Booking__c TEMPInvestmentBooking1;
bookingOrderList = [SELECT Id, peer__Investor__c,Insured_Amount__c,Total_Insured_Amount__c FROM peer__Booking_Order__c WHERE peer__Investor__c =: account.Id];
/*List<Id> bookingId = new List<Id>();
for(peer__Booking_Order__c tempbookingOrder:bookingOrderList){
bookingId.add(tempbookingOrder.Id);
}
investmentBookingList = [SELECT peer__Investment_Amount__c,Insured_Percentage__c,Insured_Amount__c,Premium_Component__c,peer__Loan_Application__c
FROM peer__Investment_Booking__c WHERE peer__Booking_Order__c IN :bookingId];
for(j=0;j<investmentBookingList.size();j++)
{
investmentBooking = investmentBookingList.get(j);
TEMPInvestmentBookingList.add(investmentBooking);
}*/
for(i=0;i<bookingOrderList.size();i++)
{
bookingOrder = bookingOrderList.get(i);
investmentBookingList = [SELECT peer__Investment_Amount__c,Insured_Percentage__c,Insured_Amount__c,Premium_Component__c,peer__Loan_Application__c
FROM peer__Investment_Booking__c WHERE peer__Booking_Order__c =: bookingOrder.Id];
for(j=0;j<investmentBookingList.size();j++)
{
investmentBooking = investmentBookingList.get(j);
TEMPInvestmentBookingList.add(investmentBooking);
}
}
for(i=0;i<TEMPInvestmentBookingList.size();i++)
{
investmentBooking = TEMPInvestmentBookingList.get(i);
j=i+1;
while(j<TEMPInvestmentBookingList.size())
{
TEMPInvestmentBooking1 = TEMPInvestmentBookingList.get(j);
if(investmentBooking.peer__Loan_Application__c == TEMPInvestmentBooking1.peer__Loan_Application__c)
{
investmentBooking.peer__Investment_Amount__c = investmentBooking.peer__Investment_Amount__c + TEMPInvestmentBooking1.peer__Investment_Amount__c;
TEMPInvestmentBookingList.remove(j);
}
else{
j++;
}
}
}
I have udpated your code :
Hi pankaj.
Thanks for the Code,but got error while saving the class.please help
UEXPECTED TOKEN IN BELOW CODE
if(!mapBookingOrder.contains(peer.peer__Booking_Order__c))
{
mapBookingOrder.put(peer.peer__Booking_Order__c,new List<peer__Investment_Booking__c>);
}
mapBookingOrder.get(peer.peer__Booking_Order__c).add(peer);
}
APEX CLASS:
List <peer__Investment_Booking__c> TEMPInvestmentBookingList = new List<peer__Investment_Booking__c>();
peer__Investment_Booking__c TEMPInvestmentBooking1;
bookingOrderList = [SELECT Id, peer__Investor__c,Insured_Amount__c,Total_Insured_Amount__c FROM peer__Booking_Order__c WHERE peer__Investor__c =: account.Id];
/*List<Id> bookingId = new List<Id>();
for(peer__Booking_Order__c tempbookingOrder:bookingOrderList){
bookingId.add(tempbookingOrder.Id);
}
investmentBookingList = [SELECT peer__Investment_Amount__c,Insured_Percentage__c,Insured_Amount__c,Premium_Component__c,peer__Loan_Application__c
FROM peer__Investment_Booking__c WHERE peer__Booking_Order__c IN :bookingId];
for(j=0;j<investmentBookingList.size();j++)
{
investmentBooking = investmentBookingList.get(j);
TEMPInvestmentBookingList.add(investmentBooking);
}*/
Map<String,List<peer__Investment_Booking__c>> mapBookingOrder = new Map<String,List<peer__Investment_Booking__c>>();
for(peer__Investment_Booking__c peer : [SELECT peer__Investment_Amount__c,Insured_Percentage__c,Insured_Amount__c,Premium_Component__c,peer__Loan_Application__c
FROM peer__Investment_Booking__c WHERE peer__Booking_Order__c in: bookingOrderList]) {
if(!mapBookingOrder.contains(peer.peer__Booking_Order__c)) {
mapBookingOrder.put(peer.peer__Booking_Order__c,new List<peer__Investment_Booking__c>);
}
mapBookingOrder.get(peer.peer__Booking_Order__c).add(peer);
}
for(i=0;i<bookingOrderList.size();i++)
{
bookingOrder = bookingOrderList.get(i);
investmentBookingList = mapBookingOrder.get(bookingOrder.Id);//[SELECT peer__Investment_Amount__c,Insured_Percentage__c,Insured_Amount__c,Premium_Component__c,peer__Loan_Application__c
// FROM peer__Investment_Booking__c WHERE peer__Booking_Order__c =: bookingOrder.Id];
for(j=0;j<investmentBookingList.size();j++)
{
investmentBooking = investmentBookingList.get(j);
TEMPInvestmentBookingList.add(investmentBooking);
}
}
for(i=0;i<TEMPInvestmentBookingList.size();i++)
{
investmentBooking = TEMPInvestmentBookingList.get(i);
j=i+1;
while(j<TEMPInvestmentBookingList.size())
{
TEMPInvestmentBooking1 = TEMPInvestmentBookingList.get(j);
if(investmentBooking.peer__Loan_Application__c == TEMPInvestmentBooking1.peer__Loan_Application__c)
{
investmentBooking.peer__Investment_Amount__c = investmentBooking.peer__Investment_Amount__c + TEMPInvestmentBooking1.peer__Investment_Amount__c;
TEMPInvestmentBookingList.remove(j);
}
else{
j++;
}
}
}
for(i=0; i<TEMPInvestmentBookingList.size(); i++)
{
investmentBooking = TEMPInvestmentBookingList.get(i);
loanApplication = [SELECT Id, Borrower_Name__c,Loan_App_ID__c, Facility_Type__c, peer__Application_Date__c, peer__Requested_Loan_Amount__c,
peer__Term__c, Genesis_Term__c, Monthly_Interest_Rate__c, Annualized_IRR__c,peer__Remaining_Requested_Amount__c,Percent_Funded__c, peer__Percent_Funded__c,
peer__Expiry_Date__c,Insurance_Percentage__c,peer__Stage__c, Status__c,Premieum_Component__c,Loan_Type__c, Sector__c,peer__Loan__r.loan__Loan_Status__c,
peer__Loan__r.Updated_Loan_Status__c
FROM peer__Loan_Application__c
WHERE Id =: investmentBooking.peer__Loan_Application__c];
investorParticipatedFacilities = new WrapperInvestorParticipatedFacilities();
investorParticipatedFacilities.ApplicationID = loanApplication.Loan_App_ID__c;
investorParticipatedFacilities.LoanType = loanApplication.Loan_Type__c;
investorParticipatedFacilities.BorrowerName = loanApplication.Borrower_Name__c;
investorParticipatedFacilities.CLContractLoanStatus= loanApplication.peer__Loan__r.loan__Loan_Status__c;
investorParticipatedFacilities.UpdatedLoanStatus = loanApplication.peer__Loan__r.Updated_Loan_Status__c;
//Format DatePosted
Date tempDate = null;
DateTime dt = null;
tempDate = loanApplication.peer__Application_Date__c;
if(tempDate != null)
{
dt = DateTime.newInstance(tempDate.year(), tempDate.month(),tempDate.day());
String datePosted = dt.format('MMMM dd, yyyy');
investorParticipatedFacilities.DatePosted = datePosted;
}
investorParticipatedFacilities.LoanAmountRequested = loanApplication.peer__Requested_Loan_Amount__c;
investorParticipatedFacilities.Tenure = loanApplication.Genesis_Term__c;
investorParticipatedFacilities.InterestRatePM = loanApplication.Monthly_Interest_Rate__c;
investorParticipatedFacilities.AnnualizedIRR = loanApplication.Annualized_IRR__c;
if(loanApplication.peer__Stage__c != 'FUNDED')
investorParticipatedFacilities.Progress = loanApplication.peer__Percent_Funded__c;
else if (loanApplication.peer__Stage__c == 'FUNDED'|| loanApplication.peer__Stage__c == 'LIVE')
// || loanApplication.peer__Stage__c == 'LIVE'
investorParticipatedFacilities.Progress = loanApplication.Percent_Funded__c;
deadLineForFunding = (loanApplication.peer__Expiry_Date__c).format('MMMM dd, yyyy');
investorParticipatedFacilities.DeadlineForFunding = deadLineForFunding;
investorParticipatedFacilities.Status = loanApplication.Status__c;
investorParticipatedFacilities.FacilityType = loanApplication.Facility_Type__c;
investorParticipatedFacilities.LoanAmountInvested = investmentBooking.peer__Investment_Amount__c;
investorParticipatedFacilities.Sector = loanApplication.Sector__c;
investorParticipatedFacilities.RemainingRequestedAmount = loanApplication.peer__Remaining_Requested_Amount__c;
investorParticipatedFacilities.PremiumComponent = loanApplication.Premieum_Component__c;
investorParticipatedFacilities.InsuredPercentage = loanApplication.Insurance_Percentage__c;
investorParticipatedFacilitiesData.add(investorParticipatedFacilities);
}
//SENDING RESPONSE
res.investorParticipatedFacilitiesData = investorParticipatedFacilitiesData;
}
}
I missed to add () after list initialisation
if(!mapBookingOrder.contains(peer.peer__Booking_Order__c))
{
mapBookingOrder.put(peer.peer__Booking_Order__c,new List<peer__Investment_Booking__c>()); // here is the bug
}
mapBookingOrder.get(peer.peer__Booking_Order__c).add(peer);
}