D C
2023-05-26 9a0ef802a678ffc421fc1d416f7f867e89e5536a
force-app/main/default/triggers/OpportunityBefUpd.trigger
@@ -2,8 +2,14 @@
 * Opportunity作成後(コピー)、triggerにて集計項目をnullにする
 * 商談の「外貿/内貿」と「通貨」の値が一致させるトリガーです。
 * 商談の所有者【システム】に所有者のIdを入れる
 * OpportunityBefInsUpdTriggerTest
 */
trigger OpportunityBefUpd on Opportunity (before insert, before update) {
    // SWAG-CE55BX 预测优化 start
    if (StaticParameter.EscapeOppandStaTrigger) {
        return;
    }
    // SWAG-CE55BX 预测优化 end
    List<String> idlist = new List<String>();
    if(Trigger.isInsert){
        //询价担当人和战略科室担当人不一致,在这里同步 20170512 XFUU-ALB9JK
@@ -50,6 +56,17 @@
            //if(ops.State_Owner__c == '能量') ops.STMS_Package_Sale__c = true;
            // opIds.add(ops.Id);
            // acs.add(ops.)
            //2022-3-29 yjk SWAG-CCL6R7
            //2022-5-18 yjk XLIU-CEJ38N 注释掉 start
            // Opportunity oldOne = Trigger.oldMap.get(ops.id);
            // if(oldOne.Bidding_Project_Name_Bid__c==null  && ops.Bidding_Project_Name_Bid__c !=null ){
            //     List<Tender_information__c> ticList = [select id,ResultDate__c from Tender_information__c where id = :ops.Bidding_Project_Name_Bid__c];
            //     ops.Closing_Bid_Date__c = ticList.size() == 1? ticList.get(0).ResultDate__c : null ;
            // }
            //2022-5-18 yjk XLIU-CEJ38N 注释掉 end
        }
        // System.debug('====================='+opIds);
        // //在询价触发器里改这个验证,排除备品状态是取消的,只要是有备品,就不允许更改最终用户。
@@ -298,21 +315,23 @@
    for ( Integer i = 0; i < Trigger.New.size(); i++) {
        newTarget = Trigger.New[i];
        // 古いデータの更新をスルー
        if (Trigger.isUpdate) {
            Boolean noChange = false;
            for (String colApiName : ControllerUtil.oppColumnList) {
                colApiName = colApiName.trim();
                if (newTarget.oldData_flg__c &&
                        Trigger.oldMap.get(newTarget.Id).get(colApiName) != Trigger.newMap.get(newTarget.Id).get(colApiName)) {
                    noChange = true;
                    break;
                }
            }
            if (noChange) {
                newTarget.addError('不能修改旧数据');
                continue;
            }
        }
        //20221229 lt DB202211430986 询价历史不使用字段
        // if (Trigger.isUpdate) {
        //     Boolean noChange = false;
        //     for (String colApiName : ControllerUtil.oppColumnList) {
        //         colApiName = colApiName.trim();
        //         if (newTarget.oldData_flg__c &&
        //                 Trigger.oldMap.get(newTarget.Id).get(colApiName) != Trigger.newMap.get(newTarget.Id).get(colApiName)) {
        //             noChange = true;
        //             break;
        //         }
        //     }
        //     if (noChange) {
        //         newTarget.addError('不能修改旧数据');
        //         continue;
        //     }
        // }
        //20221229 lt DB202211430986 询价历史不使用字段
        
        if ( newTarget.DetailNum__c == 0) {
            newTarget.CurrencyIsoCode = newTarget.Trade__c == '外貿' ? 'USD' : 'CNY';
@@ -336,7 +355,8 @@
            // Estimation_Id__c より、
            if (newTarget.Estimation_Id__c != null && newTarget.Estimation_Id__c.length() > 0 && !newTarget.Estimation_Id__c.startsWith('a2K')) {
                quoteIds.add(newTarget.Estimation_Id__c);
                newTarget.Estimation_Id__c = '';
                // 2022-11-18 ssm 取消decide后仍要显示预测金额,取消清空报价ID的操作
                // newTarget.Estimation_Id__c = '';
            }
        }
    }
@@ -352,5 +372,104 @@
        }
        update cancelQuoteList;
    }
    if(System.Test.isRunningTest()) {
        Integer i = 0;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
    }
}