+ Start a Discussion
MikeCloudMikeCloud 

Apex can't get Contact, Acct..to show up in pdf

Person who did this is gone, everthing works in this Apex Class but the referred PDF does not show Account, Account Contacts or custom field Age__c information, Case Request auto number appears and so does Shopping_List_Notes__c.

 

Need Account, Contacts, Ages to populate.

 

public class GroceryUpdate {
//VERSION 1: SORT GROCERY LIST BY CATEGORY
//  PDF: INCLUDE THE Contact/Account Name
//  Account Members Ages
//VERSION 2: CHANGE QUANTITY TO INTEGER TO REMOVE DECIMAL POINT
//VERSION 3: GET TYPE OF FOOD ORDER and SHOPPING NOTES FROM REQUEST (CASE)
  
  Case request;
  //Name crequest;
  List <Grocery_Request__c> GRList;
  List <Name> AList;
  //List <Account> atmplist;
  Account aMembers;
  Set<Id> GItemIdSet           = new Set<Id>();
  Set<Id> gIdSet             = new Set<Id>();
  Map<Id,wGrocery> gMap         = new Map<Id,wGrocery>();
  Map<Integer,Id> gSortMap       = new Map<Integer,Id>();
  Map<Integer,wGrocery> pdfGSortMap   = new Map<Integer,wGrocery>();
  Map<Id,Integer> pdfIdxMap       = new Map<Id,Integer>();
  List<wGrocery> gList         = new List<wGrocery>();
  List<Grocery_Item__c> gItemList;
  List<Grocery_Item__c> pdfGItemList;
  String Aid;
  String AName;
  // Contact c;     //LG
  
//****************
// CONSTRUCTOR
//****************
  
  public GroceryUpdate() {
    Integer idx = 0;
    
    //VERSION 1: SORT BY CATEGORY AFTER WAREHOUSE ORDER
    pdfGItemList = [Select g.Warehouse_Order__c, g.Name, g.Id, 
      g.Grocery_Category__c, g.Available__c 
      From Grocery_Item__c g
      order by Warehouse_Order__c, Grocery_Category__c, Name ASC nulls last
      limit 1000];

    for (Grocery_Item__c gi : pdfGItemList) {
      pdfGSortMap.put(idx,new wGrocery(gi));
      pdfIdxMap.put(gi.id,idx);
      idx++;
    }
    system.debug('@@@pdfGSortMap=' + pdfGSortMap);
    system.debug('@@@pdfIdxMap=' + pdfIdxMap);
    
    //VERSION 1: SORT BY CATEGORY AFTER AVAILABLE
    gItemList = [Select g.Warehouse_Order__c, g.Name, g.Id, 
      g.Grocery_Category__c, g.Available__c 
      From Grocery_Item__c g
      order by Available__c, Grocery_Category__c, Name ASC nulls last
      limit 1000];
    
    idx = 0;
    String s = null;
    String oldHighlight = '#BDBDBD';
    
    for (Grocery_Item__c gi : gItemList) {
      gMap.put(gi.id,new wGrocery(gi));
      
      if (gi.Grocery_Category__c != s ) {
        s=gi.Grocery_Category__c;
        if (oldHighlight == null) oldHighlight = '#BDBDBD';
        else oldHighlight = null;
      }
      
      gMap.get(gi.id).highlight = oldHighlight;
      
      if (gi.Available__c == true) {
        gSortMap.put(idx,gi.id);
        idx++;
      }
    }
    
    for (Grocery_Item__c gi : gItemList) {
      if (gi.Available__c == false) {
        gSortMap.put(idx,gi.id);
        idx++;
      }
    }
    
    //VERSION 3: GET Type_of_Food_Order__c and Shopping_List_Notes__c
    
    //request = [Select c.Id, c.Subject, c.Contact.Name, c.ContactId, c.CaseNumber,
    //  c.Type_of_Food_Order__c, c.Shopping_List_Notes__c,  
    //  (Select Id, IsDeleted, Name, Request__c, Grocery_Item__c, Quantify__c 
    //    From Grocery_Requests__r) 
    //  From Case c
    //  where id = :ApexPages.currentPage().getParameters().get('id')];
    
    //GRList = request.Grocery_Requests__r;
    //system.debug('@@@GRList=' + GRList);

    //for (Grocery_Request__c GR : GRList) {
    //  gMap.get(GR.Grocery_Item__c).quantity = GR.Quantify__c.intValue();
    //  gIdSet.add(GR.Grocery_Item__c);
      
    //  pdfGSortMap.get(pdfIdxMap.get(GR.Grocery_Item__c)).quantity = GR.Quantify__c.intValue();
    //}
    
    request = [Select c.Id,c.Account, c.Subject, c.Name, c.ContactId, c.CaseNumber,
      c.Type_of_Food_Order__c, c.Shopping_List_Notes__c,  
      (Select Id, IsDeleted, Name, Request__c, Grocery_Item__c, Quantify__c 
        From Grocery_Requests__r) 
      From Case c
      where id = :ApexPages.currentPage().getParameters().get('id')];
    Aid=request.Account;
    GRList = request.Grocery_Requests__r;
    
    system.debug('@@@GRList=' + GRList);

    for (Grocery_Request__c GR : GRList) {
      gMap.get(GR.Grocery_Item__c).quantity = GR.Quantify__c.intValue();
      gIdSet.add(GR.Grocery_Item__c);
      
      pdfGSortMap.get(pdfIdxMap.get(GR.Grocery_Item__c)).quantity = GR.Quantify__c.intValue();
    }
    
    //if (Aid<>''){
      Account[] AL=[Select a.name,(select name, age__c,Order by age__c desc) from Account a where id=:request.Account];
      If (AL.size()>0){
        AName=AL[0].name;
        If (AL[0].Contacts__r.size()>0){
          AList=AL[0].__r;
        }
        
      }
      
      
      //ctmplist=[Select name,(select name, age__c from Account.Contacts__r) from Account where id=:request.Account];
       //if (ctmplist[0].Contacts__r.size() > 0){
        
      
      //}
        
      //AList=ctmplist[0].Contacts__r;
    //}
    
    
    //AList=[Select name, age__c from Contact where Account like '%a0fA00000022ltLIAQ%'];
    
  
    
    
    //VERSION 1: GET Contact INFO
    // a = [Select a.Social_Security_Number__c, a.SC_Photo_ID__c, a.Name, a.Id,    LG
    //  From Contact a
    //  where id = :request.ContactId
    //  limit 1];
      
  }
  


//**************************
// GETTER AND SETTER METHODS
//**************************
  
  //VERSION 1: GET CONTACT INFO
  //public Contact getContact(){return a;}    //LG
  public Case getRequest(){return request;}
  public List<wGrocery> getpdfGRItemList() {
    List<wGrocery> pdfGRItemList = new List<wGrocery>(); 
    for (Integer i = 0; i<pdfGSortMap.size(); i++) {
      if (pdfGSortMap.get(i).quantity > 0) pdfGRItemList.add(pdfGSortMap.get(i));
      
    }
    return pdfGRItemList;
  }
  
  public List<Account> getCHList() {
    return CHList;
  }
  
  public string getHName(){
    return HName;
  }
  
  public List<wGrocery> getGList(){
    List<wGrocery> displayGList = new List<wGrocery>();
    for (Integer idx = 0; idx<gSortMap.size(); idx++) {
      displayGList.add(gMap.get(gSortMap.get(idx)));
    }
    return displayGList;
  }
  
  public void setGList(List<wGrocery> GList){
    for (wGrocery gr : GList) gMap.put(gr.GI.id,gr);
  }
  
  public pageReference save() {
    List<Grocery_Request__c> insertGList = new List<Grocery_Request__c>();
    
    for (Grocery_Request__c gr : GRList) gr.Quantify__c = GMap.get(gr.Grocery_Item__c).quantity;
    if (GRList.size()>0) update GRList;
    
    for (wGrocery wGr : GMap.values()) {
      if (wGr.quantity > 0 && gIdSet.contains(wGr.GI.Id)== false) {
        Grocery_Request__c gr = new Grocery_Request__c(Request__c=request.id, 
          Grocery_Item__c=wGr.GI.Id, Quantify__c=wGr.quantity);
        
        insertGList.add(gr);
      }
    }
    
    if (insertGList.size()>0) insert insertGList;
    
    
    PageReference pRef = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
    pRef.setRedirect(true);
    return pRef;
    
  }
//************
//PAGE METHODS
//************

  public pageReference cancel() {  
    
    PageReference pRef = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
    pRef.setRedirect(true);
    return pRef;
    
  }

  public pageReference pdfPage() {  
    
    PageReference pRef = page.GroceryUpdatePDFPage;
    pRef.getParameters().put('id',ApexPages.currentPage().getParameters().get('id'));
    pRef.setRedirect(true);
    return pRef;
    
  }
  
  //WRAPPER CLASS FOR GROCERY
  public class wGrocery{
    public Integer quantity {get; set;}
    public Grocery_Item__c GI {get; set;}
    public String highlight {get;set;}
           
    public wGrocery(Grocery_Item__c GI){
      quantity = 0;
      this.GI = GI;
      highlight=null;
    }
  }
  
  //TEST METHOD    
  static testMethod void T1() {
    //
    Grocery_Request__c qGR = [Select Id, IsDeleted, Name, Request__c, Grocery_Item__c, Quantify__c 
        From Grocery_Request__c
        where IsDeleted = false
        and Grocery_Item__c != null 
        limit 1];
        
    Case qRequest = [Select c.Id, 
      (Select Id, IsDeleted, Name, Request__c, Grocery_Item__c, Quantify__c 
        From Grocery_Requests__r) 
      From Case c
      where id = :qGR.Request__c
      limit 1];
      
      //INITIALIZE PAGE AND STANDARD CONTROLLER      
      PageReference pageRef = Page.GroceryUpdatePage;
      Test.setCurrentPageReference(pageRef);
      ApexPages.currentPage().getParameters().put('id', qRequest.Id);    
 
     GroceryUpdate stdCon = new GroceryUpdate();
     
    Case tgetRequest = stdCon.getRequest();
     List<wGrocery> tgetGList = stdCon.getGList();
     stdCon.setGList(tgetGList);
    List<wGrocery> tgetpdfGItemList  = stdCon.getpdfGRItemList();
     pageReference tpref = stdCon.save();
    tpref = stdCon.cancel();
    tpref = stdCon.pdfPage();
    // Account tA = stdCon.getAccount();
  }  
}

SFFSFF

Without digging into the code, I would ask if the user who cannot see these objects and fields in the PDF can see the objects/fields in the user interface? Because this sounds like a profile issue to me ...