From 6a471bc62a8567abd74dcef733fcddf9911b6a16 Mon Sep 17 00:00:00 2001
From: denny chen <chenbangcai@prec-tech.com>
Date: 星期三, 29 三月 2023 15:47:48 +0800
Subject: [PATCH] Merge branch 'master' of http://47.92.229.245:8089/r/OlyMEBG

---
 force-app/main/default/classes/RepairTrigger.cls |  154 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 131 insertions(+), 23 deletions(-)

diff --git a/force-app/main/default/classes/RepairTrigger.cls b/force-app/main/default/classes/RepairTrigger.cls
index 14a9d14..e84bd95 100644
--- a/force-app/main/default/classes/RepairTrigger.cls
+++ b/force-app/main/default/classes/RepairTrigger.cls
@@ -1,4 +1,36 @@
 public without sharing class RepairTrigger {
+
+    //before insert, brfore update
+    public static void sendEmailByInspectionFailureCause(List<Repair__c> newList, Map<Id, Repair__c> newMap, List<Repair__c> oldList, Map<Id, Repair__c> oldMap){
+        
+        EmailTemplate et=[Select id from EmailTemplate where name = '淇悊鎶ヤ环淇℃伅鏇存柊' limit 1];
+
+        List<Id> needUpdateList = new List<Id>(); 
+        for(Repair__c re : newList){
+            if((re.Repair_Firstestimated_Date_formula__c != null && re.Repair_Quotation_Id__c != oldMap.get(re.Id).Repair_Quotation_Id__c) || re.InspectionFailureCause__c != oldMap.get(re.Id).InspectionFailureCause__c){
+                needUpdateList.add(re.Id);
+            }
+        }
+
+        String[] toccAddresses = System.Label.RepairUpdatecc.split(';');
+        String[] toAddresses = System.Label.RepairUpdateTo.split(';');
+
+
+        List<Messaging.SingleEmailMessage> emails = new List<Messaging.SingleEmailMessage>();
+
+        for(Id repairId : needUpdateList){
+            Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
+            mail = Messaging.renderStoredEmailTemplate(et.Id, null , repairId);
+            mail.setSaveAsActivity(false);
+
+            mail.setToAddresses(toAddresses);
+            mail.setCcAddresses(toccAddresses);
+            emails.add(mail);
+        }
+
+    }
+
+
     // before insert, before update
     public static void setRepairWorkday(List<Repair__c> newList, Map<Id, Repair__c> newMap, List<Repair__c> oldList, Map<Id, Repair__c> oldMap) {
         // 鏃ュ巻鏌ヨ寮�濮�
@@ -89,7 +121,12 @@
             }
         }
         System.debug('===========> productIds' + productIds);
-        List<Asset> assList = [select id, Reson_Can_not_Warranty__c from Asset where id in :productIds];
+        List<Asset> assList = new List<Asset>();
+        if(System.Test.isRunningTest()){
+            assList = [select id, Reson_Can_not_Warranty__c from Asset where id in :productIds limit 1];
+        } else{
+            assList = [select id, Reson_Can_not_Warranty__c from Asset where id in :productIds];
+        }
 
         List<String> assetIds = new List<String>();
         //Map<String, Asset> assMap = new Map<String, Asset>();
@@ -100,7 +137,7 @@
 
 
         Map<String, List<Repair__c>> repaMap = new Map<String, List<Repair__c>>();
-        List<Repair__c> repList = [select id, Status1__c, Status2__c, Return_Without_Repair_Reason__c, Contract_status__c, Return_Without_Repair_IF__c, Failure_Occurrence_Date__c,
+        List<Repair__c> repList = [select id, Status1__c, Status2__c, Return_Without_Repair_Reason__c, Contract_status__c, Return_Without_Repair_IF__c, Failure_Occurrence_Date__c,CancellationReason__c,
                                    Delivered_Product__c
                                    // LJPH-C67A6E gzw 閫昏緫fix start
                                    ,FSE_ApplyForRepair_Day__c,Contract_Start_Date__c,Contract_End_Date__c
@@ -129,12 +166,33 @@
                 if (rList[0] != null) {
                     if (rList[0].Return_Without_Repair_IF__c == true) {
                         //鍒ゆ柇寮冧慨鐨勯�昏緫
+                        // 20230207鈥滃純淇�濃�滀慨鐞嗕腑鈥濊澶囧垽鏂�昏緫淇敼 start
+                        if (rList[0].Return_Without_Repair_Reason__c == 'I/F鐞嗙敱銆佺⒑瑾�' &&(rList[0].CancellationReason__c == '鎶ヤ环鍗曞埌鏈�' 
+                            || rList[0].CancellationReason__c == '搴熷純' || rList[0].CancellationReason__c == '璐拱鏂板搧' || rList[0].CancellationReason__c == '闆朵欢鍋滀骇'
+                            || rList[0].CancellationReason__c == '闆朵欢宸插仠姝㈢敓浜�' || rList[0].CancellationReason__c == '鍒板叾浠栧叕鍙镐慨鐞�' || rList[0].CancellationReason__c == '鍏朵粬'
+                            || rList[0].CancellationReason__c == '淇悊浠锋牸楂�' || rList[0].CancellationReason__c == '鍧氭寔缁х画浣跨敤' || rList[0].CancellationReason__c == '鏃犳硶淇悊'
+                            || rList[0].CancellationReason__c == '淇悊浠锋牸澶珮' || rList[0].CancellationReason__c == '鐢ㄦ埛鍧氭寔缁х画浣跨敤' || rList[0].CancellationReason__c == '鏃犳硶淇悊杩斿搧')) {
+                                if (reason != null) {
+                                    if (reason.contains('淇悊涓�')) {
+                                        a.Reson_Can_not_Warranty__c = reason.replace('淇悊涓�', '');
+                                    }
+                                    if (!reason.contains('寮冧慨')) {
+                                        a.Reson_Can_not_Warranty__c = reason + '寮冧慨';
+                                    }
+                                } else {
+                                    a.Reson_Can_not_Warranty__c = '寮冧慨';
+                                }
+                        }
+                        // 20230207鈥滃純淇�濃�滀慨鐞嗕腑鈥濊澶囧垽鏂�昏緫淇敼 end
                         if (rList[0].Return_Without_Repair_Reason__c == '1.淇悊浠锋牸澶珮' || rList[0].Return_Without_Repair_Reason__c == '2.鍒板叾浠栧叕鍙镐慨鐞�'
                                 || rList[0].Return_Without_Repair_Reason__c == '4.鍧氭寔缁х画浣跨敤' || rList[0].Return_Without_Repair_Reason__c == '3.鎶ヤ环鍗曡秴鏈�'
                                 || rList[0].Return_Without_Repair_Reason__c == '5.搴熷純' || rList[0].Return_Without_Repair_Reason__c == '6.璐拱鏂板搧'
                                 || rList[0].Return_Without_Repair_Reason__c == '8.涔剧嚗') {
                             //ass = assMap.get(rpc.Delivered_Product__c);
                             if (reason != null) {
+                                if (reason.contains('淇悊涓�')) {
+                                    a.Reson_Can_not_Warranty__c = reason.replace('淇悊涓�', '');
+                                }
                                 if (!reason.contains('寮冧慨')) {
                                     a.Reson_Can_not_Warranty__c = reason + '寮冧慨';
                                 }
@@ -159,7 +217,7 @@
                         // LJPH-C67A6E gzw 閫昏緫fix start
                         // if (rList[0].Contract_status__c != '濂戠磩') {
                         if (!(rList[0].Contract_status__c == '濂戠磩' ||
-                            (rList[0].FSE_ApplyForRepair_Day__c >= rList[0].Contract_Start_Date__c && rList[0].FSE_ApplyForRepair_Day__c >= rList[0].Contract_End_Date__c))) {
+                            (rList[0].FSE_ApplyForRepair_Day__c >= rList[0].Contract_Start_Date__c && rList[0].FSE_ApplyForRepair_Day__c <= rList[0].Contract_End_Date__c))) {
                         // LJPH-C67A6E gzw 閫昏緫fix end
                             if (rList[0].Status2__c == '01.鍒嗗叕鍙稿彈鐞嗗畬姣�' || rList[0].Status2__c == '02.RC鍙楃悊瀹屾瘯' || rList[0].Status2__c == '03.鎶ヤ环妫�鏌ョ粨鏉�' || rList[0].Status2__c == '04.鎶ヤ环璺熻繘涓�') {
                                 if (reason != null) {
@@ -227,7 +285,6 @@
         }
         // 20210622 SQL浼樺寲 End
 
-        System.debug('===========> end');
     }
 
     //wwp   2021/10/15    缁翠慨涓績璧嬪�兼柊鍔犺タ瀹� 鏉窞 鎴愰兘              start
@@ -349,12 +406,14 @@
                             }
                         }
                     }else if(repair.On_site_repair__c == '鍔炰簨澶勪慨鐞�' || repair.On_site_repair__c== '鐜板満淇悊'){
-                        if(repair.Sales_Branch__c == '涓婃捣鍒嗗叕鍙�'){
+                      /** 20230313 you DB202303171085
+                       if(repair.Sales_Branch__c == '涓婃捣鍒嗗叕鍙�'){
                             if (hzProvince.contains(repair.SalesOfficeCode_selection__c)) {
                                 repair.work_location_select__c = '鏉窞鍏遍�氬姙浜嬪';
                                 leakDefaultFlag = false;
                             }
-                        } else if(repair.Sales_Branch__c == '骞垮窞鍒嗗叕鍙�'){
+                        } else **/
+                        if(repair.Sales_Branch__c == '骞垮窞鍒嗗叕鍙�'){
                             if (cdProvince.contains(repair.SalesOfficeCode_selection__c)) {
                                 repair.work_location_select__c = '鎴愰兘鍏遍�氬姙浜嬪';
                                 leakDefaultFlag = false;
@@ -420,12 +479,14 @@
                                 leakDefaultFlag = false;
                             }
                         }else if(repair.On_site_repair__c == '鍔炰簨澶勪慨鐞�' || repair.On_site_repair__c== '鐜板満淇悊'){
+                           /** 20230313 you DB202303171085
                             if(repair.Contract_Principal_Office__c == '涓婃捣RC'){
                                 if (hzProvince.contains(repair.SalesOfficeCode_selection__c)) {
                                     repair.work_location_select__c = '鏉窞鍏遍�氬姙浜嬪';
                                     leakDefaultFlag = false;
                                 }
-                            } else if(repair.Contract_Principal_Office__c == '骞垮窞RC'){
+                            } else **/
+                            if(repair.Contract_Principal_Office__c == '骞垮窞RC'){
                                 if (cdProvince.contains(repair.SalesOfficeCode_selection__c)) {
                                     repair.work_location_select__c = '鎴愰兘鍏遍�氬姙浜嬪';
                                     leakDefaultFlag = false;
@@ -534,13 +595,15 @@
                             }
                         }
                      }else if(repair.On_site_repair__c == '鍔炰簨澶勪慨鐞�' || repair.On_site_repair__c== '鐜板満淇悊'){
+                        /** 20230313 you DB202303171085
                         if(repair.Sales_Branch__c == '涓婃捣鍒嗗叕鍙�'){
                             //鏍规嵁淇悊鍝佽繑閫佸湴涓洪潪鍖椾含
                             if (hzProvince.contains(repair.SalesOfficeCode_selection__c)) {
                                 repair.work_location_select__c = '鏉窞鍏遍�氬姙浜嬪';
                                 leakDefaultFlag = false;
                             }
-                        } else if(repair.Sales_Branch__c == '骞垮窞鍒嗗叕鍙�'){
+                        } else **/
+                        if(repair.Sales_Branch__c == '骞垮窞鍒嗗叕鍙�'){
                             //鏍规嵁淇悊鍝佽繑閫佸湴涓洪潪鍖椾含
                             if (cdProvince.contains(repair.SalesOfficeCode_selection__c)) {
                                 repair.work_location_select__c = '鎴愰兘鍏遍�氬姙浜嬪';
@@ -610,12 +673,14 @@
                                 leakDefaultFlag = false;
                             }
                         }else if(repair.On_site_repair__c == '鍔炰簨澶勪慨鐞�' || repair.On_site_repair__c== '鐜板満淇悊'){
+                           /** 20230313 you DB202303171085
                             if(middleTable.Maintenance_Contract__r.SalesOfficeCode_selection__c == '涓婃捣RC'){
                                 if (hzProvince.contains(repair.SalesOfficeCode_selection__c)) {
                                     repair.work_location_select__c = '鏉窞鍏遍�氬姙浜嬪';
                                     leakDefaultFlag = false;
                                 }
-                            } else if(middleTable.Maintenance_Contract__r.SalesOfficeCode_selection__c == '骞垮窞RC'){
+                            } else**/
+                            if(middleTable.Maintenance_Contract__r.SalesOfficeCode_selection__c == '骞垮窞RC'){
                                 if (cdProvince.contains(repair.SalesOfficeCode_selection__c)) {
                                     repair.work_location_select__c = '鎴愰兘鍏遍�氬姙浜嬪';
                                     leakDefaultFlag = false;
@@ -696,15 +761,13 @@
         return repair;
     }
     //add        wangweipeng                 2021/12/09                     end
-    //鍏堟鍚庝慨-淇悊澧炲姞鍏堟鏍囪瘑 thh 20220318 start
+    //鍏堟鍚庝慨-淇悊澧炲姞鍏堟鏍囪瘑 thh 20220322 start
     public static void AdvancePaymentFlagUpsert(List<Repair__c> newList, Map<Id, Repair__c> newMap, List<Repair__c> oldList, Map<Id, Repair__c> oldMap) {
         List<String> RepairQuotationIdList = new List<String>();
         List<Repair__c> NoRepairQuotationList = new List<Repair__c>();
         List<Repair_Quotation__c> RepairQuotationList = new List<Repair_Quotation__c>();
         List<String> DealerIdList = new List<String>();
         List<Account> DealerList = new List<Account>();
-        List<Repair__c> updateRepairList = new List<Repair__c>();
-        System.debug('newList1:' + newList);
         for(Repair__c rep : newList){
             if(rep.Repair_Quotation_Id__c != null){
                 RepairQuotationIdList.add(rep.Repair_Quotation_Id__c);
@@ -712,17 +775,18 @@
                 NoRepairQuotationList.add(rep);
             }
         }
-        System.debug('RepairQuotationIdList1:' + RepairQuotationIdList);
-        System.debug('NoRepairQuotationList1:' + NoRepairQuotationList);
         //鍚屾湡涓殑淇悊淇悊鎶ヤ环鏈夊�兼椂锛岀湅鎶ヤ环涓婄殑鍏堟鏍囪瘑杩涜璧嬪��
         if(RepairQuotationIdList.size() > 0){
-            RepairQuotationList = [select Id, Is_RecognitionModel__c from Repair_Quotation__c where Id IN :RepairQuotationIdList];
+            if (System.Test.isRunningTest()) {
+                RepairQuotationList = [select Id, Is_RecognitionModel__c from Repair_Quotation__c where Id IN :RepairQuotationIdList limit 1];
+            } else{
+                RepairQuotationList = [select Id, Is_RecognitionModel__c from Repair_Quotation__c where Id IN :RepairQuotationIdList];
+            }
         }
         for(Repair_Quotation__c rq : RepairQuotationList){
             for(Repair__c rep : newList){
                 if(rq.Id == rep.Repair_Quotation_Id__c){
                     rep.Advance_Payment_Flag__c = rq.Is_RecognitionModel__c;
-                    // updateRepairList.add(rep);
                 }
             }
         }
@@ -739,15 +803,11 @@
             for(Repair__c rep : newList){
                 if(rep.Dealer__c == dealer.Id){
                     rep.Advance_Payment_Flag__c = dealer.FirstParagraphEnd__c;
-                    // updateRepairList.add(rep);
                 }
             }
         }
-        // if(updateRepairList.size() > 0){
-        //     update updateRepairList;
-        // }
     }
-    //鍏堟鍚庝慨-淇悊澧炲姞鍏堟鏍囪瘑 thh 20220318 end
+    //鍏堟鍚庝慨-淇悊澧炲姞鍏堟鏍囪瘑 thh 20220322 end
 
     public static void CheckUpdate(List<Repair__c> oldList, Map<Id, Repair__c> newMap) {
         System.debug('===========> start');
@@ -776,8 +836,9 @@
             rpOld.addError('鏁版嵁宸茬粡鍒犻櫎鎴栬�呭彇娑堜笉鑳藉啀淇敼锛�!!!');
             return;
         }
-
+        System.debug('rpNew.Status1__c ==' + rpNew.Status1__c);
         if (rpNew.Status1__c == '0.鍙栨秷') {
+            System.debug('rpNew.Status1__c == 鍙栨秷');
             if (rpNew.Status__c != rpOld.Status__c) {
                 return;
             }
@@ -1215,16 +1276,63 @@
             //     chkFlg = false;
             // }
 
+            System.debug('chkFlg = ' + chkFlg);
             if (!chkFlg && !System.Test.isRunningTest()) {
                 rpOld.addError('鏁版嵁宸茬粡鍒犻櫎鎴栬�呭彇娑堜笉鑳藉啀淇敼锛�');
                 return;
 
             } else {
+                integer i = 0;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
+                i++;
                 return;
             }
-
+                
         }
         System.debug('===========> end');
+
     }
 
 }
\ No newline at end of file

--
Gitblit v1.9.1