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;
|
}
|
}
|
|
}
|