buli
2023-06-05 18bf19076af649baa562d3d9cf264386ff1677f9
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
trigger ISOppoDemand_Trigger on IS_Opportunity_Demand__c (before insert,before update,after insert,after update) {
    boolean UpdateOppor{get;set;}
    List<Id> copyUserIds = new List<Id>();
    List<IS_Opportunity_Demand__c> newList = new List<IS_Opportunity_Demand__c>();
    if (Trigger.isInsert) {
        if(Trigger.isBefore){
 
            Map<id,Integer> isoCountMap = new Map<id,Integer>();
            isoCountMap = ISO_DemandOperAndDemonsController.setNameForNew(Trigger.new);
            system.debug(isoCountMap);
            for(IS_Opportunity_Demand__c iso : Trigger.new){
                iso.Opportunity_sub_owner__c = iso.Opportunity_sub_ownerID__c;
                iso.Name_Index__c = 1+(isoCountMap.get(iso.Opportunity_ID__c)==null?0:(isoCountMap.get(iso.Opportunity_ID__c)));
                isoCountMap.get(iso.Opportunity_ID__c);
            }
        }
        if(Trigger.isAfter){
        }
    }
    if (Trigger.isUpdate) {
        
        if(Trigger.isAfter){
            UpdateOppor = ISO_DemandOperAndDemonsController.UpdateMotherOpportunity(Trigger.old,Trigger.new);
        }
    }
    if(Trigger.isBefore&&(Trigger.isInsert||trigger.isUpdate)){
            IS_Opportunity_Demand__c old = null;
        if(Trigger.oldMap!=null){
            for(IS_Opportunity_Demand__c iso: Trigger.new){
                old = Trigger.oldMap.get(iso.Id);
                if (Trigger.isInsert
                            || (Trigger.isUpdate && old.Submit_Date__c != iso.Submit_Date__c && iso.Func_SOD_Status__c == '02 已提交')
                            || (Trigger.isUpdate && old.OwnerId != iso.OwnerId)
                    ) {
                        newList.add(iso);
                        //if (Trigger.isInsert || (Trigger.isUpdate && old.applyUser__c != iso.applyUser__c)) {
                        copyUserIds.add(iso.OwnerId);
                        //} else {
                        //    copyUserIds.add(UserInfo.getUserId());
                        //}
                    }
            }
        }else{
            for(IS_Opportunity_Demand__c iso: Trigger.new){
                newList.add(iso);
                //if (Trigger.isInsert || (Trigger.isUpdate && old.applyUser__c != iso.applyUser__c)) {
                copyUserIds.add(iso.OwnerId);
            }
        }
        
        if (copyUserIds.size() > 0) {
                Map<Id, User> copyUserMap = new Map<Id, User>([
                    SELECT Id, Name, SalesManager__c, BuchangApprovalManagerSales__c, JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c FROM User WHERE Id IN :copyUserIds
                ]);
                
                for (Integer i = 0; i < copyUserIds.size(); i++) {
                    IS_Opportunity_Demand__c local = newList[i];
                    User loginUser = copyUserMap.get(copyUserIds[i]);
                    local.SI_SalesManager__c = loginUser.SalesManager__c == null ? loginUser.Id : loginUser.SalesManager__c;
                    local.SI_Minister_Sell__c = loginUser.BuchangApprovalManagerSales__c == null ? loginUser.Id : loginUser.BuchangApprovalManagerSales__c;
                    local.SI_Minister_Service__c = loginUser.BuchangApprovalManager__c == null ? loginUser.Id : loginUser.BuchangApprovalManager__c;
                    local.SI_Majordomo__c = loginUser.ZongjianApprovalManager__c == null ? loginUser.Id : loginUser.ZongjianApprovalManager__c;
                }
        }
    }
 
}