From d8dc84a3d56df839895f1c417a4d9cbee763d262 Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期五, 03 三月 2023 14:50:59 +0800
Subject: [PATCH] gzw 测试环境代码更新

---
 force-app/main/default/classes/LastbuyProductHandler.cls |  121 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 106 insertions(+), 15 deletions(-)

diff --git a/force-app/main/default/classes/LastbuyProductHandler.cls b/force-app/main/default/classes/LastbuyProductHandler.cls
index 3ba4f25..f9ecba7 100644
--- a/force-app/main/default/classes/LastbuyProductHandler.cls
+++ b/force-app/main/default/classes/LastbuyProductHandler.cls
@@ -22,9 +22,16 @@
     }
     
     protected override void beforeInsert(){
-
+        //SWAG-CKADFQ 銆愬鎵樸�戙�怢ast Buy銆慙ast Buy棰勭暀绠$悊鏀瑰杽鏂伴渶姹� start
+        SetUniqueKey(null);
+        //SWAG-CKADFQ 銆愬鎵樸�戙�怢ast Buy銆慙ast Buy棰勭暀绠$悊鏀瑰杽鏂伴渶姹� end
     }
-
+    protected override void beforeUpdate(){
+        //SWAG-CKADFQ 銆愬鎵樸�戙�怢ast Buy銆慙ast Buy棰勭暀绠$悊鏀瑰杽鏂伴渶姹� start
+        CheckInquiryWinAboutupdate();
+        SetUniqueKeyOnUpdate();
+        //SWAG-CKADFQ 銆愬鎵樸�戙�怢ast Buy銆慙ast Buy棰勭暀绠$悊鏀瑰杽鏂伴渶姹� end
+    }
     protected override void afterInsert(){
         ReservedPro();
     }
@@ -33,6 +40,14 @@
         ReservedPro();
     }
 
+    protected override void afterDelete(){
+        ReservedPro();
+    }
+    //SWAG-CKADFQ 銆愬鎵樸�戙�怢ast Buy銆慙ast Buy棰勭暀绠$悊鏀瑰杽鏂伴渶姹� start
+    protected override void beforeDelete(){
+        CheckInquiryWin();
+    }
+    //SWAG-CKADFQ 銆愬鎵樸�戙�怢ast Buy銆慙ast Buy棰勭暀绠$悊鏀瑰杽鏂伴渶姹� end
     private void ReservedPro(){
         //1.鏂板缓鎴栬�呮洿鏂颁骇鍝佸悗锛岃嫢棰勭暀浜у搧鏈夋晥锛屸�滈鐣欎骇鍝佲�濇爣璇嗕负true
         if(trigger.isInsert || trigger.isUpdate){
@@ -63,24 +78,30 @@
         //2.(1)"鏄惁鏈夋晥" 鍙樹负 false  妫�绱骇鍝佷富鏁版嵁涓嬬殑鎵�鏈夐鐣欎骇鍝侊紝鍏ㄦ棤鏁堝垯鎶婁骇鍝佷富鏁版嵁鐨�"棰勭暀浜у搧"鏍囪瘑 鍙樹负 false
         //  (2)"浜у搧"    棰勭暀浜у搧 鏇存敼 浜у搧涓绘暟鎹箣鍓嶇殑浜у搧 -- 妫�绱骇鍝佷富鏁版嵁涓嬬殑鎵�鏈夐鐣欎骇鍝侊紙娌℃湁/鍏ㄦ棤鏁堬級
         //                                                  "棰勭暀浜у搧"鏍囪瘑 鍙樹负 false
-        if(trigger.isUpdate){
+        if(trigger.isUpdate || trigger.isDelete){
             //"鏄惁鏈夋晥" 鍙樹负 "鍚�" 鏃� 鎵�瀵瑰簲鐨勪骇鍝佷富鏁版嵁Id &&棰勭暀浜у搧 鏇存敼 浜у搧涓绘暟鎹箣鍓嶇殑浜у搧
             List<Id> pfList = new List<Id>();  
 
-            for(LastbuyProduct__c lbp1 : newList){
-                LastbuyProduct__c oldLbp1 = oldMap.get(lbp1.Id);
-                if(oldLbp1.effectiveFLG__c != lbp1.effectiveFLG__c){
-                    System.debug('lt123鏃犳晥锛�'+lbp1.effectiveFLG__c);
-                    if(lbp1.effectiveFLG__c == false){
-                        System.debug('lt123鏃犳晥'+lbp1.effectiveFLG__c);
-                        pfList.add(lbp1.ProductName__c);
+            if(trigger.isUpdate){
+                for(LastbuyProduct__c lbp1 : newList){
+                    LastbuyProduct__c oldLbp1 = oldMap.get(lbp1.Id);
+                    if(oldLbp1.effectiveFLG__c != lbp1.effectiveFLG__c){
+                        if(lbp1.effectiveFLG__c == false){
+                            pfList.add(lbp1.ProductName__c);
+                        }
+                    }
+                    //浜у搧鍙戠敓鍙樺寲鏃讹紝妫�绱袱涓骇鍝佺殑鏍囪瘑
+                    if(oldLbp1.ProductName__c != lbp1.ProductName__c){
+                        pfList.add(oldLbp1.ProductName__c);
                     }
                 }
-                //浜у搧鍙戠敓鍙樺寲鏃讹紝妫�绱袱涓骇鍝佺殑鏍囪瘑
-                if(oldLbp1.ProductName__c != lbp1.ProductName__c){
-                    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);
 
@@ -90,7 +111,6 @@
                 Map<String,LastbuyProduct__c> lbpMap = new Map<String,LastbuyProduct__c>();
                 //鍙戠敓鍙樺寲鐨勪骇鍝両d涓嬬殑鎵�鏈夐鐣欎骇鍝�
                 List<LastbuyProduct__c> lbpList = [select id, effectiveFLG__c,ProductName__c from LastbuyProduct__c where ProductName__c in :pfList];
-                System.debug('lt123鍙樺寲鐨勯鐣欎骇鍝乴bpList'+lbpList);
                 //p1List effectiveFLG__c涓簍rue 鐨勪骇鍝両d
                 List<Id> p1List = new List<Id>();
                 //p2List 杩欎釜浜у搧鎵�鏈夌殑棰勭暀浜у搧閮芥棤鏁� 鐨勪骇鍝両d
@@ -125,7 +145,6 @@
                 List<Product2> prflgList = new List<Product2>();
                 for(Product2 pro1 : pro1List){
                     pro1.LastbuyProductFLG__c = false;
-                    System.debug('lt123棰勭暀浜у搧鏍囪瘑'+pro1.LastbuyProductFLG__c);
                     prflgList.add(pro1);
                 }
                 if(prflgList.size() > 0){
@@ -133,6 +152,78 @@
                 }
             }
         }
+
     }
+    //SWAG-CKADFQ 銆愬鎵樸�戙�怢ast Buy銆慙ast 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('棰勭暀鐨勮浠峰凡缁廤IN锛屼笉鍏佽鏇挎崲锛岃鍙栨秷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 銆愬鎵樸�戙�怢ast Buy銆慙ast Buy棰勭暀绠$悊鏀瑰杽鏂伴渶姹� end
 
 }
\ No newline at end of file

--
Gitblit v1.9.1