You need to sign in to do that
Don't have an account?
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();
}
}
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 ...