// 病院と戦略科室の訪問数
|
// Event 変更時、Event__c に 逆更新 <== 前提 EventのWFがない、あれば、isInsert から IDのMapを集めって、isUpdateから排除する
|
trigger EventSetHospitalCount on Event__c (after insert, after update, after delete) {
|
|
List<String> accParentList = new List<String>();
|
List<Date> actDateList1 = new List<Date>();
|
List<String> accParentParentList = new List<String>();
|
List<Date> actDateList2 = new List<Date>();
|
|
if (Trigger.isDelete) {
|
for (Event__c ec : Trigger.old) {
|
if (!String.isBlank(ec.AccountParentId__c)) {
|
accParentList.add(ec.AccountParentId__c);
|
actDateList1.add(ec.ActivityDate__c);
|
System.debug('1.delete ec.AccountParentId__c:::::' + ec.AccountParentId__c);
|
}
|
if (!String.isBlank(ec.AccountParentParentId__c)) {
|
accParentParentList.add(ec.AccountParentParentId__c);
|
actDateList2.add(ec.ActivityDate__c);
|
System.debug('2.delete ec.ActivityDate__c:::::' + ec.ActivityDate__c.format());
|
}
|
}
|
} else {
|
for (Event__c ec : Trigger.new) {
|
// 報告日は現在日時の前後100日以内のみ対応
|
if (ec.ActivityDate__c != null) {
|
Integer days = ec.ActivityDate__c.daysBetween(Date.today());
|
if (days < -ControllerUtil.ReportDayRange || days > ControllerUtil.ReportDayRange) continue;
|
}
|
|
//戦略科室変更チェック
|
if (Trigger.isInsert) {
|
if (!String.isBlank(ec.AccountParentId__c)) {
|
accParentList.add(ec.AccountParentId__c);
|
actDateList1.add(ec.ActivityDate__c);
|
System.debug('1.insert ec.AccountParentId__c:::::' + ec.AccountParentId__c);
|
}
|
if (!String.isBlank(ec.AccountParentParentId__c)) {
|
accParentParentList.add(ec.AccountParentParentId__c);
|
actDateList2.add(ec.ActivityDate__c);
|
System.debug('2.insert ec.ActivityDate__c:::::' + ec.ActivityDate__c.format());
|
}
|
}
|
if (Trigger.isUpdate) {
|
if (Trigger.oldMap.get(ec.Id).get('AccountParentId__c') != null
|
&& Trigger.oldMap.get(ec.Id).get('AccountParentId__c') != ec.AccountParentId__c) {
|
accParentList.add(String.valueOf(Trigger.oldMap.get(ec.Id).get('AccountParentId__c')));
|
actDateList1.add(ec.ActivityDate__c);
|
System.debug('1.update old.AccountParentId__c:::::' + String.valueOf(Trigger.oldMap.get(ec.Id).get('AccountParentId__c')));
|
}
|
if (Trigger.oldMap.get(ec.Id).get('AccountParentParentId__c') != null
|
&& Trigger.oldMap.get(ec.Id).get('AccountParentParentId__c') != ec.AccountParentParentId__c) {
|
accParentParentList.add(String.valueOf(Trigger.oldMap.get(ec.Id).get('AccountParentParentId__c')));
|
actDateList2.add(ec.ActivityDate__c);
|
System.debug('2.update old.ActivityDate__c:::::' + ec.ActivityDate__c.format());
|
}
|
if (!String.isBlank(ec.AccountParentId__c)) {
|
accParentList.add(ec.AccountParentId__c);
|
actDateList1.add(ec.ActivityDate__c);
|
System.debug('1.update new.AccountParentId__c:::::' + ec.AccountParentId__c);
|
}
|
if (!String.isBlank(ec.AccountParentParentId__c)) {
|
accParentParentList.add(ec.AccountParentParentId__c);
|
actDateList2.add(ec.ActivityDate__c);
|
System.debug('2.update new.ActivityDate__c:::::' + ec.ActivityDate__c.format());
|
}
|
}
|
}
|
}
|
//ControllerUtil.updateAccountMonth(accParentList, actDateList1, accParentParentList, actDateList2);
|
}
|