You need to sign in to do that
Don't have an account?
Force.platform
after delete trigger
Hi all,
I want to update CustomAmmount(Custom field) on parent(Opportunity) when child(OpportunityLineItem) updated
but its not working in after delete event
Trigger:
trigger UpdateCustomAmmount on OpportunityLineItem (after insert, after update, after Undelete,after delete) {
if(Trigger.isAfter && (Trigger.isInsert || Trigger.isUpdate || Trigger.isUnDelete))
{
UpdateCustomAmmount_Handler.updateAmmount(Trigger.new);
}
/if(Trigger.isAfter ||Trigger.isDelete)
{
UpdateCustomAmmount_Handler.updateAmmount(Trigger.old);
}
}
Contoller:
public class UpdateCustomAmmount_Handler {
public static void updateAmmount(List<OpportunityLineItem> olt)
{
List<Id> listIds = new List<Id>();
system.debug('list of opp ids---'+listIds);
for (OpportunityLineItem childItem : olt) {
listIds.add(childItem.OpportunityId);
}
list<Opportunity> parentOpp = new List<Opportunity>([SELECT id, Custom_Ammount__c, Name,(SELECT ID, TotalPrice FROM OpportunityLineItems) FROM Opportunity WHERE ID IN :listIds]);
system.debug('list of opp with child---'+parentOpp);
for(Opportunity opp:parentOpp)
{
opp.Custom_Ammount__c = 0;
for(OpportunityLineItem item:opp.OpportunityLineItems)
{
opp.Custom_Ammount__c += item.TotalPrice;
}
}
If(parentOpp.size()>0){
update parentOpp;
}
}
}
I want to update CustomAmmount(Custom field) on parent(Opportunity) when child(OpportunityLineItem) updated
but its not working in after delete event
Trigger:
trigger UpdateCustomAmmount on OpportunityLineItem (after insert, after update, after Undelete,after delete) {
if(Trigger.isAfter && (Trigger.isInsert || Trigger.isUpdate || Trigger.isUnDelete))
{
UpdateCustomAmmount_Handler.updateAmmount(Trigger.new);
}
/if(Trigger.isAfter ||Trigger.isDelete)
{
UpdateCustomAmmount_Handler.updateAmmount(Trigger.old);
}
}
Contoller:
public class UpdateCustomAmmount_Handler {
public static void updateAmmount(List<OpportunityLineItem> olt)
{
List<Id> listIds = new List<Id>();
system.debug('list of opp ids---'+listIds);
for (OpportunityLineItem childItem : olt) {
listIds.add(childItem.OpportunityId);
}
list<Opportunity> parentOpp = new List<Opportunity>([SELECT id, Custom_Ammount__c, Name,(SELECT ID, TotalPrice FROM OpportunityLineItems) FROM Opportunity WHERE ID IN :listIds]);
system.debug('list of opp with child---'+parentOpp);
for(Opportunity opp:parentOpp)
{
opp.Custom_Ammount__c = 0;
for(OpportunityLineItem item:opp.OpportunityLineItems)
{
opp.Custom_Ammount__c += item.TotalPrice;
}
}
If(parentOpp.size()>0){
update parentOpp;
}
}
}
kindly Let me inform if it helps you and close your query by choosing best answer if you got your right answer so it can helps others
thanks
sfdcmonkey.com
its not working
Apex trigger UpdateCustomAmmount caused an unexpected exception, contact your administrator: UpdateCustomAmmount: execution of AfterInsert caused by: System.NullPointerException: Attempt to de-reference a null object: Class.UpdateCustomAmmount_Handler.updateAmmount: line 9, column 1
It should be before delete event and trigger.old