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
Naveen Velkur 6Naveen 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);
            }
           
        }
    }
}
ArleneArlene
Making sure I understand:  You have tables named Sales_Order__c and SalesOrder__c, and one is the parent of the other?
 
SELECT Id,Name,(SELECT Id,Name,Sales_Order__c FROM SalesOrder__r) FROM Sales_Order__c WHERE Name IN: setOfOrder AND Name != null

Because mapTransactions looks like a list of Transaction__c records, 
public Map<Id,List<Transaction__c>> mapTransactions {get;set;}

but the "put" looks like it is adding a list of records which are not Transaction__c records.
 
mapTransactions.put(eachSO.Id,eachSO.SalesOrder__r);