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/RentalFixtureSetAssignAgencyController.cls |   74 +++++++++++++++++++++++++++---------
 1 files changed, 55 insertions(+), 19 deletions(-)

diff --git a/force-app/main/default/classes/RentalFixtureSetAssignAgencyController.cls b/force-app/main/default/classes/RentalFixtureSetAssignAgencyController.cls
index 76d8b19..55e2639 100644
--- a/force-app/main/default/classes/RentalFixtureSetAssignAgencyController.cls
+++ b/force-app/main/default/classes/RentalFixtureSetAssignAgencyController.cls
@@ -50,7 +50,7 @@
                          + ', Equipment_Type_F__c' //20210508 LJH ADD 1672
                          + ', Wei_Assigned_Cnt__c' // 20210624 ljh add SFDC-C448GR start
                          + ', Campaign__r.IF_Approved__c' // 20220315 ljh add
-                         + ', Campaign__r.Meeting_Approved_No__c' // 20220315 ljh add 
+                         + ', Campaign__r.Meeting_Approved_No__r.Name' // 20220315 ljh add 
                          + ', Campaign__r.Approved_Status__c' // 20220315 ljh add 
                          + ' FROM Rental_Apply__c'
                          + ' WHERE Id=\'' + taId + '\'';
@@ -455,8 +455,18 @@
              WHERE id =:taId
         ];
         for (Rental_Apply__c RaTar : RaTarList) {
-            if( RaTar.Campaign__r.Status == '鍙栨秷'){
-                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '瀛︿細宸插彇娑堬紝涓嶈兘缁х画鎿嶄綔浜�'));
+            // 20230215 ljh DB202301265636 瀛︿細鍙栨秷鐢宠涔熸嫤鎴� start
+            // if( RaTar.Campaign__r.Status == '鍙栨秷'){
+            //     ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '瀛︿細宸插彇娑堬紝涓嶈兘缁х画鎿嶄綔浜�'));
+            if( RaTar.Campaign__r.Status == '鍙栨秷' || RaTar.Campaign__r.Status == '鍙栨秷鐢宠涓�' ){
+                String tempS = '';
+                if(RaTar.Campaign__r.Status == '鍙栨秷'){
+                    tempS = '宸插彇娑�';
+                }else{
+                    tempS = '鐢宠鍙栨秷涓�';
+                }
+                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '瀛︿細'+tempS+'锛屼笉鑳界户缁搷浣滀簡'));
+            // 20230215 ljh DB202301265636 瀛︿細鍙栨秷鐢宠涔熸嫤鎴� end
                 return false;
             }
             // else if(RaTar.Repair__r.Repair_Final_Inspection_Date__c != null){
@@ -617,17 +627,8 @@
                             robj.Cancel_Select__c = false; 
                             robj.Cancel_Reason__c = '';
                             robj.Rental_Start_Date__c = RentalStartDateMap.containsKey(esd.tempOldRaesIdSub)?RentalStartDateMap.get(esd.tempOldRaesIdSub):craes.Rental_Start_Date__c ;
-                            switch on parentObj.demo_purpose2__c{
-                                when '璇曠敤锛堟棤璇环锛�','璇曠敤锛堟湁璇环锛�','鏂颁骇鍝佽瘎浠�','鍏朵粬','鍗忚鍊熺敤' {
-                                    robj.Rental_End_Date__c = robj.Rental_Start_Date__c + intValueOf(parentObj.Hope_Lonaer_date_Num__c);
-                                }
-                                when '涓�鑸敤鎴�','淇濅慨鐢ㄦ埛','甯傚満澶氬勾淇濅慨','鍐嶄慨鐞�','绱㈣禂QIS','宸茶喘寰呰揣','鏁呴殰鎺掓煡' {
-                                    robj.Rental_End_Date__c = robj.Rental_Start_Date__c + 30;
-                                }
-                                when '瀛︿細灞曚細' {
-                                    robj.Rental_End_Date__c = parentObj.Campaign_EndDate_F__c + 5;
-                                }
-                            }
+                            robj.Rental_End_Date__c = setRentalEndDate(robj.Rental_Start_Date__c, parentObj);
+
                             //robj.Rental_End_Date__c  = robj.Rental_Start_Date__c + Integer.valueOf(craes.Test_Day__c);
                             // 鏂拌褰� Canceled__c & Canceled_Id__c 涓洪�変腑涓�瑙堢殑Id
                             robj.Canceled__c = craes.canDelete__c?craes.Canceled__c:craes.Id;
@@ -1709,6 +1710,7 @@
         if(!isRaStatusOK()) {
             return;
         }
+
         Id userId =  Userinfo.getUserId(); // 20210624 ljh add SFDC-C448GR
         Datetime now = System.now();
         if(isSameCity) {
@@ -1738,7 +1740,16 @@
                     if(raesd.Is_Body__c) {
                         mainIdList.add(raesd.Asset__c);
                         raesIdSet.add(esd.rec.Rental_Apply_Equipment_Set__c);
+
+                        // add lc 20220927 SFDC-CJ48VE 澶囧搧棰勮鍑哄簱鏃ラ�昏緫璋冩暣 start
+                        // 澶囧搧棰勮鍑哄簱鏃ュ簲璇ョ瓑浜庝粖澶╋紝鍚﹀垯涓嶈兘鍙戣揣
+                        if( esd.rec.Rental_Apply_Equipment_Set__r.Rental_Start_Date__c != Date.today() ){
+                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '澶囧搧棰勮鍑鸿揣鏃ュ簲璇ョ瓑浜庝粖澶╋紝鍚﹀垯涓嶈兘鍙戣揣!'));
+                            return;
+                        }
+                        // add lc 20220927 SFDC-CJ48VE 澶囧搧棰勮鍑哄簱鏃ラ�昏緫璋冩暣 end
                     }
+
                     // 鍒嗛厤鏃朵复鏃跺彇娑堢殑鍦ㄥ彂璐у悗褰诲簳鍙栨秷
                     if(raesd.AgencyTempCancel__c) {
                         raesd.Cancel_Select__c = true;
@@ -1845,6 +1856,11 @@
                                     WHERE Date__c >= :startDateSOQL
                                       AND Date__c <= :Date.today()
                                     ORDER BY Date__c ASC];
+                    Map<Date,String> ocMap = new Map<Date,String>();
+                    for(OlympusCalendar__c oc:ocList){
+                        String IsWorkDay = oc.IsWorkDay__c.format();
+                        ocMap.put(oc.Date__c,IsWorkDay);
+                    }
                     for(Datetime dt:dtList){
                         Boolean startFlag = false;
                         Boolean endFlag = false;
@@ -1853,9 +1869,10 @@
                         Datetime endTime = Datetime.now();
                         Date endDate = Date.today();
                         // 瀹℃壒鏃堕棿鏄潪濂ユ灄宸存柉宸ヤ綔鏃�  
-                        if(ocList[0].IsWorkDay__c == 0){
+                        // if(ocList[0].IsWorkDay__c == 0){
+                        if(ocMap.get(startDate) == '0'){
                             for(OlympusCalendar__c oc:ocList){
-                                if(oc.IsWorkDay__c == 1){
+                                if(startDate < oc.Date__c && oc.IsWorkDay__c == 1){
                                     startTime = Datetime.newInstance(oc.Date__c.year(),oc.Date__c.month(),oc.Date__c.day(),0,0,0);
                                     startDate = oc.Date__c;
                                     startFlag = true;
@@ -1865,7 +1882,7 @@
                         }
                         // 鍙戣揣鏃堕棿鏄潪濂ユ灄宸存柉宸ヤ綔鏃�
                         if(ocList[ocList.size() - 1].IsWorkDay__c == 0){
-                            for(Integer i = ocList.size() - 1; i <= 0;i--){
+                            for(Integer i = ocList.size() - 1; i >= 0;i--){
                                 if(ocList[i].IsWorkDay__c == 1){
                                     endTime = Datetime.newInstance(ocList[i].Date__c.addDays(1).year(),ocList[i].Date__c.addDays(1).month(),ocList[i].Date__c.addDays(1).day(),0,0,0);
                                     endDate = ocList[i].Date__c.addDays(1);
@@ -1927,7 +1944,7 @@
                 if (String.isNotBlank(parentObj.Campaign__c) && parentObj.Campaign__r.IF_Approved__c){
                     // ra.ApprovedNo_Delivery__c = parentObj.Campaign__r.Meeting_Approved_No__r.MeetingApprovedNo__c;
                     // ra.Approved_State_Delivery__c = parentObj.Campaign__r.Meeting_Approved_No__r.ProcessState__c;
-                    ra.ApprovedNo_Delivery__c = parentObj.Campaign__r.Meeting_Approved_No__c;
+                    ra.ApprovedNo_Delivery__c = parentObj.Campaign__r.Meeting_Approved_No__r.Name;
                     ra.Approved_State_Delivery__c = parentObj.Campaign__r.Approved_Status__c;
                 }
                 FixtureUtil.withoutUpdate(new List<Rental_Apply__c> {ra});
@@ -1935,8 +1952,9 @@
             // 鍚屽煄鏃惰嚜鍔ㄦ敹璐�
             if(isSameCity && !raesIdSet.isEmpty()) {
                 List<Rental_Apply_Equipment_Set__c> raesList = new List<Rental_Apply_Equipment_Set__c>();
+                Date rentalEndDate = setRentalEndDate(Date.today(), parentObj);
                 for(Id raesId:raesIdSet) {
-                    raesList.add(new Rental_Apply_Equipment_Set__c(Id=raesId, Received_Confirm__c = 'OK'));
+                    raesList.add(new Rental_Apply_Equipment_Set__c(Id=raesId, Received_Confirm__c = 'OK', Rental_Start_Date__c = Date.today(), Rental_End_Date__c = rentalEndDate));
                 }
                 FixtureUtil.withoutUpdate(raesList);
             }
@@ -1956,6 +1974,24 @@
         }
     }
 
+    public Date setRentalEndDate(Date startDate, Rental_Apply__c rentalApplyObj) {
+        Date endDate = null;
+        switch on rentalApplyObj.demo_purpose2__c{
+            when '璇曠敤锛堟棤璇环锛�','璇曠敤锛堟湁璇环锛�','鏂颁骇鍝佽瘎浠�','鍏朵粬','鍗忚鍊熺敤' {
+                endDate = startDate + intValueOf(rentalApplyObj.Hope_Lonaer_date_Num__c);
+            }
+            when '涓�鑸敤鎴�','淇濅慨鐢ㄦ埛','甯傚満澶氬勾淇濅慨','鍐嶄慨鐞�','绱㈣禂QIS','宸茶喘寰呰揣','鏁呴殰鎺掓煡' {
+                endDate = startDate + 30;
+            }
+            when '瀛︿細灞曚細' {
+                endDate = rentalApplyObj.Campaign_EndDate_F__c + 5;
+            }
+        }
+
+        return endDate;
+    }
+    
+
     public class EsdInfo {
         public Rental_Apply_Equipment_Set_Detail__c rec { get; set; }
         public Boolean checked {get;set;}

--
Gitblit v1.9.1