From e3c02c03dd2de442bbced87236f60a13a1cd154e Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期四, 02 三月 2023 17:51:57 +0800
Subject: [PATCH] gzw 正式环境最新代码更新
---
force-app/main/default/classes/QuoteTrialController.cls | 90 +++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 86 insertions(+), 4 deletions(-)
diff --git a/force-app/main/default/classes/QuoteTrialController.cls b/force-app/main/default/classes/QuoteTrialController.cls
index 8ede84e..9b6f039 100644
--- a/force-app/main/default/classes/QuoteTrialController.cls
+++ b/force-app/main/default/classes/QuoteTrialController.cls
@@ -386,13 +386,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 +429,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