Ejemplo n.º 1
0
 public static LeaveApplication ConvertRespondentInfoFromDTO(LeaveApplicationDTO leaveApplicationDTO)
 {
     Mapper.CreateMap <LeaveApplicationDTO, LeaveApplication>().ConvertUsing(
         m =>
     {
         return(new LeaveApplication
         {
             LeaveAppliedDate = m.LeaveAppliedDate,
             LeaveStartDate = m.LeaveStartDate,
             LeaveApproverEmpCode = m.LeaveApproverEmpCode,
             LeaveDays = m.LeaveDays,
             LeaveDaysType = m.LeaveDaysType,
             LeaveDetails = m.LeaveDetails,
             LeaveEmpCode = m.LeaveEmpCode,
             LeaveGUICode = m.LeaveGUICode,
             LeaveId = m.LeaveId,
             LeaveStatus = m.LeaveStatus,
             LeaveEndDate = m.LeaveEndDate,
             LeaveStatusDate = m.LeaveStatusDate,
             LeaveSubject = m.LeaveSubject,
             LeaveTypeId = m.LeaveTypeId,
             LeaveYearId = m.LeaveYearId,
             PaidLeave = m.PaidLeave,
             LeaveDaysPart = m.LeaveDaysPart,
             RecommededEmpCode = m.RecommededEmpCode,
             RecommendStatus = m.RecommendStatus,
             RecommendStatusDate = m.RecommendStatusDate
         });
     });
     return(Mapper.Map <LeaveApplicationDTO, LeaveApplication>(leaveApplicationDTO));
 }
Ejemplo n.º 2
0
        public LeaveApplicationDTO GetLeaveApplicationsbyId(int id)
        {
            LeaveApplication    Record       = _unitOfWork.LeaveApplicationRepository.Get(x => x.LeaveId == id).FirstOrDefault();
            LeaveApplicationDTO ReturnRecord = LeaveApplicationResponseFormatter.LeaveApplicationDbToModel(Record);

            return(ReturnRecord);
        }
Ejemplo n.º 3
0
        public void AddSpecialLeaveType(LeaveApplicationDTO newLeave)
        {
            newLeave.LeaveDaysType       = "F";
            newLeave.RecommededEmpCode   = newLeave.RecommededEmpCode;
            newLeave.RecommendStatus     = 2;
            newLeave.LeaveStatus         = 2;
            newLeave.RecommenderMessage  = newLeave.LeaveDetails;
            newLeave.RecommendStatusDate = DateTime.Now;
            newLeave.LeaveDays           = newLeave.LeaveEndDate.Date.Subtract(newLeave.LeaveStartDate.Date).Duration().Days + 1;
            newLeave.LeaveAppliedDate    = DateTime.Now;
            newLeave.LeaveGUICode        = Guid.NewGuid().ToString();
            bool payable = Convert.ToBoolean(_unitOfWork.LeaveTypeRepository.Get(x => x.LeaveTypeId == newLeave.LeaveId).Select(x => x.IsPayable).SingleOrDefault());

            newLeave.PaidLeave = Convert.ToBoolean(payable);
            LeaveApplication Record = LeaveApplicationRequestFormatter.ConvertRespondentInfoFromDTO(newLeave);

            _unitOfWork.LeaveApplicationRepository.Create(Record);
            //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();
        }
        public ActionResult Add(LeaveApplicationDTO Record)
        {
            // int curentemp = Convert.ToInt32(Session["Empcode"]);
            //int roleid = Convert.ToInt32(Session["RoleId"]);
            int empCode = Convert.ToInt32(Session["EmpCode"]);

            Record.LeaveStartDate         = Convert.ToDateTime(NepEngDate.NepToEng(Record.LeaveStartDateNP));
            Record.LeaveEndDate           = Convert.ToDateTime(NepEngDate.NepToEng(Record.LeaveEndDateNP));
            Record.RecommededEmpCode      = Record.RecommededEmpCode;
            Record.EmployeeCodeSelectlist = _LeaveEarnedService.GetBrancheEmployeeSelectList(empCode);
            Record.YearSelectList         = _SpecialleavetypeService.GetYearSelectList();
            Record.LeaveTypeSelectList    = _SpecialleavetypeService.GetSpecialLeaveTypeSelectList();

            if (Record.LeaveEmpCode == 0 || Record.RecommededEmpCode == 0 || Record.LeaveApproverEmpCode == 0)
            {
                ViewBag.Error = "* Fields are required";
                return(View("../Leave/LeaveTypeSpecial/Add", Record));
            }
            try
            {
                if (ModelState.IsValid)
                {
                    _SpecialleavetypeService.AddSpecialLeaveType(Record);
                    Session["Success"] = "Successfully Added Special Leave ";
                    return(RedirectToAction("Index", "LeaveTypeSpecial"));
                }
            }
            catch (Exception Exception)
            {
                ViewBag.Error    = Exception.Message;
                Session["Error"] = ViewBag.Error = Exception.Message;
                return(View("../Leave/LeaveTypeSpecial/Add"));
            }
            return(View("../Leave/LeaveTypeSpecial/Add"));
        }
Ejemplo n.º 5
0
        public JsonResult GetEmloyeeRecommederSelectList(int EmpCode)
        {
            string recommendType       = "Earning";
            LeaveApplicationDTO Record = new LeaveApplicationDTO();

            Record.ApproverSelectList = _SpecialleavetypeService.GetEmployeeRecommenderSelectList(EmpCode, recommendType);
            return(Json(Record.ApproverSelectList, JsonRequestBehavior.AllowGet));
        }
        public ActionResult FilterBox()
        {
            LeaveApplicationDTO Record = new LeaveApplicationDTO();

            Record.YearSelectList         = _SpecialleavetypeService.GetYearSelectList();
            Record.EmployeeCodeSelectlist = _LeaveEarnedService.GetBrancheEmployeeSelectList(Convert.ToInt32(ViewBag.Empcode));
            return(View("../Leave/LeaveTypeSpecial/FilterBox", Record));
        }
Ejemplo n.º 7
0
        public static List <LeaveApplicationDTO> LeaveApplicationDbListToModelList(List <LeaveApplication> modelData)
        {
            List <LeaveApplicationDTO> ReturnRecord = new List <LeaveApplicationDTO>();

            foreach (var Row in modelData)
            {
                LeaveApplicationDTO Record = new LeaveApplicationDTO
                {
                    LeaveId              = Row.LeaveId,
                    LeaveEmpCode         = Row.LeaveEmpCode,
                    LeaveYearId          = Row.LeaveYearId,
                    LeaveTypeId          = Row.LeaveTypeId,
                    RecommededEmpCode    = Row.RecommededEmpCode,
                    RecommendStatus      = Row.RecommendStatus,
                    RecommenderMessage   = Row.RecommenderMessage,
                    RecommendStatusDate  = Row.RecommendStatusDate,
                    LeaveApproverEmpCode = Row.LeaveApproverEmpCode,
                    LeaveStatus          = Row.LeaveStatus,
                    ApproverMessage      = Row.ApproverMessage,
                    LeaveStatusDate      = Row.LeaveStatusDate,
                    LeaveStartDate       = Row.LeaveStartDate,
                    LeaveEndDate         = Row.LeaveEndDate,
                    LeaveDays            = Row.LeaveDays,
                    PaidLeave            = Row.PaidLeave,
                    LeaveSubject         = Row.LeaveSubject,
                    LeaveDetails         = Row.LeaveDetails,
                    LeaveAppliedDate     = Row.LeaveAppliedDate,
                    LeaveDaysType        = Row.LeaveDaysType,
                    LeaveDaysPart        = Row.LeaveDaysPart,
                    LeaveGUICode         = Row.LeaveGUICode,
                    Employee             = new EmployeeDTO
                    {
                        EmpCode = Row.Employee.EmpCode,
                        EmpName = Row.Employee.EmpName
                    },
                    RecommendateEmployee = new EmployeeDTO
                    {
                        RecommendateEmpCode = Row.Employee2.EmpCode,
                        RecommendateEmpName = Row.Employee2.EmpName
                    },
                    ApprovalEmployee = new EmployeeDTO
                    {
                        ApprovalEmpCode = Row.Employee1.EmpCode,
                        ApprovalEmpName = Row.Employee1.EmpName
                    },
                    LeaveType = new LeaveTypeDTO
                    {
                        LeaveTypeId   = Row.LeaveType.LeaveTypeId,
                        LeaveTypeName = Row.LeaveType.LeaveTypeName
                    }
                };
                ReturnRecord.Add(Record);
            }
            return(ReturnRecord);
        }
        public ActionResult Add()
        {
            int roleid  = Convert.ToInt32(Session["RoleId"]);
            int empCode = Convert.ToInt32(Session["EmpCode"]);
            LeaveApplicationDTO Record = new LeaveApplicationDTO();

            Record.EmployeeCodeSelectlist = _LeaveEarnedService.GetBrancheEmployeeSelectList(empCode);
            Record.YearSelectList         = _SpecialleavetypeService.GetYearSelectList();
            Record.LeaveTypeSelectList    = _SpecialleavetypeService.GetSpecialLeaveTypeSelectList();
            Record.ApproverSelectList     = new List <SelectListItem>();
            return(View("../Leave/LeaveTypeSpecial/Add", Record));
        }
Ejemplo n.º 9
0
        public static LeaveApplicationDTO LeaveApplicationDbToModel(LeaveApplication modelData)
        {
            LeaveApplicationDTO Record = new LeaveApplicationDTO
            {
                LeaveId              = modelData.LeaveId,
                LeaveEmpCode         = modelData.LeaveEmpCode,
                LeaveYearId          = modelData.LeaveYearId,
                LeaveTypeId          = modelData.LeaveTypeId,
                RecommededEmpCode    = modelData.RecommededEmpCode,
                RecommendStatus      = modelData.RecommendStatus,
                RecommenderMessage   = modelData.RecommenderMessage,
                RecommendStatusDate  = modelData.RecommendStatusDate,
                LeaveApproverEmpCode = modelData.LeaveApproverEmpCode,
                LeaveStatus          = modelData.LeaveStatus,
                ApproverMessage      = modelData.ApproverMessage,
                LeaveStatusDate      = modelData.LeaveStatusDate,
                LeaveStartDate       = modelData.LeaveStartDate,
                LeaveEndDate         = modelData.LeaveEndDate,
                LeaveDays            = modelData.LeaveDays,
                PaidLeave            = modelData.PaidLeave,
                LeaveSubject         = modelData.LeaveSubject,
                LeaveDetails         = modelData.LeaveDetails,
                LeaveAppliedDate     = modelData.LeaveAppliedDate,
                LeaveDaysType        = modelData.LeaveDaysType,
                LeaveDaysPart        = modelData.LeaveDaysPart,
                LeaveGUICode         = modelData.LeaveGUICode,
                LeaveType            = new LeaveTypeDTO
                {
                    LeaveTypeId   = modelData.LeaveType.LeaveTypeId,
                    LeaveTypeName = modelData.LeaveType.LeaveTypeName
                },
                Employee = new EmployeeDTO
                {
                    EmpCode = modelData.Employee.EmpCode,
                    EmpName = modelData.Employee.EmpName
                },
                RecommendateEmployee = new EmployeeDTO
                {
                    RecommendateEmpCode = modelData.Employee1.EmpCode,
                    RecommendateEmpName = modelData.Employee1.EmpName
                },
                ApprovalEmployee = new EmployeeDTO
                {
                    ApprovalEmpCode = modelData.Employee2.EmpCode,
                    ApprovalEmpName = modelData.Employee2.EmpName
                }
            };

            return(Record);
        }
Ejemplo n.º 10
0
 protected void Init(LeaveApplicationDTO leaveApplication, LeaveStatus leaveStatus)
 {
     _leaveApplication = leaveApplication;
     _nextStatus       = leaveStatus;
 }
Ejemplo n.º 11
0
 public static LeaveApplication ConvertRespondentInfoFromDTO(LeaveApplicationDTO modelData)
 {
     Mapper.CreateMap <LeaveApplicationDTO, LeaveApplication>();
     return(Mapper.Map <LeaveApplicationDTO, LeaveApplication>(modelData));
 }
Ejemplo n.º 12
0
        public ActionResult ApplyLeave(LeaveApplicationDTO leave)
        {
            int empCode   = leave.LeaveEmpCode;
            int curentemp = Convert.ToInt32(Session["Empcode"]);
            int roleid    = Convert.ToInt32(Session["RoleId"]);

            leave.LeaveDaysType       = "F";
            leave.RecommededEmpCode   = Convert.ToInt32(Session["Empcode"]);
            leave.RecommendStatus     = 2;
            leave.RecommenderMessage  = leave.LeaveDetails;
            leave.RecommendStatusDate = DateTime.Now;
            double leavedays = _leaveServices.LeaveDayCalculations(leave.LeaveTypeId, leave.LeaveStartDate, leave.LeaveEndDate);



            LeaveApplicationAddViewModel lavm = new LeaveApplicationAddViewModel();
            LeaveYearDTO year = _leaveServices.GetActiveYear();

            lavm.Employees = _employeeServices.GetEmployeeList(roleid).Where(x => x.EmpCode != curentemp);

            lavm.SerializedActiveYearData = JsonConvert.SerializeObject(_leaveServices.GetActiveYear());

            if (!ModelState.IsValid)
            {
                return(View(lavm));
            }
            List <LeaveStatViewModel> StatList   = _leaveServices.GetLeaveStatus(empCode, year.YearId).ToList();
            LeaveStatViewModel        targetData = StatList.Find(x => x.LeaveTypeId == leave.LeaveTypeId);
            LeaveYearDTO currentYear             = _leaveServices.GetActiveYear();

            if (leave.IsHalfDayLeave == true)
            {
                leave.LeaveEndDate = leave.LeaveStartDate;
            }

            DateTime startDate = Convert.ToDateTime(leave.LeaveStartDate);
            DateTime endDate   = Convert.ToDateTime(leave.LeaveEndDate);

            if (startDate > currentYear.YearStartDate &&
                startDate < currentYear.YearEndDate && endDate > currentYear.YearStartDate &&
                endDate < currentYear.YearEndDate)
            {
                #region ApplyBeforeZeroDays
                if (targetData.LeaveApplyBeforeDays == 0)
                {
                    if (startDate > endDate)
                    {
                        ModelState.AddModelError("StartDateGreaterError", "The start Date is greater than the End Date.");
                        return(View(lavm));
                    }
                    leave.LeaveEmpCode    = empCode;
                    leave.LeaveYearId     = currentYear.YearId;
                    leave.LeaveStatus     = 1;
                    leave.LeaveStatusDate = DateTime.Now;
                    if (leave.IsHalfDayLeave == true)
                    {
                        leave.LeaveDays = 0.5M;
                    }
                    else
                    {
                        leave.LeaveDays = leave.LeaveEndDate.Date.Subtract(leave.LeaveStartDate.Date).Duration().Days + 1;
                    }

                    leave.LeaveAppliedDate = DateTime.Now;
                    leave.LeaveGUICode     = Guid.NewGuid().ToString();
                    leave.PaidLeave        = targetData.IsPayable;
                    if (leave.IsHalfDayLeave)
                    {
                        leave.LeaveDaysType = "H";
                        if (leave.LeaveDaysPart == null)
                        {
                            ModelState.AddModelError("LeaveDaysPartError", "Leave Day Part is not selected.");
                            return(View(lavm));
                        }
                        if ((leave.LeaveEndDate.Date.Subtract(leave.LeaveStartDate.Date).Duration().Days + 1) / 2 > targetData.TotalRemainingDays)
                        {
                            ModelState.AddModelError("LeaveBalanceError", "You do not have enough leave balance for this leave type.");
                            return(View(lavm));
                        }
                    }
                    else
                    {
                        if ((leave.LeaveEndDate.Date.Subtract(leave.LeaveStartDate.Date).Duration().Days + 1) > targetData.TotalRemainingDays)
                        {
                            ModelState.AddModelError("LeaveBalanceError", "You do not have enough leave balance for this leave type.");
                            return(View(lavm));
                        }
                    }

                    LeaveApplicationDTO reLeaveApplication1 = _leaveServices.InsertLeaveApplication(leave);
                    string leaveName1 = targetData.LeaveTypeName;
                    Session["Success"] = "Your leave application of leave type \"" + leaveName1 + "\" has been inserted.";
                    ModelState.Clear();
                    return(RedirectToAction("Index"));
                }
                #endregion

                #region HAlfDayLeaveCondition
                else if (leave.IsHalfDayLeave == true)
                {
                    leave.LeaveEmpCode        = empCode;
                    leave.LeaveYearId         = currentYear.YearId;
                    leave.RecommendStatus     = 1;
                    leave.RecommendStatusDate = DateTime.Now;
                    leave.LeaveStatus         = 1;
                    leave.LeaveStatusDate     = DateTime.Now;
                    leave.LeaveAppliedDate    = DateTime.Now;
                    leave.LeaveGUICode        = Guid.NewGuid().ToString();
                    leave.PaidLeave           = targetData.IsPayable;
                    leave.LeaveDays           = 0.5M;
                    leave.LeaveDaysType       = "H";
                    if (targetData.TotalRemainingDays == 0)
                    {
                        ModelState.AddModelError("LeaveBalanceError", "You do not have enough leave balance for this leave type.");
                        return(View(lavm));
                    }
                    if (leave.LeaveDaysPart == null)
                    {
                        ModelState.AddModelError("LeaveDaysPartError", "Leave Day Part is not selected.");
                        return(View(lavm));
                    }
                    LeaveApplicationDTO reLeaveApplication1 = _leaveServices.InsertLeaveApplication(leave);
                    string leaveName1 = targetData.LeaveTypeName;
                    Session["Success"] = "Your leave application of leave type \"" + leaveName1 + "\" has been inserted.";
                    ModelState.Clear();
                    return(RedirectToAction("Index"));
                }
                #endregion


                else if (startDate > endDate)
                {
                    ModelState.AddModelError("StartDateGreaterError", "The start Date is greater than the End Date.");
                    return(View(lavm));
                }
                else
                {
                    #region NormalLeaveCondition
                    leave.LeaveEmpCode        = empCode;
                    leave.LeaveYearId         = currentYear.YearId;
                    leave.RecommendStatus     = 2;
                    leave.RecommendStatusDate = DateTime.Now;
                    leave.LeaveStatus         = 1;
                    leave.LeaveStatusDate     = DateTime.Now;
                    leave.LeaveDays           = leave.LeaveEndDate.Date.Subtract(leave.LeaveStartDate.Date).Duration().Days + 1;
                    leave.LeaveAppliedDate    = DateTime.Now;
                    leave.LeaveGUICode        = Guid.NewGuid().ToString();
                    leave.PaidLeave           = targetData.IsPayable;
                    if ((leave.LeaveEndDate.Date.Subtract(leave.LeaveStartDate.Date).Duration().Days + 1) > targetData.TotalRemainingDays)
                    {
                        ModelState.AddModelError("LeaveBalanceError", "You do not have enough leave balance for this leave type.");
                        return(View(lavm));
                    }
                    LeaveApplicationDTO reLeaveApplication = _leaveServices.InsertLeaveApplication(leave);
                    string leaveName = targetData.LeaveTypeName;
                    Session["Success"] = "Your leave application of leave type \"" + leaveName + "\" has been inserted.";
                    ModelState.Clear();
                    return(RedirectToAction("Index"));

                    #endregion
                }
            }
            else
            {
                ModelState.AddModelError("DateRangeError", "The Leave start date or end date you stated does not lie in the current year.");
                return(View(lavm));
            }
        }