From 7fb99d0f7ee538022e03ba7903e6ed97fbaa849b Mon Sep 17 00:00:00 2001
From: 李彤 <litong@prec-tech.com>
Date: 星期四, 16 三月 2023 10:06:17 +0800
Subject: [PATCH] 产假

---
 force-app/main/default/classes/UpdateUserTextColBatch.cls |   26 ++++++++++++++++++++++++--
 force-app/main/default/triggers/UserToContact.trigger     |   12 ++++++++++++
 2 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/force-app/main/default/classes/UpdateUserTextColBatch.cls b/force-app/main/default/classes/UpdateUserTextColBatch.cls
index bd698f3..7b2e242 100644
--- a/force-app/main/default/classes/UpdateUserTextColBatch.cls
+++ b/force-app/main/default/classes/UpdateUserTextColBatch.cls
@@ -32,7 +32,7 @@
      * start銇伅銆乹uery銈掑疅琛屻�併儲銉笺偠銉笺倰妞滅储
      */
     global Database.QueryLocator start(Database.BatchableContext BC) {
-        String query = 'Select Id, Fiscal_Start_Date__c, Fiscal_Start_Date_from_May__c, Use_Start_Date__c from User';
+        String query = 'Select Id, Fiscal_Start_Date__c, Fiscal_Start_Date_from_May__c, Use_Start_Date__c, Maternity_leave_StartDate__c, Maternity_leave_EndDate__c from User';  //20230303 lt DB202302421915 add  , Maternity_leave_StartDate__c, Maternity_leave_EndDate__c
         if (String.isBlank(testUserId) == false) {
             query += ' where Id =\'' + testUserId + '\'';
         }
@@ -48,7 +48,29 @@
                 fromDate4 = usr.Use_Start_Date__c;
             }
 
-            usr.Fiscal_Workdays__c = decimal.valueOf(getOlympusWorkDayCount(fromDate4, toDate));
+            //20230303 lt DB202302421915 start
+            // usr.Fiscal_Workdays__c = decimal.valueOf(getOlympusWorkDayCount(fromDate4, toDate));
+
+            Date mlStartDate = usr.Maternity_leave_StartDate__c;
+            Date mlEndDate = usr.Maternity_leave_EndDate__c;
+
+            if(mlStartDate == null && mlEndDate == null){
+                usr.Fiscal_Workdays__c = decimal.valueOf(getOlympusWorkDayCount(fromDate4, toDate));
+            }
+            else if(mlStartDate != null && mlEndDate == null && mlStartDate > fromDate4){
+                usr.Fiscal_Workdays__c = decimal.valueOf(getOlympusWorkDayCount(fromDate4, mlStartDate));
+            }
+            else if(mlStartDate != null && mlEndDate == null && mlStartDate <= fromDate4){
+                usr.Fiscal_Workdays__c = 0;
+            }
+            else if(mlStartDate != null && mlEndDate != null && mlStartDate > fromDate4){
+                usr.Fiscal_Workdays__c = decimal.valueOf(getOlympusWorkDayCount(fromDate4, mlStartDate)) + decimal.valueOf(getOlympusWorkDayCount(mlEndDate, toDate));
+            }
+            else if(mlStartDate != null && mlEndDate != null && mlStartDate <= fromDate4){
+                usr.Fiscal_Workdays__c = 0 + decimal.valueOf(getOlympusWorkDayCount(mlEndDate, toDate));
+            }
+            //20230303 lt DB202302421915 end
+
             /***** CHAN-AZABMC ****** 2018/06/01 ********
              **** 鍒版湰鏈堢殑宸ヤ綔鏃ワ紙浠婂勾搴︼級
              **** 鍒版湰鍛ㄧ殑宸ヤ綔鏃ワ紙浠婂勾搴︼級
diff --git a/force-app/main/default/triggers/UserToContact.trigger b/force-app/main/default/triggers/UserToContact.trigger
index fafa3d9..5dea882 100644
--- a/force-app/main/default/triggers/UserToContact.trigger
+++ b/force-app/main/default/triggers/UserToContact.trigger
@@ -12,6 +12,18 @@
         if (Trigger.isUpdate) {
             old = Trigger.oldMap.get(local.Id);
         }
+
+        //20230303 lt DB202302421915 start 
+        if(Trigger.isBefore && Trigger.isUpdate && local.Pregnant_Rest__c != old.Pregnant_Rest__c){
+            if(old.Pregnant_Rest__c == FALSE && local.Pregnant_Rest__c == TRUE){
+                local.Maternity_leave_StartDate__c = Date.today();
+            }
+            if(old.Pregnant_Rest__c == TRUE && local.Pregnant_Rest__c == FALSE){
+                local.Maternity_leave_EndDate__c = Date.today();
+            }
+        }
+        //20230303 lt DB202302421915 end
+
         if (String.isNotBlank(local.Employee_No__c)  
                             && ( Trigger.isInsert 
                             || old.Test_staff__c != local.Test_staff__c

--
Gitblit v1.9.1