binxie
2024-01-18 0e0dd1e20e7211f3c3c11d77a41090d998dfd06c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
trigger ConLostReportTrigger on Lost_Report__c (before insert, before update) {
 
    //deloitte-zhj 20231124 本地化导入 start
    if((!Test.isRunningTest())&&System.Label.ByPassTrigger.contains(UserInfo.getUserId())){
        return;
    }
    //deloitte-zhj 20231124 本地化导入 end
    
    if (Trigger.isBefore) {
        // 申請中かどうかのチェック
        List<Id> copyUserIds = new List<Id>();                      // 件数は Trigger.New と同じ
        List<Lost_Report__c> newList = new List<Lost_Report__c>();    // 件数は Trigger.New と同じ
        Lost_Report__c old = null;
        for (Lost_Report__c local : Trigger.New) {
            if ( Trigger.isUpdate) {
                old = Trigger.oldMap.get(local.Id);
            }
            // 申請中になったとき、ログインユーザーからプレセス用の上司を設定
            if ((Trigger.isUpdate && old.Status__c != local.Status__c && local.Status__c == '提交')
            ) {
                newList.add(local);
                copyUserIds.add(local.CreatedById);
            }
        }
        Map<Id, User> copyUserMap = new Map<Id, User>([
            SELECT Id, Name, JingliApprovalManager__c, BuchangApprovalManager__c FROM User WHERE Id IN :copyUserIds
        ]);
        for (Lost_Report__c lt : newList) {
            User loginUser = copyUserMap.get(lt.CreatedById);
            if (loginUser.JingliApprovalManager__c != null) {
                lt.Manager__c = loginUser.JingliApprovalManager__c;
            }
            lt.BuchangApprovalManager__c = loginUser.BuchangApprovalManager__c == null ? loginUser.Id : loginUser.BuchangApprovalManager__c;
        }
    }
 
}