trigger EventOpportunityPileUp on Event (after delete, after insert, after update) {
|
List<String> oppIds = new List<String>();
|
if (Trigger.isDelete) {
|
List<SFDelete__c> dlist = new List<SFDelete__c>();
|
for (Event e : Trigger.old) {
|
dlist.add(new SFDelete__c(
|
delSfId__c = e.Id,
|
tableName__c = 'Event',
|
dataOwnerId__c = e.OwnerId
|
));
|
if (e.isScheduled__c && String.isBlank(e.EventC_ID__c)
|
&& !String.isBlank(e.Related_Opportunity1_ID__c))
|
oppIds.add(e.Related_Opportunity1_ID__c);
|
}
|
ControllerUtil.insSFDelete(dlist);
|
}
|
|
if (StaticParameter.EventOpportunityPileUpExeFlg) {
|
if (Trigger.isDelete) {
|
// 削除はすでにoppIdsに入れました
|
} else {
|
for (Event e : Trigger.new) {
|
if (e.isScheduled__c && String.isBlank(e.EventC_ID__c)
|
&& !String.isBlank(e.Related_Opportunity1_ID__c))
|
oppIds.add(e.Related_Opportunity1_ID__c);
|
}
|
}
|
}
|
System.debug('oppIds.size():::::'+oppIds.size());
|
if (oppIds.size() < 1) return;
|
|
// 先に親をlockする
|
List<Opportunity> opps = new List<Opportunity>();
|
List<Opportunity> oppList = ControllerUtil.oppSelectForLock(oppIds);
|
|
// 最大计划访问日
|
List<Event> es = ControllerUtil.selectForOpp_Last_Visit_Scheduled_Date(oppIds);
|
Map<String, DateTime> maxDateMap = new Map<String, DateTime>();
|
for (Event e : es) {
|
if (!maxDateMap.containsKey(e.Related_Opportunity1_ID__c)) {
|
maxDateMap.put(e.Related_Opportunity1_ID__c, e.ActivityDateTime);
|
}
|
}
|
|
for (Opportunity opp : oppList) {
|
if (opp.Last_Visit_Scheduled_Date__c != maxDateMap.get(opp.Id)) {
|
opps.add(opp);
|
opp.Last_Visit_Scheduled_Date__c = maxDateMap.get(opp.Id);
|
}
|
}
|
|
if (opps.size() > 0) {
|
StaticParameter.EscapeNFM007Trigger = true;
|
StaticParameter.EscapeOpportunityBefUpdTrigger = true;
|
StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true;
|
StaticParameter.EscapeSyncOpportunityTrigger = true;
|
System.debug('EventOpportunityPileUpから、商談トリガをEscape');
|
System.debug('EscapeNFM007Trigger:::::' + StaticParameter.EscapeNFM007Trigger);
|
System.debug('EscapeOpportunityBefUpdTrigger:::::' + StaticParameter.EscapeOpportunityBefUpdTrigger);
|
System.debug('EscapeOpportunityHpDeptUpdTrigger:::::' + StaticParameter.EscapeOpportunityHpDeptUpdTrigger);
|
System.debug('EscapeSyncOpportunityTrigger:::::' + StaticParameter.EscapeSyncOpportunityTrigger);
|
ControllerUtil.updOppList(opps);
|
}
|
}
|