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
trigger ConsumableOrderDetail2 on Consumable_order_details2__c(before insert,before update) {
    if((trigger.isBefore && trigger.isInsert)||(trigger.isBefore && trigger.isUpdate)){
        Set<String> accidset = new Set<String>();
        for(Consumable_order_details2__c con : Trigger.new){
            if(con.Used_account__c != null ){
                accidset.add(con.Used_account__c);
            }
            
        }
        List<Account> acclist = [select id,OCM_man_province_txt__c,recordType.Name from account where Id = :accidset];
        Map<String,String> accmap = new Map<String,String>();
        Map<String,String> accTyMap = new Map<String,String>();
        for(Account acc : acclist){
            // 如果使用客户是经销商合同,取经销商合同的管理省。
            if(acc.RecordType.Name == '契約'){
                accmap.put(acc.Id, acc.OCM_man_province_txt__c);
            }
            // 如果使用客户是经销商合同和经销商的,取使用客户的类型。
            if(acc.RecordType.Name == '契約' || acc.RecordType.Name == '販売店'){
                accTyMap.put(acc.Id, acc.RecordType.Name);
            }
            
        }
        for(Consumable_order_details2__c con : Trigger.new){
            // 如果是非IF数据源,更新OCSM管理省文本
            System.debug('明细2的名称======'+con.Name+'con.IF_Information_From__c======'+con.IF_Information_From__c+'con.Used_account__r.OCM_man_province_txt__c======'+con.Used_account__r.OCM_man_province_txt__c);
            // if(!con.IF_Information_From__c){
            if(con.Used_account__c != null ){
                if(accmap.containsKey(con.Used_account__c)){
                    con.Account_province_txt__c = accmap.get(con.Used_account__c);
                }
                if(accTyMap.containsKey(con.Used_account__c)){
                    con.Used_Account_Type__c = accTyMap.get(con.Used_account__c);
                }
            }
            // }
        }
    }
        
}