| // 病院と戦略科室の訪問数 | 
| // 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); | 
| } |