Approval From Apex Class Sales Force

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

triggerrigger CreateAllowanceAndDeductionApproval on Billing_Adjustments__c (aft

er insert,after update,before delete)


{
list<String> vaid = new list<string>();
if(trigger.isinsert && trigger.isafter)
{
for (Integer i = 0; i < Trigger.new.size(); i++)
{
if (Trigger.new[i].Amount__c > Trigger.new[i].Gross_Profit_5__c && Trigg
er.new[i].Type__c =='Credit')
{
Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitReques
t();
req.setComments('Submitted for approval. Please approve.');
req.setObjectId(Trigger.new[i].Id);
Approval.ProcessResult result = Approval.process(req);
System.debug('Submitted for approval successfully: '+result.isSucces
s());
}
}
}
if(trigger.isupdate && trigger.isafter)
{
Billing_Adjustments__c badj = Trigger.new[0];
if(badj.Payroll_Adjustments_Added__c == false)
{
if(badj.Account_VA__c != null)
{
Account_VA__c acva1 = [select id,VA_ID__c from Account_VA__c where id=:b
adj.Account_VA__c];
vaid.add(acva1.VA_ID__c);
}
if(vaid.size() > 0)
{
list<VA_Allowance__c> allowlist = new list<VA_Allowance__c>();
list<VA_Bonus__c> deductlist = new list<VA_Bonus__c>();
for(String vaidx :vaid)
{
system.debug('***********vaidx'+vaidx);
if(badj.Payroll_Adjustment_Typeformula__c == 'Allowance' && badj.Acco
unt_VA__c!=null && badj.Approval_Process__c =='Approved')
{
VA_Allowance__c allow = new VA_Allowance__c();
allow.VA__c = vaidx;
allow.Account__c = badj.AccountId__c;
allow.Billing_Adjustments__c = badj.id;
allow.Amount__c = badj.Amount__c;
allow.Status__c ='Active';
allow.Payroll_Adjustment_only__c = badj.Payroll_Adjustment_only__c
;
allow.Type__c = badj.payroll_type__c;
allow.mode__c = badj.Mode1__c;
allow.Frequency__c = badj.Frequency1__c;

allow.Notes__c = badj.PayrollNotes__c;
allowlist.add(allow);
}
system.debug('****allst'+allowlist);
if(badj.Payroll_Adjustment_Typeformula__c == 'Deduction' && badj.Accou
nt_VA__c!=null && badj.Approval_Process__c =='Approved')
{
VA_Bonus__c deduct = new VA_Bonus__c();
deduct.New_Our_VA__c = vaidx;
deduct.Account__c = badj.AccountId__c;
deduct.Payroll_Adjustment_only__c = badj.Payroll_Adjustment_only__c;
deduct.Amount__c = badj.Amount__c;
deduct.Status__c ='Active';
deduct.Billing_Adjustments__c = badj.id;
deduct.Type__c = badj.payroll_type__c;
deduct.Adjustment__c=badj.Deduction_Start_date__c;
deduct.Adjustment_End_date__c =badj.Deduction_end_date__c;
deduct.mode__c = badj.Mode1__c;
deduct.Notes__c = badj.PayrollNotes__c;
deduct.Bonus_creditdate__c = badj.Frequency1__c;
deductlist.add(deduct);
}
system.debug('****deductlistt'+deductlist);
}
Billing_Adjustments__c badjupdate = new Billing_Adjustments__c();
badjupdate = [select id,Payroll_Adjustments_Added__c from Billing_Adjus
tments__c where id=:badj.id];
badjupdate.Payroll_Adjustments_Added__c = true;
update badjupdate;
if(!allowlist.isEmpty())
{
insert allowlist;
}
if(!deductlist.isEmpty())
{
insert deductlist;
}
}
}
}
if(trigger.isbefore && trigger.isdelete)
{
Billing_Adjustments__c badjold = Trigger.old[0];
if(badjold.Payroll_Adjustment_Typeformula__c == 'Allowance' && badjold.Ap
proval_Process__c =='Approved' && badjold.Account_VA__c != null)
{
VA_Allowance__c allowdel = new VA_Allowance__c();
allowdel = [select id from VA_Allowance__C where Billing_Adjustments
__c =: badjold.id limit 1];
if(allowdel != null)
{
delete allowdel;
}
}
if(badjold.Payroll_Adjustment_Typeformula__c == 'Deduction' && badjold.A

pproval_Process__c =='Approved' && badjold.Account_VA__c != null)


{
VA_Bonus__c deductdel = new VA_Bonus__c();
deductdel = [select id from VA_Bonus__c where Billing_Adjustments__
c =: badjold.id limit 1];
if(deductdel != null)
{
delete deductdel;
}
}
}
}

You might also like