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 |   85 +++++++++++++++++++++++++++++++-----------
 1 files changed, 62 insertions(+), 23 deletions(-)

diff --git a/force-app/main/default/classes/RentalFixtureSetAssignAgencyController.cls b/force-app/main/default/classes/RentalFixtureSetAssignAgencyController.cls
index a8cdc30..55e2639 100644
--- a/force-app/main/default/classes/RentalFixtureSetAssignAgencyController.cls
+++ b/force-app/main/default/classes/RentalFixtureSetAssignAgencyController.cls
@@ -1,3 +1,4 @@
+// RentalFixtureSetAssignAgencyCtrlTest
 public with sharing class RentalFixtureSetAssignAgencyController {
     public List<EsdInfo> esdList { get; set; }
     public FixtureDeliverySlip__c slip { get; set; }
@@ -48,7 +49,8 @@
                          + ', Loaner_cancel_request__c'//20210707 SFDC-C448KZ you
                          + ', Equipment_Type_F__c' //20210508 LJH ADD 1672
                          + ', Wei_Assigned_Cnt__c' // 20210624 ljh add SFDC-C448GR start
-                         + ', Campaign__r.Meeting_Approved_No__c' // 20220315 ljh add 
+                         + ', Campaign__r.IF_Approved__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 + '\'';
@@ -453,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){
@@ -492,7 +504,7 @@
             //20220225 sx end obpm 鍔炰簨澶勫鍔犲垽鏂細鏄惁鐢宠鍐宠鍕剧潃娌℃湁鍐宠缂栧彿涓嶈兘杩涜鎿嶄綔
             //20220315 sx  obpm澶囧搧鍐宠鐘舵�佺浉鍏充慨鏀� add start
             else if(RaTar.Campaign__c != null && RaTar.Campaign__r.IF_Approved__c && RaTar.Campaign__r.Meeting_Approved_No__c != null && statusList.contains(RaTar.Campaign__r.Approved_Status__c)){
-                ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, '宸茬敵璇峰喅瑁佷絾鍐宠缂栫爜鐘舵�佷笉绗﹀悎闇�姹�'));
+                ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, '宸茬敵璇峰喅瑁佷絾鍐宠鐘舵�佷笉绗﹀悎鏉′欢'));
                 return false;
             }
             //20220315 sx  obpm澶囧搧鍐宠鐘舵�佺浉鍏充慨鏀� add end
@@ -615,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;
@@ -1707,6 +1710,7 @@
         if(!isRaStatusOK()) {
             return;
         }
+
         Id userId =  Userinfo.getUserId(); // 20210624 ljh add SFDC-C448GR
         Datetime now = System.now();
         if(isSameCity) {
@@ -1736,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;
@@ -1843,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;
@@ -1851,10 +1869,11 @@
                         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){
-                                    startTime = oc.Date__c;
+                                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;
                                     break;
@@ -1863,9 +1882,9 @@
                         }
                         // 鍙戣揣鏃堕棿鏄潪濂ユ灄宸存柉宸ヤ綔鏃�
                         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 = ocList[i].Date__c.addDays(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);
                                     endFlag = true;
                                     break;
@@ -1925,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});
@@ -1933,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);
             }
@@ -1943,7 +1963,8 @@
         }
         catch (Exception ex) {
             system.debug('=====' + ex.getMessage());
-            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex.getDmlMessage(0)));
+            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ex.getDmlMessage(0)));
+            ApexPages.addMessages(ex);
             Database.rollback(sp);
             // 杩愯緭鍗曟彃鍏ユ垚鍔燂紝浣嗘槑缁嗘垨鐢宠鏇存柊澶辫触鏃讹紝杩愯緭鍗曠殑鍋嘔d瑕佹竻鎺�
             if(insertSlip) {
@@ -1953,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