Views/Forms/HR/GetLeaveDateTime.ashx

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<%@ WebHandler Language="C#" Class="GetLeaveDateTime" %>

using System;
using System.Web;
using MicroHRHelper;

public class GetLeaveDateTime : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";

        string StartDateTime = context.Server.UrlDecode(context.Request.QueryString["StartDateTime"]),
         LeaveDays = context.Server.UrlDecode(context.Request.QueryString["LeaveDays"]),
         LeaveHour = context.Server.UrlDecode(context.Request.QueryString["LeaveHour"]),
         LeaveUID = context.Server.UrlDecode(context.Request.QueryString["LeaveUID"]);

        //StartDateTime = "2021-02-05";
        //LeaveDays = "1.5";
        //LeaveHour = "0";
        //LeaveUID = "1";

        context.Response.Write(GetEndDateTime(StartDateTime, LeaveDays, LeaveHour, LeaveUID));
    }


    /// <summary>
    /// 根据开始时间、持续天数、持续小时数计算出结束时间
    /// </summary>
    /// <param name="StartDateTime"></param>
    /// <param name="LeaveDays"></param>
    /// <param name="LeaveHour"></param>
    /// <returns></returns>
    private string GetEndDateTime(string StartDateTime, string LeaveDays, string LeaveHour, string UID = "")
    {
        string flag = "0", strTemp = "\"StartTime\":\"{0}\",\"EndDateTime\":\"{1}\",\"EndDate\":\"{2}\",\"EndTime\":\"{3}\"";
        if (string.IsNullOrEmpty(StartDateTime))
            StartDateTime = DateTime.Now.toDateFormat();

        string StartDate = StartDateTime.toDateFormat(),
               StartTime = StartDateTime.toDateFormat("HH:mm"),
               EndDateTime = StartDateTime,
               EndDate = EndDateTime.toDateFormat(),
               EndTime = EndDateTime.toDateFormat("HH:mm");

        try
        {
            //获取休息时间,默认休息时间45分钟
            int RestTime = 45;
            //如果用户有排班则获取排班的RestTime数据
            if (!string.IsNullOrEmpty(UID))
            {
                var getUserOnDuty = MicroHR.GetUserOnDuty(UID, StartDateTime);
                RestTime = getUserOnDuty.RestTime.toInt();  //班次休息时间
                StartTime = !string.IsNullOrEmpty(getUserOnDuty.StartTime) ? getUserOnDuty.StartTime : StartTime;  //班次开始时间
                int StandardOvertime = getUserOnDuty.StandardOvertime.toInt(); //班次标准上班时间 单位min

                //默认先根据开始时间得到结束时间(在新增时用于根据用户班次开始时间计算出结束时间填充给控件),后续若LeaveDays>0或者LeaveHour>0时再重新计算
                EndDateTime = DateTime.Parse(StartDate + " " + StartTime).AddMinutes(480 + RestTime).ToString("yyyy-MM-dd HH:mm:ss");
后面还有 55 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。