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