From b54f1c796595671bd753a9161eccad074d444273 Mon Sep 17 00:00:00 2001
From: 李彤 <litong@prec-tech.com>
Date: 星期三, 16 三月 2022 17:45:36 +0800
Subject: [PATCH] 询价失单预留产品无效

---
 force-app/main/default/classes/OpportunityTrigger.cls      |   34 +++++++++++++++++
 force-app/main/default/classes/OpportunityTriggerTest.cls  |   47 +++++++++++++++++++----
 force-app/main/default/triggers/OpportunityTrigger.trigger |    4 ++
 3 files changed, 77 insertions(+), 8 deletions(-)

diff --git a/force-app/main/default/classes/OpportunityTrigger.cls b/force-app/main/default/classes/OpportunityTrigger.cls
index c0dc0bc..15de464 100644
--- a/force-app/main/default/classes/OpportunityTrigger.cls
+++ b/force-app/main/default/classes/OpportunityTrigger.cls
@@ -260,4 +260,38 @@
         }
     } 
     // SWAG-C7P4XB end
+
+    //LastBuy 棰勭暀浜у搧 lt 20220315 start
+    //璇环澶卞崟鎴栧彇娑堟椂锛岄鐣欎骇鍝佺殑"鏄惁鏈夋晥"璁剧疆涓哄惁
+    public static void ReservedProFlg(List<Opportunity> newList, Map<Id, Opportunity> newMap, List<Opportunity> oldList, Map<Id, Opportunity> oldMap){
+        List<Id> oppList = new List<Id>();
+        List<LastbuyProduct__c> lbpflgList = new List<LastbuyProduct__c>();
+
+        for (Opportunity lbOpp : newList){
+            Opportunity OldLbOpp = oldMap.get(lbOpp.Id);
+            if(OldLbOpp.StageName != lbOpp.StageName){
+                if(lbOpp.StageName == '鏁楁垿' || lbOpp.StageName == '鍓婇櫎'){
+                    oppList.add(lbOpp.Id);
+                }
+            }
+        }
+
+        if(oppList.size() > 0){
+            List<LastbuyProduct__c> lbpList = [select id, effectiveFLG__c,InquiryCode__c from LastbuyProduct__c where InquiryCode__c in :oppList];
+            if(lbpList.size() > 0){
+                for(LastbuyProduct__c lbp : lbpList){
+                    if(lbp.effectiveFLG__c == true){ 
+                        lbp.effectiveFLG__c = false;
+                        lbpflgList.add(lbp);
+                    }
+                }
+            }
+        }
+
+        if(lbpflgList.size() > 0){
+            update lbpflgList;
+        }
+    }
+    //LastBuy 棰勭暀浜у搧 lt 20220315 end
+
 }
\ No newline at end of file
diff --git a/force-app/main/default/classes/OpportunityTriggerTest.cls b/force-app/main/default/classes/OpportunityTriggerTest.cls
index 71058a8..0131d31 100644
--- a/force-app/main/default/classes/OpportunityTriggerTest.cls
+++ b/force-app/main/default/classes/OpportunityTriggerTest.cls
@@ -324,13 +324,15 @@
         opp1.NotesApprovedNo__c = '123';
         update opp1;
 
-        //鎷涙爣椤圭洰
-        Tender_information__c te1 = new Tender_information__c();
-        te1.Name = 'TestZhaoBiao';
-        insert te1;
 
-        opp1.Bidding_Project_Name_Bid__c = te1.Id;
-        update opp1;
+        //lt 娉ㄩ噴鎺� te1
+        // //鎷涙爣椤圭洰
+        // Tender_information__c te1 = new Tender_information__c();
+        // te1.Name = 'TestZhaoBiao';
+        // insert te1;
+
+        // opp1.Bidding_Project_Name_Bid__c = te1.Id;
+        // update opp1;
 
         //澶卞崟
         opp1.StageName = '鏁楁垿';
@@ -347,8 +349,8 @@
             AccountId = depart.Id,
             Closing_Bid_Date__c = Date.today().addDays(-5),
             Hospital__c = company.Id,
-            Competitor__c = 'A',
-            Bidding_Project_Name_Bid__c = te1.Id
+            Competitor__c = 'A'
+            //,Bidding_Project_Name_Bid__c = te1.Id  //lt 20220316
         );
         insert opp2;
 
@@ -358,4 +360,33 @@
   }
   //2021-05-13 mzy  QLM
 
+  //LastBuy 棰勭暀浜у搧 lt 20220315 start
+  @isTest 
+  static void TestMethod1() {
+
+      Opportunity opp = new Opportunity();
+      opp.Name                = 'GZ-SP-NFM007_1';
+      opp.StageName           = '寮曞悎';
+      opp.CloseDate           = date.newinstance(2022, 11, 30);
+      insert opp;
+
+
+      Product2 pro = new Product2();
+      pro.Name = 'Testname0316';
+      pro.LastbuyProductFLG__c = false;
+      insert pro;
+
+      LastbuyProduct__c lbp = new LastbuyProduct__c();
+      lbp.Name = 'Test0215';
+      lbp.ProductName__c = pro.Id;
+      lbp.InquiryCode__c = opp.Id;
+      lbp.effectiveFLG__c = true;
+      insert lbp;
+
+      opp.StageName = '鏁楁垿';      
+      update opp;
+
+  }
+  //LastBuy 棰勭暀浜у搧 lt 20220315 end
+
 }
\ No newline at end of file
diff --git a/force-app/main/default/triggers/OpportunityTrigger.trigger b/force-app/main/default/triggers/OpportunityTrigger.trigger
index ebe4fda..b9400d4 100644
--- a/force-app/main/default/triggers/OpportunityTrigger.trigger
+++ b/force-app/main/default/triggers/OpportunityTrigger.trigger
@@ -4,6 +4,10 @@
         // CHAN-AYTCE6  璇环椤甸潰涓殑缁忛攢鍟�1鍙樻洿鍚庢洿鏂版姤浠蜂腑缁忛攢鍟�1  2018/5/25 start
         OpportunityTrigger.changeQuoteAgency1(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
         // CHAN-AYTCE6  璇环椤甸潰涓殑缁忛攢鍟�1鍙樻洿鍚庢洿鏂版姤浠蜂腑缁忛攢鍟�1  2018/5/25 end
+
+        //LastBuy 棰勭暀浜у搧 lt 20220315 start
+        OpportunityTrigger.ReservedProFlg(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+        //LastBuy 棰勭暀浜у搧 lt 20220315 end
     }
     if (Trigger.isBefore && Trigger.isUpdate) {
         OpportunityTrigger.changeConsumableOrderStatus(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);        

--
Gitblit v1.9.1