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/QuoteTrialController.cls | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 151 insertions(+), 10 deletions(-)
diff --git a/force-app/main/default/classes/QuoteTrialController.cls b/force-app/main/default/classes/QuoteTrialController.cls
index 8ede84e..14bd73d 100644
--- a/force-app/main/default/classes/QuoteTrialController.cls
+++ b/force-app/main/default/classes/QuoteTrialController.cls
@@ -20,8 +20,8 @@
Map<String,QuoteLineItem> map1 = new Map<String,QuoteLineItem>();
string sql = 'select ';
String props = CommonUtils.GetSqlToPorps(QuoteLineItem.SObjectType);
- sql += props;
- sql +=' ,Product2.Intra_Trade_List_RMB__c,Product2.Intra_Trade_Service_RMB__c,Product2.Foreign_Trade_List_US__c,Product2.NoDiscount_Foreign__c,Product2.MDM_Model_No__c ';
+ sql += props;//SWAG-CFZAKE銆愬鎵樸�戞姤浠疯绠椾簩鏈� fy start Product2.Dealer_Object__c,Product2.ENG_DeaerProFlag__c
+ sql +=' ,Product2.Intra_Trade_List_RMB__c,Product2.Intra_Trade_Service_RMB__c,Product2.Foreign_Trade_List_US__c,Product2.NoDiscount_Foreign__c,Product2.MDM_Model_No__c,Product2.Dealer_Object__c,Product2.ENG_DeaerProFlag__c ';
sql += ' from QuoteLineItem where Quoteid = :IdParam ';
List<QuoteLineItem> arrays = Database.query(sql);
for(QuoteLineItem pspsc :arrays){
@@ -69,11 +69,63 @@
public static string GetPromotionPromotionSearch(Integer page, Integer pageLimit,String search,String sortOrder,String sortPlus) {
QuoteTrialService dao = new QuoteTrialService();
String[] arrTest = new String[] {'PromotionNo__cEqual','NameLike'};
- PagePlus pages = dao.GetPromotionPromotionSearchFn(page,pageLimit,search,sortOrder,sortPlus,arrTest);
+ PagePlus pages = dao.GetPromotionPromotionSearchFn(page,pageLimit,search,sortOrder,sortPlus,arrTest);
+ //SWAG-CFZAKE銆愬鎵樸�戞姤浠疯绠椾簩鏈� fy start
+ List<SObject> pagesRecordsList = pages.getRecords();
+ pagesRecordsList=screenPromotionHeadc(pagesRecordsList);
+ pages.setRecords(pagesRecordsList);
+ //SWAG-CFZAKE銆愬鎵樸�戞姤浠疯绠椾簩鏈� fy end
return JSON.serialize(pages);
// return DataBasePlus.Mysql;
}
-
+ //SWAG-CFZAKE銆愬鎵樸�戞姤浠疯绠椾簩鏈� fy start
+ //绛涢�変績閿�鏂规鏂规硶
+ public static List<SObject> screenPromotionHeadc(List<SObject> pagesRecordsList){
+ List<Id> PromotionHeadIdList=new List<Id>();
+ // List<SObject> pagesRecordsList = pages.getRecords();
+ for(SObject item:pagesRecordsList){
+ PromotionHeadIdList.add(item.Id);
+ }
+ List<PromotionProduct__c> PromotionProductList=[select Id,Asset_Model_No__c,PromotionHead__c from PromotionProduct__c where PromotionHead__c in:PromotionHeadIdList ];
+ system.debug('娴嬭瘯鎶ヤ环璁$畻浜屾湡1==='+PromotionProductList);
+ List<String> PromotionProductIdList=new List<String>();
+ Map<String,List<Id>> PromotionProductMap = new Map<String,List<Id>>();
+ for(PromotionProduct__c item2:PromotionProductList){
+ PromotionProductIdList.add(item2.Asset_Model_No__c);
+ if(PromotionProductMap.containsKey(item2.Asset_Model_No__c)){
+ List<Id> prodh2 = new List<Id>();
+ prodh2 = PromotionProductMap.get(item2.Asset_Model_No__c);
+ prodh2.add(item2.PromotionHead__c);
+ PromotionProductMap.put(item2.Asset_Model_No__c, prodh2);
+ }else{
+ List<Id> prodh = new List<Id>();
+ prodh.add(item2.PromotionHead__c);
+ PromotionProductMap.put(item2.Asset_Model_No__c, prodh);
+ }
+ }
+ List<Product2> Product2List=[select Id,MDM_Model_No__c,Dealer_Object__c from Product2 where MDM_Model_No__c in:PromotionProductIdList ];
+ Set<Id> PromotionHeadMatchingSet = new Set<Id>();
+ for(Product2 item3:Product2List){
+ if(item3.Dealer_Object__c){
+ if(PromotionProductMap.containsKey(item3.MDM_Model_No__c)){
+ List<Id> prodh3 = new List<Id>();
+ prodh3 = PromotionProductMap.get(item3.MDM_Model_No__c);
+ for(Id PromoID :prodh3){
+ PromotionHeadMatchingSet.add(PromoID);
+ }
+ }
+ }
+ }
+ List<SObject> pagesRecordsList2 = new List<SObject>();
+ for(SObject item4:pagesRecordsList){
+ if(!PromotionHeadMatchingSet.contains(item4.Id)){
+ pagesRecordsList2.add(item4);
+ }
+ }
+ // pages.setRecords(pagesRecordsList2);
+ return pagesRecordsList2;
+ }
+ //SWAG-CFZAKE銆愬鎵樸�戞姤浠疯绠椾簩鏈� fy end
//鑾峰彇 鍥哄畾璧勪骇
// @AuraEnabled
// public static List<PromotionHead__c> GetPromotionNormalProduct() {
@@ -92,12 +144,19 @@
String[] arrTest = new String[] {'PromotionNo__cEqual','NameLike'};
PagePlus pages = dao.GetNormalProductSearchFn(page,pageLimit,search,sortOrder,sortPlus,arrTest);
-
+ // pages=screenPromotionHeadc(pages);
+ //SWAG-CFZAKE銆愬鎵樸�戞姤浠疯绠椾簩鏈� fy start
+ List<SObject> pagesRecordsList = pages.getRecords();
+ pagesRecordsList=screenPromotionHeadc(pagesRecordsList);
+ pages.setRecords(pagesRecordsList);
+ //SWAG-CFZAKE銆愬鎵樸�戞姤浠疯绠椾簩鏈� fy end
QueryWrapper query = new QueryWrapper(PromotionHead__c.SObjectType);
query.eq('recordtype.developername', 'NormalProduct');
List<PromotionHead__c> arrays = DataBasePlus.listPlus(query);
-
+ //SWAG-CFZAKE銆愬鎵樸�戞姤浠疯绠椾簩鏈� fy start
+ arrays=screenPromotionHeadc(arrays);
+ //SWAG-CFZAKE銆愬鎵樸�戞姤浠疯绠椾簩鏈� fy end
return JSON.serialize(pages) + '--' + JSON.serialize(arrays);
// return DataBasePlus.Mysql;
}
@@ -386,13 +445,22 @@
if(psp!=null){
insert psp ;
}
- Quote quote = new Quote();
+ // SWAG-CCY65A 2022-04-19 ssm start
+ // 鍦ㄦ姤浠疯绠椾繚瀛樹箣鍚庯紝鎸夌収鎶ヤ环涓婄殑淇濆瓨閫昏緫缁欐姤浠疯鍜岃浠蜂骇鍝佽閲嶆柊璁$畻涓�娆¢娴嬮噾棰�
+ // Quote quote = new Quote();
+ // quote.Id=QuoteId;
+ Quote quote = [select Id,
+ TotalPrice__c, // 鎬讳环
+ Estimation_List_Price__c, // 鏍囧噯List浠锋牸
+ MultiYearWarrantyTotalPrice__c // 澶氬勾淇濆悎璁�
+ from Quote where Id = :QuoteId];
+ quote.OCM_Sales_Forecast__c=ContractPrice;
+ System.debug('quote:' + quote);
+
Opportunity opportunity = new Opportunity();
opportunity.Id=OpportunityId;
- System.debug('OpportunityId==='+OpportunityId);
- quote.Id=QuoteId;
- quote.OCM_Sales_Forecast__c=ContractPrice;
opportunity.Wholesale_Price__c=ContractPrice;
+ System.debug('opportunity:'+opportunity);
if(SalesRootc.equals('璨╁2搴�')){
//璧嬪�肩粰涓嬮潰鐨� 鍚堝悓閲戦 骞剁疆鐏颁笉鍙紪杈�
quote.OCM_Agent1_Price_Page__c=ContractPrice;
@@ -420,6 +488,79 @@
if(opportunity!=null){
update opportunity;
}
+ // 鏇存柊鎶ヤ环琛屽拰璇环浜у搧琛�
+ //OCM澹蹭笂浜堟脯閲戦(绋庤炯) = OCM鎴愮磩浜堟脯閲戦(绋庤炯銇�) * (灏忚▓ / 瑕嬬鍚堣▓)
+ System.debug('opportunity.Wholesale_Price__c != null: ' + (opportunity.Wholesale_Price__c != null));
+ System.debug('quote.TotalPrice__c != null: ' + (quote.TotalPrice__c != null));
+ System.debug('quote.TotalPrice__c > 0: ' + (quote.TotalPrice__c > 0));
+ System.debug('quote:' + quote);
+ System.debug('update flag:' + (opportunity.Wholesale_Price__c != null && quote.TotalPrice__c != null && quote.TotalPrice__c > 0));
+ if (opportunity.Wholesale_Price__c != null && quote.TotalPrice__c != null && quote.TotalPrice__c > 0) {
+ System.debug('杩涘叆鏇存柊琛岄」鐩搷浣�');
+ // 鑾峰彇鎶ヤ环琛屽苟閲嶆柊璁$畻鎶ヤ环琛岀殑棰勬祴閲戦
+ List<QuoteLineItem> quo_lines = [SELECT
+ Id,
+ TotalPrice__c, // 鎬昏 ((鏈�鏂颁骇鍝佸畾浠� + NoDiscount) * 鏁伴噺)
+ OCM_Sales_Forecast__c, // OCSM澹蹭笂浜堟脯閲戦锛堢◣杈笺伩锛�
+ AgencySubtotal__c, // 缁忛攢鍟嗗皬璁�
+ AgencyUnitPrice__c, // 缁忛攢鍟嗗崟浠�
+ GuranteePrice__c, // 璁℃彁閲戦
+ Product_ListPrice__c, // 鏈�鏂颁骇鍝佸畾浠�
+ NoDiscountTotal__c, // NoDiscount灏忚
+ Quantity // 鏁伴噺
+ FROM
+ QuoteLineItem
+ WHERE
+ QuoteId = :quote.Id
+ AND
+ TotalPrice__c > 0];
+ System.debug('quo_lines:' + quo_lines);
+ if (quo_lines != null && quo_lines.size() > 0) {
+ // 鏇存柊鎶ヤ环琛屼笂鐨勫悇绉嶅��
+ for(QuoteLineItem item : quo_lines) {
+ // 棰勬祴鎴愪氦閲戦 = 鍚堝悓鎬婚噾棰� * (琛屾�讳环 / 鎶ヤ环鎬讳环)
+ item.OCM_Sales_Forecast__c = opportunity.Wholesale_Price__c * (item.TotalPrice__c / quote.TotalPrice__c);
+ // 缁忛攢鍟嗗皬璁� = (鍚堝悓鎬婚噾棰� - 澶氬勾淇濆悎璁�) * (琛屾渶鏂板畾浠锋�婚噾棰� / 鏍囧噯瀹氫环鎬婚) + NoDiscount灏忚
+ Decimal NoDiscountTotal = item.NoDiscountTotal__c != null ? item.NoDiscountTotal__c : 0;
+ item.AgencySubtotal__c = (opportunity.Wholesale_Price__c - quote.MultiYearWarrantyTotalPrice__c) * (item.Product_ListPrice__c * item.Quantity / quote.Estimation_List_Price__c) + NoDiscountTotal;
+ // 缁忛攢鍟嗗崟浠� = 缁忛攢鍟嗗皬璁� / 鏁伴噺
+ item.AgencyUnitPrice__c = item.Quantity > 0 ? item.AgencySubtotal__c / item.Quantity : item.AgencyUnitPrice__c;
+ }
+ update quo_lines;
+ }
+ // 鑾峰彇璇环浜у搧琛屽苟閲嶆柊璁$畻棰勬祴閲戦
+ List<OpportunityLineItem> opp_lines = [SELECT
+ Id,
+ TotalPrice__c, // 鎬昏
+ ListPrice_total_price__c, // 鏈�鏂癓istPrice鎬婚(涓嶅惈NoDiscount鐨勯噾棰�)
+ OCM_Sales_Forecast__c, // OCSM棰勬祴鎴愪氦閲戦
+ AgencySubtotal__c, // 缁忛攢鍟嗗皬璁�
+ AgencyUnitPrice__c, // 缁忛攢鍟嗗崟浠�
+ GuranteePriceSum__c, // 璁℃彁閲戦鍚堣
+ NoDiscountTotal__c, // NoDiscount灏忚
+ Quantity // 鏁伴噺
+ FROM
+ OpportunityLineItem
+ WHERE
+ OpportunityId = :opportunity.Id
+ AND
+ TotalPrice__c > 0];
+ System.debug('opp_lines:' + opp_lines);
+ if (opp_lines != null && opp_lines.size() > 0) {
+ // 鍐嶆洿鏂拌浠疯涓婄殑鍚勭鍊�
+ for (OpportunityLineItem item : opp_lines) {
+ // 棰勬祴鎴愪氦閲戦 = 鍚堝悓鎬婚噾棰� * (琛屾�讳环 / 鎶ヤ环鎬讳环)
+ item.OCM_Sales_Forecast__c = opportunity.Wholesale_Price__c * (item.TotalPrice__c / quote.TotalPrice__c);
+ // 缁忛攢鍟嗗皬璁� = (鍚堝悓鎬婚噾棰� - 澶氬勾淇濆悎璁�) * (琛屾渶鏂板畾浠锋�婚噾棰� / 鏍囧噯瀹氫环鎬婚) + NoDiscount灏忚
+ Decimal NoDiscountTotal = item.NoDiscountTotal__c != null ? item.NoDiscountTotal__c : 0;
+ item.AgencySubtotal__c = (opportunity.Wholesale_Price__c - quote.MultiYearWarrantyTotalPrice__c) * (item.ListPrice_total_price__c / quote.Estimation_List_Price__c) + NoDiscountTotal;
+ // 缁忛攢鍟嗗崟浠� = 缁忛攢鍟嗗皬璁� / 鏁伴噺
+ item.AgencyUnitPrice__c = item.Quantity > 0 ? item.AgencySubtotal__c / item.Quantity : item.AgencyUnitPrice__c;
+ }
+ update opp_lines;
+ }
+ }
+ // SWAG-CCY65A 2022-04-19 ssm end
System.debug('psp'+psp);
// String TempStr = Json.serialize(goodsList);
// return TempStr;
--
Gitblit v1.9.1