Exemple #1
0
        public JsonResult CreateRequest(LeaveViewModel objViewModel)
        {
            try
            {
                cEmpLeave objempleave = cEmpLeave.Create();
                string    LeavetypeID = objViewModel.SelectedLeaveType[0].ToString();
                objempleave.objLeaveType.iObjectID = Convert.ToInt32(LeavetypeID);
                objempleave.dtFromDate             = objViewModel.objEmployeeLeave.FromDate;
                objempleave.dtToDate              = objViewModel.objEmployeeLeave.ToDate;
                objempleave.sReason               = objViewModel.objEmployeeLeave.Reason;
                objempleave.sLeaveStatus          = "2";
                objempleave.objEmpLogin.iObjectID = Convert.ToInt32(HttpContext.User.Identity.Name);
                int          manageID  = cEmpLogin.Get_ID(Convert.ToInt32(HttpContext.User.Identity.Name)).objManageGroup.iObjectID;
                cManageGroup objmanage = cManageGroup.Get_ID(manageID);
                objempleave.iReportingHead = objmanage.iReportingHead;


                objempleave.bIsActive = true;
                objempleave.Save();
                int    IreportHead   = objmanage.iReportingHead;;
                string reporterEmail = cEmpLogin.Get_ID(IreportHead).sEmailID;
                List <cEmpPersonalDetails> aobOer = cEmpPersonalDetails.Find(" objEmpLogin = "******" " + aobOer[0].sLastName;
                List <cEmpPersonalDetails> aobre = cEmpPersonalDetails.Find(" objEmpLogin = "******" " + aobre[0].sLastName;
                MailLeaveRequest(ReprtingHead, ReprtingFrom, reporterEmail);
                return(Json("1"));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        public async Task <Leave> CreateLeave(
            LeaveViewModel viewModel, ClaimsPrincipal user, HttpRequest request)
        {
            foreach (var file in request.Form.Files)
            {
                var memoryStream = new MemoryStream();
                file.CopyTo(memoryStream);
                viewModel.File     = memoryStream.ToArray();
                viewModel.FileName = file.FileName;
            }

            var leave    = _mapper.Map <Leave>(viewModel);
            var employee = await _context.Employees
                           .FirstOrDefaultAsync(e => e.UserId ==
                                                user.FindFirstValue(ClaimTypes.NameIdentifier)); //this is how we get the user Id

            leave.EmployeeId = employee.Id;

            leave.LeaveHistories.Add(new LeaveHistory
            {
                ApplicationDate = DateTime.Now,
                EmployeeId      = employee.Id
            });

            _context.Add(leave);
            await _context.SaveChangesAsync();

            return(leave);
        }
Exemple #3
0
        public ActionResult Manage(LeaveViewModel leave, string EmployeeInfoId = "")
        {
            try
            {
                ViewBag.EmployeeId = GetEmployeeFullNameList();

                int empId;
                var _leaveViewModel = new LeaveViewModel();
                _leaveViewModel.LeaveRequestInfoList = new List <LeaveRequestInfo>();

                if (!int.TryParse(EmployeeInfoId, out empId))
                {
                    _leaveViewModel = null;

                    return(View(_leaveViewModel));
                }

                return(RedirectToAction("Manage", "Leave", new { id = empId }));
            }

            catch (Exception ex)
            {
                return(View("Error", new HandleErrorInfo(ex, "Leave", "Manage")));
            }
        }
Exemple #4
0
        /// <summary>
        /// 审核指定假条
        /// </summary>
        /// <param name="id">假条id</param>
        /// <param name="IsPass">是否同意</param>
        /// <returns></returns>
        public int AuditLeave(LeaveViewModel lea, int days)
        {
            int           flag = 0;
            StringBuilder sb   = new StringBuilder(@"UPDATE Leaves SET IsCheck=1,IsPass=@IsPass WHERE ID=@id;");

            if (lea.IsPass == true)
            {
                GetUpdateAtten(lea, days, sb);
            }
            SqlParameter[] para = new SqlParameter[6];
            para[0] = new SqlParameter("@IsPass", lea.IsPass);
            para[1] = new SqlParameter("@id", Guid.Parse(lea.ID));
            para[2] = new SqlParameter("@empId", lea.empId);
            para[3] = new SqlParameter("@claTypeId", lea.ClassId);
            para[4] = new SqlParameter("@FirBeginDate", lea.leaveBeginDate);

            para[5] = new SqlParameter("@FirEndDate", lea.leaveEndDate);

            try
            {
                using (var tran = new TransactionScope())
                {
                    flag = db.Database.ExecuteSqlCommand(sb.ToString(), para);
                    tran.Complete();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(flag);
        }
Exemple #5
0
        public async Task <ActionResult <List <LeaveViewModel> > > SearchLeave([FromBody] LeaveSearchViewModel criteria)
        {
            List <Leave> leaveList = await context.Leaves.Include(e => e.employee)
                                     .Include(e => e.employee.LocalPlus)
                                     .Include(e => e.employee.standardEmployeeCategory)
                                     .Include(e => e.employee.location)
                                     .Include(e => e.employee.workingCostCentre)
                                     .Include(e => e.employee.familyStatus)
                                     .Include(e => e.employee.activityStatus)
                                     .OrderByDescending(e => e.RegisteredDataTime)
                                     .ToListAsync();

            List <LeaveViewModel> leaveVMList = new List <LeaveViewModel>();

            foreach (Leave leave in leaveList)
            {
                LeaveViewModel leaveVM = new LeaveViewModel(leave);
                if (criteria.MeetLeave(leaveVM))
                {
                    leaveVMList.Add(leaveVM);
                }
            }

            return(leaveVMList);
        }
        public ActionResult Leave(LeaveViewModel model)
        {
            string result = "no";
            //Guid instanceGuid = WorkFlowHelper.Run(new Leave(), new Dictionary<string, object>()
            //{
            //    {"R2",model.Reason},
            //    {"D2",model.Days}
            //});
            string     title    = model.LeaveTitle == "1" ? "事假" : model.LeaveTitle == "2" ? "病假" : "休假";
            WFInstance instance = new WFInstance()
            {
                InstanceTitle = "请假--" + title,
                Details       = string.Format("事由:{0},天数:{1}天。", model.Reason, model.Days),
                InstanceGuid  = "",
                InstanceState = (short)InstanceState.Approving,
                Remark        = string.IsNullOrWhiteSpace(model.Remark) ? string.Format("{0}至{1}", DateTime.Now.ToString("yyyy-MM-dd"), DateTime.Now.AddDays(model.Days).ToString("yyyy-MM-dd")) : model.Remark,
                SubBy         = UserLogin.UserId,
                SubTime       = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
            };

            instance.WFStep.Add(new WFStep()
            {
                NextId  = model.NextId,
                SubBy   = UserLogin.UserId,
                SubTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
            });
            if (WFInstanceBll.Add(instance))
            {
                result = "ok";
            }
            return(Content(result));
        }
Exemple #7
0
        public IActionResult Create(LeaveViewModel newLeave)
        {
            if (ModelState.IsValid)
            {
                /*  var leaveToCreate = new Leave()
                 * {
                 *   FromDate = newLeave.FromDate,
                 *   ToDate = newLeave.ToDate,
                 *   LeaveType = newLeave.LeaveType,
                 *   Reason = newLeave.Reason,
                 *   LeaveStatus = "Pending",
                 *   // LeaveStatus = newLeave.LeaveStatus,
                 *   LeaveId = Guid.NewGuid()
                 *
                 * };
                 * _employee.Mark(leaveToCreate);
                 */

                return(RedirectToAction("Index"));
            }
            else
            {
                return(View("Form", newLeave));
            }
        }
        public ActionResult SLeaveView()
        {
            DBSmartSchoolWebPortalEntities111 db = new DBSmartSchoolWebPortalEntities111();
            var parent  = db.Parents.Where(x => x.Id == LoginClass.LoginId).First();
            var student = db.Students.Where(x => x.Id == parent.StudentId).First();
            var List    = db.LeavesRequests.Where(x => x.StudentId == student.Id).ToList();
            List <LeaveViewModel> PassList = new List <LeaveViewModel>();

            foreach (var i in List)
            {
                LeaveViewModel l = new LeaveViewModel();
                l.Id     = i.Id;
                l.Reason = i.Reason;
                l.Date   = Convert.ToDateTime(i.Date);
                if (i.Status == 1)
                {
                    l.Status = "Approved";
                }
                else
                {
                    l.Status = "Pending";
                }
                PassList.Add(l);
            }
            return(View(PassList));
        }
Exemple #9
0
        public IActionResult Update(LeaveViewModel updatedLeave)
        {
            if (ModelState.IsValid)
            {
                /*  var leaveToUpdate = new Leave()
                 * {
                 *   FromDate = updatedLeave.FromDate,
                 *   ToDate = updatedLeave.ToDate,
                 *   LeaveType = updatedLeave.LeaveType,
                 *   Reason = updatedLeave.Reason,
                 *   LeaveStatus = "Pending",
                 *   LeaveId = updatedLeave.LeaveId.Value
                 *
                 * };
                 *
                 * _employee.UpdateLeave(leaveToUpdate);
                 */

                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.IsEditing = true;
                return(View("Form", updatedLeave));
            }
        }
Exemple #10
0
        public ResponseModel <bool> Leave_Add(LeaveViewModel model)
        {
            LeaveOffice leave = new LeaveOffice();

            leave.Id         = Guid.NewGuid();
            leave.StaffName  = model.StaffName;
            leave.No         = "0";
            leave.JobId      = new Guid(model.JobId);
            leave.LeaveType  = model.LeaveType == "离职" ? "0" : "1";
            leave.CreateTime = DateTime.Now;
            leave.UpdateTime = DateTime.Now;
            leave.ApplyDate  = model.ApplyTime;
            leave.Reason     = model.Reason;
            db.LeaveOffice.Add(leave);
            int num = db.SaveChanges();

            if (num > 0)
            {
                return(new ResponseModel <bool> {
                    code = (int)code.Success, data = true, message = "添加离职信息成功"
                });
            }
            return(new ResponseModel <bool> {
                code = (int)code.AddLeaveFail, data = false, message = "添加离职信息失败"
            });
        }
        public IActionResult Index()
        {
            var leaves = (from e in context.Employees
                          join l in context.Leaves
                          on e.Id equals l.Employee.Id
                          select new
            {
                e.Name,
                l.StartDate,
                l.EndDate,
                l.ApprovalStatus,
                l.LeaveId
            }).ToList();
            List <LeaveViewModel> LeaveViewModel = new List <LeaveViewModel>();

            foreach (var l in leaves)
            {
                LeaveViewModel leave = new LeaveViewModel();
                leave.EmployeeName   = l.Name;
                leave.StartDate      = l.StartDate;
                leave.EndDate        = l.EndDate;
                leave.ApprovalStatus = l.ApprovalStatus;
                leave.LeaveId        = l.LeaveId;
                LeaveViewModel.Add(leave);
            }
            return(View(LeaveViewModel));
        }
Exemple #12
0
        public ResponseModel <List <LeaveViewModel> > Leave_CheckGet()
        {
            var list    = db.LeaveOffice.Where(x => x.No == "0");
            var joblist = db.Job.Where(x => true);
            List <LeaveViewModel> reList = new List <LeaveViewModel>();

            foreach (var item in list)
            {
                LeaveViewModel leave = new LeaveViewModel();
                leave.Id         = item.Id.ToString();
                leave.StaffName  = item.StaffName;
                leave.JobId      = joblist.Where(x => x.Id.ToString().ToLower() == item.JobId.ToString().ToLower()).FirstOrDefault().Name;
                leave.LeaveType  = item.LeaveType;
                leave.ApplyTime  = Convert.ToDateTime(item.ApplyDate);
                leave.Reason     = item.Reason;
                leave.No         = item.No;
                leave.CreateTime = Convert.ToDateTime(item.CreateTime);
                reList.Add(leave);
            }
            return(new ResponseModel <List <LeaveViewModel> >
            {
                code = (int)code.Success,
                data = reList,
                message = ""//获取未审核离职信息成功
            });
        }
Exemple #13
0
        public JsonResult AddLeave(LeaveViewModel model)
        {
            var result = new { Success = "true", Message = "Success" };

            if (ModelState.IsValid)
            {
                try
                {
                    var leave = Mapper.Map <Leave>(model);

                    leave.CreatedDate = DateTime.Now;
                    leave.UpdatedDate = leave.CreatedDate;

                    _sickLeaveService.Create(leave);
                }
                catch (Exception e)
                {
                    logger.Error(e, e.Message);
                    result = new { Success = "false", Message = WebResources.ErrorMessage };
                }

                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            else
            {
                var error = ModelState.Values.SelectMany(v => v.Errors).FirstOrDefault().ErrorMessage;

                result = new { Success = "false", Message = error };

                return(Json(result, JsonRequestBehavior.AllowGet));
            }
        }
        public IHttpActionResult LeaveSave(LeaveViewModel model)
        {
            model.CreatedBy = User.Identity.GetUserId <long>();
            var responseId = _leaveService.LeaveInsert(model.ToModel());

            return(Ok(responseId.SuccessResponse("Leave Saved successfully")));
        }
Exemple #15
0
        // GET: Employee/Leave/Status
        public ActionResult Details()
        {
            try
            {
                var _leaveViewModel = new LeaveViewModel();
                _leaveViewModel.availedLeaveViewModel = new AvailedLeaveViewModel();
                _leaveViewModel.LeaveRequestInfo      = new LeaveRequestInfo();
                _leaveViewModel.CasualLeave           = new LeaveInfo();
                _leaveViewModel.AnnualLeave           = new LeaveInfo();

                var _leaveAllowed = new LeaveAllowedInfo();

                using (LeaveRequestRepository Repo = new LeaveRequestRepository())
                {
                    _leaveViewModel.CasualLeaveRequestInfoList = Repo.GetCasualLeaveRequestListByEmployeeId(CurrentUser.EmployeeInfoId);
                    _leaveViewModel.AnnualLeaveRequestInfoList = Repo.GetAnnualLeaveRequestListByEmployeeId(CurrentUser.EmployeeInfoId);

                    _leaveViewModel.LeaveRequestInfo = Repo.GetLeaveRequestLastRecordByEmployeeId(CurrentUser.EmployeeInfoId);

                    if (_leaveViewModel.LeaveRequestInfo == null)
                    {
                        _leaveViewModel.LeaveRequestInfo = new LeaveRequestInfo();
                    }

                    _leaveViewModel.availedLeaveViewModel.CasualLeaveRequestInfoList = _leaveViewModel.CasualLeaveRequestInfoList;
                    _leaveViewModel.availedLeaveViewModel.AnnualLeaveRequestInfoList = _leaveViewModel.AnnualLeaveRequestInfoList;
                }

                using (LeaveAllowedRepository Repo = new LeaveAllowedRepository())
                {
                    _leaveAllowed = Repo.GetLeaveAllowedByEmployeeId(CurrentUser.EmployeeInfoId);
                }

                _leaveViewModel.CasualLeave.Allowed   = _leaveAllowed.Casual;
                _leaveViewModel.CasualLeave.Availed   = LeavesCounter.GetAvailedLeaves(_leaveViewModel.CasualLeaveRequestInfoList);
                _leaveViewModel.CasualLeave.Remaining = _leaveViewModel.CasualLeave.Allowed - _leaveViewModel.CasualLeave.Availed;

                _leaveViewModel.AnnualLeave.Allowed   = _leaveAllowed.Annual;
                _leaveViewModel.AnnualLeave.Availed   = LeavesCounter.GetAvailedLeaves(_leaveViewModel.AnnualLeaveRequestInfoList);
                _leaveViewModel.AnnualLeave.Remaining = _leaveViewModel.AnnualLeave.Allowed - _leaveViewModel.AnnualLeave.Availed;

                if (_leaveViewModel.CasualLeave.Availed >= _leaveAllowed.Casual)
                {
                    _leaveViewModel.LeaveRequestInfo.IsCasualLeaveAvailed = true;
                }

                if (_leaveViewModel.AnnualLeave.Availed >= _leaveAllowed.Annual)
                {
                    _leaveViewModel.LeaveRequestInfo.IsAnnualLeaveAvailed = true;
                }

                return(View(_leaveViewModel));
            }

            catch (Exception ex)
            {
                return(View("Error", new HandleErrorInfo(ex, "Leave", "Details")));
            }
        }
        public void LeaveApproval(LeaveViewModel lvm)
        {
            var       config = new MapperConfiguration(cfg => { cfg.CreateMap <LeaveViewModel, LeaveData>(); cfg.IgnoreUnmapped(); });
            IMapper   mapper = config.CreateMapper();
            LeaveData l      = mapper.Map <LeaveViewModel, LeaveData>(lvm);

            pr.LeaveApproval(l);
        }
        public LeaveViewModel ViewLeaveByLeaveID(int eid, int lid)
        {
            LeaveData      ld     = er.ViewLeaveByLeaveID(eid, lid);
            var            config = new MapperConfiguration(cfg => { cfg.CreateMap <LeaveData, LeaveViewModel>(); cfg.IgnoreUnmapped(); });
            IMapper        mapper = config.CreateMapper();
            LeaveViewModel lvm    = mapper.Map <LeaveData, LeaveViewModel>(ld);

            return(lvm);
        }
        public ActionResult ViewLeave(int[] Leave)
        {
            string         pmname = _employeeService.GetUserName();
            LeaveViewModel lvm    = _pmService.ViewLeaveByLeaveID(Leave[0]);
            string         email  = _employeeService.GetUserEmailByID(lvm.EmployeeID);

            lvm.ApprovalStatus = Leave[1];
            _pmService.LeaveApproval(lvm);
            return(RedirectToAction("SendMail", new { ToEmail = email }));
        }
Exemple #19
0
        // GET: Admin/Leave/Manage
        public ActionResult Manage(string id = "")
        {
            try
            {
                ViewBag.EmployeeId = GetEmployeeFullNameList();

                int empId;
                var _leaveViewModel = new LeaveViewModel();
                _leaveViewModel.LeaveRequestInfoList = new List <LeaveRequestInfo>();
                _leaveViewModel.LeaveRequestInfo     = new LeaveRequestInfo();
                _leaveViewModel.CasualLeave          = new LeaveInfo();
                _leaveViewModel.AnnualLeave          = new LeaveInfo();

                var _leaveAllowed = new LeaveAllowedInfo();

                if (!int.TryParse(id, out empId))
                {
                    _leaveViewModel = null;

                    return(View(_leaveViewModel));
                }

                using (LeaveRequestRepository Repo = new LeaveRequestRepository())
                {
                    _leaveViewModel.CasualLeaveRequestInfoList = Repo.GetCasualLeaveRequestListByEmployeeId(empId);
                    _leaveViewModel.AnnualLeaveRequestInfoList = Repo.GetAnnualLeaveRequestListByEmployeeId(empId);

                    _leaveViewModel.LeaveRequestInfoList = Repo.GetLeaveRequestListByEmployeeId(empId);
                    _leaveViewModel.LeaveRequestInfo     = Repo.GetLeaveRequestLastRecordByEmployeeId(empId);
                }

                using (LeaveAllowedRepository Repo = new LeaveAllowedRepository())
                {
                    _leaveAllowed = Repo.GetLeaveAllowedByEmployeeId(empId);
                }

                _leaveViewModel.CasualLeave.Allowed   = _leaveAllowed.Casual;
                _leaveViewModel.CasualLeave.Availed   = LeavesCounter.GetAvailedLeaves(_leaveViewModel.CasualLeaveRequestInfoList);
                _leaveViewModel.CasualLeave.Remaining = _leaveViewModel.CasualLeave.Allowed - _leaveViewModel.CasualLeave.Availed;

                _leaveViewModel.AnnualLeave.Allowed   = _leaveAllowed.Annual;
                _leaveViewModel.AnnualLeave.Availed   = LeavesCounter.GetAvailedLeaves(_leaveViewModel.AnnualLeaveRequestInfoList);
                _leaveViewModel.AnnualLeave.Remaining = _leaveViewModel.AnnualLeave.Allowed - _leaveViewModel.AnnualLeave.Availed;

                _leaveViewModel.EmployeeInfoId = id.ToString();

                return(View(_leaveViewModel));
            }

            catch (Exception ex)
            {
                return(View("Error", new HandleErrorInfo(ex, "Leave", "Manage")));
            }
        }
Exemple #20
0
 public void updateLeaveFromViewModel(MyDBContext context, LeaveViewModel leaveVM)
 {
     EmployeeID    = leaveVM.employeeID;
     employee      = context.Employees.Find(EmployeeID);
     FromDate      = leaveVM.fromDate;
     UntilDate     = leaveVM.untilDate;
     CountedDays   = leaveVM.countedDays;
     LeaveType     = leaveVM.leaveType;
     Comment       = leaveVM.comment;
     AttachmentUrl = leaveVM.attachmentUrl;
 }
        public int AddDetails([FromBody] LeaveViewModel leaveVm)
        {
            var leave = new Leave
            {
                DesignationName = leaveVm.DesignationName,
                LeaveCategoryId = leaveVm.LeaveCategoryId,
                LeaveCount      = leaveVm.LeaveCount
            };

            return(_unitOfWork.Leave.AddLeave(leave));
        }
Exemple #22
0
        public IHttpActionResult GetLeave(string id, string Token)
        {
            LeaveViewModel leave = bll.GetLeaveById(id);

            if (leave == null)
            {
                return(NotFound());
            }

            return(Ok(leave));
        }
Exemple #23
0
        public async Task <IActionResult> Create(LeaveViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                await _service.CreateLeave(viewModel, User, Request);

                return(RedirectToAction(nameof(MyLeaves)));
            }

            return(View(viewModel));
        }
Exemple #24
0
        public ActionResult AddEmployeeLeaveView(int companyId, int leaveType)
        {
            var model = new LeaveViewModel()
            {
                LeaveType = (LeaveType)leaveType,
                Employees = _employeeService.GetByCompanyId(companyId).Select(x => new EwiPracaSelectListItem()
                {
                    Id = x.Id, Name = string.Format("{0} {1}", x.FirstName, x.Surname)
                }).ToList()
            };

            return(PartialView("_AddEmployeeLeaveModal", model));
        }
Exemple #25
0
        public ActionResult SLeaveRequests(LeaveViewModel collection)
        {
            DBSmartSchoolWebPortalEntities111 db = new DBSmartSchoolWebPortalEntities111();
            LeavesRequest request = new LeavesRequest();

            request.Reason    = collection.Reason;
            request.Date      = DateTime.Now;
            request.StudentId = LoginClass.LoginId;

            db.LeavesRequests.Add(request);
            db.SaveChanges();

            return(View());
        }
Exemple #26
0
        /// <summary>
        /// 获取更新考勤记录sql
        /// </summary>
        /// <param name="lea"></param>
        /// <param name="days"></param>
        /// <param name="sb"></param>
        /// <returns></returns>
        public StringBuilder GetUpdateAtten(LeaveViewModel lea, int days, StringBuilder sb)
        {
            DateTime dtFirstOnWork  = DateTime.Parse(lea.leaveBeginDate.Substring(0, 10) + " " + lea.OnWorkTime.Substring(0, 2) + ":" + lea.OnWorkTime.Substring(2, 2));
            DateTime dtFirstOffWork = DateTime.Parse(lea.leaveBeginDate.Substring(0, 10) + " " + lea.OffWorkTime.Substring(0, 2) + ":" + lea.OffWorkTime.Substring(2, 2));
            DateTime dtEndOnWork    = DateTime.Parse(lea.leaveEndDate.Substring(0, 10) + " " + lea.OnWorkTime.Substring(0, 2) + ":" + lea.OnWorkTime.Substring(2, 2));
            DateTime dtEndOffWork   = DateTime.Parse(lea.leaveEndDate.Substring(0, 10) + " " + lea.OffWorkTime.Substring(0, 2) + ":" + lea.OffWorkTime.Substring(2, 2));

            if (days == 0) //请假未跨天
            {
                if (lea.leaveBeginDate == dtFirstOnWork.ToString("yyyy-MM-dd HH:mm:ss") && lea.leaveEndDate == dtFirstOffWork.ToString("yyyy-MM-dd HH:mm:ss"))
                {
                    string attNo = DateTime.Parse(lea.leaveBeginDate).ToString("yyyy-MM-dd").Replace("-", "").Trim();
                    //创建当天的考勤记录
                    sb.Append("INSERT INTO Attendances VALUES(");
                    sb.Append("NEWID(),null,null,0,0,0, @empId,@claTypeId,1,0,0,8,'" + attNo + "',@id);");
                }
                else
                {
                    decimal hours = decimal.Parse((DateTime.Parse(lea.leaveBeginDate) - DateTime.Parse(lea.leaveEndDate)).Duration().TotalHours.ToString());
                    //更改当天的考勤记录中的是否请假为是
                    sb.Append("UPDATE Attendances SET IsLeave=1,LeaveHours=" + hours + ",LeaveId=@id WHERE SignOn<@FirBeginDate and SignOff>@FirEndDate;");
                }
            }
            else//跨天
            {
                for (int i = 0; i <= days; i++)
                {
                    DateTime dtTemp     = DateTime.Parse(lea.leaveBeginDate).AddDays(i);
                    DateTime tmpOnWork  = DateTime.Parse(dtTemp.ToString("yyyy-MM-dd") + " " + lea.OnWorkTime.Substring(0, 2) + ":" + lea.OnWorkTime.Substring(2, 2));
                    DateTime tmpOffWork = DateTime.Parse(dtTemp.ToString("yyyy-MM-dd") + " " + lea.OffWorkTime.Substring(0, 2) + ":" + lea.OffWorkTime.Substring(2, 2));
                    if (dtTemp == tmpOnWork)
                    {
                        //请了一天
                        //创建考勤记录
                        string attNo = dtTemp.ToString("yyyy-MM-dd").Replace("-", "").Trim();
                        sb.Append("INSERT INTO Attendances VALUES(");
                        sb.Append("NEWID(),null,null,0,0,0, @empId,@claTypeId,1,0,0,8,'" + attNo + "',@id);");
                    }
                    if (dtTemp > tmpOnWork)
                    {
                        decimal hours = decimal.Parse((dtTemp - tmpOffWork).Duration().TotalHours.ToString());

                        //签到时间之后开始请假
                        sb.Append("UPDATE Attendances SET IsLeave=1,LeaveHours=" + hours + ",LeaveId=@id WHERE SignOn<'" + dtTemp + "' and SignOff<'" + tmpOffWork + "';");
                    }
                }
            }
            return(sb);
        }
Exemple #27
0
        public IActionResult Post([FromBody] LeaveViewModel leaveVM)
        {
            try
            {
                Leave leave = leaveVM.GetLeave(context);
                context.Leaves.Add(leave);
                context.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(Ok(leaveVM));
        }
        public ActionResult PLeaveRequests(LeaveViewModel collection)
        {
            DBSmartSchoolWebPortalEntities111 db = new DBSmartSchoolWebPortalEntities111();
            LeavesRequest request = new LeavesRequest();
            var           Parent  = db.Parents.Where(x => x.Id == LoginClass.LoginId).First();
            var           Student = db.Students.Where(x => x.Id == Parent.StudentId).First();

            request.Reason    = collection.Reason;
            request.Date      = DateTime.Now;
            request.StudentId = Student.Id;

            db.LeavesRequests.Add(request);
            db.SaveChanges();

            return(View());
        }
Exemple #29
0
        /// <summary>
        /// 审核请假条
        /// </summary>
        /// <param name="id">假条id</param>
        /// <param name="IsPass">是否同意</param>
        /// <returns></returns>
        public IHttpActionResult AuditLeave([FromBody] LeaveViewModel leave)
        {
            if (string.IsNullOrEmpty(leave.ID))
            {
                return(BadRequest());
            }
            Guid     _id     = Guid.Parse(leave.ID);
            DateTime beginDt = DateTime.Parse(leave.leaveBeginDate.Substring(0, 10));
            DateTime endDt   = DateTime.Parse(leave.leaveEndDate.Substring(0, 10));
            int      days    = (endDt - beginDt).Days;

            if (bll.AuditLeave(leave, days) > 0)
            {
                return(StatusCode(HttpStatusCode.NoContent));
            }
            return(BadRequest());
        }
        public ActionResult LeaveRequest()
        {
            DBSmartSchoolWebPortalEntities111 db = new DBSmartSchoolWebPortalEntities111();
            var List = db.LeavesRequests.Where(x => x.Status != 1).ToList();
            List <LeaveViewModel> PassList = new List <LeaveViewModel>();

            foreach (var i in List)
            {
                LeaveViewModel l = new LeaveViewModel();
                l.Id        = i.Id;
                l.Reason    = i.Reason;
                l.Date      = Convert.ToDateTime(i.Date);
                l.StudentId = Convert.ToInt32(i.StudentId);
                PassList.Add(l);
            }
            return(View(PassList));
        }