| | |
| | | } |
| | | |
| | | protected override void beforeInsert(){ |
| | | |
| | | //SWAG-CKADFQ 【委托】【Last Buy】Last Buy预留管理改善新需求 start |
| | | SetUniqueKey(null); |
| | | //SWAG-CKADFQ 【委托】【Last Buy】Last Buy预留管理改善新需求 end |
| | | } |
| | | |
| | | protected override void beforeUpdate(){ |
| | | //SWAG-CKADFQ 【委托】【Last Buy】Last Buy预留管理改善新需求 start |
| | | CheckInquiryWinAboutupdate(); |
| | | SetUniqueKeyOnUpdate(); |
| | | //SWAG-CKADFQ 【委托】【Last Buy】Last Buy预留管理改善新需求 end |
| | | } |
| | | protected override void afterInsert(){ |
| | | ReservedPro(); |
| | | } |
| | |
| | | protected override void afterDelete(){ |
| | | ReservedPro(); |
| | | } |
| | | |
| | | //SWAG-CKADFQ 【委托】【Last Buy】Last Buy预留管理改善新需求 start |
| | | protected override void beforeDelete(){ |
| | | CheckInquiryWin(); |
| | | } |
| | | //SWAG-CKADFQ 【委托】【Last Buy】Last Buy预留管理改善新需求 end |
| | | private void ReservedPro(){ |
| | | //1.新建或者更新产品后,若预留产品有效,“预留产品”标识为true |
| | | if(trigger.isInsert || trigger.isUpdate){ |
| | |
| | | } |
| | | |
| | | } |
| | | //SWAG-CKADFQ 【委托】【Last Buy】Last Buy预留管理改善新需求 start |
| | | private void SetUniqueKey(Set<Id> lbps){ |
| | | if(trigger.isInsert) { |
| | | for (LastbuyProduct__c Lastbuyobj : this.newList){ |
| | | Lastbuyobj.productInquiryOnly__c = Lastbuyobj.ProductName__c+'_'+Lastbuyobj.InquiryCode__c; |
| | | } |
| | | } else { |
| | | if(lbps!=null&&lbps.size() > 0){ |
| | | for(String id : lbps){ |
| | | LastbuyProduct__c Lastbuyobj = this.newMap.get(id); |
| | | Lastbuyobj.productInquiryOnly__c = Lastbuyobj.ProductName__c+'_'+Lastbuyobj.InquiryCode__c; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | private void CheckInquiryWin(){ |
| | | if(trigger.isBefore && trigger.isDelete){ |
| | | List<Id> InquiryId = new List<Id>(); |
| | | List<Id> InquiryWinId = new List<Id>(); |
| | | for(LastbuyProduct__c Lastbuyobj : oldList){ |
| | | InquiryId.add(Lastbuyobj.InquiryCode__c); |
| | | } |
| | | List<Opportunity> OppList = [select Id,SAP_Send_OK__c from Opportunity where Id =:InquiryId]; |
| | | System.debug('OppList++'+OppList); |
| | | for(Opportunity oppobj : OppList){ |
| | | if(oppobj.SAP_Send_OK__c){ |
| | | // InquiryWinId.add(oppobj.Id); |
| | | throw new ControllerUtil.myException('预留询价已经WIN不允许删除'); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 询价发生变化时验证 |
| | | private void CheckInquiryWinAboutupdate(){ |
| | | if(trigger.isBefore && trigger.isUpdate){ |
| | | List<Id> LastbuyId = new List<Id>(); |
| | | List<Id> oppId = new List<Id>(); |
| | | for(LastbuyProduct__c Lastbuyobj : newList){ |
| | | // 只取询价发生变化的数据 |
| | | if (Lastbuyobj.InquiryCode__c != oldMap.get(Lastbuyobj.Id).InquiryCode__c) { |
| | | LastbuyId.add(Lastbuyobj.Id); |
| | | oppId.add(oldMap.get(Lastbuyobj.Id).InquiryCode__c); |
| | | } |
| | | } |
| | | List<Opportunity> oppList = [select Id,SAP_Send_OK__c from Opportunity where Id =:oppId]; |
| | | for(Opportunity opp : oppList){ |
| | | if(opp.SAP_Send_OK__c){ |
| | | throw new ControllerUtil.myException('预留的询价已经WIN,不允许替换,请取消WIN后再替换'); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | // 询价或产品发生变化时更新唯一标识 |
| | | private void SetUniqueKeyOnUpdate() { |
| | | Set<Id> updateUniKeys = new Set<Id>(); |
| | | for(LastbuyProduct__c Lastbuyobj : this.newList){ |
| | | LastbuyProduct__c old_Lastbuyobj = oldMap.get(Lastbuyobj.Id); |
| | | // 产品或询价变化的时候都加进来 |
| | | if (Lastbuyobj.InquiryCode__c != old_Lastbuyobj.InquiryCode__c || |
| | | Lastbuyobj.ProductName__c != old_Lastbuyobj.ProductName__c || |
| | | String.isBlank(Lastbuyobj.productInquiryOnly__c)) { |
| | | updateUniKeys.add(Lastbuyobj.Id); |
| | | } |
| | | } |
| | | SetUniqueKey(updateUniKeys); |
| | | } |
| | | //SWAG-CKADFQ 【委托】【Last Buy】Last Buy预留管理改善新需求 end |
| | | |
| | | } |