D C
2023-05-26 9a0ef802a678ffc421fc1d416f7f867e89e5536a
force-app/main/default/triggers/NFM007.trigger
@@ -1,4 +1,9 @@
trigger NFM007 on Opportunity (before update, after update) {         // after insert を考慮しない
    // SWAG-CE55BX 预测优化 start
    if (StaticParameter.EscapeOppandStaTrigger) {
        return;
    }
    // SWAG-CE55BX 预测优化 end
    if (StaticParameter.EscapeNFM007Trigger) {
System.debug('Escape、EscapeNFM007Trigger:::::' + StaticParameter.EscapeNFM007Trigger);
        return;
@@ -27,21 +32,30 @@
                List<String> quoteIds = new List<String>();
                for(Opportunity opp : Trigger.new) {
                    // 古いデータの更新を禁止
                    Boolean noChange;
                    for (String colApiName : ControllerUtil.oppColumnList) {
                        colApiName = colApiName.trim();
                        if (opp.oldData_flg__c && Trigger.oldMap.get(opp.Id).get(colApiName) != Trigger.newMap.get(opp.Id).get(colApiName)) {
                            noChange = true;  break;
                        }
                    }
                    noChange = false;
                    if (noChange) {
                        opp.addError('不能修改旧数据');  continue;
                    }
                    //20221229 lt DB202211430986 询价历史不使用字段
                    // Boolean noChange;
                    // for (String colApiName : ControllerUtil.oppColumnList) {
                    //     colApiName = colApiName.trim();
                    //     if (opp.oldData_flg__c && Trigger.oldMap.get(opp.Id).get(colApiName) != Trigger.newMap.get(opp.Id).get(colApiName)) {
                    //         noChange = true;  break;
                    //     }
                    // }
                    // noChange = false;
                    // if (noChange) {
                    //     opp.addError('不能修改旧数据');  continue;
                    // }
                    //20221229 lt DB202211430986 询价历史不使用字段
                    
                    // SAPWINはボタンで動くじゃなく、手動でチェック⇒保存だから、js無理
                    if (Trigger.oldMap.get(opp.Id).get('SAP_Send_OK__c') == false && opp.SAP_Send_OK__c == true) {
                       //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy start
                       if(string.isNotBlank(opp.Estimation_No__c)){
                            Boolean judge = OpportunityWebService.judgeIsAssistantAppliedOutTime(opp.Estimation_No__c);
                            if(!judge){
                                opp.addError('经销商协议已过期,请重新做报价计算和合同申请');
                            }
                       }
                       //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy end
                        //CHAN-BCNCRB XHL If_Have_EPT1__c
                        if (opp.If_Have_EPT1__c == true && opp.If_UploadT1Detailed__c == false) {
                            opp.addError('询价产品中包含EP-T1产品,但没上传T1清单,无法进行SAP上传(WIN),请上传T1清单');
@@ -68,6 +82,8 @@
                            QuoteLineItem 
                        where 
                            Quoteid = :opp.Estimation_Id__c ];
                            System.debug('opp.Estimation_Id__c+++'+opp.Estimation_Id__c);
                            System.debug('items+++'+items);
                        List<Id> ChechProId  = new List<Id>();
                  Integer CntSFDC = 0, CntCostOrListPrice = 0;
                        
@@ -158,7 +174,7 @@
                                    
                                }
                            }else{
                                opp.addError('预留产品表中没有录入该询价的预留产品');
                                opp.addError('预留产品表中没有该询价,请通过本部窗口联系营业管理课');
                            }
                            
                        }
@@ -281,6 +297,173 @@
        insert iflog;
        iflog = [Select Id, Name from BatchIF_Log__c where Id = :iflog.Id];
        System.debug(Logginglevel.DEBUG, 'NFM007_' + iflog.Name + ' start');                  // callout の中 end のlogを出します
        NFM007Controller.callout(iflog.Id, oppIds, purposeOfAdviceMap);
        // 20220921 ljh SWAG-CG2A7S update start
        // NFM007Controller.callout(iflog.Id, oppIds, purposeOfAdviceMap);
        String uid = UserInfo.getUserId();
        String iUid = System.Label.interfaceUserID;
        if (uid.substring(0,15) == iUid.substring(0,15)) {
            NFM007Controller.calloutNotfuture(iflog.Id, oppIds, purposeOfAdviceMap);
        }else{
            NFM007Controller.callout(iflog.Id, oppIds, purposeOfAdviceMap);
        }
        // 20220921 ljh SWAG-CG2A7S update end
    }
    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++;
        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++;
    }
}