You need to sign in to do that
Don't have an account?
Cornelia Winn 3
Convert APEC Trigger to Class
Hello,
I'd like to convert this trigger to an APEX class so I can call it via the process builder. Any suggestions?
trigger SFDCALC on Service_to_Claim__c (before insert, before update) {
for(Service_to_Claim__c sc : Trigger.new) {
List<Service_to_Claim__c> service_to_claim = [SELECT
CPL_Amount__c,
CPL_Letter_Receipt_Date__c,
Date_CPL_Issued__c,
CPN_Amount__c,
CPN_Letter_Receipt_Date__c,
Date_CPN_Issued__c,
Final_Demand_Amount__c,
Final_Demand_Received__c,
Date_Final_Demand_Issued__c,
Final_Demand_Dispute_Amt__c,
Final_Demand_Dispute_Received__c,
Final_Demand_Dispute_Issued__c,
Refreshed_CP_Amount__c,
Refreshed_CP_Date__c,
CPL_CPN_Dispute_Adjusted_Amount__c,
CPL_CPN_Dispute_Response_Date__c,
CPL_CPN_Dispute_Issued__c,
CPL_Rec_d_w_Claim_Amt__c,
CPL_Rec_d_w_Claim_Date__c
FROM Service_to_Claim__c
WHERE Claim__c=:sc.Claim__c
AND id != :sc.Id];
List<Decimal> amount = new List<Decimal>();
List<Date> dt = new List<Date>();
/****Start of adding old records of servcie to claim******/
for(Service_to_Claim__c stc : service_to_claim){
amount.add(stc.Final_Demand_Amount__c);
dt.add(stc.Date_Final_Demand_Issued__c);
amount.add(stc.Final_Demand_Dispute_Amt__c);
dt.add(stc.Final_Demand_Dispute_Issued__c);
}
/****End of adding old records of servcie to claim******/
/********Strat adding the current service to claim record value*******/
amount.add(sc.Final_Demand_Amount__c);
dt.add(sc.Date_Final_Demand_Issued__c);
amount.add(sc.Final_Demand_Dispute_Amt__c);
dt.add(sc.Final_Demand_Dispute_Issued__c);
/********End of adding the current record of service to claim**********/
integer index;
Decimal FinalDemandAmount_AcuityCIC = amount.get(0);
Date FDA_Acuity_CIC_Date = dt.get(0);
system.debug('::index::'+index);
system.debug('::FinalDemandAmount_AcuityCIC::'+FinalDemandAmount_AcuityCIC);
system.debug('::FDA_Acuity_CIC_Date::'+FDA_Acuity_CIC_Date);
for(index = 0; index<amount.size(); index++){
/****check if there is null value in FDA_Acuity_CIC_Date ***/
if(dt[index]!=null && FDA_Acuity_CIC_Date == null){
FDA_Acuity_CIC_Date = dt[index];
FinalDemandAmount_AcuityCIC = amount[index];
}
/****compare the recent capture date calculation****/
if(dt[index] >= FDA_Acuity_CIC_Date){
if(dt[index] > FDA_Acuity_CIC_Date){
FinalDemandAmount_AcuityCIC = amount[index];
} else {
if(amount[index] != null){
if(FinalDemandAmount_AcuityCIC == null || FinalDemandAmount_AcuityCIC > amount[index]){
FinalDemandAmount_AcuityCIC = amount[index];
}
}
}
FDA_Acuity_CIC_Date = dt[index];
}
system.debug('::index::'+index);
system.debug('::FinalDemandAmount_AcuityCIC::'+FinalDemandAmount_AcuityCIC);
system.debug('::FDA_Acuity_CIC_Date::'+FDA_Acuity_CIC_Date);
}
update new Claim__c(
id = sc.Claim__c,
FDA_Acuity_CIC_Date__c = FDA_Acuity_CIC_Date,
FinalDemandAmount_AcuityCIC__c = FinalDemandAmount_AcuityCIC
);
}
}
I'd like to convert this trigger to an APEX class so I can call it via the process builder. Any suggestions?
trigger SFDCALC on Service_to_Claim__c (before insert, before update) {
for(Service_to_Claim__c sc : Trigger.new) {
List<Service_to_Claim__c> service_to_claim = [SELECT
CPL_Amount__c,
CPL_Letter_Receipt_Date__c,
Date_CPL_Issued__c,
CPN_Amount__c,
CPN_Letter_Receipt_Date__c,
Date_CPN_Issued__c,
Final_Demand_Amount__c,
Final_Demand_Received__c,
Date_Final_Demand_Issued__c,
Final_Demand_Dispute_Amt__c,
Final_Demand_Dispute_Received__c,
Final_Demand_Dispute_Issued__c,
Refreshed_CP_Amount__c,
Refreshed_CP_Date__c,
CPL_CPN_Dispute_Adjusted_Amount__c,
CPL_CPN_Dispute_Response_Date__c,
CPL_CPN_Dispute_Issued__c,
CPL_Rec_d_w_Claim_Amt__c,
CPL_Rec_d_w_Claim_Date__c
FROM Service_to_Claim__c
WHERE Claim__c=:sc.Claim__c
AND id != :sc.Id];
List<Decimal> amount = new List<Decimal>();
List<Date> dt = new List<Date>();
/****Start of adding old records of servcie to claim******/
for(Service_to_Claim__c stc : service_to_claim){
amount.add(stc.Final_Demand_Amount__c);
dt.add(stc.Date_Final_Demand_Issued__c);
amount.add(stc.Final_Demand_Dispute_Amt__c);
dt.add(stc.Final_Demand_Dispute_Issued__c);
}
/****End of adding old records of servcie to claim******/
/********Strat adding the current service to claim record value*******/
amount.add(sc.Final_Demand_Amount__c);
dt.add(sc.Date_Final_Demand_Issued__c);
amount.add(sc.Final_Demand_Dispute_Amt__c);
dt.add(sc.Final_Demand_Dispute_Issued__c);
/********End of adding the current record of service to claim**********/
integer index;
Decimal FinalDemandAmount_AcuityCIC = amount.get(0);
Date FDA_Acuity_CIC_Date = dt.get(0);
system.debug('::index::'+index);
system.debug('::FinalDemandAmount_AcuityCIC::'+FinalDemandAmount_AcuityCIC);
system.debug('::FDA_Acuity_CIC_Date::'+FDA_Acuity_CIC_Date);
for(index = 0; index<amount.size(); index++){
/****check if there is null value in FDA_Acuity_CIC_Date ***/
if(dt[index]!=null && FDA_Acuity_CIC_Date == null){
FDA_Acuity_CIC_Date = dt[index];
FinalDemandAmount_AcuityCIC = amount[index];
}
/****compare the recent capture date calculation****/
if(dt[index] >= FDA_Acuity_CIC_Date){
if(dt[index] > FDA_Acuity_CIC_Date){
FinalDemandAmount_AcuityCIC = amount[index];
} else {
if(amount[index] != null){
if(FinalDemandAmount_AcuityCIC == null || FinalDemandAmount_AcuityCIC > amount[index]){
FinalDemandAmount_AcuityCIC = amount[index];
}
}
}
FDA_Acuity_CIC_Date = dt[index];
}
system.debug('::index::'+index);
system.debug('::FinalDemandAmount_AcuityCIC::'+FinalDemandAmount_AcuityCIC);
system.debug('::FDA_Acuity_CIC_Date::'+FDA_Acuity_CIC_Date);
}
update new Claim__c(
id = sc.Claim__c,
FDA_Acuity_CIC_Date__c = FDA_Acuity_CIC_Date,
FinalDemandAmount_AcuityCIC__c = FinalDemandAmount_AcuityCIC
);
}
}
Please refer below code :