You need to sign in to do that
Don't have an account?
Nickolay Ivanovich
Create Trigger calculate the sum from field another object on id
I have Estimates__c,Project_c
Project.Estimated_Hours__c should have sum of Estimates__c.Total_Hours__c on id,
Trigger should be on Estimates__c(after insert)
, Estimates__c.Project__c link to Project_c
PLS HELP
I am begginer
Project.Estimated_Hours__c should have sum of Estimates__c.Total_Hours__c on id,
Trigger should be on Estimates__c(after insert)
, Estimates__c.Project__c link to Project_c
PLS HELP
I am begginer
Try the below trigger:
trigger Test2 on Estimates__c(after insert, after update, after delete) {
Set<Id> Ids= new Set<Id>();
if(Trigger.isInsert || Trigger.isUpdate){
for(Estimates__c estObj: Trigger.new){
if(estObj.Project__c!=null){
Ids.add(estObj.Project__c);
}
}
}
if(Trigger.isDelete){
for(Estimates__c estObj: Trigger.old){
if(estObj.Project__c!=null){
Ids.add(estObj.Project__c);
}
}
}
if (!Ids.isEmpty()) {
List<Project__c> projectsToUpdate = new List<Project__c>();
for (AggregateResult ar : [SELECT SUM(Total_Hours__c), Project__c FROM Estimates__c
WHERE Project__c IN :Ids GROUP BY Project__c]) {
Id proID = (ID)ar.get('Project__c');
Decimal sum = (Decimal)ar.get('expr0');
Project__c proj = new Project__c(Id=proID);
proj.Estimated_Hours__c = sum;
projectsToUpdate.add(proj);
}
if (!projectsToUpdate.isEmpty()) {
update projectsToUpdate;
}
}
}
Can you please Let me know if it helps or not!!!
If it helps don't forget to mark this as a best answer!!!
Thanks,
Maharajan.C
All Answers
Try the below trigger:
trigger Test2 on Estimates__c(after insert, after update, after delete) {
Set<Id> Ids= new Set<Id>();
if(Trigger.isInsert || Trigger.isUpdate){
for(Estimates__c estObj: Trigger.new){
if(estObj.Project__c!=null){
Ids.add(estObj.Project__c);
}
}
}
if(Trigger.isDelete){
for(Estimates__c estObj: Trigger.old){
if(estObj.Project__c!=null){
Ids.add(estObj.Project__c);
}
}
}
if (!Ids.isEmpty()) {
List<Project__c> projectsToUpdate = new List<Project__c>();
for (AggregateResult ar : [SELECT SUM(Total_Hours__c), Project__c FROM Estimates__c
WHERE Project__c IN :Ids GROUP BY Project__c]) {
Id proID = (ID)ar.get('Project__c');
Decimal sum = (Decimal)ar.get('expr0');
Project__c proj = new Project__c(Id=proID);
proj.Estimated_Hours__c = sum;
projectsToUpdate.add(proj);
}
if (!projectsToUpdate.isEmpty()) {
update projectsToUpdate;
}
}
}
Can you please Let me know if it helps or not!!!
If it helps don't forget to mark this as a best answer!!!
Thanks,
Maharajan.C