I am building a trigger on an object called project board. so whenever a record is updated/inserted I want it to fire. It is linked to another object called project. So what I want is to count all the records inserted in a project board for one project. And based on the count of that, check or uncheck a checkbox field in Project object. Can someone clarify on the code as why is it wrong.( I know that :( )
trigger project_board_added on Project_Board__c (after insert, after update)
{
List<Id> pfid = new List<Id>();
for(Project_Board__c a : Trigger.new)
{
if(String.isBlank(a.Project__c) == false && String.isEmpty(a.Project__c) == false)
{
pfid.add(a.Project__c);
}
}
Integer pbcount = [Select count() From Project_Board__c Where Project_Firm__c != null AND Project__c=: pfid];
Map<Id, Project__c> proj = new Map<Id, Project__c>([Select Id,Project_Board_Added__c FROM Project__c Where id IN :pfid]);
if(pbcount == 0 )
{
for ( Project_Board__c u:Trigger.new)
{
Project__c a = proj.get( u.Project__c);
if(a!= null)
{
a.Project_Board_Added__c = false;
}
}
}
else if(pbcount > 0 )
{
for ( Project_Board__c u:Trigger.new)
{
Project__c a = proj.get( u.Project__c);
if(a!= null)
{
a.Project_Board_Added__c = true;
}
}
}
}
This is the alter code which I am trying to run but to no solution. This says error: Variable Project__c doesnt exist. ...
List pfid = new List(); if(String.isBlank(Project_Board__c.Project__c) == false && String.isEmpty(Project_Board__c.Project__c) == false) { pfid.add(Project_Board__c.Project__c); } Integer pbcount = [Select count() From Project_Board__c Where Project_Firm__c != null AND Project__c=: pfid];
Map proj = new Map([Select Id,Project_Board_Added__c FROM Project__c Where id IN :pfid]); if(pbcount == 0 ) { if(Project_Firm__c != null) {proj.get(Project__c).Project_Board_Added__c = false; } } else if(pbcount > 0 ) { if(Project_Firm__c != null { proj.get(Project__c).Project_Board_Added__c = true; } } }