Here Amount_c
is the formula field and Commission_Total__c
is the parent object field where the sum needs to be updated while changing the amount in child object.but the trigger is not firing..please give me solution
trigger totalCommissionAmountTrigger on Commission__c (after insert, after update)
{
public Map <ID, List<Commission__c >> mapIdList = NEW Map <ID, List <Commission__c >> ();
public List <Commission__c > commissionList = NEW List<Commission__c >();
public List <AVTRRT__Placement__c> placementList = NEW List <AVTRRT__Placement__c>();
Set <ID> placementId = NEW Set<ID>();
if( (Trigger.isInsert) || (Trigger.isUpdate) )
{
System.debug('**************');
for (Commission__c cms: Trigger.New)
{
if (cms.Placement__r.Id != null)
{
placementId.add(cms.Placement__r.Id);
system.debug('-----'+placementId);
}
}
commissionList = [ SELECT
Spread__c ,Commission__c, Amount__c, Placement__r.Id
FROM
Commission__c
WHERE
Placement__r.Id IN:placementId];
for (Commission__c commission:commissionList)
{
if (commission.Amount__c !=null)
{
mapIdList.put(commission.Placement__r.Id,commissionList);
}
}
placementList = [SELECT Commission_Total__c FROM AVTRRT__Placement__c WHERE Id IN:placementId];
List <AVTRRT__Placement__c> updatePlacementList = NEW List <AVTRRT__Placement__c>();
Decimal total = 0;
for(AVTRRT__Placement__c p:placementList)
{
for(Commission__c c:mapIdList.get(p.Id))
{
System.debug('////////////'+c.Amount__c);
if (c.Amount__c!=null)
{
total += c.Amount__c;
}
}
p.Commission_Total__c = total;
system.debug('--------'+p.Commission_Total__c);
updatePlacementList.add(p);
}
update updatePlacementList;
}
}