From cdff37596ef14a95a3e557b0d978f50140410308 Mon Sep 17 00:00:00 2001
From: 涂煌豪 <tuhuanghao@prec-tech.com>
Date: 星期二, 10 五月 2022 16:17:59 +0800
Subject: [PATCH] 【委托】URF限次修理合同的最高价格修改

---
 force-app/main/default/classes/SelectAssetEstimateURFController.cls |   86 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 79 insertions(+), 7 deletions(-)

diff --git a/force-app/main/default/classes/SelectAssetEstimateURFController.cls b/force-app/main/default/classes/SelectAssetEstimateURFController.cls
index 454105d..4143377 100644
--- a/force-app/main/default/classes/SelectAssetEstimateURFController.cls
+++ b/force-app/main/default/classes/SelectAssetEstimateURFController.cls
@@ -244,6 +244,9 @@
 					  + 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,'
 					  + 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,CurrentContract_F__r.Contract_Range__c,'
 					  + 'Product2.ProductURF__c,Product2.ProductURF__r.URFLimitSerial__c,Product2.ProductURF__r.UFR_MaxRepairCount__c,Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,'
+					  //XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+					  + 'Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c, Product2.ProductURF__r.Maintenance_Price_Year_URF__c,'  
+					  //XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 					  + 'CurrentContract_End_Date__c, Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c,AssetMark__c FROM Asset WHERE Product2.ProductURF__c != null AND Hospital__c = \'' + this.targetHospitalId + '\' ';
 		//HWAG-BDJ43R ---XHL---20190729---
 		//soql +=  ' AND AssetMark__c != \'鑰楁潗\' AND Product2.Family != \'ET\' ';
@@ -735,6 +738,9 @@
 							// 闄愭鍚堝悓淇℃伅 add by gzw start
 							, Product2.ProductURF__c, Product2.ProductURF__r.URFLimitSerial__c, Product2.ProductURF__r.UFR_MaxRepairCount__c, Product2.ProductURF__r.UFR_Maintenance_Price_Month__c
 							// 闄愭鍚堝悓淇℃伅 add by gzw end
+							//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+							, Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c, Product2.ProductURF__r.Maintenance_Price_Year_URF__c
+							//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 							FROM Asset WHERE Hospital__c = :this.targetHospitalId AND ( AssetMark__c != '鑰楁潗' OR Product2.Family != 'ET' ) ORDER BY ID, IF_Warranty__c asc];
 			//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
 			// assetRecords = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,
@@ -779,6 +785,9 @@
 				Asset__r.Product2.ProductURF__r.UFR_MaxRepairCount__c,
 				Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c
 				// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
+				//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+				, Asset__r.Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c, Asset__r.Product2.ProductURF__r.Maintenance_Price_Year_URF__c
+				//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 				from Maintenance_Contract_Asset__c
 				where Maintenance_Contract__c = :this.targetMaintenanceContractId AND Asset__r.Product2.ProductURF__c != null
 			];
@@ -869,6 +878,10 @@
 																Product_Manual__r.ProductURF__r.URFLimitSerial__c,
 																Product_Manual__r.ProductURF__r.UFR_MaxRepairCount__c,
 																Product_Manual__r.ProductURF__r.UFR_Maintenance_Price_Month__c,
+																//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+																Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF_Max__c,
+																Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF__c,
+																//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 																//2021-11-30 fy add LJPH-C8W8FV 缃《 start
 																Product_Manual__r.Asset_Model_No__c,
 																//2021-11-30 fy add LJPH-C8W8FV 缃《 end
@@ -876,6 +889,10 @@
 																Asset__r.Product2.ProductURF__r.URFLimitSerial__c,
 																Asset__r.Product2.ProductURF__r.UFR_MaxRepairCount__c,
 																Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,
+																//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+																Asset__r.Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c,
+																Asset__r.Product2.ProductURF__r.Maintenance_Price_Year_URF__c,
+																//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 																URF_Series__c,
 																Series_RepairCount__c,
 																Series_MaxRepairCount__c,
@@ -1152,6 +1169,9 @@
 							+ 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,'
 							+ 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,'
 							+ 'Product2.ProductURF__c,Product2.ProductURF__r.URFLimitSerial__c,Product2.ProductURF__r.UFR_MaxRepairCount__c,Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,'
+							//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+							+ 'Product2.ProductURF__r.Maintenance_Price_Year_URF__c, Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c,' 
+							//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 							+ 'CurrentContract_F__r.Contract_Range__c,AssetMark__c FROM Asset WHERE Product2.ProductURF__c != null AND Hospital__c = \'' + this.targetHospitalId + '\' '
 							+ 'AND Id NOT IN ' + notInId;
 			//HWAG-B4R3SS  START 20181026
@@ -1821,6 +1841,9 @@
 					//2021-11-30 fy add LJPH-C8W8FV 缃《 start Asset_Model_No__c
 					List<Product2> prd = [select Id,Asset_Model_No__c, Maintenance_Price_Month__c, EquipmentGuaranteeFlg__c, Name,
 										  ProductURF__c, ProductURF__r.URFLimitSerial__c, ProductURF__r.UFR_MaxRepairCount__c, ProductURF__r.UFR_Maintenance_Price_Month__c
+										  //XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+										  , ProductURF__r.Maintenance_Price_Year_URF__c, ProductURF__r.Maintenance_Price_Year_URF_Max__c
+										  //XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 										  from Product2 where Id = :ai.mcae.Product_Manual__c];
 					ai.mcae.EquipmentGuaranteeFlgTxt__c = prd[0].EquipmentGuaranteeFlg__c;
 					ai.etGFlg = prd[0].EquipmentGuaranteeFlg__c;
@@ -1857,6 +1880,10 @@
 					}
 					//2021-11-30 fy add LJPH-C8W8FV 缃《 end
 					// 闄愭淇℃伅 gzw 20210316 end
+					//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+					ai.uFRMaxPrice = prd[0].ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+					ai.uFRMinPrice = prd[0].ProductURF__r.Maintenance_Price_Year_URF__c;
+					//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 				}
 			}
 		}
@@ -1898,6 +1925,10 @@
 			// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk End
 			// Decimal listPrice = ass.rec.Maintenance_Price_Month__c;
 			Decimal listPrice = ass.rec.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220510 start
+			Decimal MaxPrice = ass.rec.Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+			Decimal MinPrice = ass.rec.Product2.ProductURF__r.Maintenance_Price_Year_URF__c;
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220510 end
 			if (ass.rec_checkBox_c) {
 				//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'unCheckedAssets ' ));
 				// xudan 20160110 鏂板搧鍒ゆ柇銇撱亾瑕併倝銇亜銆乧ontractStartDateChange銇屻倓銈�
@@ -1914,6 +1945,10 @@
 					Check_Object__c = isCheck,
 					// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk end
 					Estimate_List_Price__c = listPrice,
+					//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+					Adjustment_Upper_price__c = MaxPrice,
+					Adjustment_Lower_price__c = MinPrice,
+					//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 					EquipmentGuaranteeFlgTxt__c = ass.rec.EquipmentGuaranteeFlg__c
 					);
 				ass.mcae = mcae;
@@ -2510,8 +2545,22 @@
 			}
 			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
 	
+			
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+			Integer Contract_year = 0;
+			System.debug('this.estimate.Contract_Range__c1:' + this.estimate.Contract_Range__c);
+			if(this.estimate.Contract_Range__c != null){
+				if(this.estimate.Contract_Range__c <= 12){
+					Contract_year = 1;
+				} else{
+					Decimal year = this.estimate.Contract_Range__c / 12;
+					Contract_year = (Integer)year.round(System.RoundingMode.CEILING);
+				}				
+			}
+			System.debug('Contract_year1:' + Contract_year);
 			// 闄愭姹囨�讳俊鎭�
-			Map<String, Decimal> uFRSerialMap = getLimitSerialData();
+			Map<String, Decimal> uFRSerialMap = getLimitSerialData(Contract_year);
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 			// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'lastMContractRes +++++锛�' + lastMContractRes));
 			// if (true) {
 			//     return false;
@@ -2691,7 +2740,9 @@
 						input.mcae.Series_RepairCount__c = 0;
 						input.mcae.Series_MaxRepairCount__c = uFRSerialMap.get(input.uFRSerial);
 						input.mcae.Asset_RepairCount__c = 0;
-						input.mcae.Asset_MaxRepairCount__c = input.uFRRepairCount;
+						//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+						input.mcae.Asset_MaxRepairCount__c = input.uFRRepairCount * Contract_year;
+						//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 	
 	
 						// 闄愭淇℃伅淇濆瓨
@@ -3155,7 +3206,11 @@
 	public Decimal uFRRepairCount {get; private set;}
 	
 	// 闄愭浠锋牸 add by gzw end
-	
+
+	// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+	public Decimal uFRMaxPrice {get; set;}
+	public Decimal uFRMinPrice {get; set;}
+	// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 	
 	public Id getRecId() {
 		Id rtn = null;
@@ -3188,7 +3243,10 @@
 		// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� Star
 		this.CheckRows = true;
 		// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� End
-	
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+		this.uFRMaxPrice = mcae.Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+		this.uFRMinPrice = mcae.Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF__c;
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 	}
 	// 閬告姙銇曘倢銇熺敤锛堥潪Manual锛�
 	public AssetInfo(Integer lineNo, Asset record, Boolean isNew, Decimal listPrice, Maintenance_Contract_Asset_Estimate__c mcae) {
@@ -3243,6 +3301,10 @@
 		this.uFRPrice = record.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
 		this.uFRSerial = record.Product2.ProductURF__r.URFLimitSerial__c;
 		this.uFRRepairCount = record.Product2.ProductURF__r.UFR_MaxRepairCount__c;
+		//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+		this.uFRMaxPrice = record.Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+		this.uFRMinPrice = record.Product2.ProductURF__r.Maintenance_Price_Year_URF__c;
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 	}
 	// 閬告姙銇曘倢銇熺敤銆佹湭绱嶅搧鐢紙Manual锛�
 	public AssetInfo(Integer lineNo, Maintenance_Contract_Asset_Estimate__c mcae) {
@@ -3291,6 +3353,10 @@
 		this.ProductModelNoc = mcae.Product_Manual__r.Asset_Model_No__c;
 		this.AssetModelNoc = mcae.Asset__r.OwnershipMachine_No__c;
 		//2021-11-30 fy add LJPH-C8W8FV 缃《 end
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+		this.uFRMaxPrice = mcae.Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+		this.uFRMinPrice = mcae.Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF__c;
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 	}
 	// 閬告姙銇曘倢銇亱銇c仧鐢�
 	public AssetInfo(Integer lineNo, Asset record) {
@@ -3306,6 +3372,10 @@
 		this.uFRPrice = record.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
 		this.uFRSerial = record.Product2.ProductURF__r.URFLimitSerial__c;
 		this.uFRRepairCount = record.Product2.ProductURF__r.UFR_MaxRepairCount__c;
+		//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+		this.uFRMaxPrice = record.Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+		this.uFRMinPrice = record.Product2.ProductURF__r.Maintenance_Price_Year_URF__c;
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 	}
 	}
 	
@@ -3444,15 +3514,17 @@
 	//     return data;
 	// }
 	// 璁$畻闄愭绯诲垪娆℃暟
-	public Map<String, Decimal> getLimitSerialData() {
+	public Map<String, Decimal> getLimitSerialData(Integer Contract_year) {
 		Map<String, Decimal> limitSerial = new Map<String, Decimal>();
 	
 		for (AssetInfo input : this.checkedAssets) {
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
 			if (String.isNotBlank(input.uFRSerial) && limitSerial.containsKey(input.uFRSerial)) {
-				limitSerial.put(input.uFRSerial, limitSerial.get(input.uFRSerial) + input.uFRRepairCount);
+				limitSerial.put(input.uFRSerial, limitSerial.get(input.uFRSerial) + input.uFRRepairCount * Contract_year);
 			} else {
-				limitSerial.put(input.uFRSerial, input.uFRRepairCount);
+				limitSerial.put(input.uFRSerial, input.uFRRepairCount * Contract_year);
 			}
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 			// if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
 			//     if (String.isBlank(input.mcae.Check_Result__c)) {
 			//         input.mcae.Check_Result__c.addError('鐐规缁撴灉蹇呭~');

--
Gitblit v1.9.1