From 072169e3c5446f94e2cf4e570e5c7952bb5b15b9 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期二, 27 七月 2021 14:47:44 +0800
Subject: [PATCH] 今日开发     考勤规则里增加  公司安排加班                  调整请假时间计算                  加班日考勤计算

---
 zhengcaioa/DTO/AdmAttendanceRuleDTO.cs                              |    4 
 zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs |   35 ++
 zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs               |  540 ++++++++++++++++++++++++++++++--------------
 zhengcaioa/zhengcaioa/Views/Signin/AttendanceRule.cshtml            |  123 +++++++--
 4 files changed, 495 insertions(+), 207 deletions(-)

diff --git a/zhengcaioa/DTO/AdmAttendanceRuleDTO.cs b/zhengcaioa/DTO/AdmAttendanceRuleDTO.cs
index 21ba245..2db522d 100644
--- a/zhengcaioa/DTO/AdmAttendanceRuleDTO.cs
+++ b/zhengcaioa/DTO/AdmAttendanceRuleDTO.cs
@@ -46,6 +46,10 @@
 
         public string[] rest_s { get; set; }
         public string[] rest_e { get; set; }
+
+
+        public string[] jiaban_s { get; set; }
+        public string[] jiaban_e { get; set; }
         public List<AdmAttendanceRulesDtlDTO> admAttendanceRulesDtlDTOs { get; set; }
 
     }
diff --git a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
index 1fce48e..beae1d7 100644
--- a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
+++ b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
@@ -441,6 +441,8 @@
 
             var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
 
+            var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList();
+
             //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐�
             string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.');
             int WorkingStarthour = int.Parse(WorkingStart[0]);
@@ -551,7 +553,8 @@
                     {
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)
+                            || jiabanri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
                         {
                             if (StratTime <= StratTimeWorkingStart)
                             {
@@ -647,7 +650,8 @@
                     {
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)
+                            || jiabanri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
                         {
                             if (EndTime >= EndTimeOffworkEnd)
                             {
@@ -709,7 +713,8 @@
                     {
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date)
+                            || jiabanri.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date))
                         {
                             LavehTime += shangbanshijian;
                         }
@@ -738,7 +743,8 @@
                     else
                     {
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)
+                            || jiabanri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
                         {
                             LavehTime -= shangbanshijian;
                         }
@@ -1060,6 +1066,27 @@
 
                        
                 }
+
+                for (int i = 0; i < dto.jiaban_s.Length; i++)
+                {
+                    if (!String.IsNullOrEmpty(dto.jiaban_s[i]) && !String.IsNullOrEmpty(dto.jiaban_e[i]))
+                    {
+                        AdmAttendanceRulesDtlDTO admAttendanceRulesDtlDTO = new AdmAttendanceRulesDtlDTO();
+                        admAttendanceRulesDtlDTO.Pid = dto.Id;
+                        admAttendanceRulesDtlDTO.ValueStart = DateTime.Parse(dto.jiaban_s[i]);
+                        admAttendanceRulesDtlDTO.ValueEnd = DateTime.Parse(dto.jiaban_e[i]);
+                        admAttendanceRulesDtlDTO.Name = "jiabanri";
+                        admAttendanceRulesDtlDTO.RecStatus = "A";
+                        admAttendanceRulesDtlDTO.Creater = curentuser.Id;
+                        admAttendanceRulesDtlDTO.Createtime = DateTime.Now;
+                        admAttendanceRulesDtlDTO.Modifier = admAttendanceRulesDtlDTO.Creater;
+                        admAttendanceRulesDtlDTO.Modifytime = admAttendanceRulesDtlDTO.Createtime;
+                        resultEntity = _attendanceRuleService.saveDtl(admAttendanceRulesDtlDTO);
+                    }
+
+
+                }
+
                 scope.Complete();
             }
                
diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
index 92bc0d5..1444423 100644
--- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
+++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
@@ -48,6 +48,7 @@
         private readonly IDtChannelArticleNewsService _dtChannelArticleNewsService;
         private readonly IConfiguration _configuration;
         private readonly IHttpClientFactory _clientFactory;
+        private readonly IAskService _askService; 
 
         private readonly decimal jiabangongzibiaozhun = new decimal(21.5);
         public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory)
@@ -79,6 +80,7 @@
             _dtChannelArticleNewsService = factory.CreateScope().ServiceProvider.GetRequiredService<IDtChannelArticleNewsService>();
             _configuration = factory.CreateScope().ServiceProvider.GetRequiredService<IConfiguration>();
             _clientFactory = factory.CreateScope().ServiceProvider.GetRequiredService<IHttpClientFactory>();
+            _askService= factory.CreateScope().ServiceProvider.GetRequiredService<IAskService>();
         }
         protected override async Task ExecuteAsync(CancellationToken stoppingToken)
         {
@@ -208,6 +210,7 @@
             AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
             var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList();
             var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
+            var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList();
 
             //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐�
             string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.');
@@ -737,245 +740,423 @@
                         //璁$畻鍔犵彮鏃堕棿
                         if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue)
                         {
-                            DateTime overdate = admSignInDTO.OvertimeIn.Value;
-                            if (admSignInDTO.OvertimeIn.Value< StratTimeOffworkEnd)
+                            var admAskovertimeDTO  = _askService.GetAskovertimeByUeridAndjiabantime(userList[a].Id, dateminkaoqin);
+                            if(admAskovertimeDTO!=null&& !string.IsNullOrEmpty(admAskovertimeDTO.Id))
                             {
-                                overdate = StratTimeOffworkEnd;
+                                DateTime overdate = admSignInDTO.OvertimeIn.Value;
+                                if (admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
+                                {
+                                    overdate = StratTimeOffworkEnd;
+                                }
+                                TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
+                                decimal jiabanshijian = jiaban.Hours;
+                                if(new decimal(jiaban.Hours) > admAskovertimeDTO.Overtime.Value)
+                                {
+                                    jiabanshijian = admAskovertimeDTO.Overtime.Value;
+                                }
+
+
+
+
+                                Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2);
                             }
-                            TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
-                          
-                            Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2);
+                            
+
+                           
                         }
                     }
                     else
                     {
-
-                        //鍒ゆ柇鑰冨嫟鏃堕棿鐨勮繛缁��
-
-                        //鍒ゆ柇鏃╀笂鏄惁杩熷埌,鍒ゆ柇鏃╀笂鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
-                        DateTime? starttime = null;
-                        DateTime? endttime = null;
-                        bool kuanggong = false;
-                        List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
-                        if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue)
+                        //鍒ゆ柇浠婂ぉ鏄惁鍏徃瑕佹眰鍔犵彮
+                        var shifoujiaban = jiabanri.Exists(x => x.ValueStart <= dateminkaoqin && x.ValueEnd >= dateminkaoqin);
+                        if (shifoujiaban)
                         {
-                            DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
-                            dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn;
-                            dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut;
-                            dateBiJiaoDTOs.Add(dateBiJiaoDTO);
-                        }
-                        var jiabanbuka = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "3").ToList();
-                        foreach (var admAskLeaveOff in jiabanbuka)
-                        {
-                            if (admAskLeaveOff.StratTime < StratTimeWorkingEnd)
+
+                            //鍒ゆ柇鑰冨嫟鏃堕棿鐨勮繛缁��
+
+                            //鍒ゆ柇鏃╀笂鏄惁杩熷埌,鍒ゆ柇鏃╀笂鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+                            DateTime? starttime = null;
+                            DateTime? endttime = null;
+                            bool kuanggong = false;
+                            List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
+                            if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue)
                             {
                                 DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
-                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
-                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn;
+                                dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut;
                                 dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                             }
-
-                        }
-
-
-                        dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
-                        if (dateBiJiaoDTOs.Count == 0)
-                        {
-                            Kuanggongtianshu += new decimal(0.5);
-                        }
-                        else
-                        {
-                            //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
-                            for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
+                            foreach (var admAskLeave in admAskLeaveDTOMin)
                             {
-                                if (i == 0)
+                                if (admAskLeave.StratTime < StratTimeWorkingEnd)
                                 {
-                                    starttime = dateBiJiaoDTOs[i].StartTime;
-                                    endttime = dateBiJiaoDTOs[i].EndTime;
+                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                    dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+                                    dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                                 }
-                                else
-                                {
-                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
-                                    {
-                                        kuanggong = true;
-                                        break;
-                                    }
-                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
-                                    {
-                                        endttime = dateBiJiaoDTOs[i].EndTime;
-                                    }
-                                }
+
                             }
-                            if (kuanggong)
+
+                            foreach (var admAskLeaveOff in admAskLeaveOffDTOMin)
                             {
+                                if (admAskLeaveOff.StratTime < StratTimeWorkingEnd)
+                                {
+                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                    dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+                                    dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                                }
+
+                            }
+
+
+                            dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
+                            if (dateBiJiaoDTOs.Count == 0)
+                            {
+                                Kuanggong += new decimal(0.5);
                                 Kuanggongtianshu += new decimal(0.5);
                             }
                             else
                             {
-                                decimal shangwukuanggong = 0;
-                                if (starttime > StratTimeWorkingStart)
+                                //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+                                for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
                                 {
-                                    TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart);
-                                    if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+                                    if (i == 0)
                                     {
-                                        if (shangwukuanggong == 0)
-                                        {
-                                            Kuanggongtianshu += new decimal(0.5);
-                                        }
-
+                                        starttime = dateBiJiaoDTOs[i].StartTime;
+                                        endttime = dateBiJiaoDTOs[i].EndTime;
                                     }
                                     else
                                     {
-                                        Chidao += 1;
-                                        Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
-                                    }
-                                }
-                                if (shangwukuanggong == 0 && endttime < StratTimeWorkingEnd)
-                                {
-                                    TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value);
-                                    if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
-                                    {
-                                        if (shangwukuanggong == 0)
+                                        if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                         {
-                                            Kuanggongtianshu += new decimal(0.5);
+                                            kuanggong = true;
+                                            break;
                                         }
-
+                                        else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                        {
+                                            endttime = dateBiJiaoDTOs[i].EndTime;
+                                        }
                                     }
-                                    else
-                                    {
-                                        Zaotui += 1;
-                                        Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
-                                    }
-
                                 }
-                                Kuanggongtianshu += shangwukuanggong;
-                            }
-                        }
-
-
-
-                        //鍒ゆ柇涓嬪崍鏄惁杩熷埌,鍒ゆ柇涓嬪崍鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
-
-
-                        starttime = null;
-                        endttime = null;
-                        kuanggong = false;
-                        dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
-                        if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue)
-                        {
-                            DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
-                            dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn;
-                            dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut;
-                            dateBiJiaoDTOs.Add(dateBiJiaoDTO);
-                        }
-                        var jiabanbukaxiawu = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "3").ToList();
-                        foreach (var admAskLeaveOff in jiabanbukaxiawu)
-                        {
-                            if (admAskLeaveOff.EndTime > StratTimeOffworkStart)
-                            {
-                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
-                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
-                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
-                                dateBiJiaoDTOs.Add(dateBiJiaoDTO);
-                            }
-
-                        }
-
-                        dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
-                        if (dateBiJiaoDTOs.Count == 0)
-                        {
-                            //Kuanggong += new decimal(0.5);
-                            Kuanggongtianshu += new decimal(0.5);
-                        }
-                        else
-                        {
-                            //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
-                            for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
-                            {
-                                if (i == 0)
+                                if (kuanggong)
                                 {
-                                    starttime = dateBiJiaoDTOs[i].StartTime;
-                                    endttime = dateBiJiaoDTOs[i].EndTime;
+                                    Kuanggong += new decimal(0.5);
+                                    Kuanggongtianshu += new decimal(0.5);
                                 }
                                 else
                                 {
-                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                    decimal shangwukuanggong = 0;
+                                    if (starttime > StratTimeWorkingStart)
                                     {
-                                        kuanggong = true;
-                                        break;
+                                        TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart);
+                                        if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+                                        {
+                                            if (shangwukuanggong == 0)
+                                            {
+                                                shangwukuanggong += new decimal(0.5);
+                                                Kuanggong += new decimal(0.5);
+                                            }
+
+                                        }
+                                        else
+                                        {
+                                            Chidao += 1;
+                                            Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
+                                        }
                                     }
-                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                    if (shangwukuanggong == 0 && endttime < StratTimeWorkingEnd)
                                     {
-                                        endttime = dateBiJiaoDTOs[i].EndTime;
+                                        TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value);
+                                        if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
+                                        {
+                                            if (shangwukuanggong == 0)
+                                            {
+                                                shangwukuanggong += new decimal(0.5);
+                                                Kuanggong += new decimal(0.5);
+                                            }
+
+                                        }
+                                        else
+                                        {
+                                            Zaotui += 1;
+                                            Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
+                                        }
+
                                     }
+                                    Kuanggongtianshu += shangwukuanggong;
                                 }
                             }
-                            if (kuanggong)
+
+
+
+                            //鍒ゆ柇涓嬪崍鏄惁杩熷埌,鍒ゆ柇涓嬪崍鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+
+
+                            starttime = null;
+                            endttime = null;
+                            kuanggong = false;
+                            dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
+                            if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue)
                             {
-                                //Kuanggong += new decimal(0.5);
+                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn;
+                                dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut;
+                                dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                            }
+                            foreach (var admAskLeave in admAskLeaveDTOMin)
+                            {
+                                if (admAskLeave.EndTime > StratTimeOffworkStart)
+                                {
+                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                    dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+                                    dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                                }
+
+                            }
+                            foreach (var admAskLeaveOff in admAskLeaveOffDTOMin)
+                            {
+                                if (admAskLeaveOff.EndTime > StratTimeOffworkStart)
+                                {
+                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                    dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+                                    dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                                }
+
+                            }
+
+                            dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
+                            if (dateBiJiaoDTOs.Count == 0)
+                            {
+                                Kuanggong += new decimal(0.5);
                                 Kuanggongtianshu += new decimal(0.5);
                             }
                             else
                             {
-                                decimal xiawuwukuanggong = 0;
-                                if (starttime > StratTimeOffworkStart)
+                                //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+                                for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
                                 {
-                                    TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart);
-                                    if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+                                    if (i == 0)
                                     {
-                                        if (xiawuwukuanggong == 0)
-                                        {
-                                            xiawuwukuanggong += new decimal(0.5);
-                                            //Kuanggong += new decimal(0.5);
-                                        }
-
+                                        starttime = dateBiJiaoDTOs[i].StartTime;
+                                        endttime = dateBiJiaoDTOs[i].EndTime;
                                     }
                                     else
                                     {
-                                        Chidao += 1;
-                                        Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
+                                        if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                        {
+                                            kuanggong = true;
+                                            break;
+                                        }
+                                        else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                        {
+                                            endttime = dateBiJiaoDTOs[i].EndTime;
+                                        }
                                     }
                                 }
-                                if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd)
+                                if (kuanggong)
                                 {
-                                    TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value);
-                                    if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
+                                    Kuanggong += new decimal(0.5);
+                                    Kuanggongtianshu += new decimal(0.5);
+                                }
+                                else
+                                {
+                                    decimal xiawuwukuanggong = 0;
+                                    if (starttime > StratTimeOffworkStart)
                                     {
-                                        if (xiawuwukuanggong == 0)
+                                        TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart);
+                                        if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                         {
-                                            xiawuwukuanggong += new decimal(0.5);
-                                            //Kuanggong += new decimal(0.5);
+                                            if (xiawuwukuanggong == 0)
+                                            {
+                                                xiawuwukuanggong += new decimal(0.5);
+                                                Kuanggong += new decimal(0.5);
+                                            }
+
+                                        }
+                                        else
+                                        {
+                                            Chidao += 1;
+                                            Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
+                                        }
+                                    }
+                                    if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd)
+                                    {
+                                        TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value);
+                                        if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
+                                        {
+                                            if (xiawuwukuanggong == 0)
+                                            {
+                                                xiawuwukuanggong += new decimal(0.5);
+                                                Kuanggong += new decimal(0.5);
+                                            }
+
+                                        }
+                                        else
+                                        {
+                                            Zaotui += 1;
+                                            Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
                                         }
 
                                     }
-                                    else
-                                    {
-                                        Zaotui += 1;
-                                        Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
-                                    }
-
+                                    Kuanggongtianshu += xiawuwukuanggong;
                                 }
-                                Kuanggongtianshu += xiawuwukuanggong;
                             }
+
+
+                            //璁$畻褰撳ぉ璇峰亣
+                            List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>();
+
+                            var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4").ToList();
+                            foreach (var admAskLeave in feichuqinjia)
+                            {
+
+                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+                                dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+                                qingjias.Add(dateBiJiaoDTO);
+
+                            }
+
+                            var feichuqinxiaojia = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "2").ToList();
+                            foreach (var admAskLeaveOff in feichuqinxiaojia)
+                            {
+
+                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                qingjias.Add(dateBiJiaoDTO);
+
+                            }
+
+
+                            foreach (var qingjia in qingjias)
+                            {
+                                if (qingjia.StartTime < StratTimeWorkingStart)
+                                {
+                                    qingjia.StartTime = StratTimeWorkingStart;
+                                }
+                                if (qingjia.StartTime > StratTimeWorkingEnd && qingjia.StartTime < StratTimeOffworkStart)
+                                {
+                                    qingjia.StartTime = StratTimeOffworkStart;
+                                }
+
+
+                                if (qingjia.EndTime > StratTimeWorkingEnd && qingjia.EndTime < StratTimeOffworkStart)
+                                {
+                                    qingjia.EndTime = StratTimeWorkingEnd;
+                                }
+
+
+                                if (qingjia.EndTime > StratTimeOffworkEnd)
+                                {
+                                    qingjia.EndTime = StratTimeOffworkEnd;
+                                }
+                                TimeSpan qingjiashiijan = qingjia.EndTime.Value.Subtract(qingjia.StartTime.Value);
+                                if (qingjia.StartTime <= StratTimeWorkingEnd && qingjia.EndTime >= StratTimeOffworkStart)
+                                {
+                                    TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+                                    dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+                                }
+                                else
+                                {
+                                    dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+                                }
+
+
+
+                            }
+
+                            Qingjia += dangtianqingjia;
+                            //璁$畻褰撳ぉ鍑哄嫟澶╂暟
+                            Jiaban += (1 - Kuanggongtianshu - dangtianqingjia);
+
+
+                            //璁$畻閿�鍋囷紙鍑哄樊锛岃ˉ鍗★級
+                            List<DateBiJiaoDTO> xiaojias = new List<DateBiJiaoDTO>();
+
+                            var xiaojiala = admAskLeaveOffDTOMin.Where(x => x.Lavetype != "2").ToList();
+                            foreach (var admAskLeaveOff in xiaojiala)
+                            {
+
+                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                xiaojias.Add(dateBiJiaoDTO);
+
+                            }
+
+                            foreach (var xiaojia in xiaojias)
+                            {
+                                if (xiaojia.StartTime < StratTimeWorkingStart)
+                                {
+                                    xiaojia.StartTime = StratTimeWorkingStart;
+                                }
+                                if (xiaojia.StartTime > StratTimeWorkingEnd && xiaojia.StartTime < StratTimeOffworkStart)
+                                {
+                                    xiaojia.StartTime = StratTimeOffworkStart;
+                                }
+
+
+                                if (xiaojia.EndTime > StratTimeWorkingEnd && xiaojia.EndTime < StratTimeOffworkStart)
+                                {
+                                    xiaojia.EndTime = StratTimeWorkingEnd;
+                                }
+
+
+                                if (xiaojia.EndTime > StratTimeOffworkEnd)
+                                {
+                                    xiaojia.EndTime = StratTimeOffworkEnd;
+                                }
+                                TimeSpan qingjiashiijan = xiaojia.EndTime.Value.Subtract(xiaojia.StartTime.Value);
+                                if (xiaojia.StartTime <= StratTimeWorkingEnd && xiaojia.EndTime >= StratTimeOffworkStart)
+                                {
+                                    TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+                                    dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+                                }
+                                else
+                                {
+                                    dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+                                }
+
+
+
+                            }
+
+                            Xiaojia += dangtianxiaojia;
                         }
+                           
 
-                        //璁$畻褰撳ぉ鍔犵彮澶╂暟
-                        Jiaban += (1 - Kuanggongtianshu );
 
-                        Kuanggongtianshu = 0;
 
                         //鍔犵彮
                         //璁$畻鍔犵彮鏃堕棿
                         if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue)
                         {
-                            DateTime overdate = admSignInDTO.OvertimeIn.Value;
-                            if (admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
+                            var admAskovertimeDTO = _askService.GetAskovertimeByUeridAndjiabantime(userList[a].Id, dateminkaoqin);
+                            if (admAskovertimeDTO != null && !string.IsNullOrEmpty(admAskovertimeDTO.Id))
                             {
-                                overdate = StratTimeOffworkEnd;
-                            }
-                            TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
+                                //濡傛灉褰撳ぉ鏄叕鍙歌姹傚姞鐝�,鍒欒嚜宸辩敵璇风殑鍔犵彮浠庝笅鐝紑濮嬬畻
+                                DateTime overdate = admSignInDTO.OvertimeIn.Value;
+                                if (shifoujiaban && admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
+                                {
+                                    overdate = StratTimeOffworkEnd;
+                                }
+                                TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
+                                decimal jiabanshijian = jiaban.Hours;
+                                if (new decimal(jiaban.Hours) > admAskovertimeDTO.Overtime.Value)
+                                {
+                                    jiabanshijian = admAskovertimeDTO.Overtime.Value;
+                                }
 
-                            Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2);
+
+
+
+                                Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2);
+                            }
                         }
 
                         
@@ -3401,6 +3582,10 @@
                     }
 
                     hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Daozhanggongzi- hrSalaryDTO.Yufagongzi);
+                    if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi)
+                    {
+                        hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi;
+                    }
                 }
                 hrSalaryDTO.RecStatus = "A";
                 hrSalaryDTO.Islock = "D";
@@ -3448,6 +3633,8 @@
             var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList();
 
             var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
+
+            var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList();
 
             //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐�
             string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.');
@@ -3557,9 +3744,11 @@
                     }
                     else
                     {
+                        
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date) 
+                            || jiabanri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
                         {
                             if (StratTime <= StratTimeWorkingStart)
                             {
@@ -3655,7 +3844,8 @@
                     {
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)
+                            || jiabanri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
                         {
                             if (EndTime >= EndTimeOffworkEnd)
                             {
@@ -3717,7 +3907,8 @@
                     {
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date)
+                            || jiabanri.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date))
                         {
                             LavehTime += shangbanshijian;
                         }
@@ -3746,7 +3937,8 @@
                     else
                     {
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)
+                            || jiabanri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
                         {
                             LavehTime -= shangbanshijian;
                         }
diff --git a/zhengcaioa/zhengcaioa/Views/Signin/AttendanceRule.cshtml b/zhengcaioa/zhengcaioa/Views/Signin/AttendanceRule.cshtml
index 69abc8f..f066608 100644
--- a/zhengcaioa/zhengcaioa/Views/Signin/AttendanceRule.cshtml
+++ b/zhengcaioa/zhengcaioa/Views/Signin/AttendanceRule.cshtml
@@ -9,6 +9,8 @@
 
     var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
 
+    var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList();
+
 
 }
 <!DOCTYPE html>
@@ -109,9 +111,9 @@
                                 <h5 style="color:cornflowerblue;">宸ヤ綔鏃�:</h5>
                                 <div class="clearfix layer-area" style="padding-bottom:15px;">
                                     <div class="col-sm-6 col-md-6">
-                                        鍛� &nbsp;<input type="number" value="@Model.WeekStart" name="WeekStart" id="WeekStart" style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" >&nbsp;-
-                                        鍛� &nbsp;<input type="number" value="@Model.WeekEnd" name="WeekEnd" id="WeekEnd" style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" >
-                                        <input type="hidden" value="@Model.Id"    id="Id" name="Id" >
+                                        鍛� &nbsp;<input type="number" value="@Model.WeekStart" name="WeekStart" id="WeekStart" style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">&nbsp;-
+                                        鍛� &nbsp;<input type="number" value="@Model.WeekEnd" name="WeekEnd" id="WeekEnd" style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
+                                        <input type="hidden" value="@Model.Id" id="Id" name="Id">
                                     </div>
                                 </div>
 
@@ -119,8 +121,8 @@
                                 <h5 style="color:cornflowerblue;">涓婄彮鏃堕棿:</h5>
                                 <div class="clearfix layer-area" style="padding-bottom:15px;">
                                     <div class="col-sm-6 col-md-6">
-                                        <span>涓婂崍锛�</span><input   type="number" value="@Model.WorkingStart" name="WorkingStart" id="WorkingStart"style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)"  onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">-
-                                        <input type="number" value="@Model.WorkingEnd"   name="WorkingEnd" id="WorkingEnd"   style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)"  onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
+                                        <span>涓婂崍锛�</span><input type="number" value="@Model.WorkingStart" name="WorkingStart" id="WorkingStart" style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">-
+                                        <input type="number" value="@Model.WorkingEnd" name="WorkingEnd" id="WorkingEnd" style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
                                     </div>
 
                                 </div>
@@ -128,18 +130,18 @@
 
                                 <div class="clearfix layer-area" style="padding-bottom:15px;">
                                     <div class="col-sm-6 col-md-6">
-                                        <span>涓嬪崍锛�</span><input type="number"  value="@Model.OffworkStart" name="OffworkStart" id="OffworkStart" style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">-
-                                        <input type="number"  value="@Model.OffworkEnd" name="OffworkEnd" id="OffworkEnd" style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
+                                        <span>涓嬪崍锛�</span><input type="number" value="@Model.OffworkStart" name="OffworkStart" id="OffworkStart" style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">-
+                                        <input type="number" value="@Model.OffworkEnd" name="OffworkEnd" id="OffworkEnd" style="width:100px;" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
                                     </div>
                                 </div>
 
 
                                 @*<div class="clearfix layer-area" style="padding-bottom:15px;">
-                                    <div class="col-sm-6 col-md-6">
-                                        <span>鍏ㄥ嫟濂�</span>
-                                        <input type="number" value="@Model.FullAttendance" name="FullAttendance" id="FullAttendance" style="width:150px" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">鍏�
-                                    </div>
-                                </div>*@
+            <div class="col-sm-6 col-md-6">
+                <span>鍏ㄥ嫟濂�</span>
+                <input type="number" value="@Model.FullAttendance" name="FullAttendance" id="FullAttendance" style="width:150px" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">鍏�
+            </div>
+        </div>*@
 
                                 <h5 style="color:cornflowerblue;">杩熷埌鎵f:</h5>
                                 <div class="clearfix layer-area" style="padding-bottom:15px;">
@@ -156,7 +158,7 @@
                                 <div class="clearfix layer-area" style="padding-bottom:15px;">
                                     <div class="col-sm-6 col-md-6">
                                         <span>杩熷埌</span><input style="width:150px" type="number" min="0" step="1" max="999999" value="@Model.Absenteeism" name="Absenteeism" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">鍒嗛挓璁颁负鏃峰伐
-                                                       <span>鏃峰伐鎵f</span><input style="width:150px" type="number" min="0.01" step="0.01" max="999999" value="@Model.AbsenteeismPayment1" name="AbsenteeismPayment1" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">鍊嶅伐璧�
+                                        <span>鏃峰伐鎵f</span><input style="width:150px" type="number" min="0.01" step="0.01" max="999999" value="@Model.AbsenteeismPayment1" name="AbsenteeismPayment1" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">鍊嶅伐璧�
                                         @*<span>1澶�</span><input style="width:150px" type="number" min="0.01" step="0.01" max="999999" value="@Model.AbsenteeismPayment2" name="AbsenteeismPayment2" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">鍏�*@
                                     </div>
                                 </div>
@@ -206,11 +208,11 @@
                                                 }
                                                 else
                                                 {
-                                    <div class="setSelect">
-                                        <input type="text" value="@jiejiari[i].ValueStart.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control   holiday_s" id="@("holiday_s"+(i+1))" name="holiday_s" style="width:150px;" onfocus='laydate({elem:"#holiday_s1",format:"YYYY-MM-DD",theme:"#fdd5004"})' /> -
-                                        <input type="text" value="@jiejiari[i].ValueEnd.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control   holiday_e" id="@("holiday_e"+(i+1))" name="holiday_e" style="width:150px;" onfocus='laydate({elem:"#holiday_e1",format:"YYYY-MM-DD",theme:"#fdd5004"})' />
-                                        <button type="button" class="addBtn" onclick="delBtn(this,0,'holiday')" data-type="1">-</button> 
-                                    </div>
+                                                    <div class="setSelect">
+                                                        <input type="text" value="@jiejiari[i].ValueStart.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control   holiday_s" id="@("holiday_s"+(i+1))" name="holiday_s" style="width:150px;" onfocus='laydate({elem:"#holiday_s1",format:"YYYY-MM-DD",theme:"#fdd5004"})' /> -
+                                                        <input type="text" value="@jiejiari[i].ValueEnd.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control   holiday_e" id="@("holiday_e"+(i+1))" name="holiday_e" style="width:150px;" onfocus='laydate({elem:"#holiday_e1",format:"YYYY-MM-DD",theme:"#fdd5004"})' />
+                                                        <button type="button" class="addBtn" onclick="delBtn(this,0,'holiday')" data-type="1">-</button>
+                                                    </div>
                                                 }
 
 
@@ -246,11 +248,11 @@
                                                 }
                                                 else
                                                 {
-                                    <div class="setSelect">
-                                        <input type="text" value="@tiaoxiuri[i].ValueStart.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control rest_s" id="@("rest_s"+(i+1))" name="rest_s" style="width:150px;" onfocus='laydate({elem:"#rest_s1",format:"YYYY-MM-DD",theme:"#fdd5004"})' /> -
-                                        <input type="text" value="@tiaoxiuri[i].ValueEnd.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control rest_e" id="@("rest_e"+(i+1))" name="rest_e" style="width:150px;" onfocus='laydate({elem:"#rest_e1",format:"YYYY-MM-DD",theme:"#fdd5004"})' />
-                                        <button type="button" class="addBtn" onclick="delBtn(this,0,'rest')" data-type="1">-</button>
-                                    </div>
+                                                    <div class="setSelect">
+                                                        <input type="text" value="@tiaoxiuri[i].ValueStart.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control rest_s" id="@("rest_s"+(i+1))" name="rest_s" style="width:150px;" onfocus='laydate({elem:"#rest_s1",format:"YYYY-MM-DD",theme:"#fdd5004"})' /> -
+                                                        <input type="text" value="@tiaoxiuri[i].ValueEnd.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control rest_e" id="@("rest_e"+(i+1))" name="rest_e" style="width:150px;" onfocus='laydate({elem:"#rest_e1",format:"YYYY-MM-DD",theme:"#fdd5004"})' />
+                                                        <button type="button" class="addBtn" onclick="delBtn(this,0,'rest')" data-type="1">-</button>
+                                                    </div>
                                                 }
 
                                             }
@@ -258,6 +260,46 @@
 
                                     </div>
                                 </div>
+
+                                <h5 style="color:red;">鍔犵彮鏃�:</h5>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <div class="col-sm-3 col-md-3">
+                                        @if (jiabanri == null || jiabanri.Count == 0)
+                                        {
+                                            <div class="setSelect">
+                                                <input type="text" value="" class="layui-input  layer-date  ldate form-control jiaban_s" id="jiaban_s1" name="jiaban_s" style="width:150px;" onfocus='laydate({elem:"#jiaban_s1",format:"YYYY-MM-DD",theme:"#fdd5004"})' /> -
+                                                <input type="text" value="" class="layui-input  layer-date  ldate form-control jiaban_e" id="jiaban_e1" name="jiaban_e" style="width:150px;" onfocus='laydate({elem:"#jiaban_e1",format:"YYYY-MM-DD",theme:"#fdd5004"})' />
+                                                <button type="button" class="addBtn" style="padding-bottom:10px;" onclick="addjiabanBtn(this)" data-type="1">+</button>
+                                            </div>
+                                        }
+                                        else
+                                        {
+                                            for (int i = 0; i < jiabanri.Count; i++)
+                                            {
+                                                if (i == 0)
+                                                {
+                                                    <div class="setSelect">
+                                                        <input type="text" value="@jiabanri[i].ValueStart.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control jiaban_s" id="@("jiaban_s"+(i+1))" name="jiaban_s" style="width:150px;" onfocus='laydate({elem:"#jiaban_s1",format:"YYYY-MM-DD",theme:"#fdd5004"})' /> -
+                                                        <input type="text" value="@jiabanri[i].ValueEnd.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control jiaban_e" id="@("jiaban_e"+(i+1))" name="jiaban_e" style="width:150px;" onfocus='laydate({elem:"#jiaban_e1",format:"YYYY-MM-DD",theme:"#fdd5004"})' />
+                                                        <button type="button" class="addBtn" style="padding-bottom:10px;" onclick="addjiabanBtn(this)" data-type="1">+</button>
+                                                    </div>
+                                                }
+                                                else
+                                                {
+                                                    <div class="setSelect">
+                                                        <input type="text" value="@jiabanri[i].ValueStart.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control jiaban_s" id="@("jiaban_s"+(i+1))" name="jiaban_s" style="width:150px;" onfocus='laydate({elem:"#jiaban_s1",format:"YYYY-MM-DD",theme:"#fdd5004"})' /> -
+                                                        <input type="text" value="@jiabanri[i].ValueEnd.ToString("yyyy-MM-dd")" class="layui-input  layer-date  ldate form-control jiaban_e" id="@("jiaban_e"+(i+1))" name="jiaban_e" style="width:150px;" onfocus='laydate({elem:"#jiaban_e1",format:"YYYY-MM-DD",theme:"#fdd5004"})' />
+                                                        <button type="button" class="addBtn" onclick="delBtn(this,0,'jiaban')" data-type="1">-</button>
+                                                    </div>
+                                                }
+
+                                            }
+                                        }
+
+                                    </div>
+                                </div>
+
+                                
 
                                 <h5 style="color:cornflowerblue;">鍔犵彮琛ュ姪:</h5>
                                 <div class="clearfix layer-area" style="padding-bottom:15px;height:45px;">
@@ -267,11 +309,11 @@
                                             1鍊�
                                             @if (Model.Gala == 1)
                                             {
-                                                <input name="Gala" type="radio"   value="1" class="type_b" checked="checked">
+                                                <input name="Gala" type="radio" value="1" class="type_b" checked="checked">
                                             }
                                             else
-                                            { 
-                                                <input name="Gala" type="radio"   value="1" class="type_b" >
+                                            {
+                                                <input name="Gala" type="radio" value="1" class="type_b">
 
                                             }
 
@@ -328,11 +370,11 @@
                                             2鍊�
                                             @if (Model.Weekend1 == 2)
                                             {
-                                            <input name="Weekend1" type="radio" checked="checked" value="2" class="type_b">
+                                                <input name="Weekend1" type="radio" checked="checked" value="2" class="type_b">
                                             }
                                             else
                                             {
-                                            <input name="Weekend1" type="radio" value="2" class="type_b">
+                                                <input name="Weekend1" type="radio" value="2" class="type_b">
 
                                             }
                                         </label>
@@ -374,7 +416,7 @@
                                     <div class="col-sm-6 col-md-6">
                                         <span></span>
                                         @*<input name="holiday" value="" type="hidden" id="holiday">
-                                        <input name="rest" value="" type="hidden" id="rest">*@
+                <input name="rest" value="" type="hidden" id="rest">*@
                                     </div>
                                 </div>
                             </div>
@@ -584,6 +626,29 @@
 
            
         };
+
+
+        function addjiabanBtn(obj) {
+            var int = $('.jiaban_s').length - 1;
+            var id = $('.jiaban_s').eq(int).attr('id');
+            var jiaban_ss = parseInt(id.replace("jiaban_s", "")) + 1;
+
+            var int1 = $('.jiaban_e').length - 1
+            var id1 = $('.jiaban_e').eq(int1).attr('id');
+            var jiaban_ee = parseInt(id1.replace("jiaban_e", "")) + 1;
+
+            var html = ' <div class="setSelect">\n' +
+                '                <span></span>\n' +
+                '                <input type="text" value="" class="layui-input  layer-date  ldate form-control jiaban_s"  id="jiaban_s' + jiaban_ss + '" name="jiaban_s" style="width:150px;" onfocus=\'laydate({elem:"#jiaban_s' + jiaban_ss + '",format:"YYYY-MM-DD",theme:"#fdd5004"})\' /> -\n' +
+                '                <input type="text" value=""  class="layui-input  layer-date  ldate form-control jiaban_e"  id="jiaban_e' + jiaban_ee + '" name="jiaban_e"   style="width:150px;" onfocus=\'laydate({elem:"#jiaban_e' + jiaban_ee + '",format:"YYYY-MM-DD",theme:"#fdd5004"})\' />\n' +
+                '                <button type="button" class="addBtn" onclick="delBtn(this,0,\'jiaban\')" data-type="1">-</button>\n' +
+                '            </div>'
+
+            $(obj).parent('div').parent('div').append(html);
+
+
+        };
+        
         function delBtn(obj, id, tb) {
             //if (id > 0) {
             //    var url = "/index.php/home/white/del.html"

--
Gitblit v1.9.1