public LeaveApplicationDTOs CreateLeaveApplicationInformation(int empcode, int leaveid, string recommendType)
        {
            LeaveApplicationDTOs Result = new LeaveApplicationDTOs();

            Result.LeaveEmpCode  = empcode;
            Result.LeaveTypeId   = leaveid;
            Result.LeaveTypeName = _unitOfWork.LeaveTypeRepository.All().Where(x => x.LeaveTypeId == leaveid).Select(x => x.LeaveTypeName).FirstOrDefault();

            var leaveTypeData = _unitOfWork.LeaveTypeRepository.All().Where(x => x.LeaveTypeId == leaveid).FirstOrDefault();

            // Result.Leavetypes.HalfdayAllow = leaveTypeData.HalfdayAllow;

            Result.IsHalfDayAllow = leaveTypeData.HalfdayAllow;


            LeaveBalance LeaveBalance = LeavebalanceIndividual(null, empcode, leaveid);

            if (LeaveBalance.Leave_Balance <= 0)
            {
                throw new Exception("This Leave Is not assigned for you .");
            }
            else
            if (LeaveBalance.LeaveTypeAssignment != "General")
            {
                throw new Exception("Special Leave can not be applied from  here..");
            }
            Result.ApproverList    = _DynamicSelectList.GetLeaveApproverSelectList(empcode, recommendType).ToList();
            Result.RecommenderList = _DynamicSelectList.GetLeaveRecommenderSelectList(empcode, recommendType).ToList();
            return(Result);
        }
        public static LeaveApplication LeaveApplicationDTOsToLeaveApplication(LeaveApplicationDTOs Record)
        {
            LeaveApplication result = new LeaveApplication()
            {
                LeaveId              = Record.LeaveId,
                LeaveTypeId          = Record.LeaveTypeId,
                ApproverMessage      = Record.ApproverMessage,
                LeaveAppliedDate     = Record.LeaveAppliedDate,
                LeaveApproverEmpCode = Record.LeaveApproverEmpCode,
                LeaveDays            = Record.LeaveDays,
                LeaveDaysPart        = Record.LeaveDaysPart,
                LeaveDaysType        = Record.LeaveDaysType,
                LeaveDetails         = Record.LeaveDetails,
                LeaveEmpCode         = Record.LeaveEmpCode,
                LeaveEndDate         = Convert.ToDateTime(Record.LeaveEndDate),
                LeaveGUICode         = Record.LeaveGUICode,
                LeaveStartDate       = Record.LeaveStartDate,
                LeaveStatus          = Record.LeaveStatus,
                LeaveStatusDate      = Record.LeaveStatusDate,
                LeaveSubject         = Record.LeaveSubject,
                LeaveYearId          = Record.LeaveYearId,
                PaidLeave            = Record.PaidLeave,
                RecommededEmpCode    = Record.RecommededEmpCode,
                RecommenderMessage   = Record.RecommenderMessage,
                RecommendStatus      = Record.RecommendStatus,
                RecommendStatusDate  = Record.RecommendStatusDate,
            };

            return(result);
        }
Esempio n. 3
0
        public ActionResult LeaveApprove(int id, LeaveApplicationDTOs Record)
        {
            int empcode = Convert.ToInt32(Session["EmpCode"]);

            try
            {
                if (ModelState.IsValid)
                {
                    Record.LeaveStatusDate = DateTime.Now;
                    _LeaveAddAdmin.LeaveApplicationUpdae(Record);
                    Session["sucess"] = "Leave approved sucesfully";
                    return(RedirectToAction("ApproverList"));
                }
                else
                {
                    LeaveApplicationDTOs Result = _LeaveAddAdmin.LeaveDetails(id, empcode);
                    Record.EmployeeDetail     = Result.EmployeeDetail;
                    Record.RecommenderDetails = Result.RecommenderDetails;
                    Record.LeaveDetails       = Result.LeaveDetails;
                    Record.ApproverDetails    = Result.ApproverDetails;

                    return(View(Record));
                }
            }
            catch (Exception Ex)
            {
                Session["error"] = Ex.Message;
                return(RedirectToAction("ApproverList"));
            }
        }
        public ActionResult LeaveCancelApproved(int id, int empcode)
        {
            LeaveApplicationDTOs Result = _LeaveAddAdmin.LeaveDetails(id, empcode);

            Result.LeaveStatus = 5;
            _LeaveAddAdmin.LeaveApplicationUpdae(Result);
            Session["success"] = "Approved leave canceled sucessfully ";
            return(RedirectToAction("LeaveDetails", new { Id = id, empcode = empcode }));
        }
        public LeaveApplicationDTOs LeaveApplicationSearch()
        {
            int EmpCode = Convert.ToInt32(HttpContext.Current.Session["EmpCode"]);
            LeaveApplicationDTOs Result = new LeaveApplicationDTOs();

            Result.EmpList         = _DynamicSelectList.GetEmployeeByEmpCode(EmpCode).ToList();
            Result.LeaveYearList   = _DynamicSelectList.LeaveYearList().ToList();
            Result.LeaveStatusList = StaticSelectList.GetLeaveLeaveApprovestatusList().ToList();
            return(Result);
        }
 public ActionResult LeaveDetails(int id, int empcode)
 {
     ViewBag.SideBar = _moduleService.AdminEmployeeDetailsMenu(empcode);
     try
     {
         LeaveApplicationDTOs Result = _LeaveAddAdmin.LeaveDetails(id, empcode);
         return(View(Result));
     }
     catch (Exception Ex)
     {
         Session["error"] = Ex.Message;
         return(RedirectToAction("Index"));
     }
 }
Esempio n. 7
0
        public ActionResult Create(LeaveApplicationDTOs Record, int levid)
        {
            string recommendType = "General";
            int    empcode       = Convert.ToInt32(Session["EmpCode"]);

            Record.ApproverList    = _DynamicSelectList.GetLeaveApproverSelectList(empcode, recommendType).ToList();
            Record.RecommenderList = _DynamicSelectList.GetLeaveRecommenderSelectList(empcode, recommendType).ToList();
            try
            {
                Record.LeaveStartDate = Convert.ToDateTime(NepEngDate.NepToEng(Record.LeaveStartDateNP));
                Record.LeaveEndDate   = Convert.ToDateTime(NepEngDate.NepToEng(Record.LeaveEndDateNP));

                if (Record.IsHalfDay)
                {
                    Record.LeaveEndDate = Record.LeaveStartDate;
                }

                if (ModelState.IsValid)
                {
                    Record = _ValidateLeave.ValidateLeave(Record);

                    if (Record.ErrorList != null && Record.ErrorList.Count > 0)
                    {
                        return(View(Record));
                    }
                    else
                    {
                        _LeaveAddAdmin.LeaveApplicationCreate(Record);
                        Session["success"] = "Leave Created Sucessfully ";
                        return(RedirectToAction("Index"));
                    }
                }
                else
                {
                    Record.ApproverList = _LeaveAddAdmin.CreateLeaveApplicationInformation(empcode, Record.LeaveTypeId, recommendType).ApproverList;

                    return(View(Record));
                }
            }
            catch (Exception Ex)
            {
                Session["error"]    = Ex.Message;
                Record.ApproverList = _LeaveAddAdmin.CreateLeaveApplicationInformation(empcode, Record.LeaveTypeId, recommendType).ApproverList;

                return(View(Record));
            }
        }
        public ActionResult Create(LeaveApplicationDTOs Record, int EmpCode, int levid)
        {
            string recommendType = "General";

            Record.LeaveStartDate = !string.IsNullOrEmpty(Record.LeaveStartDateNP) ? Convert.ToDateTime(NepEngDate.NepToEng(Record.LeaveStartDateNP)) : Record.LeaveStartDate;
            Record.LeaveEndDate   = !string.IsNullOrEmpty(Record.LeaveEndDateNP) ? Convert.ToDateTime(NepEngDate.NepToEng(Record.LeaveEndDateNP)) : Record.LeaveEndDate;

            try
            {
                if (Record.IsHalfDay == true)
                {
                    Record.LeaveEndDate = Record.LeaveStartDate;
                }


                if (ModelState.IsValid)
                {
                    LeaveApplicationDTOs data = _ValidateLeave.ValidateLeave(Record);

                    if (data.ErrorList != null && data.ErrorList.Count > 0)
                    {
                        data.RecommenderList = _DynamicSelectList.GetLeaveRecommenderSelectList(EmpCode, recommendType).ToList();
                        data.ApproverList    = _LeaveAddAdmin.CreateLeaveApplicationInformation(EmpCode, levid, recommendType).ApproverList;
                        return(View(data));
                    }
                    else
                    {
                        _LeaveAddAdmin.LeaveApplicationCreate(Record);
                        Session["success"] = "Leave Created Sucessfully ";
                        return(RedirectToAction("LeaveApplistList", new { EmpCode = EmpCode }));
                    }
                }
                else
                {
                    Record.RecommenderList = _DynamicSelectList.GetLeaveRecommenderSelectList(EmpCode, recommendType).ToList();
                    Record.ApproverList    = _LeaveAddAdmin.CreateLeaveApplicationInformation(EmpCode, levid, recommendType).ApproverList;
                    return(View(Record));
                }
            }
            catch (Exception Ex)
            {
                Session["error"]       = Ex.Message;
                Record.RecommenderList = _DynamicSelectList.GetLeaveRecommenderSelectList(EmpCode, recommendType).ToList();
                Record.ApproverList    = _LeaveAddAdmin.CreateLeaveApplicationInformation(EmpCode, levid, recommendType).ApproverList;
                return(View(Record));
            }
        }
Esempio n. 9
0
 public ActionResult LeaveApprove(int id)
 {
     try
     {
         int empcode = Convert.ToInt32(Session["EmpCode"]);
         LeaveApplicationDTOs Result = _LeaveAddAdmin.LeaveDetails(id, empcode);
         if (Result.LeaveApproverEmpCode != empcode && Result.RecommendStatus != 2)
         {
             throw new Exception("You are not authorized to access page .");
         }
         return(View(Result));
     }
     catch (Exception Ex)
     {
         Session["error"] = Ex.Message;
         return(RedirectToAction("ApproverList"));
     }
 }
Esempio n. 10
0
 public ActionResult LeaveDetails(int id)
 {
     try
     {
         int empcode = Convert.ToInt32(Session["EmpCode"]);
         LeaveApplicationDTOs Result = _LeaveAddAdmin.LeaveDetails(id, empcode);
         if (empcode != Result.LeaveEmpCode)
         {
             throw new Exception("you are not authorized to access this details.");
         }
         return(View(Result));
     }
     catch (Exception Ex)
     {
         Session["error"] = Ex.Message;
         int empcode = Convert.ToInt32(Session["EmpCode"]);
         return(RedirectToAction("Index"));
     }
 }
Esempio n. 11
0
        public ActionResult Create(int levid)
        {
            string recommendType = "General";

            try
            {
                int empcode = Convert.ToInt32(Session["EmpCode"]);

                LeaveApplicationDTOs Result = _LeaveAddAdmin.CreateLeaveApplicationInformation(empcode, levid, recommendType);

                return(View(Result));
            }
            catch (Exception Ex)
            {
                Session["error"] = Ex.Message;
                int empcode = Convert.ToInt32(Session["EmpCode"]);
                return(RedirectToAction("LeaveApplistList"));
            }
        }
        public void LeaveApplicationUpdae(LeaveApplicationDTOs Record)
        {
            _unitOfWork.LeaveApplicationRepository.Update(LeaveApplicationMapper.LeaveApplicationDTOsToLeaveApplication(Record));

            //if leave is approved
            if (Record.LeaveStatus == 2 || Record.LeaveStatus == 3)
            {
                //call store proecudre for leave application attendance record
                SqlConnection conn = DbConnectHelper.GetConnection();
                conn.Open();
                SqlCommand cmd = new SqlCommand("sp_LeaveBalanceUpdate", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@LeaveId", Record.LeaveId);
                cmd.Parameters.AddWithValue("@LeaveStatus", Record.LeaveStatus);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable      dt = new DataTable();
                da.Fill(dt);
                da.Dispose();
                cmd.Dispose();
                conn.Close();
                conn.Dispose();
            }
            else if (Record.LeaveStatus == 5)
            {
                //call store proecudre for leave application attendance record
                SqlConnection conn = DbConnectHelper.GetConnection();
                conn.Open();
                SqlCommand cmd = new SqlCommand("sp_LeaveBalanceUpdate", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@LeaveId", Record.LeaveId);
                cmd.Parameters.AddWithValue("@LeaveStatus", Record.LeaveStatus);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable      dt = new DataTable();
                da.Fill(dt);
                da.Dispose();
                cmd.Dispose();
                conn.Close();
                conn.Dispose();
            }
        }
Esempio n. 13
0
        public ActionResult Create(int EmpCode, int levid)
        {
            ViewBag.SideBar = _moduleService.AdminEmployeeDetailsMenu(EmpCode);
            string recommendType = "General";

            try
            {
                int empcode = Convert.ToInt32(Session["EmpCode"]);
                if (empcode == EmpCode)
                {
                    throw new Exception("User cannot create self Leve request from Admin side..");
                }

                LeaveApplicationDTOs Result = _LeaveAddAdmin.CreateLeaveApplicationInformation(EmpCode, levid, recommendType);
                Result.LeaveTypeId  = levid;
                Result.LeaveEmpCode = EmpCode;
                return(View(Result));
            }
            catch (Exception Ex)
            {
                Session["error"] = Ex.Message;
                return(RedirectToAction("LeaveApplistList", new { EmpCode = EmpCode }));
            }
        }
        public static List <LeaveApplicationDTOs> ListLeaveApplicationToLeaveApplicationDTOssList(List <LeaveApplication> Record)
        {
            List <LeaveApplicationDTOs> result = new List <LeaveApplicationDTOs>();

            foreach (var item in Record)
            {
                LeaveApplicationDTOs single = new LeaveApplicationDTOs()
                {
                    LeaveId              = item.LeaveId,
                    LeaveTypeId          = item.LeaveTypeId,
                    ApproverMessage      = item.ApproverMessage,
                    LeaveAppliedDate     = item.LeaveAppliedDate,
                    LeaveApproverEmpCode = item.LeaveApproverEmpCode,
                    LeaveDays            = item.LeaveDays,
                    LeaveDaysPart        = item.LeaveDaysPart,
                    LeaveDaysType        = item.LeaveDaysType,
                    LeaveDetails         = item.LeaveDetails,
                    LeaveEmpCode         = item.LeaveEmpCode,
                    LeaveEndDate         = item.LeaveEndDate,
                    LeaveGUICode         = item.LeaveGUICode,
                    LeaveStartDate       = item.LeaveStartDate,
                    LeaveStatus          = item.LeaveStatus,
                    LeaveStatusDate      = item.LeaveStatusDate,
                    LeaveSubject         = item.LeaveSubject,
                    LeaveYearId          = item.LeaveYearId,
                    PaidLeave            = item.PaidLeave,
                    RecommededEmpCode    = item.RecommededEmpCode,
                    RecommenderMessage   = item.RecommenderMessage,
                    RecommendStatus      = item.RecommendStatus,
                    RecommendStatusDate  = item.RecommendStatusDate,
                    EmpName              = item.Employee.EmpName,
                    RecommenderName      = item.Employee1.EmpName,
                    ApproverName         = item.Employee2.EmpName,
                    LeaveTypeName        = item.LeaveType.LeaveTypeName,
                    EmployeeDetail       = new EmployeeDTOs
                    {
                        EmpCode            = item.Employee.EmpCode,
                        EmpName            = item.Employee.EmpName,
                        EmpPhoto           = item.Employee.EmpPhoto,
                        Designation        = item.Employee.Designation,
                        EmpLevelId         = item.Employee.EmpLevelId,
                        Level              = item.Employee.Level,
                        CurrentGrade       = item.Employee.CurrentGrade,
                        Department         = item.Employee.Department,
                        EmpEmail           = item.Employee.EmpEmail,
                        EmpGender          = item.Employee.EmpGender,
                        Office             = item.Employee.Office,
                        EmpOfficeId        = item.Employee.EmpOfficeId,
                        EmpUserName        = item.Employee.EmpUserName,
                        JobType            = item.Employee.JobType,
                        EmpAppointmentDate = item.Employee.EmpAppointmentDate,
                        EmpCreatedDate     = item.Employee.EmpCreatedDate,
                    },
                    RecommenderDetails = new EmployeeDTOs
                    {
                        EmpCode            = item.Employee1.EmpCode,
                        EmpName            = item.Employee1.EmpName,
                        EmpPhoto           = item.Employee1.EmpPhoto,
                        Designation        = item.Employee1.Designation,
                        EmpLevelId         = item.Employee1.EmpLevelId,
                        Level              = item.Employee1.Level,
                        CurrentGrade       = item.Employee1.CurrentGrade,
                        Department         = item.Employee1.Department,
                        EmpEmail           = item.Employee1.EmpEmail,
                        EmpGender          = item.Employee1.EmpGender,
                        Office             = item.Employee1.Office,
                        EmpOfficeId        = item.Employee1.EmpOfficeId,
                        EmpUserName        = item.Employee1.EmpUserName,
                        JobType            = item.Employee1.JobType,
                        EmpAppointmentDate = item.Employee1.EmpAppointmentDate,
                        EmpCreatedDate     = item.Employee1.EmpCreatedDate,
                    },
                    ApproverDetails = new EmployeeDTOs
                    {
                        EmpCode            = item.Employee2.EmpCode,
                        EmpName            = item.Employee2.EmpName,
                        EmpPhoto           = item.Employee2.EmpPhoto,
                        Designation        = item.Employee2.Designation,
                        EmpLevelId         = item.Employee2.EmpLevelId,
                        Level              = item.Employee2.Level,
                        CurrentGrade       = item.Employee2.CurrentGrade,
                        Department         = item.Employee2.Department,
                        EmpEmail           = item.Employee2.EmpEmail,
                        EmpGender          = item.Employee2.EmpGender,
                        Office             = item.Employee2.Office,
                        EmpOfficeId        = item.Employee2.EmpOfficeId,
                        EmpUserName        = item.Employee2.EmpUserName,
                        JobType            = item.Employee2.JobType,
                        EmpAppointmentDate = item.Employee2.EmpAppointmentDate,
                        EmpCreatedDate     = item.Employee2.EmpCreatedDate,
                    },
                    Leavetypes = new LeaveTypesDTOs
                    {
                        LeaveTypeId   = item.LeaveType.LeaveTypeId,
                        LeaveTypeName = item.LeaveType.LeaveTypeName,
                    },
                    LeaveYear = new LeaveYearsDTOs
                    {
                        YearId          = item.LeaveYear.YearId,
                        YearName        = Convert.ToInt32(item.LeaveYear.YearName),
                        YearStartDate   = item.LeaveYear.YearStartDate,
                        YearEndDate     = Convert.ToDateTime(item.LeaveYear.YearEndDate),
                        YearStartDateNp = item.LeaveYear.YearStartDateNp,
                        YearEndDateNp   = item.LeaveYear.YearEndDateNp,
                        YearCurrent     = item.LeaveYear.YearCurrent,
                    }
                };
                result.Add(single);
            }
            return(result);
        }
        public static LeaveApplicationDTOs LeaveApplicationToLeaveApplicationDTOss(LeaveApplication Record)
        {
            LeaveApplicationDTOs result = new LeaveApplicationDTOs()
            {
                LeaveId              = Record.LeaveId,
                LeaveTypeId          = Record.LeaveTypeId,
                ApproverMessage      = Record.ApproverMessage,
                LeaveAppliedDate     = Record.LeaveAppliedDate,
                LeaveApproverEmpCode = Record.LeaveApproverEmpCode,
                LeaveDays            = Record.LeaveDays,
                LeaveDaysPart        = Record.LeaveDaysPart,
                LeaveDaysType        = Record.LeaveDaysType,
                LeaveDetails         = Record.LeaveDetails,
                LeaveEmpCode         = Record.LeaveEmpCode,
                LeaveEndDate         = Record.LeaveEndDate,
                LeaveGUICode         = Record.LeaveGUICode,
                LeaveStartDate       = Record.LeaveStartDate,
                LeaveStatus          = Record.LeaveStatus,
                LeaveStatusDate      = Record.LeaveStatusDate,
                LeaveSubject         = Record.LeaveSubject,
                LeaveYearId          = Record.LeaveYearId,
                PaidLeave            = Record.PaidLeave,
                RecommededEmpCode    = Record.RecommededEmpCode,
                RecommenderMessage   = Record.RecommenderMessage,
                RecommendStatus      = Record.RecommendStatus,
                RecommendStatusDate  = Record.RecommendStatusDate,
                EmpName              = Record.Employee.EmpName,
                RecommenderName      = Record.Employee1.EmpName,
                ApproverName         = Record.Employee2.EmpName,
                EmployeeDetail       = new EmployeeDTOs
                {
                    EmpCode            = Record.Employee.EmpCode,
                    EmpName            = Record.Employee.EmpName,
                    EmpPhoto           = Record.Employee.EmpPhoto,
                    Designation        = Record.Employee.Designation,
                    EmpLevelId         = Record.Employee.EmpLevelId,
                    Level              = Record.Employee.Level,
                    CurrentGrade       = Record.Employee.CurrentGrade,
                    Department         = Record.Employee.Department,
                    EmpEmail           = Record.Employee.EmpEmail,
                    EmpGender          = Record.Employee.EmpGender,
                    Office             = Record.Employee.Office,
                    EmpOfficeId        = Record.Employee.EmpOfficeId,
                    EmpUserName        = Record.Employee.EmpUserName,
                    JobType            = Record.Employee.JobType,
                    EmpAppointmentDate = Record.Employee.EmpAppointmentDate,
                    EmpCreatedDate     = Record.Employee.EmpCreatedDate,
                },
                ApproverDetails = new EmployeeDTOs
                {
                    EmpCode            = Record.Employee2.EmpCode,
                    EmpName            = Record.Employee2.EmpName,
                    EmpPhoto           = Record.Employee2.EmpPhoto,
                    Designation        = Record.Employee2.Designation,
                    EmpLevelId         = Record.Employee2.EmpLevelId,
                    Level              = Record.Employee2.Level,
                    CurrentGrade       = Record.Employee2.CurrentGrade,
                    Department         = Record.Employee2.Department,
                    EmpEmail           = Record.Employee2.EmpEmail,
                    EmpGender          = Record.Employee2.EmpGender,
                    Office             = Record.Employee2.Office,
                    EmpOfficeId        = Record.Employee2.EmpOfficeId,
                    EmpUserName        = Record.Employee2.EmpUserName,
                    JobType            = Record.Employee2.JobType,
                    EmpAppointmentDate = Record.Employee2.EmpAppointmentDate,
                    EmpCreatedDate     = Record.Employee2.EmpCreatedDate,
                },

                RecommenderDetails = new EmployeeDTOs
                {
                    EmpCode            = Record.Employee1.EmpCode,
                    EmpName            = Record.Employee1.EmpName,
                    EmpPhoto           = Record.Employee1.EmpPhoto,
                    Designation        = Record.Employee1.Designation,
                    EmpLevelId         = Record.Employee1.EmpLevelId,
                    Level              = Record.Employee1.Level,
                    CurrentGrade       = Record.Employee1.CurrentGrade,
                    Department         = Record.Employee1.Department,
                    EmpEmail           = Record.Employee1.EmpEmail,
                    EmpGender          = Record.Employee1.EmpGender,
                    Office             = Record.Employee1.Office,
                    EmpOfficeId        = Record.Employee1.EmpOfficeId,
                    EmpUserName        = Record.Employee1.EmpUserName,
                    JobType            = Record.Employee1.JobType,
                    EmpAppointmentDate = Record.Employee1.EmpAppointmentDate,
                    EmpCreatedDate     = Record.Employee1.EmpCreatedDate,
                },
                Leavetypes = new LeaveTypesDTOs
                {
                    LeaveTypeId   = Record.LeaveType.LeaveTypeId,
                    LeaveTypeName = Record.LeaveType.LeaveTypeName,
                },
                LeaveYear = new LeaveYearsDTOs
                {
                    YearId          = Record.LeaveYear.YearId,
                    YearName        = Convert.ToInt32(Record.LeaveYear.YearName),
                    YearStartDate   = Record.LeaveYear.YearStartDate,
                    YearEndDate     = Convert.ToDateTime(Record.LeaveYear.YearEndDate),
                    YearStartDateNp = Record.LeaveYear.YearStartDateNp,
                    YearEndDateNp   = Record.LeaveYear.YearEndDateNp,
                    YearCurrent     = Record.LeaveYear.YearCurrent,
                }
            };

            return(result);
        }
 public void LeaveApplicationCreate(LeaveApplicationDTOs Record)
 {
     LeaveApplication data = _unitOfWork.LeaveApplicationRepository.Create(LeaveApplicationMapper.LeaveApplicationDTOsToLeaveApplication(Record));
 }
Esempio n. 17
0
        public LeaveApplicationDTOs ValidateLeave(LeaveApplicationDTOs Record)
        {
            List <string> Error                  = new List <string>();
            IEnumerable <LeaveBalance> data      = _LeaveApp.LeaveBalanceList(null, Record.LeaveEmpCode);
            LeaveYearsDTOs             LeaveYear = _LeaveSetUp.LeaveYearList().Where(X => X.YearCurrent == true).FirstOrDefault();
            decimal Applydays    = Convert.ToDecimal((Convert.ToDateTime(Record.LeaveEndDate) - Record.LeaveStartDate).TotalDays) + 1;
            decimal leavebalance = Convert.ToDecimal(data.Where(x => x.LeaveTypeId == Record.LeaveTypeId).Select(x => x.Leave_Balance).FirstOrDefault());

            Record.LeaveDays = Applydays;
            if (Record.IsHalfDay == true)
            {
                Record.LeaveDaysType = "H";
                Applydays            = Convert.ToDecimal(0.5);
                Record.LeaveDays     = Applydays;
                if (String.IsNullOrEmpty(Record.LeaveDaysPart))
                {
                    Error.Add("Leave Day Part is not selected.");
                }
            }
            if (Applydays > leavebalance)
            {
                Error.Add("You do not have enough leave balance for this leave type.");
            }
            if (Record.LeaveStartDate > Record.LeaveEndDate)
            {
                Error.Add("The start Date is greater than the End Date.");
            }
            if (Record.LeaveStartDate < LeaveYear.YearStartDate || Record.LeaveStartDate > LeaveYear.YearEndDate)
            {
                Error.Add("Leave Start date and end date should be between " + Convert.ToDateTime(LeaveYear.YearStartDate).ToShortDateString() + " and " + Convert.ToDateTime(LeaveYear.YearEndDate).ToShortDateString());
            }
            else if (Record.LeaveEndDate < LeaveYear.YearStartDate || Record.LeaveEndDate > LeaveYear.YearEndDate)
            {
                Error.Add("Leave Start date and end date should be between " + Convert.ToDateTime(LeaveYear.YearStartDate).ToShortDateString() + " and " + Convert.ToDateTime(LeaveYear.YearEndDate).ToShortDateString());
            }
            if (Record.LeaveApproverEmpCode == 0 || Record.RecommededEmpCode == 0)
            {
                Error.Add("Please choose both Recommender and Approver to apply leave");
            }
            if (Record.LeaveApproverEmpCode == Record.RecommededEmpCode)
            {
                //  Error.Add("Recommender and Approver can not be same person");
            }

            /**
             * select * from LeaveApplications where LeaveEmpCode = 6300 AND RecommendStatus IN(1,2) and LeaveStatus in(1,2)
             *  AND(('start_date' between LeaveStartDate and LeaveEndDate) OR ('end_date' between LeaveStartDate and LeaveEndDate) )
             *
             **/

            SqlConnection conn = DbConnectHelper.GetConnection();

            conn.Open();
            SqlCommand cmd = new SqlCommand("sp_LeaveApplyDuplicationCheck", conn);

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@empCode", Record.LeaveEmpCode);
            cmd.Parameters.AddWithValue("@startdate", Record.LeaveStartDate);
            cmd.Parameters.AddWithValue("@endDate", Record.LeaveEndDate);

            var cnt = Convert.ToInt32(cmd.ExecuteScalar());

            if (cnt > 0)
            {
                Error.Add("You have alread applied leave for these dates");
            }

            Record.LeaveYearId = LeaveYear.YearId;
            if (Record.RecommendStatus == 2)
            {
                Record.RecommendStatusDate = DateTime.Now;
            }
            Record.ApproverList = _DynamicSelectList.GetApproverSelectList(Record.LeaveEmpCode).ToList();
            Record.PaidLeave    = Convert.ToBoolean(_LeaveSetUp.LeaveTypeList().Where(x => x.LeaveTypeId == Record.LeaveTypeId).Select(x => x.IsPayable).FirstOrDefault());
            Record.ErrorList    = Error;
            return(Record);
        }