You need to sign in to do that
Don't have an account?
Naveen Velkur 6
can anyone correct the below code, it is not fetching the all the transaction line items , qty for those sales orders. should be captured on visualforce page on each showroom request, downloadable in pdf.
public class ShowroomDetail_Ctl {
public Showroom_Request__c recShowroom {get;set;}
public List<Sales_Order__c> lstSalesOrders {get;set;}
public Map<Id,List<Transaction__c>> mapTransactions {get;set;}
public Map<Id,List<Transaction_Line__c>> mapTransactionLines {get;set;}
public ShowroomDetail_Ctl(ApexPages.StandardController controller){
recShowroom = new Showroom_Request__c();
lstSalesOrders = new List<Sales_Order__c>();
mapTransactions = new Map<Id,List<Transaction__c>>();
mapTransactionLines = new Map<Id,List<Transaction_Line__c>>();
String showroomId = ApexPages.currentpage().getparameters().get('id');
System.debug('showroomId : '+showroomId);
Set<String> setOfOrder = new Set<String>();
if(showroomId != null && showroomId.length() >= 15){
recShowroom = [SELECT Id,Name,Order_Number_1_BH__c,Order_Number_2_BH__c ,Order_Number_3_BH__c ,Order_Number_4_BH__c,
Order_Number_5_BH__c,Order_Number_6_BH__c,Order_Number_7_BH__c,Order_Number_8_BH__c ,Order_Number_9_BH__c,
Order_Number_10_BH__c,Order_Number_1_BSD__c,Order_Number_2_BSD__c,Order_Number_3_BSD__c,Order_Number_4_BSD__c
FROM Showroom_Request__c WHERE Id =: showroomId];
if(recShowroom.Id != null){
System.debug('Id : '+showroomId);
setOfOrder.add(recShowroom.Order_Number_1_BH__c);
setOfOrder.add(recShowroom.Order_Number_2_BH__c);
setOfOrder.add(recShowroom.Order_Number_3_BH__c);
setOfOrder.add(recShowroom.Order_Number_4_BH__c);
setOfOrder.add(recShowroom.Order_Number_5_BH__c);
setOfOrder.add(recShowroom.Order_Number_6_BH__c);
setOfOrder.add(recShowroom.Order_Number_7_BH__c);
setOfOrder.add(recShowroom.Order_Number_8_BH__c);
setOfOrder.add(recShowroom.Order_Number_9_BH__c);
setOfOrder.add(recShowroom.Order_Number_10_BH__c);
setOfOrder.add(recShowroom.Order_Number_1_BSD__c);
setOfOrder.add(recShowroom.Order_Number_2_BSD__c);
setOfOrder.add(recShowroom.Order_Number_3_BSD__c);
setOfOrder.add(recShowroom.Order_Number_4_BSD__c);
}
Set<Id> setOfSOIds = new Set<Id>();
for(Sales_Order__c eachSO : [SELECT Id,Name,(SELECT Id,Name,Sales_Order__c FROM SalesOrder__r) FROM Sales_Order__c WHERE Name IN: setOfOrder AND Name != null]){
lstSalesOrders.add(eachSO);
if(eachSO.SalesOrder__r != null && eachSO.SalesOrder__r.size() > 0)
mapTransactions.put(eachSO.Id,eachSO.SalesOrder__r);
setOfSOIds.add(eachSO.Id);
}
System.debug('mapTransactions : '+mapTransactions);
for(Transaction__c eachTran : [SELECT Id,Name,Sales_Order__c,(SELECT Id,Name FROM Invoice_Lines__r) FROM Transaction__c WHERE Sales_Order__c IN: setOfSOIds AND Sales_Order__c != null]){
if(eachTran.Invoice_Lines__r != null && eachTran.Invoice_Lines__r.size() > 0)
mapTransactionLines.put(eachTran.Sales_Order__c,eachTran.Invoice_Lines__r);
}
}
}
}
public Showroom_Request__c recShowroom {get;set;}
public List<Sales_Order__c> lstSalesOrders {get;set;}
public Map<Id,List<Transaction__c>> mapTransactions {get;set;}
public Map<Id,List<Transaction_Line__c>> mapTransactionLines {get;set;}
public ShowroomDetail_Ctl(ApexPages.StandardController controller){
recShowroom = new Showroom_Request__c();
lstSalesOrders = new List<Sales_Order__c>();
mapTransactions = new Map<Id,List<Transaction__c>>();
mapTransactionLines = new Map<Id,List<Transaction_Line__c>>();
String showroomId = ApexPages.currentpage().getparameters().get('id');
System.debug('showroomId : '+showroomId);
Set<String> setOfOrder = new Set<String>();
if(showroomId != null && showroomId.length() >= 15){
recShowroom = [SELECT Id,Name,Order_Number_1_BH__c,Order_Number_2_BH__c ,Order_Number_3_BH__c ,Order_Number_4_BH__c,
Order_Number_5_BH__c,Order_Number_6_BH__c,Order_Number_7_BH__c,Order_Number_8_BH__c ,Order_Number_9_BH__c,
Order_Number_10_BH__c,Order_Number_1_BSD__c,Order_Number_2_BSD__c,Order_Number_3_BSD__c,Order_Number_4_BSD__c
FROM Showroom_Request__c WHERE Id =: showroomId];
if(recShowroom.Id != null){
System.debug('Id : '+showroomId);
setOfOrder.add(recShowroom.Order_Number_1_BH__c);
setOfOrder.add(recShowroom.Order_Number_2_BH__c);
setOfOrder.add(recShowroom.Order_Number_3_BH__c);
setOfOrder.add(recShowroom.Order_Number_4_BH__c);
setOfOrder.add(recShowroom.Order_Number_5_BH__c);
setOfOrder.add(recShowroom.Order_Number_6_BH__c);
setOfOrder.add(recShowroom.Order_Number_7_BH__c);
setOfOrder.add(recShowroom.Order_Number_8_BH__c);
setOfOrder.add(recShowroom.Order_Number_9_BH__c);
setOfOrder.add(recShowroom.Order_Number_10_BH__c);
setOfOrder.add(recShowroom.Order_Number_1_BSD__c);
setOfOrder.add(recShowroom.Order_Number_2_BSD__c);
setOfOrder.add(recShowroom.Order_Number_3_BSD__c);
setOfOrder.add(recShowroom.Order_Number_4_BSD__c);
}
Set<Id> setOfSOIds = new Set<Id>();
for(Sales_Order__c eachSO : [SELECT Id,Name,(SELECT Id,Name,Sales_Order__c FROM SalesOrder__r) FROM Sales_Order__c WHERE Name IN: setOfOrder AND Name != null]){
lstSalesOrders.add(eachSO);
if(eachSO.SalesOrder__r != null && eachSO.SalesOrder__r.size() > 0)
mapTransactions.put(eachSO.Id,eachSO.SalesOrder__r);
setOfSOIds.add(eachSO.Id);
}
System.debug('mapTransactions : '+mapTransactions);
for(Transaction__c eachTran : [SELECT Id,Name,Sales_Order__c,(SELECT Id,Name FROM Invoice_Lines__r) FROM Transaction__c WHERE Sales_Order__c IN: setOfSOIds AND Sales_Order__c != null]){
if(eachTran.Invoice_Lines__r != null && eachTran.Invoice_Lines__r.size() > 0)
mapTransactionLines.put(eachTran.Sales_Order__c,eachTran.Invoice_Lines__r);
}
}
}
}
Because mapTransactions looks like a list of Transaction__c records,
but the "put" looks like it is adding a list of records which are not Transaction__c records.