예제 #1
0
        public static LeaveFormResponseDTO ToLeaveFormResponseDTO(this LeaveForm leaveForm)
        {
            LeaveFormResponseDTO LeaveFormResponseDTO = new LeaveFormResponseDTO()
            {
                BeginTime     = leaveForm.BeginTime,
                EndTime       = leaveForm.EndTime,
                Description   = leaveForm.Description,
                Id            = leaveForm.Id,
                TotalHours    = leaveForm.TotalHours,
                leaveFormType = new LeaveFormTypeDTO()
                {
                    Id = leaveForm.LeaveFormType.Id
                },
                user = new UserDTO()
                {
                    Id         = leaveForm.User.Id,
                    Department = new DepartmentDTO()
                    {
                        Id = leaveForm.User.Department.Id
                    }
                }
            };

            return(LeaveFormResponseDTO);
        }
 public ActionResult LeaveForm(LeaveForm leaveForm)
 {
     using (SqlConnection sqlCon = new SqlConnection(connectionString))
     {
         DateTime today = DateTime.Now;
         sqlCon.Open();
         string     query  = " select * from LeaveForm where StartDate = @StartDate AND EndDate = @EndDate";
         SqlCommand sqlCmd = new SqlCommand(query, sqlCon);
         sqlCmd.Parameters.AddWithValue("@StartDate", leaveForm.StartDate);
         sqlCmd.Parameters.AddWithValue("@EndDate", leaveForm.EndDate);
         SqlDataReader sdr = sqlCmd.ExecuteReader();
         if (sdr.Read())
         {
             TempData["error"] = "You've already applied leave on this date!";
         }
         else
         {
             sdr.Close();
             string     querys  = "INSERT INTO LeaveForm(EmployeeNumber,TypeOfRequest,Description,Approver,StartDate,EndDate, DateRequest) VALUES(@EmployeeNumber,@TypeOfRequest,@Description,@Approver,@StartDate,@EndDate, @DateRequest)";
             SqlCommand sqlCmds = new SqlCommand(querys, sqlCon);
             sqlCmds.Parameters.AddWithValue("@EmployeeNumber", Session["employeenumber"]);
             sqlCmds.Parameters.AddWithValue("@TypeOfRequest", leaveForm.TypeOfRequest);
             sqlCmds.Parameters.AddWithValue("@Description", leaveForm.Description);
             sqlCmds.Parameters.AddWithValue("@Approver", leaveForm.Approver);
             sqlCmds.Parameters.AddWithValue("@StartDate", leaveForm.StartDate);
             sqlCmds.Parameters.AddWithValue("@EndDate", leaveForm.EndDate);
             sqlCmds.Parameters.AddWithValue("@DateRequest", today);
             SqlDataReader sdrs = sqlCmds.ExecuteReader();
             TempData["success"] = "New " + leaveForm.TypeOfRequest + " Request";
         }
     }
     return(RedirectToAction("LeaveForm"));
 }
예제 #3
0
        private void listOfLeaveApplicationToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var f = new LeaveForm
            {
                MdiParent   = this,
                WindowState = FormWindowState.Maximized
            };

            f.Show();
        }
        public async Task <VerifyRecordResult> BeforeDeleteCheckAsync(LeaveCategoryAdapterModel paraObject)
        {
            CleanTrackingHelper.Clean <LeaveForm>(context);
            LeaveForm item = await context.LeaveForm
                             .AsNoTracking()
                             .FirstOrDefaultAsync(x => x.LeaveCategoryId == paraObject.Id);

            if (item != null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.該紀錄無法刪除因為有其他資料表在使用中));
            }
            return(VerifyRecordResultFactory.Build(true));
        }
예제 #5
0
        public async Task <VerifyRecordResult> AddAsync(LeaveFormAdapterModel paraObject)
        {
            LeaveForm itemParameter = Mapper.Map <LeaveForm>(paraObject);

            CleanTrackingHelper.Clean <LeaveForm>(context);
            await context.LeaveForm
            .AddAsync(itemParameter);

            await context.SaveChangesAsync();

            CleanTrackingHelper.Clean <LeaveForm>(context);
            return(VerifyRecordResultFactory.Build(true));
        }
예제 #6
0
        public static LeaveForm ToLeaveForm(this LeaveFormRequestDTO leaveFormRequestDTO, LobUser lobUser, LeaveFormType leaveFormType)
        {
            LeaveForm fooLeaveForm = new LeaveForm()
            {
                BeginTime     = leaveFormRequestDTO.BeginTime,
                EndTime       = leaveFormRequestDTO.EndTime,
                Description   = leaveFormRequestDTO.Description,
                TotalHours    = leaveFormRequestDTO.TotalHours,
                User          = lobUser,
                LeaveFormType = leaveFormType,
            };

            return(fooLeaveForm);
        }
예제 #7
0
        public async Task <IActionResult> PostLeaveForm([FromBody] LeaveFormRequestDTO leaveForm)
        {
            var claimSID = User.FindFirst(JwtRegisteredClaimNames.Sid)?.Value;

            if (claimSID == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest,
                                                   ErrorMessageEnum.杖中沒有發現指定使用者ID);
                return(BadRequest(apiResult));
            }
            UserID = Convert.ToInt32(claimSID);
            var fooUser = await _context.LobUsers.Include(x => x.Department).FirstOrDefaultAsync(x => x.Id == UserID);

            if (fooUser == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound,
                                                   ErrorMessageEnum.沒有發現指定的該使用者資料);
                return(NotFound(apiResult));
            }

            if (!ModelState.IsValid)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest,
                                                   ErrorMessageEnum.傳送過來的資料有問題, exceptionMessage: $"傳送過來的資料有問題 {ModelState}");
                return(BadRequest(apiResult));
            }

            var fooLeaveFormType = await _context.LeaveFormTypes.FindAsync(leaveForm.leaveFormType.Id);

            if (fooLeaveFormType == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound,
                                                   ErrorMessageEnum.沒有發現指定的請假單類別);
                return(NotFound(apiResult));
            }

            LeaveForm fooLeaveForm = leaveForm.ToLeaveForm(fooUser, fooLeaveFormType);

            _context.LeaveForms.Add(fooLeaveForm);
            await _context.SaveChangesAsync();

            apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted,
                                               ErrorMessageEnum.None, payload: leaveForm);
            return(Accepted(apiResult));
        }
예제 #8
0
        public async Task <VerifyRecordResult> DeleteAsync(int id)
        {
            CleanTrackingHelper.Clean <LeaveForm>(context);
            LeaveForm item = await context.LeaveForm
                             .AsNoTracking()
                             .FirstOrDefaultAsync(x => x.Id == id);

            if (item == null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法刪除紀錄));
            }
            else
            {
                CleanTrackingHelper.Clean <LeaveForm>(context);
                context.Entry(item).State = EntityState.Deleted;
                await context.SaveChangesAsync();

                CleanTrackingHelper.Clean <LeaveForm>(context);
                return(VerifyRecordResultFactory.Build(true));
            }
        }
예제 #9
0
        public async Task <LeaveFormAdapterModel> GetAsync(int id)

        {
            LeaveForm item = await context.LeaveForm
                             .AsNoTracking()
                             .Include(x => x.MyUser)
                             .Include(x => x.LeaveCategory)
                             .FirstOrDefaultAsync(x => x.Id == id);

            if (item != null)
            {
                LeaveFormAdapterModel result = Mapper.Map <LeaveFormAdapterModel>(item);
                await OhterDependencyData(result);

                return(result);
            }
            else
            {
                return(new LeaveFormAdapterModel());
            }
        }
예제 #10
0
        public async Task <VerifyRecordResult> UpdateAsync(LeaveFormAdapterModel paraObject)
        {
            LeaveForm itemData = Mapper.Map <LeaveForm>(paraObject);

            CleanTrackingHelper.Clean <LeaveForm>(context);
            LeaveForm item = await context.LeaveForm
                             .AsNoTracking()
                             .FirstOrDefaultAsync(x => x.Id == paraObject.Id);

            if (item == null)
            {
                return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法修改紀錄));
            }
            else
            {
                CleanTrackingHelper.Clean <LeaveForm>(context);
                context.Entry(itemData).State = EntityState.Modified;
                await context.SaveChangesAsync();

                CleanTrackingHelper.Clean <LeaveForm>(context);
                return(VerifyRecordResultFactory.Build(true));
            }
        }
        public static void AddLeaveFormSave(AddLeaveFormDto input, IEnumerable <HttpPostedFileBase> dataFile, string sIDNo)
        {
            LeaveFormSchoolContext db = new LeaveFormSchoolContext();

            var applicationUser = db.ApplicationUser.FirstOrDefault(x => x.LogonId == sIDNo);
            var typeOfLeave     = db.TypeOfLeave.FirstOrDefault(x => x.TypeOfLeaveName == input.TypeOfLeave);

            var      leaveForm      = new LeaveForm();
            DateTime datetime       = DateTime.Now;
            var      dayNow         = datetime.ToString("yyyyMMdd");
            var      leaveFormCount = db.LeaveForm.Count();
            var      leaveFormNo    = "A-" + dayNow + "-" + leaveFormCount; //ex: A-20210215-1

            leaveForm.LeaveFormNo   = leaveFormNo;
            leaveForm.ApplicantName = applicationUser.UserName;
            leaveForm.LogonId       = applicationUser.LogonId;
            leaveForm.TypeOfLeaveId = typeOfLeave.Id;
            if (input.Agent != null)
            {
                if (input.Agent != "null")
                {
                    int agentInt = input.Agent.IndexOf("-");
                    var agent    = input.Agent.Substring(agentInt + 1);
                    leaveForm.AgentLogonId = agent;
                }
            }
            leaveForm.Reason  = input.AddReason;
            leaveForm.TimeOff = input.Total;

            var beginDate1   = input.AddBeginDate.Replace("-", "/"); //利用regular expression  將'-' 代換成 '/'
            var beginDate2   = beginDate1.Replace("T", " ");
            var endDate1     = input.AddEndDate.Replace("-", "/");   //利用regular expression  將'-' 代換成 '/'
            var endDate2     = endDate1.Replace("T", " ");
            var addBeginDate = Convert.ToDateTime(beginDate2);
            var addEndDate   = Convert.ToDateTime(endDate2);

            leaveForm.BeginDate         = addBeginDate;
            leaveForm.EndDate           = addEndDate;
            leaveForm.CreateTime        = DateTime.Now;
            leaveForm.CreatedById       = applicationUser.Id;
            leaveForm.IsDelete          = false;
            leaveForm.ApplicationUserId = applicationUser.Id;

            db.LeaveForm.Add(leaveForm);
            db.SaveChanges();
            int leaveFormId = db.LeaveForm.OrderByDescending(x => x.Id).ToList()[0].Id;

            var processNodeTable = db.ProcessNodeTable.FirstOrDefault(x => x.JobTypeId == applicationUser.JobTypeId && x.NodeOrder == 1);

            var processInstanceTable = new ProcessInstanceTable();

            processInstanceTable.NodeSN      = processNodeTable.NodeSN;
            processInstanceTable.NodeName    = processNodeTable.NodeName;
            processInstanceTable.PITStatusId = 1; //已申請
            processInstanceTable.LeaveFormNo = leaveFormNo;
            processInstanceTable.StarterId   = applicationUser.Id;
            processInstanceTable.Starter     = applicationUser.UserName;
            processInstanceTable.OperatorId  = applicationUser.Id;
            processInstanceTable.Operator    = applicationUser.UserName;

            var processNodeTable1 = db.ProcessNodeTable.FirstOrDefault(x => x.NodeSN == processNodeTable.NextNodeSN);

            if (processNodeTable1.NodeName == "代理人")
            {
                int agentInt         = input.Agent.IndexOf("-");
                var agent            = input.Agent.Substring(agentInt + 1);
                var applicationUser1 = db.ApplicationUser.FirstOrDefault(x => x.LogonId == agent);
                processInstanceTable.ToDoerId = applicationUser1.Id;
                processInstanceTable.ToDoer   = applicationUser1.UserName;
            }
            else if (processNodeTable1.NodeName == "班導審核")
            {
                var student          = db.Student.FirstOrDefault(x => x.LogonId == sIDNo);
                var applicationUser1 = db.ApplicationUser.FirstOrDefault(x => x.LogonId == student.ClassGuideLogonId);
                processInstanceTable.ToDoerId = applicationUser1.Id;
                processInstanceTable.ToDoer   = applicationUser1.UserName;
            }
            else
            {
                var applicationUser1 = db.ApplicationUser.FirstOrDefault(x => x.JobTypeId == processNodeTable1.JobTypeId);
                processInstanceTable.ToDoerId = applicationUser1.Id;
                processInstanceTable.ToDoer   = applicationUser1.UserName;
            }

            processInstanceTable.FirstNodeSN             = processNodeTable.NodeSN;
            processInstanceTable.FirstProcessNodeTableId = processNodeTable.Id;
            processInstanceTable.NextNodeSN             = processNodeTable1.NodeSN;
            processInstanceTable.NextProcessNodeTableId = processNodeTable1.Id;
            processInstanceTable.UpdateTime             = DateTime.Now;
            processInstanceTable.LeaveFormId            = leaveFormId;
            processInstanceTable.ProcessNodeTableId     = processNodeTable.Id;

            db.ProcessInstanceTable.Add(processInstanceTable);
            db.SaveChanges();
            int processInstanceTableId = db.ProcessInstanceTable.OrderByDescending(x => x.Id).ToList()[0].Id;


            var processInstanceTableLog = new ProcessInstanceTableLog();

            processInstanceTableLog.Remarks     = "申請請假單";
            processInstanceTableLog.NodeSN      = processNodeTable.NodeSN;
            processInstanceTableLog.NodeName    = processNodeTable.NodeName;
            processInstanceTableLog.PITStatusId = 1; //已申請
            processInstanceTableLog.LeaveFormNo = leaveFormNo;
            processInstanceTableLog.StarterId   = applicationUser.Id;
            processInstanceTableLog.Starter     = applicationUser.UserName;
            processInstanceTableLog.OperatorId  = applicationUser.Id;
            processInstanceTableLog.Operator    = applicationUser.UserName;

            if (processNodeTable1.NodeName == "代理人")
            {
                int agentInt         = input.Agent.IndexOf("-");
                var agent            = input.Agent.Substring(agentInt + 1);
                var applicationUser1 = db.ApplicationUser.FirstOrDefault(x => x.LogonId == agent);
                processInstanceTableLog.ToDoerId = applicationUser1.Id;
                processInstanceTableLog.ToDoer   = applicationUser1.UserName;
            }
            else if (processNodeTable1.NodeName == "班導審核")
            {
                var student          = db.Student.FirstOrDefault(x => x.LogonId == sIDNo);
                var applicationUser1 = db.ApplicationUser.FirstOrDefault(x => x.LogonId == student.ClassGuideLogonId);
                processInstanceTableLog.ToDoerId = applicationUser1.Id;
                processInstanceTableLog.ToDoer   = applicationUser1.UserName;
            }
            else
            {
                var applicationUser1 = db.ApplicationUser.FirstOrDefault(x => x.JobTypeId == processNodeTable1.JobTypeId);
                processInstanceTableLog.ToDoerId = applicationUser1.Id;
                processInstanceTableLog.ToDoer   = applicationUser1.UserName;
            }

            processInstanceTableLog.FirstNodeSN             = processNodeTable.NodeSN;
            processInstanceTableLog.FirstProcessNodeTableId = processNodeTable.Id;
            processInstanceTableLog.NextNodeSN             = processNodeTable1.NodeSN;
            processInstanceTableLog.NextProcessNodeTableId = processNodeTable1.Id;
            processInstanceTableLog.UpdateTime             = DateTime.Now;
            processInstanceTableLog.LeaveFormId            = leaveFormId;
            processInstanceTableLog.ProcessNodeTableId     = processNodeTable.Id;
            processInstanceTableLog.ProcessInstanceTableId = processInstanceTableId;

            db.ProcessInstanceTableLog.Add(processInstanceTableLog);
            db.SaveChanges();



            if (dataFile.Count() != 0)
            {
                //檔案資訊存進資料庫
                foreach (var AuploadFile in dataFile)
                {
                    string FileName = System.IO.Path.GetFileName(AuploadFile.FileName);
                    string Path     = HostingEnvironment.MapPath("/ProofOfLeaveForm/" + FileName);

                    CertifiedDoc certifiedDoc = new CertifiedDoc
                    {
                        FileName   = FileName,
                        FileSize   = AuploadFile.ContentLength,
                        CreateDate = DateTime.Now,
                    };
                    db.CertifiedDoc.Add(certifiedDoc);
                    db.SaveChanges();
                    int certifiedDocId = db.CertifiedDoc.OrderByDescending(x => x.Id).ToList()[0].Id;

                    LeaveFormCertifiedDoc leaveFormCertifiedDoc = new LeaveFormCertifiedDoc
                    {
                        LeaveFormId    = leaveFormId,
                        CertifiedDocId = certifiedDocId,
                    };
                    db.LeaveFormCertifiedDoc.Add(leaveFormCertifiedDoc);
                    db.SaveChanges();

                    AuploadFile.SaveAs(Path);
                }
            }
        }
예제 #12
0
        public static void SaveUpdate(LeaveFormModel _leave, out string message)
        {
            try
            {
                message = "";

                var leaveDays = _leave.EndDate.Subtract(_leave.StartDate).TotalDays + 1;


                using (var db = new SLVLOnlineEntities())
                {
                    if (_leave.ID == Guid.Empty || _leave.ID == null)
                    {
                        var leaveType = db.LeaveType.FirstOrDefault(r => r.ID == _leave.Type);

                        if (leaveType.Type == "SL")
                        {
                            if (UniversalHelpers.CurrentUser.SickLeaveCount < (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString())))
                            {
                                message = "Insufficient Sick Leave Credit";
                            }
                        }
                        else if (leaveType.Type == "VL" || leaveType.Type == "EL")
                        {
                            if (UniversalHelpers.CurrentUser.VacationLeaveCount < (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString())))
                            {
                                message = "Insufficient Vacation Leave Credit";
                            }
                        }
                        else if (leaveType.Type == "PL")
                        {
                            if (UniversalHelpers.CurrentUser.SoloParentLeaveCount < (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString())))
                            {
                                message = "Insufficient Solo Parent Leave Credit";
                            }
                        }

                        LeaveForm newLeave = new LeaveForm
                        {
                            ID          = Guid.NewGuid(),
                            CreatedBy   = UniversalHelpers.CurrentUser.ID,
                            CreatedDate = DateTime.Now,
                            EndDate     = _leave.EndDate,
                            Reason      = _leave.Reason,
                            StartDate   = _leave.StartDate,
                            Status      = "P",
                            Type        = _leave.Type
                        };

                        db.Entry(newLeave).State = EntityState.Added;

                        db.SaveChanges();

                        //========FIRST APPROVER EMAIL==============
                        EmailService.SendEmail("Leave For Approval", UniversalHelpers.CurrentUser.FirstName + " " + UniversalHelpers.CurrentUser.LastName + " filed " +
                                               _leave.ShowType + " and waiting for your approval", UniversalHelpers.CurrentUser.FirstApproverEmail);

                        //========SECOND APPROVER EMAIL=============
                        EmailService.SendEmail("Leave For Approval", UniversalHelpers.CurrentUser.FirstName + " " + UniversalHelpers.CurrentUser.LastName + " filed " +
                                               _leave.ShowType + " and waiting for your approval", UniversalHelpers.CurrentUser.SecondApproverEmail);
                    }
                    else
                    {
                        leaveDays = DateTime.Parse(_leave.ShowEndDate).Subtract(DateTime.Parse(_leave.ShowStartDate)).TotalDays + 1;

                        var leave = db.LeaveForm.FirstOrDefault(r => r.ID == _leave.ID);

                        var leaveType = db.LeaveType.FirstOrDefault(r => r.ID == _leave.Type);

                        if (leave != null)
                        {
                            var user = db.UserAccount.FirstOrDefault(r => r.ID == leave.CreatedBy);

                            if (_leave.Status == "D")
                            {
                                EmailService.SendEmail("Filed Leave Declined", "Your filed Leave has been declined by " + UniversalHelpers.CurrentUser.FirstName + " "
                                                       + UniversalHelpers.CurrentUser.LastName, user.Email);
                            }
                            else if (_leave.Status == "A")
                            {
                                EmailService.SendEmail("Filed Leave Approved", "Your filed Leave has been approved by " + UniversalHelpers.CurrentUser.FirstName + " "
                                                       + UniversalHelpers.CurrentUser.LastName, user.Email);

                                if (leaveType.Type == "SL")
                                {
                                    user.SickLeaveCount = user.SickLeaveCount - (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString()));
                                }
                                else if (leaveType.Type == "VL" || leaveType.Type == "EL")
                                {
                                    user.VacationLeavCount = user.VacationLeavCount - (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString()));
                                }
                                else if (leaveType.Type == "PL")
                                {
                                    user.SoloParentLeaveCount = user.SoloParentLeaveCount - (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString()));
                                }
                            }
                            else if (_leave.Status == "X")
                            {
                                EmailService.SendEmail("Filed Leave of " + UniversalHelpers.CurrentUser.FirstName + " has been canceled", "Filed Leave of " +
                                                       UniversalHelpers.CurrentUser.FirstName + " " + UniversalHelpers.CurrentUser.LastName + " has been canceled for some reasons", UniversalHelpers.CurrentUser.FirstApproverEmail);

                                EmailService.SendEmail("Filed Leave of " + UniversalHelpers.CurrentUser.FirstName + " has been canceled", "Filed Leave of " +
                                                       UniversalHelpers.CurrentUser.FirstName + " " + UniversalHelpers.CurrentUser.LastName + " has been canceled for some reasons", UniversalHelpers.CurrentUser.SecondApproverEmail);

                                if (leave.Status == "A")
                                {
                                    if (leaveType.Type == "SL")
                                    {
                                        user.SickLeaveCount = user.SickLeaveCount + (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString()));
                                    }
                                    else if (leaveType.Type == "VL" || leaveType.Type == "EL")
                                    {
                                        user.VacationLeavCount = user.VacationLeavCount + (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString()));
                                    }
                                    else if (leaveType.Type == "PL")
                                    {
                                        user.SoloParentLeaveCount = user.SoloParentLeaveCount + (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString()));
                                    }
                                }
                            }

                            leave.Status = _leave.Status;

                            leave.DeclineReason = _leave.DeclineReason;

                            db.Entry(leave).State = EntityState.Modified;

                            db.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception error)
            {
                message = error.Message;
            }
        }
예제 #13
0
        public static void SaveUpdateAdmin(LeaveFormModel _leave, UserModel _user, out string message)
        {
            try
            {
                message = "";

                var leaveDays = _leave.EndDate.Subtract(_leave.StartDate).TotalDays + 1;

                using (var db = new SLVLOnlineEntities())
                {
                    if (_leave.ID == Guid.Empty || _leave.ID == null)
                    {
                        var leaveType = db.LeaveType.FirstOrDefault(r => r.ID == _leave.Type);

                        if (leaveType.Type == "SL")
                        {
                            if (_user.SickLeaveCount < (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString())))
                            {
                                message = "Insufficient Sick Leave Credit";
                            }
                        }
                        else if (leaveType.Type == "VL" || leaveType.Type == "EL")
                        {
                            if (_user.VacationLeaveCount < (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString())))
                            {
                                message = "Insufficient Vacation Leave Credit";
                            }
                        }
                        else if (leaveType.Type == "PL")
                        {
                            if (_user.SoloParentLeaveCount < (leaveDays * double.Parse(leaveType.LeaveDeduction.ToString())))
                            {
                                message = "Insufficient Solo Parent Leave Credit";
                            }
                        }

                        Guid?CreatedBy = Guid.Empty;

                        if (_leave.FileForUser == null || _leave.FileForUser == Guid.Empty)
                        {
                            CreatedBy = UniversalHelpers.CurrentUser.ID;
                        }
                        else
                        {
                            CreatedBy = _leave.FileForUser;
                        }


                        LeaveForm newLeave = new LeaveForm
                        {
                            ID          = Guid.NewGuid(),
                            CreatedBy   = CreatedBy,
                            CreatedDate = DateTime.Now,
                            EndDate     = _leave.EndDate,
                            Reason      = _leave.Reason,
                            StartDate   = _leave.StartDate,
                            Status      = "P",
                            Type        = _leave.Type
                        };

                        db.Entry(newLeave).State = EntityState.Added;

                        db.SaveChanges();

                        //========FIRST APPROVER EMAIL==============
                        EmailService.SendEmail("Leave For Approval", _user.FirstName + " " + _user.LastName + " filed " +
                                               _leave.ShowType + " and waiting for your approval", _user.FirstApproverEmail);

                        //========SECOND APPROVER EMAIL=============
                        EmailService.SendEmail("Leave For Approval", _user.FirstName + " " + _user.LastName + " filed " +
                                               _leave.ShowType + " and waiting for your approval", _user.SecondApproverEmail);
                    }
                }
            }
            catch (Exception error)
            {
                message = error.Message;
            }
        }
예제 #14
0
        public ActionResult ExamList(int?MasterListID, int?i, string JobPosition, string Firstname, string Lastname)
        {
            MasterListEntities master = new MasterListEntities();
            var item = master.Masterlists.ToList().Where(x => x.EmploymentStatus == "Applicant").ToPagedList(i ?? 1, 10);

            LeaveForm model          = new LeaveForm();
            DataTable dtblIQtest     = new DataTable();
            DataTable dtblQuestions  = new DataTable();
            DataTable dtblAccountant = new DataTable();
            DataTable dtblEssay      = new DataTable();

            if (MasterListID == null)
            {
                return(View(master.Masterlists.ToList().Where(x => x.EmploymentStatus == "Applicant").ToPagedList(i ?? 1, 10)));
            }
            using (SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();
                string         query = "SELECT * FROM IQtest Where ApplicantID = @MasterListID";
                SqlDataAdapter sqlDa = new SqlDataAdapter(query, sqlCon);
                sqlDa.SelectCommand.Parameters.AddWithValue("@MasterListID", MasterListID);
                sqlDa.Fill(dtblIQtest);

                string         querys = "SELECT * FROM Questions";
                SqlDataAdapter sqlDas = new SqlDataAdapter(querys, sqlCon);
                sqlDas.Fill(dtblQuestions);

                string         queryss = "SELECT * FROM Accountingtest Where ApplicantID = @MasterListID";
                SqlDataAdapter sqlDass = new SqlDataAdapter(queryss, sqlCon);
                sqlDass.SelectCommand.Parameters.AddWithValue("@MasterListID", MasterListID);
                sqlDass.Fill(dtblAccountant);

                string         querysss = "SELECT * FROM Essay Where ApplicantID = @MasterListID";
                SqlDataAdapter sqlDasss = new SqlDataAdapter(querysss, sqlCon);
                sqlDasss.SelectCommand.Parameters.AddWithValue("@MasterListID", MasterListID);
                sqlDasss.Fill(dtblEssay);
            }
            if (dtblIQtest.Rows.Count >= 1)
            {
                ViewBag.IQtest1  = dtblIQtest.Rows[0][2].ToString();
                ViewBag.IQtest2  = dtblIQtest.Rows[0][3].ToString();
                ViewBag.IQtest3  = dtblIQtest.Rows[0][4].ToString();
                ViewBag.IQtest4  = dtblIQtest.Rows[0][5].ToString();
                ViewBag.IQtest5  = dtblIQtest.Rows[0][6].ToString();
                ViewBag.IQtest6  = dtblIQtest.Rows[0][7].ToString();
                ViewBag.IQtest7  = dtblIQtest.Rows[0][8].ToString();
                ViewBag.IQtest8  = dtblIQtest.Rows[0][9].ToString();
                ViewBag.IQtest9  = dtblIQtest.Rows[0][10].ToString();
                ViewBag.IQtest10 = dtblIQtest.Rows[0][11].ToString();
                ViewBag.IQtest11 = dtblIQtest.Rows[0][12].ToString();
                ViewBag.IQtest12 = dtblIQtest.Rows[0][13].ToString();
                ViewBag.IQtest13 = dtblIQtest.Rows[0][14].ToString();
                ViewBag.IQtest14 = dtblIQtest.Rows[0][15].ToString();
                ViewBag.IQtest15 = dtblIQtest.Rows[0][16].ToString();
                ViewBag.IQtest16 = dtblIQtest.Rows[0][17].ToString();
                ViewBag.IQtest17 = dtblIQtest.Rows[0][18].ToString();
                ViewBag.IQtest18 = dtblIQtest.Rows[0][19].ToString();
                ViewBag.IQtest19 = dtblIQtest.Rows[0][20].ToString();
                ViewBag.IQtest20 = dtblIQtest.Rows[0][21].ToString();
                ViewBag.IQtest21 = dtblIQtest.Rows[0][22].ToString();
                ViewBag.IQtest22 = dtblIQtest.Rows[0][23].ToString();
                ViewBag.IQtest23 = dtblIQtest.Rows[0][24].ToString();
                ViewBag.IQtest24 = dtblIQtest.Rows[0][25].ToString();
                ViewBag.IQtest25 = dtblIQtest.Rows[0][26].ToString();
                ViewBag.IQtest26 = dtblIQtest.Rows[0][27].ToString();
                ViewBag.IQtest27 = dtblIQtest.Rows[0][28].ToString();
                ViewBag.IQtest28 = dtblIQtest.Rows[0][29].ToString();
                ViewBag.IQtest29 = dtblIQtest.Rows[0][30].ToString();
                ViewBag.IQtest30 = dtblIQtest.Rows[0][31].ToString();

                ViewBag.Q1  = dtblQuestions.Rows[0][1].ToString();
                ViewBag.Q2  = dtblQuestions.Rows[0][2].ToString();
                ViewBag.Q3  = dtblQuestions.Rows[0][3].ToString();
                ViewBag.Q4  = dtblQuestions.Rows[0][4].ToString();
                ViewBag.Q5  = dtblQuestions.Rows[0][5].ToString();
                ViewBag.Q6  = dtblQuestions.Rows[0][6].ToString();
                ViewBag.Q7  = dtblQuestions.Rows[0][7].ToString();
                ViewBag.Q8  = dtblQuestions.Rows[0][8].ToString();
                ViewBag.Q9  = dtblQuestions.Rows[0][9].ToString();
                ViewBag.Q10 = dtblQuestions.Rows[0][10].ToString();
                ViewBag.Q11 = dtblQuestions.Rows[0][11].ToString();
                ViewBag.Q12 = dtblQuestions.Rows[0][12].ToString();
                ViewBag.Q13 = dtblQuestions.Rows[0][13].ToString();
                ViewBag.Q14 = dtblQuestions.Rows[0][14].ToString();
                ViewBag.Q15 = dtblQuestions.Rows[0][15].ToString();
                ViewBag.Q16 = dtblQuestions.Rows[0][16].ToString();
                ViewBag.Q17 = dtblQuestions.Rows[0][17].ToString();
                ViewBag.Q18 = dtblQuestions.Rows[0][18].ToString();
                ViewBag.Q19 = dtblQuestions.Rows[0][19].ToString();
                ViewBag.Q20 = dtblQuestions.Rows[0][20].ToString();
                ViewBag.Q21 = dtblQuestions.Rows[0][21].ToString();
                ViewBag.Q22 = dtblQuestions.Rows[0][22].ToString();
                ViewBag.Q23 = dtblQuestions.Rows[0][23].ToString();
                ViewBag.Q24 = dtblQuestions.Rows[0][24].ToString();
                ViewBag.Q25 = dtblQuestions.Rows[0][25].ToString();
                ViewBag.Q26 = dtblQuestions.Rows[0][26].ToString();
                ViewBag.Q27 = dtblQuestions.Rows[0][27].ToString();
                ViewBag.Q28 = dtblQuestions.Rows[0][28].ToString();
                ViewBag.Q29 = dtblQuestions.Rows[0][29].ToString();
                ViewBag.Q30 = dtblQuestions.Rows[0][30].ToString();

                if (JobPosition == "Associate Accountant" || JobPosition == "Senior Accountant")
                {
                    ViewBag.Accountant1   = dtblAccountant.Rows[0][2].ToString();
                    ViewBag.AccountantS1  = dtblAccountant.Rows[0][14].ToString();
                    ViewBag.Accountant2   = dtblAccountant.Rows[0][3].ToString();
                    ViewBag.Accountant31  = dtblAccountant.Rows[0][4].ToString();
                    ViewBag.AccountantS31 = dtblAccountant.Rows[0][15].ToString();
                    ViewBag.Accountant32  = dtblAccountant.Rows[0][5].ToString();
                    ViewBag.AccountantS32 = dtblAccountant.Rows[0][16].ToString();
                    ViewBag.Accountant33  = dtblAccountant.Rows[0][6].ToString();
                    ViewBag.AccountantS33 = dtblAccountant.Rows[0][17].ToString();
                    ViewBag.Accountant4   = dtblAccountant.Rows[0][7].ToString();
                    ViewBag.AccountantS4  = dtblAccountant.Rows[0][18].ToString();
                    ViewBag.Accountant5   = dtblAccountant.Rows[0][8].ToString();
                    ViewBag.Accountant6   = dtblAccountant.Rows[0][9].ToString();
                    ViewBag.Accountant7   = dtblAccountant.Rows[0][10].ToString();
                    ViewBag.AccountantS7  = dtblAccountant.Rows[0][19].ToString();
                    ViewBag.Accountant8   = dtblAccountant.Rows[0][11].ToString();
                    ViewBag.AccountantS8  = dtblAccountant.Rows[0][20].ToString();
                    ViewBag.Accountant9   = dtblAccountant.Rows[0][12].ToString();
                    ViewBag.Accountant10  = dtblAccountant.Rows[0][13].ToString();
                    ViewBag.AccountantS10 = dtblAccountant.Rows[0][21].ToString();
                }
                else
                {
                    ViewBag.Essay1  = dtblEssay.Rows[0][2].ToString();
                    ViewBag.Essay2  = dtblEssay.Rows[0][3].ToString();
                    ViewBag.Essay3  = dtblEssay.Rows[0][4].ToString();
                    ViewBag.Essay4  = dtblEssay.Rows[0][5].ToString();
                    ViewBag.Essay5  = dtblEssay.Rows[0][6].ToString();
                    ViewBag.Essay6  = dtblEssay.Rows[0][7].ToString();
                    ViewBag.Essay7  = dtblEssay.Rows[0][8].ToString();
                    ViewBag.Essay8  = dtblEssay.Rows[0][9].ToString();
                    ViewBag.Essay9  = dtblEssay.Rows[0][10].ToString();
                    ViewBag.Essay10 = dtblEssay.Rows[0][11].ToString();
                    ViewBag.Essay11 = dtblEssay.Rows[0][12].ToString();
                    ViewBag.Essay12 = dtblEssay.Rows[0][13].ToString();
                    ViewBag.Essay13 = dtblEssay.Rows[0][14].ToString();
                }

                ViewBag.MasterlistID     = MasterListID;
                ViewBag.JobPosition      = JobPosition;
                ViewBag.Firstname        = Firstname;
                ViewBag.Lastname         = Lastname;
                TempData["MasterlistID"] = "1";
                return(View(master.Masterlists.ToList().Where(x => x.EmploymentStatus == "Applicant").ToPagedList(i ?? 1, 10)));
            }
            else
            {
                return(RedirectToAction("ExamList", master.Masterlists.ToList().Where(x => x.EmploymentStatus == "Applicant").ToPagedList(i ?? 1, 10)));
            }
        }
예제 #15
0
        public ActionResult Inbox(int?i, int?LeaveID, int?LeaveApproved)
        {
            string            userid = Session["userid"].ToString();
            LeaveFormEntities db     = new LeaveFormEntities();
            var item = db.LeaveForms
                       .Where(x => x.Approver == userid
                              )
                       .OrderByDescending(x => x.DateRequest)
                       .ToList();

            if (LeaveApproved == 1)
            {
                using (SqlConnection sqlCon = new SqlConnection(connectionString))
                {
                    sqlCon.Open();
                    string     query   = "UPDATE LeaveForm SET LeaveStatus= 'Approved' WHERE LeaveID = @LeaveID";
                    SqlCommand sqlCmds = new SqlCommand(query, sqlCon);
                    sqlCmds.Parameters.AddWithValue("@LeaveID", LeaveID);
                    sqlCmds.ExecuteNonQuery();
                    TempData["leaves"]       = "0";
                    TempData["LeaveSuccess"] = "Leave Approved";
                }
                return(RedirectToAction("Inbox"));
            }
            if (LeaveApproved == 0)
            {
                using (SqlConnection sqlCon = new SqlConnection(connectionString))
                {
                    sqlCon.Open();
                    string     query   = "UPDATE LeaveForm SET LeaveStatus= 'Declined' WHERE LeaveID = @LeaveID";
                    SqlCommand sqlCmds = new SqlCommand(query, sqlCon);
                    sqlCmds.Parameters.AddWithValue("@LeaveID", LeaveID);
                    sqlCmds.ExecuteNonQuery();
                    TempData["leaves"]       = "0";
                    TempData["LeaveSuccess"] = "Leave Declined";
                }
                return(RedirectToAction("Inbox"));
            }

            LeaveForm model     = new LeaveForm();
            DataTable dtblLeave = new DataTable();

            if (LeaveID == null)
            {
                return(View(db.LeaveForms.ToList().ToPagedList(i ?? 1, 10)));
            }
            using (SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();
                string         query = "SELECT TypeOfRequest, Description, StartDate, EndDate, EmployeeNumber, LeaveStatus from LeaveForm Where LeaveID = @LeaveID AND Approver = @user";
                SqlDataAdapter sqlDa = new SqlDataAdapter(query, sqlCon);
                sqlDa.SelectCommand.Parameters.AddWithValue("@LeaveID", LeaveID);
                sqlDa.SelectCommand.Parameters.AddWithValue("@user", userid);
                sqlDa.Fill(dtblLeave);
            }
            if (dtblLeave.Rows.Count == 1)
            {
                model.TypeOfRequest  = dtblLeave.Rows[0][0].ToString();
                model.Description    = dtblLeave.Rows[0][1].ToString();
                model.StartDate      = DateTime.Parse(dtblLeave.Rows[0][2].ToString());
                model.EndDate        = DateTime.Parse(dtblLeave.Rows[0][3].ToString());
                model.EmployeeNumber = Convert.ToInt32(dtblLeave.Rows[0][4].ToString());
                model.LeaveStatus    = dtblLeave.Rows[0][5].ToString();
                ViewBag.LeaveID      = LeaveID;
                TempData["leaves"]   = "1";
                return(View(db.LeaveForms.ToList().ToPagedList(i ?? 1, 10)));
            }
            else
            {
                return(RedirectToAction("Inbox", db.LeaveForms.ToList().ToPagedList(i ?? 1, 10)));
            }
        }
예제 #16
0
        public string insert(LeaveForm objint)
        {
            LeaveApplyDBO objintDb = new LeaveApplyDBO();

            return(objintDb.insert(objint));
        }