I am trying to use the wrapper class variables values in my jscontroller and please help me
I have a
public Map<String,FinancialSummary> reservesSummaryHeader{}
In which I am using wrapper class as values so how can i access that wrapper class values using that MAP key
This is my APex class-
public with sharing class ClaimsController1 {
@AuraEnabled
public static Map<String,FinancialSummary> getallRecord(){
ClaimsController1 obj = new ClaimsController1();
return obj.reservesSummary;
}
@AuraEnabled
public Map<String,List<String>> transactionTypesMap{
get{
if(transactionTypesMap == NULL){
transactionTypesMap = new Map<String,List<String>>();
for(Selectoption sp : Utils.getPicklistValues('Reserve_Level_2__c', 'Financials__c')){
String mainLevel = sp.getValue().substringBefore('-');
if(!transactionTypesMap.containsKey(mainLevel)){
transactionTypesMap.put(mainLevel,new List<String>());
}
transactionTypesMap.get(mainLevel).add(sp.getValue());
}
}
return transactionTypesMap;
}
set;
}
@AuraEnabled
public Map<String,Decimal> paymentsSummaryHeader {
get{
if(paymentsSummaryHeader == null){
paymentsSummaryHeader = new Map<String,Decimal>();
for(String opt : transactionTypesMap.keySet()){
if(!paymentsSummaryHeader.containsKey(opt)){
paymentsSummaryHeader.put(opt,0.00);
}
}
for(AggregateResult agr :[SELECT Reserve_Main__c,SUM(Amount__c) total_Amount FROM Financials__c
WHERE Claim__c=:'a009000003aE68L' AND RecordType.DeveloperName='Payment' GROUP BY Reserve_Main__c]){
paymentsSummaryHeader.put((String)agr.get('Reserve_Main__c'),(Decimal)agr.get('total_Amount'));
}
}
return paymentsSummaryHeader;
}
set;
}
@AuraEnabled
public Map<String,Decimal> paymentsSummary {
get{
if(paymentsSummary == null){
paymentsSummary = new Map<String,Decimal>();
for(String mainOpt : transactionTypesMap.keySet()){
for(String lowerOpt : transactionTypesMap.get(mainOpt)){
if(!paymentsSummary.containsKey(lowerOpt)){
paymentsSummary.put(lowerOpt,0.00);
}
}
}
for(AggregateResult agr :[SELECT Reserve_Level_2__c,SUM(Amount__c) total_Amount FROM Financials__c
WHERE Claim__c=:'a009000003aE68L' AND RecordType.DeveloperName='Payment' GROUP BY Reserve_Level_2__c]){
paymentsSummary.put((String)agr.get('Reserve_Level_2__c'),(Decimal)agr.get('total_Amount'));
}
}
return paymentsSummary;
}
set;
}
@AuraEnabled
public Map<String,FinancialSummary> reservesSummaryHeader {
get{
if(reservesSummaryHeader == NULL){
reservesSummaryHeader = new Map<String,FinancialSummary>();
for(String opt : transactionTypesMap.keySet()){
if(!reservesSummaryHeader.containsKey(opt)){
reservesSummaryHeader.put(opt,new FinancialSummary());
}
}
for(AggregateResult agr :[SELECT Reserve_Main__c,SUM(Amount__c) total_Amount FROM Financials__c
WHERE Claim__c=:'a009000003aE68L' AND RecordType.DeveloperName='Estimate' AND is_Reserve_Reduction__c=false GROUP BY Reserve_Main__c]){
String type = (String)agr.get('Reserve_Main__c');
reservesSummaryHeader.put(type,new FinancialSummary(agr.get('total_Amount'),paymentsSummaryHeader.get(type)));
}
}
return reservesSummaryHeader;
}
set;
}
@AuraEnabled
public Map<String,FinancialSummary> reservesSummary {
get{
if(reservesSummary == NULL){
reservesSummary = new Map<String,FinancialSummary>();
for(String mainOpt : transactionTypesMap.keySet()){
for(String lowerOpt : transactionTypesMap.get(mainOpt)){
if(!reservesSummary.containsKey(lowerOpt)){
reservesSummary.put(lowerOpt,new FinancialSummary());
}
}
}
//system.debug('Hello123'+reservesSummary);
for(AggregateResult agr :[SELECT Reserve_Level_2__c,SUM(Amount__c) total_Amount FROM Financials__c
WHERE Claim__c=:'a009000003aE68L' AND RecordType.DeveloperName='Estimate' AND is_Reserve_Reduction__c=false GROUP BY Reserve_Level_2__c]){
String type = (String)agr.get('Reserve_Level_2__c');
reservesSummary.put(type,new FinancialSummary(agr.get('total_Amount'),paymentsSummary.get(type)));
}
//
}
system.debug('hellLokesh'+reservesSummary.keySet());
return reservesSummary;
}
set;
}
//Sub Class for Summary display
public class FinancialSummary{
//public String reserveCode;
public Decimal balanceAmount {get; set;}
public Decimal totalAmount {get; set;}
public Decimal newValue {get; set;}
public Decimal totalPaidAmount {get; set;}
public FinancialSummary(Object amount,Object paidAmount){//String reserveCode,
//this.reserveCode = reserveCode;
this.totalAmount = (Decimal)amount;
this.totalPaidAmount = (Decimal) paidAmount;
this.newValue = 0.00;
this.balanceAmount = this.totalAmount != null ? (this.totalAmount - (Decimal) paidAmount) : 0.00;
}
public FinancialSummary(){
this.balanceAmount = 0.00;
this.totalAmount = 0.00;
this.newValue = 0.00;
this.totalPaidAmount = 0.00;
//this.reserveCode = NULL;
}
}
}
and this is my js Controller
({
doInit : function(component, event, helper) {
//call apex class method
var action = component.get('c.getallRecord');
action.setCallback(this,function(response){
//store state of response
var state = response.getState();
if (state === "SUCCESS") {
//Create an empty array to store the map keys
var arrayMapKeys = [];
//Store the response of apex controller (return map)
var result = response.getReturnValue();
//Set the store response[map] to component attribute, which name is map and type is map.
component.set('v.mapValues', result);
for (var key in result) {
arrayMapKeys.push(key);
console.log('hello12'+result[key]);
var dbh = result[key];
console.log('hello12'+JSON.stringify(dbh));
}
//Set the list of keys.
component.set('v.mapKeyList', arrayMapKeys);
//component.set('v.objClassController',JSON.stringify(response.getReturnValue()));
}
});
$A.enqueueAction(action);
},
})
Best Answer
The attributes need to be @AuraEnabled. A getter/setter will not help you here.
You can read more about it in Returning Data from an Apex Server-Side Controller.