张宇恒
2022-12-23 ec47f5ab5923a315bf22e0df5af7371e9668589e
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
trigger RepairQuoteTrigger on Repair_Quotation__c (before insert, before update,after insert,after update) {
    // ----------------------------------------------------------------------
    // ここより、承認プロセス用に、经理、部长、总监を更新する
    // ----------------------------------------------------------------------
    if (Trigger.isBefore) {
        User loginUser = null;
        Repair_Quotation__c old = null;
        Map<Id, Id> rprIdList = new Map<Id, Id>();
        for (Repair_Quotation__c local : Trigger.New) {
            if (Trigger.isInsert) {
                rprIdList.put(local.Repair__c, local.Repair__c);
            }
            if (Trigger.isUpdate) {
                old = Trigger.oldMap.get(local.Id);
            }
            // 「减价申请」になったとき、ログインユーザーからプロセス用の上司を設定
            if ((Trigger.isInsert
                    || old.Repair_quotation_status__c != local.Repair_quotation_status__c
                )
                && local.Repair_quotation_status__c == '减价申请填写完毕'
            ) {
                local.RC_Mail_Address__c = local.Repair_RC_Mail_Address__c;
                local.RC_Mail_Address1__c = local.Repair_RC_Mail_Address1__c;
                local.Assistant_Mail_Address__c = local.Repair_Assistant_Mail_Address__c;
                local.Incharge_Staff_EMail__c = local.Repair_Incharge_Staff_EMail__c;
                local.RepairCreator__c = local.Repair_Creator_Id__c;
                if (loginUser == null) {
                    loginUser = [SELECT Id, Name, SalesManager__c, JingliApprovalManager__c, BuchangApprovalManager__c, BuchangApprovalManagerSales__c, ZongjianApprovalManager__c, TongkuoZongjian__c FROM User WHERE Id = :UserInfo.getUserId()];
                }
                // xudan 20151109 項目の新規追加したくない、API名も変更したくない、ラベル名を変更、User.服务→修理.服务
                // 韩超,审批人改为FSE的经理,部长,总监和统括总监  2016/7/6
                local.SalesManager__c = local.FSE_Main_Mgr__c == null ? local.FSE_Main__c : local.FSE_Main_Mgr__c;
                local.BuchangApprovalManagerSales__c = local.FSE_Main_BuZhang__c == null ? local.FSE_Main__c : local.FSE_Main_BuZhang__c;
                local.ZongjianApprovalManager__c = local.FSE_Main_ZongJian__c == null ? local.FSE_Main__c : local.FSE_Main_ZongJian__c;
                local.TongkuoZongjian__c = local.FSE_Main_TongKuoZongJian__c == null ? local.FSE_Main__c : local.FSE_Main_TongKuoZongJian__c;
            }
            //20200102 HWAG-BJZ6AQ 服务本部减价申请 start 
            if ((Trigger.isInsert
                    || old.CutPriceStatus_Service__c != local.CutPriceStatus_Service__c
                )
                && local.CutPriceStatus_Service__c == '已提交'
            ) {
                local.RC_Mail_Address__c = local.Repair_RC_Mail_Address__c;
                local.RC_Mail_Address1__c = local.Repair_RC_Mail_Address1__c;
                local.Assistant_Mail_Address__c = local.Repair_Assistant_Mail_Address__c;
                local.Incharge_Staff_EMail__c = local.Repair_Incharge_Staff_EMail__c;
                local.RepairCreator__c = local.Repair_Creator_Id__c;
                local.ServiceCutPriceApplyPersion__c = UserInfo.getUserId();
                loginUser = [SELECT Id, Name, SalesManager__c, JingliApprovalManager__c, BuchangApprovalManager__c, BuchangApprovalManagerSales__c, ZongjianApprovalManager__c, TongkuoZongjian__c FROM User WHERE Id = :UserInfo.getUserId()];
                local.ServiceManager__c = loginUser.JingliApprovalManager__c==null?local.ServiceManager__c:loginUser.JingliApprovalManager__c;
                local.BuchangApprovalServiceManager__c = loginUser.BuchangApprovalManager__c == null?local.ServiceManager__c:loginUser.BuchangApprovalManager__c;
                local.ZongjianApprovalServiceManager__c = loginUser.ZongjianApprovalManager__c==null?local.BuchangApprovalServiceManager__c:loginUser.ZongjianApprovalManager__c;
            }
            //20200102 HWAG-BJZ6AQ 服务本部减价申请 end
            if (Trigger.isUpdate
                && ((local.Discount_request_approval_date__c != null
                    && (Trigger.oldMap.get(local.id).Discount_request_approval_date__c == null 
                        || local.Discount_request_approval_date__c != Trigger.oldMap.get(local.id).Discount_request_approval_date__c))
                || (local.Approvering_Date__c != null
                    && (Trigger.oldMap.get(local.id).Approvering_Date__c == null 
                        || local.Approvering_Date__c != Trigger.oldMap.get(local.id).Approvering_Date__c)
                    ))) {
                local.Last_approver_txt__c = UserInfo.getUserId();
            }
        }
        if (rprIdList.size() > 0) {
            Map<Id, Repair__c> rprMap = new Map<Id, Repair__c>([
                    Select Id, RC_Mail_Address__c,RC_Mail_Address1__c,Assistant_Mail_Address__c,Incharge_Staff_EMail__c,CreatedById
                      from Repair__c
                     where Id IN :rprIdList.values()
            ]);
            for (Repair_Quotation__c local : Trigger.New) {
                if (Trigger.isInsert) {
                    local.RC_Mail_Address__c = rprMap.get(local.Repair__c).RC_Mail_Address__c;
                    local.RC_Mail_Address1__c = rprMap.get(local.Repair__c).RC_Mail_Address1__c;
                    local.Assistant_Mail_Address__c = rprMap.get(local.Repair__c).Assistant_Mail_Address__c;
                    local.Incharge_Staff_EMail__c =  rprMap.get(local.Repair__c).Incharge_Staff_EMail__c;
                    local.RepairCreator__c = rprMap.get(local.Repair__c).CreatedById;
                }
            }
        }
    }
 
 
    if(Trigger.isAfter && (Trigger.isInsert || Trigger.isUpdate)){
        RepairQuoteTrigger.ChangeRepair(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
    }
}