I am trying to write a Trigger. I have 2 objects.
- Timecard
pse__Timecard_Header__c
- Period
c2g__codaPeriod__c
In Timecard object, I have a field called Project pse__Project__r
. Inside this field I have a field Region Id pse__Region__r
.
Now, in Period Object I have a field company id c2g__OwnerCompany__c
.
I am trying to compare the region id (Timecard object) with company id (period object). I have the following code written. I just want the final step to be done i.e. to get the value from map so that I can compare it.
trigger Timecard on pse__Timecard_Header__c (after insert) {
List<pse__Timecard_Header__c> tc_list = [select Id, pse__Project__r.pse__Region__r.ffpsai__OwnerCompany__r.Id
from pse__Timecard_Header__c
where Id IN :Trigger.newMap.KeySet()];
Map<id, id> timecardAndCompanyMap = new Map<id, id> ();
for (pse__Timecard_Header__c tc : tc_list)
{
timecardAndCompanyMap.put(tc.Id, tc.pse__Project__r.pse__Region__r.ffpsai__OwnerCompany__r.Id);
}
List <c2g__codaPeriod__c> periodDetails = [Select Id, c2g__StartDate__c,c2g__EndDate__c, c2g__OwnerCompany__c, c2g__Closed__c
from c2g__codaPeriod__c
where c2g__StartDate__c IN: tc_set
and c2g__OwnerCompany__c =: timecardAndCompanyMap.get(id)];
}`