李彤
2022-03-25 1f16b5e7c5eeecc5b1b35b476a72852477b66b34
触发器
3个文件已修改
19 ■■■■ 已修改文件
force-app/main/default/classes/LastbuyProductHandler.cls 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LastbuyProductHandlerTest.cls 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/triggers/LastbuyProductTrigger.trigger 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LastbuyProductHandler.cls
@@ -33,6 +33,10 @@
        ReservedPro();
    }
    protected override void afterDelete(){
        ReservedPro();
    }
    private void ReservedPro(){
        //1.新建或者更新产品后,若预留产品有效,“预留产品”标识为true
        if(trigger.isInsert || trigger.isUpdate){
@@ -63,10 +67,11 @@
        //2.(1)"是否有效" 变为 false  检索产品主数据下的所有预留产品,全无效则把产品主数据的"预留产品"标识 变为 false
        //  (2)"产品"    预留产品 更改 产品主数据之前的产品 -- 检索产品主数据下的所有预留产品(没有/全无效)
        //                                                  "预留产品"标识 变为 false
        if(trigger.isUpdate){
        if(trigger.isUpdate || trigger.isDelete){
            //"是否有效" 变为 "否" 时 所对应的产品主数据Id &&预留产品 更改 产品主数据之前的产品
            List<Id> pfList = new List<Id>();  
            if(trigger.isUpdate){
            for(LastbuyProduct__c lbp1 : newList){
                LastbuyProduct__c oldLbp1 = oldMap.get(lbp1.Id);
                if(oldLbp1.effectiveFLG__c != lbp1.effectiveFLG__c){
@@ -79,6 +84,13 @@
                    pfList.add(oldLbp1.ProductName__c);
                }
            }
            }
            else if(trigger.isDelete){
                for(LastbuyProduct__c lbp2 : oldList){
                    pfList.add(lbp2.ProductName__c);
                }
            }
            
            System.debug('lt123需检索所有预留产品的产品ID-pfList'+pfList);
@@ -129,6 +141,7 @@
                }
            }
        }
    }
}
force-app/main/default/classes/LastbuyProductHandlerTest.cls
@@ -42,6 +42,8 @@
        lbp2.ProductName__c = pro.Id;
        update lbp2;
        delete lbp1;
    }
}
force-app/main/default/triggers/LastbuyProductTrigger.trigger
@@ -1,4 +1,4 @@
trigger LastbuyProductTrigger on LastbuyProduct__c (before insert, after insert, after update) {
trigger LastbuyProductTrigger on LastbuyProduct__c (before insert, after insert, after update, after delete) {
    LastbuyProductHandler handler = new LastbuyProductHandler();
    handler.run();
}