123
chenjingwu
2024-04-11 e2614ccbb5e53f8a3d41154a4d2d39748e78985c
force-app/main/default/classes/lexNewQuoteEntryController.cls
@@ -231,12 +231,14 @@
  // }
  @AuraEnabled
  public static Map<String,Map<String,List<OptionTemplete>>> addOptions(List<String> idList){
  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年',''));
@@ -249,7 +251,19 @@
        optionMap.put(id,optionTempleteList);
      }
    }
    return optionMap;
    allMap.put('optionMap',optionMap);
    List<MultiYearWarranty__c> muList = [select Id,ProductName__c,MultiOneYearWarrantyPrice__c,AmountWithheld__c,AgeLimit__c from MultiYearWarranty__c where ProductName__c in:idList];
    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);
    return allMap;
  }
  // chenjingwu 20240409 end
  // DB202311242191 【报价单】报价单合同金额更新和生成新报价单规则确认和修改 fy start
@@ -1614,6 +1628,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
@@ -1674,6 +1691,10 @@
                             //chenjingwu DB202308355043 2023.8.25 start
                             , prd.Category5__c
                             //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
                            ,prd.whetherOldCode_PrePro__c
@@ -1703,6 +1724,10 @@
                             //chenjingwu DB202308355043 2023.8.25 start
                             , prd.Category5__c
                             //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
                            ,prd.whetherOldCode_PrePro__c
@@ -1760,6 +1785,10 @@
    List<string> xlslist = New list<string>();
    List<string> codelist = New List<string>();
    List<Integer> Quantitylist = New List<Integer>();
    // chenjingwu 20240411 start
    List<Integer> exYearList = New List<Integer>();
    Integer xlsExYear;
    // chenjingwu 20240411 end
    //String str ;
    Map<String, Integer> mp = new Map<String, Integer>();
@@ -1776,7 +1805,8 @@
          system.debug('xlslist+++'+xlslist);
          for (String s : xlslist) {
            //odd number or even number
            if (math.mod(i, 2) != 0) {
            // chenjingwu 20240411 start
            if (math.mod(i, 3) == 1) {
              system.debug('xlslist1+++'+s);
              //odd number
              if (s == '' || s == null) {
@@ -1790,7 +1820,7 @@
                xlsQuantity = Integer.valueOf(s);
                Quantitylist.add(xlsQuantity);
              }
            } else {
            } else if(math.mod(i, 3) == 0){
              system.debug('xlslist2+++'+s);
              //even number
              if (s == '' || s == null) {
@@ -1804,6 +1834,20 @@
                codelist.add(s);
                xlscode = s;
              }
            }else if(math.mod(i, 3) == 2){
              //even number
              if (s == '' || s == null) {
                errorflg = true;
                errormessage = System.Label.Error_Message31;
                activities = tmpactivities;
                // pageArrange();
                return errormessage+'---'+JSON.serialize(activities);
              } else {
                s = s.trim();
                xlsExYear = Integer.valueOf(s);
                exYearList.add(xlsExYear);
              }
              // chenjingwu 20240411 end
            }
            i++;
          }
@@ -1822,8 +1866,9 @@
    system.debug(j);
    system.debug('xlscnt:::::' + xlscnt);
    if (codelist.size() == 0 || Quantitylist.size() == 0) {
    // chenjingwu 20240411 start
    if (codelist.size() == 0 || Quantitylist.size() == 0 || exYearList.size() == 0) {
      // chenjingwu 20240411 end
      activities = tmpactivities;
      errorflg = true;
      system.debug('codelist+++'+codelist);
@@ -1866,6 +1911,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
@@ -1909,6 +1957,10 @@
                            //chenjingwu DB202308355043 2023.8.25 start
                            , prd.Category5__c
                            //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
                            ,prd.whetherOldCode_PrePro__c
@@ -1935,6 +1987,10 @@
                            //chenjingwu DB202308355043 2023.8.25 start
                            , prd.Category5__c
                            //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
                            ,prd.whetherOldCode_PrePro__c
@@ -2864,9 +2920,11 @@
      // 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 Decimal exPrice;
      // public List<Map<String, String>> Learning_CommunityOptions = new List<Map<String, String>>(); 
      public List<OptionTemplete> Learning_CommunityOptions;
      public List<MultiYearWarranty__c> multiYearWarrantyList;
@@ -2889,6 +2947,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;
          }
@@ -2897,8 +2956,15 @@
          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];
          Integer period = this.multiYearWarrantyList.size();
          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;
              }
            }
          }
          if(period > 0){
            List<OptionTemplete> optionTempleteList = new List<OptionTemplete>();
            optionTempleteList.add(new OptionTemplete('0年',''));
@@ -3134,6 +3200,10 @@
                //chenjingwu DB202308355043 2023.8.25 start
                ,String Category5
                //chenjingwu DB202308355043 2023.8.25 end
                //chenjingwu  20240411 start
                , Integer exYear
                ,String ProductCategory
                //chenjingwu  20240411 end
                //fy DB202312538864 2024.02.02 start
                ,Boolean lastbuyProductFLG
                ,Boolean whetherOldCode_PrePro
@@ -3144,6 +3214,10 @@
               ) {
          pageObject = New QuoteLineItem();
          pageObject.Quantity__c = Quantity;
          //chenjingwu  20240411 start
          this.Learning_Community = String.valueof(exYear);
          this.ProductCategory = ProductCategory;
          //chenjingwu  20240411 end
          this.lineNo = i;
          this.Asset_Model = Asset_Model;
          this.Sales_Possibility = Sales_Possibility_c;