From 985edf54edeaac1b70a0b00c5fa975ab3add78b4 Mon Sep 17 00:00:00 2001
From: 李彤 <litong@prec-tech.com>
Date: 星期四, 31 三月 2022 18:20:01 +0800
Subject: [PATCH] WLIG-CCT9UG关于市场多年保计提金调整

---
 force-app/main/default/classes/NewQuoteEntryController.cls |  122 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 120 insertions(+), 2 deletions(-)

diff --git a/force-app/main/default/classes/NewQuoteEntryController.cls b/force-app/main/default/classes/NewQuoteEntryController.cls
index d7e3522..3fc9f56 100644
--- a/force-app/main/default/classes/NewQuoteEntryController.cls
+++ b/force-app/main/default/classes/NewQuoteEntryController.cls
@@ -9,6 +9,11 @@
   public Boolean changedAfterPrint { get; set; }                  // true 銇牬鍚堛�佺敾闈€伀 confirm 銉°儍銈汇兗銈搞亴琛ㄧず銇椼伨銇欍�俼uoId銈掓柊銇椼亜insert銆傚垽瀹氥伅js銇仸瀹熸柦
   public Boolean changedAfterBid { get; set; }                    // true 銇牬鍚堛�佺敾闈€伀 confirm 銉°儍銈汇兗銈搞亴琛ㄧず銇椼伨銇欍�俼uoId銈掓柊銇椼亜insert銆傚垽瀹氥伅js銇仹瀹熸柦
   //public Id qlistId { get; set; }
+  //lastbuy  2022/2/9 fy start
+  public Boolean filg { get; set; }
+  public Integer flglastbuy { get; set; }
+  public String errorProductmodel { get; set; }
+  //lastbuy  2022/2/9 fy end
 
   public String excel_text { get; set; }
   public Integer select_index { get; set; }                       // excelImport灏傜敤銇с仚銇屻�乯s銇仸鍒跺尽銇欍倠銇撱仺銇仾銈嬨伄銇с�乀ODO katsu 鍓婇櫎浜堝畾
@@ -152,6 +157,7 @@
         }
       } else {
         quoId = System.currentPageReference().getParameters().get('copyid');
+        system.debug('copyid++++++++++++'+quoId);
         if (quoId != null) {
           // 銈炽償銉笺伄銉囥兗銈裤亴寰屻仹浣滄垚銇欍倠
         } else {
@@ -402,6 +408,8 @@
          ,PricebookEntry.Product2.Intra_Trade_Foreign_RMB__c
          //NoDiscount 閲戦锛圲SD锛�
          ,PricebookEntry.Product2.NoDiscount_Foreign__c 
+         //fy 棰勭暀浜у搧鏍囪瘑
+         ,PricebookEntry.Product2.LastbuyProductFLG__c
          ,Quote.Opportunity.Trade__c 
          //澶栬锤澶氬勾淇� 2021/01/04 绮剧悽鎶�鏈� wql end
 
@@ -411,6 +419,7 @@
 
          From QuoteLineItem where Quoteid = :quoId Order by Item_Order__c, Id];
       String copyQuoId = System.currentPageReference().getParameters().get('copyid');
+      system.debug('copyid2++++++++++++'+copyQuoId);
       CheckItem = items;
 
       if (copyQuoId == null) {
@@ -897,6 +906,8 @@
                                //澶栬锤澶氬勾淇� 2021/01/04 绮剧悽鎶�鏈� wql start
                                //缁翠慨鍚堝悓鎶ヤ环锛圲SD锛�
                                ,Repair_Contract_USD__c
+                               //fy 棰勭暀浜у搧鏍囪瘑
+                               ,LastbuyProductFLG__c
                                //璁℃彁閲戦锛堜笉鍚◣锛孶SD锛�
                                ,Intra_Trade_Foreign_RMB__c
                                //NoDiscount 閲戦锛圲SD锛�
@@ -1774,7 +1785,24 @@
 
       errorflg = false;
       errormessage = null;
-
+      //20220214 fy lastbuy start 
+      if(!ReservedProductVerification()){
+        system.debug('flglastbuy++++'+flglastbuy);
+        if(flglastbuy==1){
+          errorflg = true;
+          errormessage =  '棰勭暀浜у搧琛ㄤ腑娌℃湁璇ヨ浠凤紝璇烽�氳繃鏈儴绐楀彛鑱旂郴钀ヤ笟绠$悊璇�' ;
+          return null;
+        }else if(flglastbuy==2){
+          errorflg = true;
+          errormessage =  errorProductmodel+'浜у搧鏁伴噺涓嶅彲瓒呰繃浜у搧棰勭暀鏁伴噺' ;
+          return null;
+        }else if(flglastbuy==3){
+          errorflg = true;
+          errormessage =  '棰勭暀浜у搧'+errorProductmodel+'鏈綍鍏ラ鐣欎骇鍝佽〃';
+          return null;
+        }
+      }
+      //20220214 fy lastbuy end
       // 2022-01-12 ssm 鎶ヤ环璁$畻check
       if (checkIsQuoteTrial()) {
         errorflg = true;
@@ -2073,7 +2101,9 @@
       // 銇撱亾銈掍慨姝c仐銇熴倝銆丯FM007.trigger銈傝纰鸿獚
       prd2LatestValMap = new Map<Id, Product2>();
       integer cntPrd2 = 0;
-      for (Product2 prd2 : [Select Id, Estimation_Entry_Possibility__c, SFDA_Status__c, Packing_list_manual__c
+      for (Product2 prd2 : [Select Id, Estimation_Entry_Possibility__c, SFDA_Status__c, Packing_list_manual__c,
+      //fy 棰勭暀浜у搧鏍囪瘑
+      LastbuyProductFLG__c
                             From Product2 Where Id IN :product2Ids]) {
         cntPrd2 = cntPrd2   +   1;
         if (prd2.Estimation_Entry_Possibility__c != '鈼�') {
@@ -2528,6 +2558,7 @@
   //SWAG-C9JCS8 銆愬鎵樸�戙�愮揣鎬ャ�戣浠稧Z-SP-GD0757135鎶ヤ环鍗曢棶棰� fy end
 
   public boolean dataEntry() {
+    system.debug('activities++++----****3'+activities);
     //SWAG-C9JCS8 銆愬鎵樸�戙�愮揣鎬ャ�戣浠稧Z-SP-GD0757135鎶ヤ环鍗曢棶棰� fy start
     // Boolean ifdecide=false;
     // List<Opportunity> oppsde = [Select Id, Estimation_Decision__c From Opportunity Where Id = : oppId];
@@ -2572,6 +2603,7 @@
         errormessage = System.Label.Error_Message3;
       }
       //decimal temSalesAmount1 = 0; // 2018/09/28 CHAN-B4YAB8 缁忛攢鍟嗗皬璁″悎璁� end
+      system.debug('activities++++----****2'+activities);
       for (QELine a : activities) {
         if ((a.Asset_Model != null) && (a.Asset_Model != '')) {
           if (a.PageObject.Quantity__c == null || a.PageObject.Quantity__c == 0) {
@@ -2773,6 +2805,7 @@
 
       // 20150302 jo 瑕嬬銇富鏈哄畨瑁呭湴鐐广倰瑷畾
       List<String> pIds = new List<String>();
+      system.debug('activities++++----****1'+activities);
       for (QELine s : activities) {
         if (String.isBlank(s.PageObject.Id__c) == false) {
           pIds.add(s.PageObject.Id__c);
@@ -2849,6 +2882,7 @@
       //Sap閫佷俊,Print銇悎銈忋仜銇�1锝�
       Integer i = 1;
       if (activities.size() > 0) {
+        system.debug('activities++++----****'+activities);
         for (QELine s : activities) {
           if (s.Asset_Model != null && s.Asset_Model != '') {
             if (s.pageObject.PricebookEntryId != null) {
@@ -2894,6 +2928,7 @@
           }
         }
         System.debug('start save quote lines at: ' + System.currentTimeMillis());
+        system.debug('qlist+++---+++'+qlist);
         insert qlist;
         System.debug('finished save quote lines at: ' + System.currentTimeMillis());
 
@@ -3104,7 +3139,90 @@
     }
     return true;
   }
+  //lastbuy  2022/2/9 fy start
+  public boolean ReservedProductVerification() {
 
+    filg=true;
+    Map<string,QuoteLineItem> quotlinitMap = new Map<string,QuoteLineItem>();
+    List<Id> lastProductFLGListId = new List<Id>();
+    List<QuoteLineItem> lastProductFLGList = new List<QuoteLineItem>();
+    List<QuoteLineItem> act = new List<QuoteLineItem>();
+    List<QuoteLineItem> act2 = new List<QuoteLineItem>();
+    for(QELine aaa :activities){
+      if(aaa.pageObject.PricebookEntry.Product2Id!=null){
+        act.add(aaa.pageObject);
+      }
+    }
+    act2=act.deepClone();
+    Map<String,QuoteLineItem> map1 = new Map<String,QuoteLineItem>();
+    System.debug('activities1111111111112涓烘墍褰撲负澶氬!!!'+activities);
+    integer i =0;
+    for(QuoteLineItem pspsc :act2){
+      if(pspsc.PricebookEntry.Product2Id!=null){
+        if(map1.containsKey(pspsc.PricebookEntry.Product2Id)){
+          QuoteLineItem quoteLine = map1.get(pspsc.PricebookEntry.Product2Id);
+          quoteLine.Quantity__c =quoteLine.Quantity__c+pspsc.Quantity__c;
+          map1.put(pspsc.PricebookEntry.Product2Id,quoteLine);
+        }else{
+          map1.put(pspsc.PricebookEntry.Product2Id,pspsc);
+        }
+        System.debug('34499879!!!'+activities);
+      }
+    }
+    System.debug('3434343!!!'+activities);
+    System.debug('5656565!!!'+map1);
+    for (QuoteLineItem value : map1.values()) {
+      if(value.PricebookEntry.Product2.LastbuyProductFLG__c){
+        lastProductFLGListId.add(value.PricebookEntry.Product2Id);
+        quotlinitMap.put(value.PricebookEntry.Product2Id,value);
+        lastProductFLGList.add(value);
+      }
+    }
+    System.debug('activities++++!!!'+activities);
+    System.debug('activities!!!'+map1.values());
+    System.debug('oppId!!!'+oppId);
+    System.debug('lastProductFLGList!!!'+lastProductFLGListId);
+    if(lastProductFLGListId!=null&&lastProductFLGListId.size()!=0){
+        List<LastbuyProduct__c> LastbuyObjList=[select id,LastbuyQuantity__c,InquiryCode__c,ProductName__c,effectiveFLG__c from LastbuyProduct__c where InquiryCode__c= : oppId and ProductName__c in :lastProductFLGListId and effectiveFLG__c = true];
+        Map<string,LastbuyProduct__c> LastbuyObjMap = new Map<string,LastbuyProduct__c>();
+        System.debug('LastbuyObjList+++++!!!'+LastbuyObjList);
+        if(LastbuyObjList!=null&&LastbuyObjList.size()!=0){
+          for(LastbuyProduct__c lastbuypr :LastbuyObjList){
+            LastbuyObjMap.put(lastbuypr.ProductName__c,lastbuypr);
+          }
+        }else{
+          flglastbuy=1;
+          filg=false;
+          return filg;
+        }
+        System.debug('LastbuyObjMap!!!'+LastbuyObjMap);
+        System.debug('lastProductFLGList+++++++!!!'+lastProductFLGList);
+        if(lastProductFLGList!=null&&lastProductFLGList.size()!=0){
+          for(QuoteLineItem lastbuypr :lastProductFLGList){
+            Decimal quoteLItemNum=0;
+            if(LastbuyObjMap.containsKey(lastbuypr.PricebookEntry.Product2Id)){
+                quoteLItemNum=LastbuyObjMap.get(lastbuypr.PricebookEntry.Product2Id).LastbuyQuantity__c;
+                System.debug('quoteLItemNum!!!'+quoteLItemNum);
+                System.debug('lastbuypr.pageObject.Quantity__c+++!!!'+lastbuypr.Quantity__c);
+                if(lastbuypr.Quantity__c>quoteLItemNum){
+                  errorProductmodel=lastbuypr.Asset_Model_No__c;
+                  flglastbuy=2;
+                  filg=false;
+                  break;
+                }
+            }else{
+              errorProductmodel=lastbuypr.Asset_Model_No__c;
+              flglastbuy=3;
+              filg=false;
+              break;
+            }
+          }
+        }
+    }
+    system.debug('filg====='+filg);
+    return filg;
+  }
+  //lastbuy  2022/2/9 fy end
   //opp銇敾闈€伄鍊ゃ倰瑷畾
   private void setOppFromOppInfo() {
     opp.Wholesale_Price__c = oppInfo.Wholesale_Price;

--
Gitblit v1.9.1