public with sharing class NFM202OppHandler extends Oly_TriggerHandler { private Map newMap; private Map oldMap; private List newList; private List oldList; public NFM202OppHandler(){ this.newMap = (Map) Trigger.newMap; this.oldMap = (Map) Trigger.oldMap; this.newList = (List) Trigger.new; this.oldList = (List) Trigger.old; } protected override void beforeUpdate() { // CHAN-B9R472 <变更用户标识>变更时,记录变更前询价状态 20190305 LHJ Start //accChange(); // CHAN-B9R472 <变更用户标识>变更时,记录变更前询价状态 20190305 LHJ End if (NFM202Controller.isRunning) { return; } // 调用询价接口ToSPO oppToSPO(); } protected override void beforeInsert() { separateOpportunity(); } //CHAN-B9L64W 询价拆单时,将授权信息携带到新询价中 XHL Start private void separateOpportunity(){ List originalOpportunityIds = new List(); for (Opportunity nObj : newList) { // CHAN-BK96DL 2019-12-28 by vivek start // if(Trigger.isInsert && String.isNotBlank(nObj.old_Oppo_No__c) && nObj.SeparateBillMark__c == '1'){ // originalOpportunityIds.add(nObj.old_Oppo_No__c); // } System.debug('======Opportunity_No__c'+nObj.Opportunity_No__c); if(Trigger.isInsert && String.isNotBlank(nObj.Old_Opportunity_ID__c) && nObj.SeparateBillMark__c == '1'){ originalOpportunityIds.add(nObj.Old_Opportunity_ID__c); } // CHAN-BK96DL 2019-12-28 by vivek end } // CHAN-BK96DL 2019-12-28 by vivek start // List opportunitys = [select Id,Opportunity_No__c,Bidding_Project_Name__c,Bidding_No__c,Bidding_Content__c,Autholization_Activated_Date__c,Authorized_Finish_Sales__c,Authorized_DB_No__c,Authorized_Date__c,Bid_Date__c from Opportunity where Opportunity_No__c in :originalOpportunityIds]; List opportunitys = [select Id,Opportunity_No__c,Bidding_Project_Name__c,Bidding_No__c,Bidding_Content__c,Autholization_Activated_Date__c,Authorized_Finish_Sales__c,Authorized_DB_No__c,Authorized_Date__c,Bid_Date__c,RecordType.DeveloperName from Opportunity where id = :originalOpportunityIds]; // CHAN-BK96DL 2019-12-28 by vivek end Map OpportMap = new Map(); for (Opportunity opp : opportunitys) { // CHAN-BK96DL 2019-12-28 by vivek start // OpportMap.put(opp.Opportunity_No__c, opp); OpportMap.put(opp.Id, opp); // CHAN-BK96DL 2019-12-28 by vivek end } for (Opportunity nObj : newList) { // CHAN-BK96DL 2019-12-28 by vivek start // if (OpportMap.containsKey(nObj.old_Oppo_No__c)) { // nObj.Authorized_DB_No__c = OpportMap.get(nObj.old_Oppo_No__c).Authorized_DB_No__c; // nObj.Authorized_Date__c = OpportMap.get(nObj.old_Oppo_No__c).Authorized_Date__c; // nObj.Autholization_Activated_Date__c = OpportMap.get(nObj.old_Oppo_No__c).Autholization_Activated_Date__c; // nObj.Authorized_Finish_Sales__c = OpportMap.get(nObj.old_Oppo_No__c).Authorized_Finish_Sales__c; // nObj.Bidding_Project_Name__c = OpportMap.get(nObj.old_Oppo_No__c).Bidding_Project_Name__c; // nObj.Bidding_No__c = OpportMap.get(nObj.old_Oppo_No__c).Bidding_No__c; // nObj.Bidding_Content__c = OpportMap.get(nObj.old_Oppo_No__c).Bidding_Content__c; if (OpportMap.containsKey(nObj.Old_Opportunity_ID__c)) { nObj.Authorized_DB_No__c = OpportMap.get(nObj.Old_Opportunity_ID__c).Authorized_DB_No__c; nObj.Authorized_Date__c = OpportMap.get(nObj.Old_Opportunity_ID__c).Authorized_Date__c; nObj.Autholization_Activated_Date__c = OpportMap.get(nObj.Old_Opportunity_ID__c).Autholization_Activated_Date__c; nObj.Authorized_Finish_Sales__c = OpportMap.get(nObj.Old_Opportunity_ID__c).Authorized_Finish_Sales__c; nObj.Bidding_Project_Name__c = OpportMap.get(nObj.Old_Opportunity_ID__c).Bidding_Project_Name__c; nObj.Bidding_No__c = OpportMap.get(nObj.Old_Opportunity_ID__c).Bidding_No__c; nObj.Bidding_Content__c = OpportMap.get(nObj.Old_Opportunity_ID__c).Bidding_Content__c; // CHAN-BVYAFW XHL if ('Opportunity'.equals(OpportMap.get(nObj.Old_Opportunity_ID__c).RecordType.DeveloperName)) { // 普通询价 点击 政府招标拆单 按钮 进行拆单时的标记 // 本字段用在业务机会工作流 清空 原询价编码 nObj.GeneralInquirySeparateBill__c = true; } nObj.SeparateBill__c = true; nObj.old_Oppo_No__c = OpportMap.get(nObj.Old_Opportunity_ID__c).Opportunity_No__c; // CHAN-BVYAFW XHL System.debug('old_Oppo_No__c======'+nObj.old_Oppo_No__c); // CHAN-BK96DL 2019-12-28 by vivek end //nObj.Bid_Date__c = OpportMap.get(nObj.old_Oppo_No__c).Bid_Date__c; // nObj.SeparateBillMark__c = ''; } nObj.SeparateBillMark__c = ''; } } //CHAN-B9L64W 询价拆单时,将授权信息携带到新询价中 XHL End //// CHAN-B9R472 <变更用户标识>变更时,记录变更前询价状态 20190305 LHJ Start //protected override void beforeInsert() { // accChange(); //} //private void accChange() { // for (Opportunity nObj : newList) { // // 如果新建时<变更用户标识>勾选,默认修改前是"引合" // if (Trigger.isInsert && (nObj.If_Account_Change__c == True)) { // nObj.AccChange_Stage_Before__c = '引合'; //oldMap.get(nObj.id).StageName; // // 如果更新时<变更用户标识>变成勾选,保存修改前的状态 // } else if (Trigger.isUpdate && (nObj.If_Account_Change__c != oldMap.get(nObj.id).If_Account_Change__c) // && (nObj.If_Account_Change__c == True)) { // nObj.AccChange_Stage_Before__c = oldMap.get(nObj.id).StageName; // } // // 如果更新时<变更用户标识>变成不勾选,恢复状态 // if (Trigger.isUpdate && (nObj.If_Account_Change__c != oldMap.get(nObj.id).If_Account_Change__c) // && (nObj.If_Account_Change__c == False)) { // nObj.StageName = nObj.AccChange_Stage_Before__c; // } // } //} //// CHAN-B9R472 <变更用户标识>变更时,记录变更前询价状态 20190305 LHJ End private void oppToSPO() { // 更新対象的询价Id をセット List oppIds = new List(); Map transTypeMap = new Map(); for (Opportunity n : newList) { Opportunity o = oldMap.get(n.id); // 经销商授权(是否授权中由否变为是) if(n.If_Authorizing__c == true && o.If_Authorizing__c == false) { NFM202Controller.isRunning = true; oppIds.add(n.id); transTypeMap.put(n.id, '1'); } // 合同授权 if (n.Contract_Authorize__c == true && o.Contract_Authorize__c == false ) { NFM202Controller.isRunning = true; oppIds.add(n.id); transTypeMap.put(n.id, '2'); } } if (oppIds.size() > 0) { // MessageGroupNumber の採番 BatchIF_Log__c iflog = new BatchIF_Log__c(); iflog.Type__c = 'NFM202'; iflog.Log__c = 'callout start\n'; insert iflog; iflog = [Select Id, Name from BatchIF_Log__c where Id = :iflog.Id]; System.debug(Logginglevel.DEBUG, 'NFM202_Opp_' + iflog.Name + ' start'); // callout の中 end のlogを出します NFM202Controller.callout(iflog.Id, oppIds, transTypeMap); } for (Opportunity n : newList) { Opportunity o = oldMap.get(n.id); if (n.If_Authorizing__c == true && o.If_Authorizing__c == false ) { n.If_Authorizing__c = false; } if (n.Contract_Authorize__c == true && o.Contract_Authorize__c == false ) { n.Contract_Authorize__c = false; } } } }