From 82bab865cd68bf4d18d7e0e63342b5cbe76a6aa3 Mon Sep 17 00:00:00 2001
From: chenjingwu <chenjingwu@prec-tech.com>
Date: 星期五, 19 四月 2024 13:56:33 +0800
Subject: [PATCH] 123

---
 force-app/main/default/classes/lexNewQuoteEntryController.cls |  119 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 93 insertions(+), 26 deletions(-)

diff --git a/force-app/main/default/classes/lexNewQuoteEntryController.cls b/force-app/main/default/classes/lexNewQuoteEntryController.cls
index 3bcee50..7c36ae0 100644
--- a/force-app/main/default/classes/lexNewQuoteEntryController.cls
+++ b/force-app/main/default/classes/lexNewQuoteEntryController.cls
@@ -71,7 +71,7 @@
                 Quote_Adjust_Amount__c, Quote_Adjust_Calculate__c, Discount_Amount__c, Discount_Amount_Calculate__c, Installation_location__c,
                 QuoteTotal_Page__c, Dealer_Final_Price_Page__c, Quote_Adjust_Amount_Page__c, OCM_Agent1_Price_Page__c, Agent1_Agent2_Price_Page__c
                 , AgencyDiscount__c,OCM_Sales_Forecast__c//棰勬祴閲戦淇敼 fy
-                , Gurantee_Period__c , multiYearWarranty__c, MultiYearWarrantyTotalPrice__c,
+                , Gurantee_Period__c , multiYearWarranty__c, MultiYearWarrantyTotalPrice__c,ExtendedWarrantyAmountTotalPrice__c,
                 Preferential_Gurantee_Period__c,LineItemCount 
                  ,IsQuoteTrial__c,OpportunityId,Opportunity.RecordType.DeveloperName
                 FROM Quote Where Id = :quoId];
@@ -183,7 +183,7 @@
              Agency1__c, Agency2__c, Stocking_Price__c, Purchasing_Cost__c, Opportunity_No__c, StageName,
              Agency1__r.Special__c, Agency2__r.Special__c, Account.Parent.Special__c
              , Authorized_DB_No__c, Authorized_Finish_Sales__c, If_Need_Authorize__c
-             , Gurantee_Period__c , multiYearWarranty__c, MultiYearWarrantyTotalPrice__c
+             , Gurantee_Period__c , multiYearWarranty__c, MultiYearWarrantyTotalPrice__c,ExtendedWarrantyAmountTotalPrice__c
              , Hospital__c, Department_Class__c
              ,Is_Corrosion__c,
              If_Need_PriceApply__c
@@ -231,25 +231,51 @@
 
   // }
   @AuraEnabled
-  public static Map<String,List<OptionTemplete>> addOptions(List<String> idList){
-    Map<String,Integer> intList = new Map<String,Integer>();
-    for(AggregateResult  objAgr: [select ProductName__c,COUNT(Id) total from MultiYearWarranty__c where ProductName__c in:idList group by ProductName__c]){
-      intList.put((String)objAgr.get('ProductName__c'), (Integer)objAgr.get('total'));
-    }
+  public static Map<String,Object> addOptions(List<String> idList){
+    // Map<String,Integer> intList = new Map<String,Integer>();
+    // for(AggregateResult  objAgr: [select ProductName__c,COUNT(Id) total from MultiYearWarranty__c where ProductName__c in:idList group by ProductName__c]){
+    //   intList.put((String)objAgr.get('ProductName__c'), (Integer)objAgr.get('total'));
+    // }
+    // Map<String,List<OptionTemplete>> optionMap = new Map<String,List<OptionTemplete>>();
+    // Map<String,Object> allMap = new Map<String,Object>();
+    // Map<String,List<MultiYearWarranty__c>> priceMap = new Map<String,List<MultiYearWarranty__c>>();
+    // for(String id: idList){
+    //   List<OptionTemplete> optionTempleteList = new List<OptionTemplete>();
+    //   optionTempleteList.add(new OptionTemplete('0骞�','0'));
+    //   if(intList.containsKey(id)){
+    //     for(Integer j = 0;j < intList.get(id);j++){
+    //       optionTempleteList.add(new OptionTemplete((j + 1) + '骞�',(j + 1) + ''));
+    //     }
+    //     optionMap.put(id,optionTempleteList);
+    //   }else {
+    //     optionMap.put(id,optionTempleteList);
+    //   }
+    // }
+    // allMap.put('optionMap',optionMap);
+    Map<String,Object> allMap = new Map<String,Object>();
+    Map<String,List<MultiYearWarranty__c>> priceMap = new Map<String,List<MultiYearWarranty__c>>();
     Map<String,List<OptionTemplete>> optionMap = new Map<String,List<OptionTemplete>>();
+    List<MultiYearWarranty__c> muList = [select Id,ProductName__c,MultiOneYearWarrantyPrice__c,AmountWithheld__c,AgeLimit__c from MultiYearWarranty__c where ProductName__c in:idList order by AgeLimit__c];
+    for(String id: idList){
+      List<MultiYearWarranty__c> muList1 = new List<MultiYearWarranty__c>();
+      for(MultiYearWarranty__c mu : muList){
+        if(mu.ProductName__c == id){
+          muList1.add(mu);
+        }
+      }
+      priceMap.put(id,muList1);
+    }
+    allMap.put('priceMap',priceMap);
     for(String id: idList){
       List<OptionTemplete> optionTempleteList = new List<OptionTemplete>();
-      optionTempleteList.add(new OptionTemplete('0骞�',''));
-      if(intList.containsKey(id)){
-        for(Integer j = 0;j < intList.get(id);j++){
-          optionTempleteList.add(new OptionTemplete((j + 1) + '骞�',(j + 1) + ''));
-        }
-        optionMap.put(id,optionTempleteList);
-      }else {
-        optionMap.put(id,optionTempleteList);
+      optionTempleteList.add(new OptionTemplete('0骞�','0'));
+      for(MultiYearWarranty__c mu: priceMap.get(id)){
+        optionTempleteList.add(new OptionTemplete(mu.AgeLimit__c + '骞�',mu.AgeLimit__c + ''));
       }
+      optionMap.put(id,optionTempleteList);
     }
-    return optionMap;
+    allMap.put('optionMap',optionMap);
+    return allMap;
   }
   // chenjingwu 20240409 end
   // DB202311242191 銆愭姤浠峰崟銆戞姤浠峰崟鍚堝悓閲戦鏇存柊鍜岀敓鎴愭柊鎶ヤ环鍗曡鍒欑‘璁ゅ拰淇敼 fy start
@@ -1006,7 +1032,11 @@
     if(quo.MultiYearWarrantyTotalPrice__c==null){
       quo.MultiYearWarrantyTotalPrice__c=0;
     }
-    sumContractAmount = AccrualTotal+quo.MultiYearWarrantyTotalPrice__c;
+    if(quo.ExtendedWarrantyAmountTotalPrice__c==null){
+      quo.ExtendedWarrantyAmountTotalPrice__c=0;
+    }
+  
+    sumContractAmount = AccrualTotal+quo.MultiYearWarrantyTotalPrice__c+quo.ExtendedWarrantyAmountTotalPrice__c;
     if(quo.OCM_Agent1_Price_Page__c<=sumContractAmount){
       error = true;
       errorflg = true;
@@ -1175,7 +1205,7 @@
               Agency2__c, Agent1_Agent2_Price__c, Agency2_Profit__c, Agency2_Profit_Rate__c,
               Preferential_Trading_Price__c, Discount__c, Pricing__c, Unit_Price__c, Offer_Amount__c, TOTAL__c,
               Contract__c, Print_HP_Name__c, Quote_Expiration_Date__c, Quote_Comment__c, OCM_Sales_Forecast__c, Installation_location__c, HasType3Machine__c
-              , Gurantee_Period__c , multiYearWarranty__c, MultiYearWarrantyTotalPrice__c
+              , Gurantee_Period__c , multiYearWarranty__c, MultiYearWarrantyTotalPrice__c,ExtendedWarrantyAmountTotalPrice__c
               , Preferential_Gurantee_Period__c
               ,IsQuoteTrial__c 
               From Quote Where Id = :quoId];
@@ -1226,6 +1256,7 @@
       q.Gurantee_Period__c = quo.Gurantee_Period__c;
       q.multiYearWarranty__c = quo.multiYearWarranty__c;
       q.MultiYearWarrantyTotalPrice__c = quo.MultiYearWarrantyTotalPrice__c;
+      q.ExtendedWarrantyAmountTotalPrice__c = quo.ExtendedWarrantyAmountTotalPrice__c;
       q.quoteSavedDate__c = Date.today();
       q.Agency1_Profit_Rate__c = quo.Agency1_Profit_Rate__c;
       q.Agency2__c = opp.Agency2__c;
@@ -1289,6 +1320,7 @@
               ql.UnitPrice__c = ql.UnitPrice_Page__c;
               ql.UnitPrice_Page__c = 0;
               ql.ListPrice__c = s.ListPrice_Page;
+              ql.ExtendedWarrantyAmount__c = s.exPrice;
               ql.GuranteePrice__c        = s.GuranteePrice;
               ql.ProductGuranteePrice__c = s.ProductGuranteePrice;
               ql.Maintenance_Price_Year__c = s.Maintenance_Price_Year;
@@ -1346,6 +1378,7 @@
         o.Gurantee_Period__c              = quo.Gurantee_Period__c ;
         o.multiYearWarranty__c            = quo.multiYearWarranty__c ;
         o.MultiYearWarrantyTotalPrice__c  = quo.MultiYearWarrantyTotalPrice__c ;
+        o.ExtendedWarrantyAmountTotalPrice__c = quo.ExtendedWarrantyAmountTotalPrice__c;
         o.quoteSavedDate__c = Date.today();
         o.OlyNumberHosts__c = 0;
         List<String> oppIds = New List<String>();
@@ -1614,6 +1647,9 @@
                                //chenjingwu DB202308355043 2023.8.25 start
                                ,Category5__c
                                //chenjingwu DB202308355043 2023.8.25 end
+                                //chenjingwu 20240411 start
+                               ,ProductCategory__c
+                             //chenjingwu 20240411 end
                               ,Estimated_ConsumptionDueDate__c
                               //DB202312560765 you 鍚︽湁EndoRapid璧勮川妫�鏌� start 
                               ,IFEndoRapidFlag__c
@@ -1676,6 +1712,7 @@
                              //chenjingwu DB202308355043 2023.8.25 end
                              //chenjingwu 20240411 start
                              , 0
+                             ,prd.ProductCategory__c
                              //chenjingwu 20240411 end
                              //fy DB202312538864 2024.02.02 start
                             ,prd.LastbuyProductFLG__c
@@ -1708,6 +1745,7 @@
                              //chenjingwu DB202308355043 2023.8.25 end
                              //chenjingwu 20240411 start
                              , 0
+                             ,prd.ProductCategory__c
                              //chenjingwu 20240411 end
                              //fy DB202312538864 2024.02.02 start
                             ,prd.LastbuyProductFLG__c
@@ -1892,6 +1930,9 @@
                           //chenjingwu DB202308355043 2023.8.25 start
                           ,Category5__c
                           //chenjingwu DB202308355043 2023.8.25 end
+                          //chenjingwu 20240411 start
+                          ,ProductCategory__c
+                          //chenjingwu 20240411 end
                           ,Estimated_ConsumptionDueDate__c
                           //DB202312560765 you 鍚︽湁EndoRapid璧勮川妫�鏌� start 
                           ,IFEndoRapidFlag__c
@@ -1937,6 +1978,7 @@
                             //chenjingwu DB202308355043 2023.8.25 end
                             //chenjingwu  20240411 start
                             , exYearList[l]
+                            ,prd.ProductCategory__c
                             //chenjingwu  20240411 end
                             //fy DB202312538864 2024.02.02 start
                             ,prd.LastbuyProductFLG__c
@@ -1966,6 +2008,7 @@
                             //chenjingwu DB202308355043 2023.8.25 end
                             //chenjingwu  20240411 start
                             , exYearList[l]
+                            , prd.ProductCategory__c
                             //chenjingwu  20240411 end
                             //fy DB202312538864 2024.02.02 start
                             ,prd.LastbuyProductFLG__c
@@ -2896,9 +2939,13 @@
       // chenjingwu sp涓绘満绫诲瀷 20240318 start
       public String SPAssistant;
       public Boolean SPAssistantFlag;
+      public String ProductCategory;
       // chenjingwu sp涓绘満绫诲瀷 20240318 end
       // chenjingwu 3+2澶氬勾淇� 20240401 start
       public String Learning_Community;
+      public String Learning_CommunityCopy;
+      public Decimal exPrice;
+      public Decimal exPriceCopy;
       // public List<Map<String, String>> Learning_CommunityOptions = new List<Map<String, String>>(); 
       public List<OptionTemplete> Learning_CommunityOptions;
       public List<MultiYearWarranty__c> multiYearWarrantyList;
@@ -2921,6 +2968,7 @@
           Category5 = qli.PricebookEntry.Product2.Category5__c;
           //chenjingwu DB202308355043 2023.8.25 end
           // chenjingwu SP涓绘満绫诲瀷 20240318 start
+          this.ProductCategory = qli.PricebookEntry.Product2.ProductCategory__c;
           if(qli.PricebookEntry.Product2.ProductCategory__c == 'SP涓绘満'){
             this.SPAssistantFlag = true;
           }
@@ -2929,15 +2977,32 @@
           if(qli.ExtendedWarrantyPeriod__c != null && qli.ExtendedWarrantyPeriod__c != 0){
             this.Learning_Community = String.valueof(qli.ExtendedWarrantyPeriod__c);
           }
-          this.multiYearWarrantyList = [select Id,MultiOneYearWarrantyPrice__c,AmountWithheld__c from MultiYearWarranty__c where ProductName__c =: qli.PricebookEntry.Product2Id];
+          this.multiYearWarrantyList = [select Id,MultiOneYearWarrantyPrice__c,AmountWithheld__c,AgeLimit__c from MultiYearWarranty__c where ProductName__c =: qli.PricebookEntry.Product2Id order by AgeLimit__c];
           Integer period = this.multiYearWarrantyList.size();
-          if(period > 0){
-            List<OptionTemplete> optionTempleteList = new List<OptionTemplete>();
-            optionTempleteList.add(new OptionTemplete('0骞�',''));
-            for(Integer j = 0;j < period;j++){
-              optionTempleteList.add(new OptionTemplete((j + 1) + '骞�',(j + 1) + ''));
+          if(qli.ExtendedWarrantyPeriod__c != null && qli.ExtendedWarrantyPeriod__c != 0){
+            for(MultiYearWarranty__c mu: this.multiYearWarrantyList){
+              if(mu.AgeLimit__c == qli.ExtendedWarrantyPeriod__c){
+                this.exPrice = mu.MultiOneYearWarrantyPrice__c;
+              }
             }
-            this.Learning_CommunityOptions = optionTempleteList;
+          }else{
+              this.Learning_Community = 0 + '';
+              this.exPrice = 0;
+          }
+          List<OptionTemplete> optionTempleteList = new List<OptionTemplete>();
+            optionTempleteList.add(new OptionTemplete('0骞�','0'));
+          if(period > 0){
+            for(MultiYearWarranty__c mu: this.multiYearWarrantyList){
+              optionTempleteList.add(new OptionTemplete(mu.AgeLimit__c + '骞�',mu.AgeLimit__c + ''));
+            }
+            // for(Integer j = 0;j < period;j++){
+            //   optionTempleteList.add(new OptionTemplete((j + 1) + '骞�',(j + 1) + ''));
+            // }
+          }
+          this.Learning_CommunityOptions = optionTempleteList;
+          if(qli.ExtendedWarrantyPeriod__c == null && this.Learning_CommunityOptions.size() > 1){
+            this.Learning_Community = this.multiYearWarrantyList.get(this.multiYearWarrantyList.size() - 1).AgeLimit__c + '';
+            this.exPrice = this.multiYearWarrantyList.get(this.multiYearWarrantyList.size() - 1).MultiOneYearWarrantyPrice__c;
           }
           
           // this.ExtendedWarrantyPeriod = new WarrantyPeriod(optionTempleteList,'');
@@ -3168,6 +3233,7 @@
                 //chenjingwu DB202308355043 2023.8.25 end
                 //chenjingwu  20240411 start
                 , Integer exYear
+                ,String ProductCategory
                 //chenjingwu  20240411 end
                 //fy DB202312538864 2024.02.02 start
                 ,Boolean lastbuyProductFLG
@@ -3180,7 +3246,8 @@
           pageObject = New QuoteLineItem();
           pageObject.Quantity__c = Quantity;
           //chenjingwu  20240411 start
-          this.Learning_Community = exYear;
+          this.Learning_Community = String.valueof(exYear);
+          this.ProductCategory = ProductCategory;
           //chenjingwu  20240411 end
           this.lineNo = i;
           this.Asset_Model = Asset_Model;

--
Gitblit v1.9.1