From 226ec1cbf306ab7566e738594d5d8e68bdf98cf7 Mon Sep 17 00:00:00 2001
From: 游畅 <youchang@prec-tech.com>
Date: 星期二, 04 四月 2023 09:45:44 +0800
Subject: [PATCH] 20230329-询价中的今年相关字段增加和修改+现场修理逻辑+停止hr信息同步用户

---
 force-app/main/default/classes/RepairTrigger.cls |  128 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 118 insertions(+), 10 deletions(-)

diff --git a/force-app/main/default/classes/RepairTrigger.cls b/force-app/main/default/classes/RepairTrigger.cls
index 8a063f5..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) {
         // 鏃ュ巻鏌ヨ寮�濮�
@@ -105,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
@@ -134,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 + '寮冧慨';
                                 }
@@ -164,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) {
@@ -232,7 +285,6 @@
         }
         // 20210622 SQL浼樺寲 End
 
-        System.debug('===========> end');
     }
 
     //wwp   2021/10/15    缁翠慨涓績璧嬪�兼柊鍔犺タ瀹� 鏉窞 鎴愰兘              start
@@ -354,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;
@@ -425,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;
@@ -539,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 = '鎴愰兘鍏遍�氬姙浜嬪';
@@ -615,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;
@@ -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