示例#1
0
        public HrsLeaveResult Insert(LeaveEntity leave)
        {
            IDbSession session = SessionFactory.CreateSession();

            try
            {
                leave.CreatedDate = System.DateTime.Now;
                session.BeginTrans();
                dynamic result = Repository.Insert <LeaveEntity>(session.Connection, leave, session.Transaction);
                session.Commit();


                if (result > 0)
                {
                    HrsLeaveResult.ResultIdentity = result;
                    return(HrsLeaveResult.Success);
                }
                else
                {
                    return(HrsLeaveResult.Failed(""));
                }
            }
            catch (System.Exception exception)
            {
                session.Rollback();
                return(HrsLeaveResult.Failed(exception.Message));
            }
            finally
            {
                session.Dispose();
            }
        }
示例#2
0
 /// <summary>
 /// 添加申请请假信息
 /// </summary>
 /// <param name="context"></param>
 public void AddLeaveInfo(HttpContext context)
 {
     if (user.UserID == 0)
     {
         LoginHandler.contextResponseWrite(context, "addfailed");
     }
     else
     {
         LeaveEntity obj = new LeaveEntity();
         obj.UserID         = user.UserID;
         obj.LeaveStartTime = Convert.ToDateTime(context.Request["txtdateStartModal"]);
         obj.LeaveEndTime   = Convert.ToDateTime(context.Request["txtdateEndModal"]);
         obj.LeaveHalfDay   = context.Request["selectdaytimes"];
         obj.LeaveDays      = Convert.ToInt32(context.Request["LeaveTimeChaModal"]);
         obj.LeaveReason    = context.Request["txtLeaveRemarkModal"];
         if (new LeaveBLL().AddLeaveInfo(obj))
         {
             LoginHandler.contextResponseWrite(context, "addsuccess");
         }
         else
         {
             LoginHandler.contextResponseWrite(context, "addfailed");
         }
     }
 }
示例#3
0
        //update请假
        public static async Task <int> Update(LeaveEntity entity)
        {
            var query = "UPDATE leave_information SET content=@content,proof=@proof,leave_duration=@duration,leave_day=@day,leave_start=@start,leave_end=@end WHERE leave_id=@id";

            using var connection = DatabaseConnector.Connect();
            await connection.OpenAsync();

            using var command   = connection.CreateCommand();
            command.CommandText = query;

            command.Parameters.AddWithValue("@id", entity.leave_id);
            command.Parameters.AddWithValue("@content", entity.content);

            command.Parameters.AddWithValue("@proof", entity.proof);

            command.Parameters.AddWithValue("@duration", entity.leave_duration);
            command.Parameters.AddWithValue("@day", entity.leave_day);
            command.Parameters.AddWithValue("@start", entity.leave_start);
            command.Parameters.AddWithValue("@end", entity.leave_end);

            var row = await command.ExecuteNonQueryAsync();

            if (row > 0)
            {
                return(entity.leave_id);
            }
            return(0);
        }
示例#4
0
        private static List <LeaveEntity> Commnuity(string sql, params SqlParameter[] parameter)
        {
            List <LeaveEntity> list = new List <LeaveEntity>();
            SqlDataReader      sdr  = DBHelper.GetReader(sql, parameter);

            while (sdr.Read())
            {
                LeaveEntity obj = new LeaveEntity()
                {
                };

                obj.LeaveID        = Convert.ToInt32(sdr["LeaveID"]);
                obj.UserID         = Convert.ToInt32(sdr["UserID"]);
                obj.UserName       = sdr["UserName"].ToString();
                obj.UserTel        = Convert.ToString(sdr["UserTel"]);
                obj.LeaveState     = Convert.ToInt32(sdr["LeaveState"]);
                obj.LeaveTime      = Convert.ToDateTime(sdr["LeaveTime"]);
                obj.LeaveStartTime = Convert.ToDateTime(sdr["LeaveStartTime"]);
                obj.LeaveEndTime   = Convert.ToDateTime(sdr["LeaveEndTime"]);
                obj.LeaveHalfDay   = sdr["LeaveHalfDay"].ToString();
                obj.LeaveDays      = Convert.ToInt32(sdr["LeaveDays"]);
                obj.LeaveReason    = sdr["LeaveReason"].ToString();
                obj.ApproverID     = Convert.ToInt32(sdr["ApproverID"]);
                obj.ApprovalTime   = Convert.ToDateTime(sdr["ApprovalTime"]);
                obj.ApproverReason = sdr["ApproverReason"].ToString();
                obj.CI_ID          = Convert.ToInt32(sdr["CI_ID"]);
                obj.CI_Name        = sdr["CI_Name"].ToString();
                obj.DepartmentName = sdr["DepartmentName"].ToString();

                list.Add(obj);
            }
            return(list);
        }
示例#5
0
        //学生查看自己的请假信息
        public static async Task <LeaveItemEntity> ViewLeave(int student_id)
        {
            LeaveItemEntity leave = new LeaveItemEntity();

            leave.total     = 0;
            leave.leaveItem = new List <LeaveEntity>();
            var query = "SELECT leave_id,student_id,work_id,content,leave_time,proof,status,request_time,leave_duration FROM leave_information WHERE student_id=@student_id";

            using var connection = DatabaseConnector.Connect();
            await connection.OpenAsync();

            using var command   = connection.CreateCommand();
            command.CommandText = query;
            command.Parameters.AddWithValue("@student_id", student_id);
            using var reader = await command.ExecuteReaderAsync();

            while (reader.Read())
            {
                LeaveEntity temp = new LeaveEntity();

                temp.leave_id       = reader.GetInt32("leave_id");
                temp.student_id     = reader.GetInt32("student_id");
                temp.work_id        = reader.GetInt32("work_id");
                temp.content        = reader.GetString("content");
                temp.leave_time     = reader.GetString("leave_time");
                temp.proof          = reader.GetString("proof");
                temp.status         = reader.GetInt32("status");
                temp.leave_duration = reader.GetDecimal("leave_duration");
                temp.request_time   = reader.GetDateTime("request_time");

                leave.total++;
                leave.leaveItem.Add(temp);
            }
            return(leave);
        }
示例#6
0
        public static async Task <int> Create(LeaveEntity leave)
        {
            var query = @"INSERT INTO leave_information(user_id,work_id,content,
            proof,status,leave_duration,leave_day,leave_start,leave_end)
             VALUES(@student_id,@work_id,@content,
             @proof,@status,@duration,@day,@start,@end)";

            using var connection = DatabaseConnector.Connect();
            await connection.OpenAsync();

            using var command   = connection.CreateCommand();
            command.CommandText = query;

            command.Parameters.AddWithValue("@student_id", leave.student_id);
            command.Parameters.AddWithValue("@work_id", leave.work_id);
            command.Parameters.AddWithValue("@content", leave.content);
            //command.Parameters.AddWithValue("@leave_time",""); //to be delete
            command.Parameters.AddWithValue("@proof", leave.proof);
            command.Parameters.AddWithValue("@status", 0);
            command.Parameters.AddWithValue("@duration", leave.leave_duration);
            command.Parameters.AddWithValue("@day", leave.leave_day);
            command.Parameters.AddWithValue("@start", leave.leave_start);
            command.Parameters.AddWithValue("@end", leave.leave_end);

            await command.ExecuteNonQueryAsync();

            return((int)command.LastInsertedId);
        }
示例#7
0
        public bool LeaveRequestBLL(LeaveEntity leaveEntity)
        {
            Console.WriteLine("in Leave BLL layer");
            bool leaveRequest = leaveDAL.LeaveRequestDAL(leaveEntity);

            return(leaveRequest);
        }
        public ActionResult SubmitSellOffForm(LeaveEntity leaveEntity, string keyValue)
        {
            LeaveEntity leave = leaveApp.GetForm(keyValue);

            if (leave.F_BeginTime > leaveEntity.F_ResumptionBeginTime)
            {
                return(Error("销假开始时间小于假期开始时间!"));
            }
            if (leave.F_EndTime < leaveEntity.F_ResumptionLeaveTime)//销假时间大于结束时间
            {
                return(Error("销假结束时间大于假期结束时间!"));
            }

            leave.F_LeaveStatus              = (int)LeaveStatusEnum.UnCheckedSellOff;//销假申请
            leave.F_ResumptionBeginTime      = leaveEntity.F_ResumptionBeginTime;
            leave.F_ResumptionLeaveTime      = leaveEntity.F_ResumptionLeaveTime;
            leave.F_SellOffTimeLength_Day    = leaveEntity.F_SellOffTimeLength_Day;
            leave.F_SellOffTimeLength_Hour   = leaveEntity.F_SellOffTimeLength_Hour;
            leave.F_SellOffTimeLength_Minute = leaveEntity.F_SellOffTimeLength_Minute;
            leaveApp.SubmitForm(leave, keyValue);
            var checkUser = userApp.GetForm(leave.F_CheckLeaderId);
            var user      = userApp.GetForm(leave.F_UserId);

            if (!string.IsNullOrEmpty(checkUser.F_Email))
            {
                mHelper.MailServer = "10.110.120.2";
                mHelper.Send(checkUser.F_Email, "OA销假单", "你好," + user.F_RealName + "有销假单需要你登录OA去做审核,请点击链接<a>http://10.110.120.6:8090/</a>");
            }
            return(Success("操作成功。"));
        }
示例#9
0
        public async Task TakeLeave(string username, LeaveRequest leaveRequest)
        {
            var tableManager = new AzureTableManager(userLeavesTable);

            // Make an entry in Azure Table Storage for the same
            // Using BatchOperation to add these bulk leaveRequests
            leaveRequest.Id = Guid.NewGuid().ToString();

            if (leaveRequest.EndDate == null)
            {
                var newLeaveEntity = new LeaveEntity(username, leaveRequest.StartDate);

                newLeaveEntity.LeaveId  = leaveRequest.Id;
                newLeaveEntity.Reason   = leaveRequest.Reason;
                newLeaveEntity.Comments = leaveRequest.Comments;

                await tableManager.InsertEntity <LeaveEntity>(newLeaveEntity, true);
            }
            else
            {
                TableBatchOperation batchOperation = new TableBatchOperation();
                for (DateTime date = leaveRequest.StartDate.Date; date.Date <= leaveRequest.EndDate?.Date; date = date.AddDays(1))
                {
                    var newLeaveEntity = new LeaveEntity(username, date);

                    newLeaveEntity.LeaveId  = leaveRequest.Id;
                    newLeaveEntity.Reason   = leaveRequest.Reason;
                    newLeaveEntity.Comments = leaveRequest.Comments;

                    batchOperation.Insert(newLeaveEntity);
                }

                await tableManager.BatchInsert(batchOperation);
            }
        }
示例#10
0
        public ActionResult SubmitForm(LeaveEntity leaveEntity, string keyValue)
        {
            string[] Ids = keyValue.Split(',');
            foreach (var Id in Ids)
            {
                var leave = leaveApp.GetForm(Id);
                if (leave.F_IsCheck == null && leave.F_LeaveStatus == (int)LeaveStatusEnum.UnChecked)//未审核
                {
                    leave.F_IsCheck      = leaveEntity.F_IsCheck != null ? leaveEntity.F_IsCheck : null;
                    leave.F_CheckOpinion = leaveEntity.F_CheckOpinion != "" ? leaveEntity.F_CheckOpinion : "";
                    if (leave.F_IsCheck.HasValue && leave.F_IsCheck == true)
                    {
                        leave.F_LeaveStatus = (int)LeaveStatusEnum.UnApproved;      //状态改为未批准
                        if (leave.F_CheckLeaderId.Equals(leave.F_ApprovalLeaderId)) //审核人和批准人一样
                        {
                            leave.F_IsApproval   = true;
                            leave.F_LeaveStatus  = (int)LeaveStatusEnum.Success;//状态改为审批通过
                            leave.F_ApprovalTime = DateTime.Now;
                        }
                        else
                        {
                            var ApprovalLeader = userApp.GetForm(leave.F_ApprovalLeaderId);
                            var user           = userApp.GetForm(leave.F_UserId);
                            if (!string.IsNullOrEmpty(ApprovalLeader.F_Email))
                            {
                                mHelper.MailServer = "10.110.120.2";
                                mHelper.Send(ApprovalLeader.F_Email, "OA请假单", "你好," + user.F_RealName + "有请假单需要你登录OA去做批准,请点击链接<a>http://10.110.120.6:8090/</a>");
                            }
                        }
                    }
                    else
                    {
                        leave.F_LeaveStatus  = (int)LeaveStatusEnum.Fail;//状态改为审核失败
                        leave.F_ApprovalTime = DateTime.Now;
                    }
                }
                else
                {
                    if (leave.F_IsApproval == null && leave.F_LeaveStatus == (int)LeaveStatusEnum.UnApproved)//未批准
                    {
                        leave.F_IsApproval      = leaveEntity.F_IsApproval != null ? leaveEntity.F_IsApproval : null;
                        leave.F_ApprovalOpinion = leaveEntity.F_ApprovalOpinion != "" ? leaveEntity.F_ApprovalOpinion : "";
                        if (leave.F_IsApproval.HasValue && leave.F_IsApproval == true)
                        {
                            leave.F_LeaveStatus  = (int)LeaveStatusEnum.Success;//状态改为审核通过
                            leave.F_ApprovalTime = DateTime.Now;
                        }
                        else
                        {
                            leave.F_LeaveStatus  = (int)LeaveStatusEnum.Fail;//状态改为审核通过
                            leave.F_ApprovalTime = DateTime.Now;
                        }
                    }
                }

                leaveApp.SubmitForm(leave, Id);
            }
            return(Success("操作成功。"));
        }
示例#11
0
 public ActionResult GetFormJson(string keyValue)
 {
     if (!string.IsNullOrEmpty(keyValue))
     {
         LeaveEntity leave = leaveApp.GetForm(keyValue);
         return(Content(leave.ToJson()));
     }
     return(null);
 }
示例#12
0
 public void SubmitForm(LeaveEntity leaveEntity, string keyValue)
 {
     if (!string.IsNullOrEmpty(keyValue))
     {
         leaveEntity.Modify(keyValue);
         service.Update(leaveEntity);
     }
     else
     {
         leaveEntity.Create();
         service.Insert(leaveEntity);
     }
 }
示例#13
0
 public ActionResult SellOffSubmitForm(LeaveEntity leaveEntity, string keyValue)
 {
     try
     {
         var leave = leaveApp.GetForm(keyValue);
         if (leave.F_IsSellOff == null && leave.F_LeaveStatus == (int)LeaveStatusEnum.UnCheckedSellOff)//未审核
         {
             leave.F_IsSellOff           = leaveEntity.F_IsSellOff != null ? leaveEntity.F_IsSellOff : null;
             leave.F_SellOffCheckOpinion = leaveEntity.F_SellOffCheckOpinion != "" ? leaveEntity.F_SellOffCheckOpinion : "";
             if (leave.F_IsSellOff.HasValue && leave.F_IsSellOff == true)
             {
                 leave.F_LeaveStatus       = (int)LeaveStatusEnum.SuccessSellOff; //状态改为销假成功
                 leave.F_IsSellOff         = true;                                //销假成功
                 leave.F_TimeLength_Day    = leave.F_SellOffTimeLength_Day != null ? leave.F_SellOffTimeLength_Day.Value : leave.F_TimeLength_Day;
                 leave.F_TimeLength_Hour   = leave.F_SellOffTimeLength_Hour != null ? leave.F_SellOffTimeLength_Hour.Value : leave.F_TimeLength_Hour;
                 leave.F_TimeLength_Minute = leave.F_SellOffTimeLength_Minute != null ? leave.F_SellOffTimeLength_Minute.Value : leave.F_TimeLength_Minute;
                 leave.F_EndTime           = leave.F_ResumptionLeaveTime.Value;//将结束时间调整为销假时间
                 leave.F_BeginTime         = leave.F_ResumptionBeginTime ?? leave.F_BeginTime;
             }
             else
             {
                 leave.F_LeaveStatus = (int)LeaveStatusEnum.FailSellOff; //状态改为销假失败
                 leave.F_IsSellOff   = false;                            //销假失败
             }
         }
         //if (leave.F_SellOffIsApproval == null && leave.F_LeaveStatus == (int)LeaveStatusEnum.UnApprovedSellOff)//未批准
         //{
         //    leave.F_SellOffIsApproval = leaveEntity.F_SellOffIsApproval != null ? leaveEntity.F_SellOffIsApproval : null;
         //    leave.F_SellOffApprovalOpinion = leaveEntity.F_SellOffApprovalOpinion != "" ? leaveEntity.F_SellOffApprovalOpinion : "";
         //    if (leave.F_SellOffIsApproval.HasValue && leave.F_SellOffIsApproval == true)
         //    {
         //        leave.F_LeaveStatus = (int)LeaveStatusEnum.SuccessSellOff;//状态改为销假成功
         //        leave.F_ResumptionLeaveTime = leaveEntity.F_ResumptionLeaveTime;//加入销假时间
         //    }
         //    else
         //    {
         //        leave.F_LeaveStatus = (int)LeaveStatusEnum.FailSellOff;//状态改为销假失败
         //        leave.F_ResumptionLeaveTime = null;
         //    }
         //}
         leaveApp.SubmitForm(leave, keyValue);
         return(Success("操作成功。"));
     }
     catch (Exception ex)
     {
         new ErrorLogApp().SubmitForm(ex);
         return(null);
     }
 }
示例#14
0
        public bool Addleave(LeaveEntity leave)
        {
            bool added = false;

            try
            {
                added = LeaveBL.AddLeave(leave);
            }
            catch (LeaveException ex)
            {
                CustomException(ex.GetType().ToString(), ex.Message);
            }

            return(added);
        }
示例#15
0
        public ActionResult Print(string id)
        {
            LeaveEntity     leave     = leaveApp.GetForm(id);
            UserEntity      user      = userApp.GetForm(leave.F_UserId);
            OrganizeEntity  organ     = organizeApp.GetForm(user.F_DepartmentId);
            RoleEntity      role      = roleApp.GetForm(user.F_DutyId);
            UserLeaveEntity userLeave = new UserLeaveEntity(leave);

            userLeave.UserName   = user.F_RealName;
            userLeave.Department = organ.F_FullName;
            userLeave.Position   = role.F_FullName;
            userLeave.Account    = user.F_Account;
            userLeave.StartTime  = user.F_CreatorTime;
            return(View(userLeave));
        }
示例#16
0
        public static bool AddLeave(LeaveEntity leave)
        {
            bool added = false;

            try
            {
                added = LeaveDAL.AddLeave(leave);
            }
            catch (LeaveException)
            {
                throw;
            }

            return(added);
        }
示例#17
0
        public ActionResult ConvertToWord(string id, string printName)
        {
            LeaveEntity    leave          = leaveApp.GetForm(id);
            UserEntity     user           = userApp.GetForm(leave.F_UserId);
            UserEntity     approvalLeader = userApp.GetForm(leave.F_ApprovalLeaderId);
            UserEntity     checkLeader    = userApp.GetForm(leave.F_CheckLeaderId);
            OrganizeEntity organ          = organizeApp.GetForm(user.F_DepartmentId);
            RoleEntity     role           = roleApp.GetForm(user.F_RoleId);

            if (leaveApp.ConvertToWord(leave, user, checkLeader, approvalLeader, organ, role, printName))
            {
                return(Success("操作成功。"));
            }
            return(Error("操作失败。"));
        }
示例#18
0
 public UserLeaveEntity(LeaveEntity leaveEntity)
 {
     this.F_Id                = leaveEntity.F_Id;
     this.F_UserId            = leaveEntity.F_UserId;
     this.F_CreateTime        = leaveEntity.F_CreateTime;
     this.F_BeginTime         = leaveEntity.F_BeginTime;
     this.F_EndTime           = leaveEntity.F_EndTime;
     this.F_VacationTypeId    = leaveEntity.F_VacationTypeId;
     this.F_LeaveStatus       = leaveEntity.F_LeaveStatus;
     this.F_LeaveTypeId       = leaveEntity.F_LeaveTypeId;
     this.F_FileId            = leaveEntity.F_FileId;
     this.F_CheckLeaderId     = leaveEntity.F_CheckLeaderId;
     this.F_ApprovalLeaderId  = leaveEntity.F_ApprovalLeaderId;
     this.F_LeaveReason       = leaveEntity.F_LeaveReason;
     this.F_TimeLength_Day    = leaveEntity.F_TimeLength_Day;
     this.F_TimeLength_Hour   = leaveEntity.F_TimeLength_Hour;
     this.F_TimeLength_Minute = leaveEntity.F_TimeLength_Minute;
 }
示例#19
0
        public bool UpdateLeaveDAL(LeaveEntity leaveEntity)
        {
            try
            {
                connection.Open();


                string     command    = "SpModifyLeaves";
                SqlCommand sqlCommand = new SqlCommand(command, connection);
                sqlCommand.CommandType = CommandType.StoredProcedure;
                sqlCommand.Parameters.AddWithValue("@LeaveRequestId", LeaveEntity.LeaveRequestID);
                sqlCommand.Parameters.AddWithValue("@LeaveType", LeaveEntity.LeaveType);
                sqlCommand.Parameters.AddWithValue("@NoOfDays", LeaveEntity.NoOfDays);
                sqlCommand.Parameters.AddWithValue("@LeaveBalance", LeaveEntity.LeaveBalance);
                sqlCommand.Parameters.AddWithValue("@LeaveDateFrom", LeaveEntity.Leave_Date_From);
                sqlCommand.Parameters.AddWithValue("@LeaveDateTo", LeaveEntity.LeaveDateTo);
                sqlCommand.Parameters.AddWithValue("@Status", LeaveEntity.LeaveStatus);
                sqlCommand.Parameters.AddWithValue("@eId", LeaveEntity.EmployeeID);
                sqlCommand.Parameters.AddWithValue("@mId", LeaveEntity.ManagerID);

                int RowsAffected = sqlCommand.ExecuteNonQuery();
                if (RowsAffected == 1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (SqlException exception)
            {
                Console.WriteLine("Something Went Wrong." + exception.Message);
            }

            finally
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                }
            }
            return(false);
        }
示例#20
0
        public ActionResult SubmitForm(LeaveEntity leaveEntity, string keyValue)
        {
            if (Request.Files.Count > 0)
            {
                var file = Request.Files[0];
                if (!string.IsNullOrEmpty(file.FileName))
                {
                    Guid FileID   = Guid.NewGuid();
                    var  fileName = file.FileName;
                    foreach (char invalidChar in Path.GetInvalidFileNameChars())
                    {
                        fileName = fileName.Replace(invalidChar.ToString(), "_");
                    }
                    fileName = fileName.Replace(" ", "");
                    var filePath = Path.Combine(HttpContext.Server.MapPath("/Uploads/"), fileName);
                    file.SaveAs(filePath);
                    leaveEntity.F_FileId     = FileID;
                    leaveEntity.F_FileName   = file.FileName;
                    leaveEntity.F_SuffixName = Path.GetExtension(file.FileName);
                }
            }
            var man = userApp.GetForm(leaveEntity.F_UserId);

            leaveEntity.F_UserName = man.F_RealName;
            leaveEntity.F_Account  = man.F_Account;
            leaveEntity.F_Sex      = man.F_Gender != null ? (man.F_Gender == true ? "男" : "女") : null;
            var depart = organizeApp.GetForm(man.F_DepartmentId);
            var duty   = roleApp.GetForm(man.F_DutyId);

            leaveEntity.F_Department = depart.F_FullName;
            leaveEntity.F_Duty       = duty.F_FullName;
            var checkUser    = userApp.GetForm(leaveEntity.F_CheckLeaderId);
            var approvalUser = userApp.GetForm(leaveEntity.F_ApprovalLeaderId);

            leaveEntity.F_CheckUserName    = checkUser.F_RealName;
            leaveEntity.F_ApprovalUserName = approvalUser.F_RealName;
            leaveApp.SubmitForm(leaveEntity, keyValue);
            if (!string.IsNullOrEmpty(checkUser.F_Email))
            {
                mHelper.MailServer = "10.110.120.2";
                mHelper.Send(checkUser.F_Email, "OA请假单", "你好," + man.F_RealName + "有请假单需要你登录OA去做审核,请点击链接<a>http://10.110.120.6:8090/</a>");
            }
            return(Success("操作成功。"));
        }
示例#21
0
        public static List <LeaveEntity> GetAllReasons()
        {
            List <LeaveEntity> reasons = null;

            string        connectionString = ConfigurationManager.ConnectionStrings["Leave"].ConnectionString;
            SqlConnection connection       = null;
            SqlCommand    command          = null;

            connection.Open();
            try
            {
                connection = new SqlConnection(connectionString);
                command    = new SqlCommand("Select * from tblReason", connection);
                SqlDataReader reader = command.ExecuteReader();
                int           userId;
                string        password;

                if (reader.HasRows)
                {
                    reasons = new List <LeaveEntity>();
                    while (reader.Read())
                    {
                        LeaveEntity reason = new LeaveEntity();
                        userId   = reader.GetInt32(0);
                        password = reader.GetString(1);
                    }
                }
            }
            catch (SqlException ex)
            {
                throw new LeaveException(ex.Message);
            }
            finally
            {
                if (connection != null && connection.State == ConnectionState.Open)
                {
                    connection.Close();
                }
            }


            return(reasons);
        }
示例#22
0
        ///<summery>
        /// (非学生用户)查看所有请假申请
        /// 这里不查询student.name和work.name
        /// dumei 08.24
        ///</summery>
        public static async Task <LeaveItemEntity> ProViewLeaves(int provider_id)
        {
            var leave_apps = new LeaveItemEntity();

            leave_apps.total     = 0;
            leave_apps.leaveItem = new List <LeaveEntity>();
            var query = @"SELECT leave_id,user_id,work_id,
            content,proof,status,leave_duration,
            request_time,leave_day,leave_start,leave_end
            FROM leave_information NATURAL JOIN work
            WHERE teacher_id=@id ORDER BY status ASC";

            using var connection = DatabaseConnector.Connect();
            await connection.OpenAsync();

            using var command   = connection.CreateCommand();
            command.CommandText = query;
            command.Parameters.AddWithValue("@id", provider_id);

            using var reader = await command.ExecuteReaderAsync();

            while (reader.Read())
            {
                var temp = new LeaveEntity()
                {
                    leave_id   = reader.GetInt32("leave_id"),
                    student_id = reader.GetInt32("user_id"),
                    work_id    = reader.GetInt32("work_id"),
                    content    = reader.GetString("content"),
                    //leave_time=reader.GetString("leave_time"),
                    proof          = reader.GetString("proof"),
                    status         = reader.GetInt32("status"),
                    leave_duration = reader.GetDouble("leave_duration"),
                    request_time   = reader.GetDateTime("request_time"),
                    leave_day      = reader.GetString("leave_day"),
                    leave_start    = reader.GetString("leave_start"),
                    leave_end      = reader.GetString("leave_end")
                };
                leave_apps.total++;
                leave_apps.leaveItem.Add(temp);
            }
            return(leave_apps);
        }
示例#23
0
        //[AllowAnonymous]
        public async Task <ActionResult <LeaveResponse> > ProManageLeave(ManageLeaveRequest request)
        {
            var pro_id = Int32.Parse(User.Identity.Name);

            if (await UserAccessor.CheckRole(pro_id) == Constants.Role.Student)
            {
                return(BadRequest(new { message = "Students cannot manage leave application." }));
            }

            LeaveEntity le = await LeaveAccessor.Read(request.leave_id);

            if (le == null)
            {
                return(BadRequest(new { message = "Leave id not found." }));
            }
            if (le.status != Constants.ApplyStatus.Applying)
            {
                return(BadRequest(new { message = "The application have been managed." }));
            }
            var success_change = await LeaveAccessor.SetLeaveStatus(request.leave_id, request.status);

            if (success_change > 0)
            {
                le.status = request.status; //减少查询
                LeaveResponse lr = _mapper.Map <LeaveResponse>(le);
                // 未检查id是否存在
                lr.student_name = await UserAccessor.GetUserName(le.student_id);

                //lr.teacher_name = await UserAccessor.GetUserName(le.teacher_id);
                lr.work_name = await WorkAccessor.GetWorkName(le.work_id);

                if (request.status == Constants.ApplyStatus.Accepted)
                {
                    // 录用,更新takes
                    await TakesAccessor.UpdateAbsent(le.student_id, le.work_id, le.leave_duration);
                }

                return(lr);
            }

            return(BadRequest(new { message = "Update failed" }));
        }
示例#24
0
        /// <summary>
        /// Method to add Leave Details
        /// </summary>
        /// <param name="leave">Leave Entity Object</param>
        /// <returns>True is insert Successfull</returns>
        ///


        public static bool AddLeave(LeaveEntity leave)
        {
            bool          added            = false;
            string        ConnectionString = ConfigurationManager.ConnectionStrings["Leave"].ConnectionString;
            SqlConnection connection       = new SqlConnection(ConnectionString);
            SqlCommand    command          = new SqlCommand("INSERT INTO tblLeave(EmployeeId,StartDate,EndDate,ReasonId,Comments) values(@EmpId,@StartDate,@EndDate,@ReasonId,@Comments)", connection);

            command.Parameters.AddWithValue("@EmpId", leave.EmployeeId);
            command.Parameters.AddWithValue("@StartDate", leave.StartDate);
            command.Parameters.AddWithValue("@EndDate", leave.EndDate);
            command.Parameters.AddWithValue("@ReasonId", leave.Reason);
            command.Parameters.AddWithValue("@Comments", leave.Comments);
            try
            {
                connection.Open();
                command.Connection = connection;
                int affected = command.ExecuteNonQuery();
                if (affected > 0)
                {
                    added = true;
                }
                command.Dispose();
            }

            catch (SqlException ex)
            {
                throw new LeaveException(ex.Message);
            }
            finally
            {
                if (connection != null && connection.State == ConnectionState.Open)
                {
                    connection.Close();
                }
            }
            return(added);
        }
示例#25
0
        public bool UpdateHrsLeave(LeaveEntity leave)
        {
            //IDbSession conn = SessionFactory.CreateSession();
            IDbConnection conn = SessionFactory.CreateConnection();
            string        sql  = @"UPDATE [dbo].[HrsLeave]
                   SET 
                      [DepManagerRemark] = @DepManagerRemark,
                      [DirectorRemark] = @DirectorRemark,
                      [DeputyGeneralRemark] = @DeputyGeneralRemark,
                      [GeneralManagerRemark] =@GeneralManagerRemark
                 WHERE id=@Id";

            try
            {
                string s = Repository.Execute(conn, sql, new
                {
                    DepManagerRemark     = leave.DepManagerRemark,
                    DirectorRemark       = leave.DirectorRemark,
                    DeputyGeneralRemark  = leave.DeputyGeneralRemark,
                    GeneralManagerRemark = leave.GeneralManagerRemark,
                    Id = leave.ID
                }).ToString();

                if (string.IsNullOrEmpty(s))
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            finally
            {
                conn.Close();
            }
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            bool added = false;

            txtEmpId.Text = Request.QueryString.Get("UserId");

            LeaveWebServices service = new LeaveWebServices();
            LeaveEntity      leave   = new LeaveEntity();

            leave.StartDate = Convert.ToDateTime(txtStartDate.Text);
            leave.EndDate   = Convert.ToDateTime(txtEndDate.Text);

            leave.Reason = ddlReason.SelectedItem.ToString();

            leave.Comments = txtComments.Text;

            added = service.Addleave(leave);
            if (added)
            {
            }
            else
            {
            }
        }
示例#27
0
        public bool ConvertToWord(LeaveEntity leave, UserEntity user, UserEntity checkLeader, UserEntity approvalLeader, OrganizeEntity organ, RoleEntity role, string printName)
        {
            object missing = System.Reflection.Missing.Value;

            //创建一个Word应用程序实例
            Microsoft.Office.Interop.Word._Application oWord = new Microsoft.Office.Interop.Word.Application();

            oWord.ActivePrinter = printName;
            //设置为不可见
            oWord.Visible = false;

            //模板文件地址,这里假设在X盘根目录
            object oTemplate = "E:\\Temp\\template.doc";

            object filename = "E:\\Temp\\" + new Guid().ToString() + ".doc";

            //以模板为基础生成文档
            Microsoft.Office.Interop.Word._Document oDoc = oWord.Documents.Add(ref oTemplate, ref missing, ref missing, ref missing);

            oDoc.Activate(); //当前文档置前

            try
            {
                //声明书签数组
                object[] oBookMark = new object[12];
                //赋值书签名
                oBookMark[0]  = "F_CreateTime";
                oBookMark[1]  = "F_Account";
                oBookMark[2]  = "F_Department";
                oBookMark[3]  = "F_ApprovalLeader";
                oBookMark[4]  = "F_CheckLeader";
                oBookMark[5]  = "F_Group";
                oBookMark[6]  = "F_Position";
                oBookMark[7]  = "F_StartTime";
                oBookMark[8]  = "F_LeaveReason";
                oBookMark[9]  = "F_UserName";
                oBookMark[10] = "F_BeginEndTime";
                oBookMark[11] = "F_Name";
                //赋值任意数据到书签的位置
                oDoc.Bookmarks.get_Item(ref oBookMark[0]).Range.Text  = leave.F_CreateTime.ToString();
                oDoc.Bookmarks.get_Item(ref oBookMark[1]).Range.Text  = user.F_Account;
                oDoc.Bookmarks.get_Item(ref oBookMark[2]).Range.Text  = organ.F_FullName;
                oDoc.Bookmarks.get_Item(ref oBookMark[3]).Range.Text  = approvalLeader.F_RealName;
                oDoc.Bookmarks.get_Item(ref oBookMark[4]).Range.Text  = checkLeader.F_RealName;
                oDoc.Bookmarks.get_Item(ref oBookMark[5]).Range.Text  = "";
                oDoc.Bookmarks.get_Item(ref oBookMark[6]).Range.Text  = role.F_FullName;
                oDoc.Bookmarks.get_Item(ref oBookMark[7]).Range.Text  = user.F_CreatorTime.ToString();
                oDoc.Bookmarks.get_Item(ref oBookMark[8]).Range.Text  = leave.F_LeaveReason;
                oDoc.Bookmarks.get_Item(ref oBookMark[9]).Range.Text  = user.F_RealName;
                oDoc.Bookmarks.get_Item(ref oBookMark[10]).Range.Text = leave.F_BeginTime.ToString() + "至" + leave.F_EndTime.ToString();
                oDoc.Bookmarks.get_Item(ref oBookMark[11]).Range.Text = user.F_RealName;

                //oDoc.SaveAs(ref filename, ref missing, ref missing, ref missing,
                //ref missing, ref missing, ref missing, ref missing, ref missing,
                //ref missing, ref missing, ref missing, ref missing, ref missing,
                //ref missing, ref missing);

                //  return filename.ToString();
                //打印
                oDoc.PrintOut(ref missing, ref missing, ref missing, ref missing,

                              ref missing, ref missing, ref missing, ref missing,

                              ref missing, ref missing, ref missing, ref missing,

                              ref missing, ref missing, ref missing, ref missing,

                              ref missing, ref missing);

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
            finally
            {
                object saveChange = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
                if (oDoc != null)
                {
                    oDoc.Close(ref saveChange, ref missing, ref missing);
                }
                if (oDoc != null)
                {
                    oWord.Quit(ref missing, ref missing, ref missing);
                }
            }
        }
示例#28
0
        public async Task <ActionResult> Add(LeaveViewModel leave)
        {
            string processGUID = leave.ProcessGUID;

            //验证不通过,重新填写表单
            if (!ModelState.IsValid)
            {
                return(View());
            }
            IWorkflowService service = new WorkflowService();
            //流程开始第一步
            ActivityEntity firstActivity = service.GetFirstActivity(leave.ProcessGUID);

            //该处较上一版本有变化,上一版本为GUID类型
            string           firstActivityGUID = firstActivity.ActivityGUID;
            IList <NodeView> nextActivity      = service.GetNextActivity(leave.ProcessGUID, firstActivityGUID, GetCondition("days-" + leave.Days));

            //表示有下一位审批者
            if (nextActivity.Count() > 0)
            {
                //下一步角色ID审批者
                string outerId = nextActivity[0].Roles[0].ID.ToString();
                //这里只取第一个审批者,WebDemo 是弹窗形式选择
                //审批用户id
                IEnumerable <int> userId = RoleManager.FindById(Convert.ToInt32(outerId)).Users.Select(t => t.UserId);
                ApplicationUser   user   = await UserManager.FindByIdAsync(Convert.ToInt32(userId.ToList()[0]));

                //提交请假信息
                LeaveEntity leaveE = new LeaveEntity()
                {
                    FromDate            = leave.BeginTime,
                    ToDate              = leave.EndTime,
                    Days                = leave.Days,
                    LeaveType           = leave.LeaveType,
                    CurrentActivityText = "",
                    Status              = 0,
                    CreatedUserID       = Convert.ToInt32(User.Identity.GetUserId()),
                    CreatedUserName     = User.Identity.Name,
                    CreatedDate         = DateTime.Now
                };
                HrsLeaveResult result = new WorkFlowManager().Insert(leaveE);
                if (result.Successed)
                {
                    WfAppRunner initiator = new WfAppRunner();
                    initiator.AppName       = "请假流程";
                    initiator.AppInstanceID = result.ResultIdentities.ToString();
                    initiator.ProcessGUID   = processGUID;
                    initiator.UserID        = User.Identity.GetUserId();
                    initiator.UserName      = User.Identity.Name;
                    initiator.Conditions    = GetCondition(string.Format("days-{0}", leave.Days));
                    WfExecutedResult startedResult = service.StartProcess(initiator);
                    if (startedResult.Status != WfExecutedStatus.Success)
                    {
                        //给出提示
                    }
                    //送往下一步
                    PerformerList pList = new PerformerList();
                    //这里使用真实姓名代替
                    pList.Add(new Performer(user.Id.ToString(), user.RealName));
                    initiator.NextActivityPerformers = new Dictionary <String, PerformerList>();
                    initiator.NextActivityPerformers.Add(nextActivity[0].ActivityGUID, pList);
                    WfExecutedResult runAppResult = service.RunProcessApp(initiator);
                    if (runAppResult.Status != WfExecutedStatus.Success)
                    {
                        this.Content("<script>alert('" + runAppResult.Message + "');</script>");
                    }
                    //保存业务数据
                    BizAppFlowEntity AppFlowEntity = new BizAppFlowEntity();
                    AppFlowEntity.AppName         = "流程发起";
                    AppFlowEntity.AppInstanceID   = result.ResultIdentities.ToString();
                    AppFlowEntity.ActivityName    = "流程发起";
                    AppFlowEntity.Remark          = string.Format("申请人:{0}-{1}", User.Identity.GetUserId(), User.Identity.Name);
                    AppFlowEntity.ChangedTime     = DateTime.Now;
                    AppFlowEntity.ChangedUserID   = User.Identity.GetUserId();
                    AppFlowEntity.ChangedUserName = User.Identity.Name;
                    HrsLeaveResult resultBiz = new WorkFlowManager().Insert(AppFlowEntity);
                    if (resultBiz.Successed)
                    {
                        //给出前台提示
                        this.Content("", "<script>alert('流程发起成功');</script>");
                    }
                }
            }
            else
            {
                //显示前台错误,人事人员审批失败
                ModelState.AddModelError("Human", "该用户暂时不可提交审批,未查询到该用户的下一位审批者");
                return(View());
            }
            return(RedirectToAction("MySlickflow", "Slickflow"));
        }
示例#29
0
        /// <summary>
        /// 添加请假信息
        /// </summary>
        /// <param name="obj">请假的实例</param>
        /// <returns>bool</returns>
        public static bool InsertInfo(LeaveEntity obj)
        {
            string sql = "insert into Leave values(" + obj.UserID + ",3,getdate(),'" + obj.LeaveStartTime + "','" + obj.LeaveEndTime + "','" + obj.LeaveHalfDay + "','" + obj.LeaveDays + "','" + obj.LeaveReason + "','','','')";

            return(DBHelper.UpdateOpera(sql));
        }
示例#30
0
 /// <summary>
 /// 添加请假信息
 /// </summary>
 /// <param name="obj">请假的实例</param>
 /// <returns>bool</returns>
 public bool AddLeaveInfo(LeaveEntity obj)
 {
     return(HRCMDemoDAL.LeaveDAL.InsertInfo(obj));
 }