From 99b667bdfd8d4fd4d56c2952510169d7f7be794c Mon Sep 17 00:00:00 2001 From: 沙世明 <shashiming@prec-tech.com> Date: 星期四, 09 三月 2023 17:12:43 +0800 Subject: [PATCH] 产品报价金额自动计算 --- force-app/main/default/classes/NewQuoteEntryController.cls | 95 +++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 86 insertions(+), 9 deletions(-) diff --git a/force-app/main/default/classes/NewQuoteEntryController.cls b/force-app/main/default/classes/NewQuoteEntryController.cls index 3a8261c..356a655 100644 --- a/force-app/main/default/classes/NewQuoteEntryController.cls +++ b/force-app/main/default/classes/NewQuoteEntryController.cls @@ -226,6 +226,9 @@ // lastbuy鍒ゆ柇鍙樻洿鐢ㄦ埛璇环 start , If_Account_Change__c // lastbuy鍒ゆ柇鍙樻洿鐢ㄦ埛璇环 end + // DB202303051651 浜у搧鎶ヤ环閲戦鑷姩璁$畻 ssm start + , Salesdepartment_Owner__c + // DB202303051651 浜у搧鎶ヤ环閲戦鑷姩璁$畻 ssm end FROM Opportunity Where Id = :oppId]; // 澶氬勾淇濅慨 start trade = '澶栬部'; @@ -368,8 +371,8 @@ } } else { //娣诲姞琛� - List<Quote> quoList = - [ SELECT Id, Name, Cancel_Decide__c, CreatedDate, PriceRefreshDate__c, Quote_Print_Date__c, + List<Quote> quoList =//SWAG-CKDATG 銆愬鎵樸�戙�怬BSAP-鎶ヤ环濮旀墭銆戞姤浠峰鎵橀」鐩敼鍠�1 fy start QuotationChange__c,MainEngineWithoutMonitor__c,Interdepartmental__c, + [ SELECT Id, Name, Cancel_Decide__c, CreatedDate, PriceRefreshDate__c, Quote_Print_Date__c,QuotationChange__c,MainEngineWithoutMonitor__c,Interdepartmental__c, Dealer_Final_Price__c, TotalPrice__c, Estimation_List_Price__c, QuoteNumber, QuoteToName, Quote_Expiration_Date__c, Quote_Comment__c, Stocking_Price__c, Unit_Price__c, Offer_Amount__c, TOTAL__c, Discount__c, Pricing__c, Preferential_Trading_Price__c, Contract__c, @@ -384,7 +387,7 @@ // 澶氬勾淇濅慨 end //鎶ヤ环璇曠畻 start ,IsQuoteTrial__c - //鎶ヤ环璇曠畻 end + //鎶ヤ环璇曠畻 end FROM Quote Where Id = :quoId]; List<QuoteLineItem> items = [Select Id, Asset_Model_No__c, SFDA_Status__c, Product_Sales_Possibility__c, @@ -448,6 +451,7 @@ } if (copyQuoId == null) { quo = quoList[0]; + quo.QuoteName__c = quo.Name; // 澶氬勾淇濅慨 start quoteGurantee_Period = quo.Gurantee_Period__c; @@ -819,10 +823,13 @@ // CHAN-AVG3PW 璇环鎶ヤ环鐢婚潰瑙勫垯鍙樻洿 Datetime cDate = quo.CreatedDate; over3month = cDate != null && cDate.date().addMonths(3) < Date.today(); - +//SWAG-CKDATG 銆愬鎵樸�戙�怬BSAP-鎶ヤ环濮旀墭銆戞姤浠峰鎵橀」鐩敼鍠�1 fy start +quo.Offer_Amount__c = true; +quo.TOTAL__c = true; +quo.Preferential_Gurantee_Period__c = true; +//SWAG-CKDATG 銆愬鎵樸�戙�怬BSAP-鎶ヤ环濮旀墭銆戞姤浠峰鎵橀」鐩敼鍠�1 fy end return null; } - //Search Events============================================================ // TODO ManualEntry銇ㄥ悓妲樸�乯s銇仸瑙f焙銇с亶銈嬨�併亾銇撱仹webservice銇犮亼銈掑疅瑁呫�佷粖寰� by katsu @@ -1192,9 +1199,11 @@ xlscode = null; xlsQuantity = null; xlslist = xls.split('\t', -1); + system.debug('xlslist+++'+xlslist); for (String s : xlslist) { //odd number or even number if (math.mod(i, 2) != 0) { + system.debug('xlslist1+++'+s); //odd number if (s == '' || s == null) { errorflg = true; @@ -1208,6 +1217,7 @@ Quantitylist.add(xlsQuantity); } } else { + system.debug('xlslist2+++'+s); //even number if (s == '' || s == null) { errorflg = true; @@ -1228,6 +1238,7 @@ } } } catch (Exception ex) { + system.debug('xlslist3+++'+xlscnt); activities = tmpactivities; errorflg = true; errormessage = System.Label.Error_Message31; @@ -1241,6 +1252,8 @@ if (codelist.size() == 0 || Quantitylist.size() == 0) { activities = tmpactivities; errorflg = true; + system.debug('codelist+++'+codelist); + system.debug('Quantitylist+++'+Quantitylist); errormessage = System.Label.Error_Message31; pageArrange(); return null; @@ -2921,8 +2934,8 @@ } } else { - List<Quote> qs = New List<Quote>(); - qs = [select Id, OpportunityId, CreatedDate, Pricebook2Id, Name, Estimation_List_Price__c, Dealer_Final_Price__c, + List<Quote> qs = New List<Quote>();//SWAG-CKDATG 銆愬鎵樸�戙�怬BSAP-鎶ヤ环濮旀墭銆戞姤浠峰鎵橀」鐩敼鍠�1 fy start QuotationChange__c,MainEngineWithoutMonitor__c,Interdepartmental__c, + qs = [select Id, OpportunityId, CreatedDate, Pricebook2Id, Name, Estimation_List_Price__c, Dealer_Final_Price__c,QuotationChange__c,MainEngineWithoutMonitor__c,Interdepartmental__c, Stocking_Price__c, Discount_Amount__c, Discount_Amount_Calculate__c, Quote_Adjust_Amount__c, Quote_Adjust_Calculate__c, Agency1__c, OCM_Agent1_Price__c, Agency1_Profit__c, Agency1_Profit_Rate__c, Quote_No__c, Agency2__c, Agent1_Agent2_Price__c, Agency2_Profit__c, Agency2_Profit_Rate__c, @@ -3008,18 +3021,29 @@ q.Quote_Comment__c = quo.Quote_Comment__c; q.Installation_location__c = quo.Installation_location__c; + + //SWAG-CKDATG 銆愬鎵樸�戙�怬BSAP-鎶ヤ环濮旀墭銆戞姤浠峰鎵橀」鐩敼鍠�1 fy start + q.QuotationChange__c = quo.QuotationChange__c; + q.MainEngineWithoutMonitor__c = quo.MainEngineWithoutMonitor__c; + q.Interdepartmental__c = quo.Interdepartmental__c; + //SWAG-CKDATG 銆愬鎵樸�戙�怬BSAP-鎶ヤ环濮旀墭銆戞姤浠峰鎵橀」鐩敼鍠�1 fy end /* if (hasType3Machine) { q.Installation_location__c = ''; } */ - System.debug('start save quote at: ' + System.currentTimeMillis()); + System.debug('q.QuotationChange__c+++'+q.QuotationChange__c); + System.debug('quo.QuotationChange__c++' + quo.QuotationChange__c); + System.debug('quo.MainEngineWithoutMonitor__c++' + quo.MainEngineWithoutMonitor__c); if (quoId == null) { insert q; quo.Quote_No__c = q.Quote_No__c; } else { update q; } + System.debug('q.QuotationChange__c2+++'+q.QuotationChange__c); + System.debug('quo.QuotationChange__c2++' + quo.QuotationChange__c); + System.debug('quo.MainEngineWithoutMonitor__c2++' + quo.MainEngineWithoutMonitor__c); System.debug('finished save quote at: ' + System.currentTimeMillis()); system.debug('鈼嬧棆鈼嬧棆鈼婼ave1鈼嬧棆鈼嬧棆鈼�'); @@ -3103,6 +3127,9 @@ os = [select Id, Estimation_List_Price__c, Dealer_Final_Price__c, Estimation_List_Price_Without_Tax__c, Agency1__c, OCM_Agent1_Price__c, Agency1_Profit__c, Agency1_Profit_Rate__c, Stocking_Price__c, Agency2__c, Agent1_Agent2_Price__c, Agency2_Profit__c, Agency2_Profit_Rate__c, Quote_Update_Sum__c , Hospital__c,Is_Corrosion__c + // lt 20221008 SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start + ,StageName ,OlyNumberHosts__c + // lt 20221008 SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end From Opportunity Where Id = :oppid]; if (os.size() > 0) { o = os[0]; @@ -3138,6 +3165,40 @@ o.quoteSavedDate__c = Date.today(); // 澶氬勾淇濅慨 end + // lt 20221008 SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 start + System.debug('lt123璇环鐘舵��(闃舵): ' + o.StageName); + System.debug('lt123activities: ' + activities); + o.OlyNumberHosts__c = 0; + System.debug('lt123涓绘満鏁�: ' + o.OlyNumberHosts__c); + List<String> oppIds = New List<String>(); + List<String> product2Ids = New List<String>(); + Map<String,Decimal> product2IdsMap = new Map<String,Decimal>(); + if (activities.size() > 0) { + for (QELine a : activities) { + if (String.isBlank(a.PageObject.Id__c) == false) { + product2Ids.add(a.PageObject.Id__c); + product2IdsMap.put(a.PageObject.Id__c,a.PageObject.Quantity__c); + } + } + + for (Product2 prod : [Select Id,ProductClass__c + From Product2 Where Id IN :product2Ids]) { + System.debug('lt123浜у搧甯傚満绫诲埆: ' + prod.ProductClass__c); + + if(o.StageName == '寮曞悎' || o.StageName == '娉ㄦ畫' || o.StageName == '鍑鸿嵎' || o.StageName == '瀹屼簡'){ + if(prod.ProductClass__c == '涓绘満'){ + if(product2IdsMap.containsKey(prod.Id)){ + o.OlyNumberHosts__c += product2IdsMap.get(prod.Id); + oppIds.add(o.Id); + ControllerUtil.UpdateBiddingFlag(oppIds); + } + }else{ + o.OlyNumberHosts__c += 0; + } + } + } + } + // lt 20221008 SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end if (o.Quote_Update_Sum__c == null) { o.Quote_Update_Sum__c = 1; @@ -3159,7 +3220,10 @@ //渚℃牸銆佸崢浣嶃�佸皬瑷堛�丱CM澹蹭笂浜堟脯閲戦锛堢◣鎶滐級銆佷尽鏍艰〃 List<OpportunityLineItem> ols = New List<OpportunityLineItem>(); OpportunityLineItem ol = New OpportunityLineItem(); - ols = [select Id from OpportunityLineItem Where OpportunityId = :oppid]; + // lt 20221008 SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end + ols = [select Id, Quantity from OpportunityLineItem Where OpportunityId = :oppid]; //update + System.debug('lt123璇环浜у搧: ' + ols); + // lt 20221008 SWAG-CHL5XA銆怓Y23璇环鏀瑰杽銆�-缁熻涓绘満鍙版暟 end if (ols.size() > 0) { //delete ControllerUtil.delOppLine(ols); @@ -3173,6 +3237,7 @@ if (s.Asset_Model != null && s.Asset_Model != '') { if (s.PageObject.PricebookEntryId != null) { ol = New OpportunityLineItem(); + System.debug('lt123璇环浜у搧鏁伴噺: ' + ol.Quantity); //lt CHL5XA銆怓Y23璇环鏀瑰杽銆� ol.OpportunityId = oppid; ol.Id__c = s.PageObject.Id__c; // CHAN-AVG3PW 璇环鎶ヤ环鐢婚潰瑙勫垯鍙樻洿 @@ -3411,6 +3476,12 @@ // lastbuy鍒ゆ柇鍙樻洿鐢ㄦ埛璇环 start public Boolean is_changed_opp { get; set; } // lastbuy鍒ゆ柇鍙樻洿鐢ㄦ埛璇环 end + // DB202303051651 浜у搧鎶ヤ环閲戦鑷姩璁$畻 ssm start + // 鍖婚櫌鍚堝悓閲戦姣斾緥 + public Decimal rate_hospital { get; set; } + // 缁忛攢鍟�1鍚堝悓閲戦姣斾緥 + public Decimal rate_agency1 { get; set; } + // DB202303051651 浜у搧鎶ヤ环閲戦鑷姩璁$畻 ssm end public OppInfo(Opportunity opp) { Account_RecordType_DeveloperName = opp.Account.RecordType.DeveloperName; @@ -3431,6 +3502,12 @@ // lastbuy鍒ゆ柇鍙樻洿鐢ㄦ埛璇环 start is_changed_opp = opp.If_Account_Change__c != null ? opp.If_Account_Change__c : false; // lastbuy鍒ゆ柇鍙樻洿鐢ㄦ埛璇环 end + // DB202303051651 浜у搧鎶ヤ环閲戦鑷姩璁$畻 ssm start + String str_rate_hospital = ControllerUtil.getValueFromJSONString(System.Label.Quote_HospitalAmount_Rate, opp.Salesdepartment_Owner__c); + String str_rate_agency1 = ControllerUtil.getValueFromJSONString(System.Label.Quote_Agency1Amount_Rate, opp.Salesdepartment_Owner__c); + rate_hospital = String.isNotBlank(str_rate_hospital) ? Decimal.valueOf(str_rate_hospital) : 1.0; + rate_agency1 = String.isNotBlank(str_rate_agency1) ? Decimal.valueOf(str_rate_agency1) : 1.0; + // DB202303051651 浜у搧鎶ヤ环閲戦鑷姩璁$畻 ssm end } } //TODO 1.Quote銈儢銈搞偋銈儓杩藉姞 -- Gitblit v1.9.1