From ed3015095f1b0e88bc579877c678a3fac191381f Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期一, 28 六月 2021 14:32:26 +0800
Subject: [PATCH] Merge branch 'master' of http://47.108.235.38:8080/r/zhengcaioa

---
 zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs |  102 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 84 insertions(+), 18 deletions(-)

diff --git a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
index 94534d1..bab1b0c 100644
--- a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
+++ b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
@@ -196,7 +196,7 @@
         }
         #endregion
         #region 璇峰亣涓庨攢鍋�
-         public IActionResult AskLeave(string id="", DateTime? StratTimeName = null, DateTime? EndTimeName = null)
+         public IActionResult AskLeave(string id="", string StratTimeName = "", string EndTimeName = "")
         {
 
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -220,14 +220,35 @@
 
 
 
-            if (StratTimeName.HasValue)
+            if (!string.IsNullOrWhiteSpace(StratTimeName))
             {
-                admAskLeaveDTO.StratTimeName = StratTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+                DateTime StratTimeName1;
+                if(DateTime.TryParse(StratTimeName, out StratTimeName1))
+                {
+                    admAskLeaveDTO.StratTimeName = StratTimeName1.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
+                }
+
+            }
+            else
+            {
+                admAskLeaveDTO.StratTimeName =DateTime.Now.Date.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
             }
 
-            if (EndTimeName.HasValue)
+            if (!string.IsNullOrWhiteSpace(EndTimeName))
             {
-                admAskLeaveDTO.EndTimeName = EndTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+                DateTime EndTimeName1;
+                if (DateTime.TryParse(EndTimeName, out EndTimeName1))
+                {
+                    admAskLeaveDTO.EndTimeName = EndTimeName1.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
+                }
+            }
+            else
+            {
+                admAskLeaveDTO.EndTimeName = DateTime.Now.Date.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
             }
 
             AdmAskLeaveDTO admAsk = jisianChecktime(DateTime.Parse(admAskLeaveDTO.StratTimeName), DateTime.Parse(admAskLeaveDTO.EndTimeName));
@@ -417,7 +438,7 @@
                     if ((int)StratTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)StratTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
                     {
                         //鏄惁鑺傚亣鏃�
-                        if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date))
+                        if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
                         {
 
                             LavehTime += 0;
@@ -466,7 +487,7 @@
                     {
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
                         {
                             if (StratTime <= StratTimeWorkingStart)
                             {
@@ -512,7 +533,7 @@
                     if ((int)EndTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)EndTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
                     {
                         //鏄惁鑺傚亣鏃�
-                        if (jiejiari.Exists(x => x.ValueStart <= EndTime.Date && x.ValueStart >= EndTime.Date))
+                        if (jiejiari.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
                         {
 
                             LavehTime += 0;
@@ -562,7 +583,7 @@
                     {
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueStart >= EndTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
                         {
                             if (EndTime >= EndTimeOffworkEnd)
                             {
@@ -611,7 +632,7 @@
                     if ((int)dateTimenow.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)dateTimenow.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
                     {
                         //鏄惁鍋囨湡 鍋囨湡涓嶄笂鐝�
-                        if (jiejiari.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueStart >= dateTimenow.Date))
+                        if (jiejiari.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date))
                         {
                             LavehTime += 0;
                         }
@@ -624,7 +645,7 @@
                     {
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
                         {
                             LavehTime += shangbanshijian;
                         }
@@ -637,8 +658,32 @@
 
 
                 if(ts.Days == 0)
-                {
-                    LavehTime -= shangbanshijian;
+                { //鏄惁涓婄彮鏃ユ湡
+                    if ((int)StratTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)StratTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
+                    {
+                        //鏄惁鑺傚亣鏃�
+                        if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        {
+                            LavehTime -= 0;
+                        }
+                        else
+                        {
+                            LavehTime -= shangbanshijian;
+                        }
+                    }
+                    else
+                    {
+                        //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        {
+                            LavehTime -= shangbanshijian;
+                        }
+                        else
+                        {
+                            LavehTime -= 0;
+                        }
+                    }
+                          
                 }
                
             }
@@ -669,7 +714,7 @@
             return admAsk;
         }
 
-        public IActionResult AskLeaveOff(string id = "", DateTime? StratTimeName = null, DateTime? EndTimeName = null)
+        public IActionResult AskLeaveOff(string id = "", string StratTimeName = "", string EndTimeName = "")
         {
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
             ViewData["curentuser"] = curentuser;
@@ -694,14 +739,35 @@
 
 
 
-            if (StratTimeName.HasValue)
+            if (!string.IsNullOrWhiteSpace(StratTimeName))
             {
-                askLeaveOffDTO.StratTimeName = StratTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+                DateTime StratTimeName1;
+                if (DateTime.TryParse(StratTimeName, out StratTimeName1))
+                {
+                    askLeaveOffDTO.StratTimeName = StratTimeName1.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
+                }
+
+            }
+            else
+            {
+                askLeaveOffDTO.StratTimeName = DateTime.Now.Date.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
             }
 
-            if (EndTimeName.HasValue)
+            if (!string.IsNullOrWhiteSpace(EndTimeName))
             {
-                askLeaveOffDTO.EndTimeName = EndTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+                DateTime EndTimeName1;
+                if (DateTime.TryParse(EndTimeName, out EndTimeName1))
+                {
+                    askLeaveOffDTO.EndTimeName = EndTimeName1.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
+                }
+            }
+            else
+            {
+                askLeaveOffDTO.EndTimeName = DateTime.Now.Date.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
             }
 
             ResultDataEntity<SysAttachmentDTO> results = new ResultDataEntity<SysAttachmentDTO>();

--
Gitblit v1.9.1