You need to sign in to do that
Don't have an account?
SFDC Guest
separate trigger logic into helper class
Hi. Can you please keep below trigger into helper class.
trigger InvoiceSum on Invoice_Items__c (after insert, after delete, after undelete, after update) { set<Id> invIdSet = new set<Id>(); if(trigger.isinsert || trigger.isUpdate || trigger.Isundelete){ for(Invoice_Items__c invItem: Trigger.new){ if(Trigger.isInsert || Trigger.isUndelete || (invItem.Amount__c != Trigger.oldMap.get(invItem.Id).Amount__c || invItem.InvoiceFK__c != Trigger.oldMap.get(invItem.Id).InvoiceFK__c)) invIdSet.add(invItem.InvoiceFK__c); } } if(trigger.isUpdate || trigger.isDelete) { for(Invoice_Items__c invItem: Trigger.old){ if(Trigger.isDelete || (invItem.Amount__c != Trigger.newMap.get(invItem.Id).Amount__c || invItem.InvoiceFK__c != Trigger.newMap.get(invItem.Id).InvoiceFK__c)) invIdSet.add(invItem.InvoiceFK__c); } } List<Invoice__c> invList = [select id, Ammount__c, (Select Id, Amount__c from Invoice_Items__r) from Invoice__c Where ID IN: invIdSet]; for(Invoice__c inv : invList){ inv.Ammount__c = 0; for(Invoice_Items__c invItem : inv.Invoice_Items__r) { inv.Ammount__c += invItem.Amount__c; } } update invList; }
Use this code this will help you.
Regards,
Soyab
All Answers
Use this code this will help you.
Regards,
Soyab