示例#1
0
        public ActionResult ExportMonthCountToExcel(YearwiseLeaveSummaryQueryModel data, string RequestLevelPerson)
        {
            IList <MonthwiseLeavesCountModel> LeaveRequests = null;

            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetMonthwiseLeavesCount(data.Year, UserId, data.OnlyReportedToMe, data.SearchUserID, RequestLevelPerson);
            }
            List <MonthwiseLeavesCountModel> excelData = new List <MonthwiseLeavesCountModel>();

            excelData = LeaveRequests.ToList();
            if (excelData.Count > 0)
            {
                string[] columns     = { "EmpId", "Name", "CL1", "PL1", "DL1", "LWP1", "CO1", "CL2", "PL2", "DL2", "LWP2", "CO2", "CL3", "PL3", "DL3", "LWP3", "CO3", "CL4", "PL4", "DL4", "LWP4", "CO4", "CL5", "PL5", "DL5", "LWP5", "CO5", "CL6", "PL6", "DL6", "LWP6", "CO6", "CL7", "PL7", "DL7", "LWP7", "CO7", "CL8", "PL8", "DL8", "LWP8", "CO8", "CL9", "PL9", "DL9", "LWP9", "CO9", "CL10", "PL10", "DL10", "LWP10", "CO10", "CL11", "PL11", "DL11", "LWP11", "CO11", "CL12", "PL12", "DL12", "LWP12", "CO12" };
                byte[]   filecontent = ExcelExportHelper.ExportExcelMonthSummary(excelData, data.Year, "", false, columns);
                return(File(filecontent, ExcelExportHelper.ExcelContentType, "MonthwiseReport_" + System.DateTime.Now + ".xlsx"));
            }
            else
            {
                using (var Client = new LeaveClient())
                {
                    var result = Client.GetYearsFromLeaveBalance();
                    ViewBag.YearsInLeaveBal = result;
                }
                ViewBag.RequestLevelPerson = RequestLevelPerson;
                data.ErrorMsg = "Excel file is not generated as no data returned.";
                return(View("MonthwiseLeaveCount", data));
            }
        }
示例#2
0
        public ActionResult ExportYearSummaryToExcel(YearwiseLeaveSummaryQueryModel data, string RequestLevelPerson)
        {
            IList <EmployeeWiseLeaveSummaryModel> LeaveRequests = null;

            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetEmployeeWiseLeaveSumary(UserId, data.Year, RequestLevelPerson, data.SearchUserID, data.OnlyReportedToMe);
            }
            List <EmployeeWiseLeaveSummaryModel> excelData = new List <EmployeeWiseLeaveSummaryModel>();

            excelData = LeaveRequests.ToList();
            if (excelData.Count > 0)
            {
                string[] columns     = { "Emp Id", "Name", "Request Type", "Total Leaves", "Used Leaves", "Pending Approval", "Balance Leaves" };
                byte[]   filecontent = ExcelExportHelper.ExportExcelYearSummary(excelData, "", false, columns);
                return(File(filecontent, ExcelExportHelper.ExcelContentType, "LeaveBalanceReport_" + System.DateTime.Now + ".xlsx"));
            }
            else
            {
                using (var Client = new LeaveClient())
                {
                    var result = Client.GetYearsFromLeaveBalance();
                    ViewBag.YearsInLeaveBal = result;
                }
                ViewBag.RequestLevelPerson = RequestLevelPerson;
                data.ErrorMsg = "Excel file is not generated as no data returned.";
                return(View("ViewEmployeeWiseLeaveSummary", data));
            }
        }
示例#3
0
        public int GetHolidayCount(string startDate, string endDate)
        {
            DateTime startDateFormatted = System.DateTime.Now;
            DateTime endDateFormatted   = System.DateTime.Now;//TODO check these conditions

            if (startDate != null)
            {
                if (startDate.Trim() != "")
                {
                    try
                    {
                        startDateFormatted = DateTime.Parse(startDate, new CultureInfo("en-GB", true));
                        endDateFormatted   = DateTime.Parse(endDate, new CultureInfo("en-GB", true));
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }

            if (startDateFormatted > endDateFormatted)
            {
                return(0);
            }

            int holidayCount = 0;

            using (var client = new LeaveClient())
            {
                holidayCount = client.GetHolidayCount(startDateFormatted, endDateFormatted, UserId);
            }
            return(holidayCount);
        }
示例#4
0
        public ActionResult GetLeaveDetailCalculation(string LeaveFrom, string LeaveUpto, string LeaveFromTime, string LeaveUptoTime, Int64 LeaveTyp)
        {
            DateTime startDateFormatted = System.DateTime.Now;
            DateTime endDateFormatted   = System.DateTime.Now;//TODO check these conditions

            if (LeaveFrom != null)
            {
                if (LeaveFrom.Trim() != "")
                {
                    try
                    {
                        startDateFormatted = DateTime.Parse(LeaveFrom, new CultureInfo("en-GB", true));
                        endDateFormatted   = DateTime.Parse(LeaveUpto, new CultureInfo("en-GB", true));
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }
            IList <LeaveDtl> LeaveRequests = new List <LeaveDtl>();

            if (endDateFormatted >= startDateFormatted)
            {
                using (var client = new LeaveClient())
                {
                    LeaveRequests = client.GetLeaveDetailCalculation(startDateFormatted, endDateFormatted, LeaveFromTime, LeaveUptoTime, UserId, LeaveTyp);
                }
            }
            return(PartialView("LeaveDetailSplitPartial", LeaveRequests));
        }
示例#5
0
        public ActionResult LoadManageLeavePartial(bool ShowOnlyReportedToMe, bool ShowApprovedLeaves, string FromDate, string ToDate, string RequestMenuUser)
        {
            DateTime?startDateFormatted = null;
            DateTime?endDateFormatted   = null;

            if (FromDate != "" && ToDate != "")
            {
                try
                {
                    startDateFormatted = DateTime.Parse(FromDate, new CultureInfo("en-GB", true));
                    endDateFormatted   = DateTime.Parse(ToDate, new CultureInfo("en-GB", true));
                }
                catch (Exception)
                {
                    throw;
                }
            }
            ManageTeamLeavesQueryModel qryMdl = new ManageTeamLeavesQueryModel
            {
                OnlyReportedToMe   = ShowOnlyReportedToMe,
                ShowApprovedLeaves = ShowApprovedLeaves,
                FromDate           = startDateFormatted,
                ToDate             = endDateFormatted,
                RequestMenuUser    = RequestMenuUser
            };
            IList <TeamLeaves> LeaveRequests = null;

            qryMdl.LeadId = UserId;
            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetLeaveRequests(qryMdl);
            }
            return(PartialView("ManageLeaveDetailPartial", LeaveRequests));
        }
示例#6
0
        public decimal ReturnDuration(string LeaveFrom, string LeaveUpto, string LeaveFromTime, string LeaveUptoTime)
        {
            DateTime startDateFormatted = System.DateTime.Now;
            DateTime endDateFormatted   = System.DateTime.Now;//TODO check these conditions

            if (LeaveFrom != null)
            {
                if (LeaveFrom.Trim() != "")
                {
                    try
                    {
                        startDateFormatted = DateTime.Parse(LeaveFrom, new CultureInfo("en-GB", true));
                        endDateFormatted   = DateTime.Parse(LeaveUpto, new CultureInfo("en-GB", true));
                    }
                    catch
                    {
                    }
                }
            }
            if (startDateFormatted > endDateFormatted)
            {
                return(0);
            }

            decimal duration = 0;

            using (var client = new LeaveClient())
            {
                duration = client.ReturnDuration(startDateFormatted, endDateFormatted, LeaveFromTime, LeaveUptoTime, UserId);
            }

            return(duration);
        }
示例#7
0
        public ActionResult GetPermissionDetail(Int64?paramUserId, string reqUsr, string startDate, string endDate, bool OnlyReportedToMe)
        {
            IList <PermissionDetailsModel> LeaveRequests = null;
            DateTime?startDateFormatted = null;
            DateTime?endDateFormatted   = null;

            if (startDate != "")
            {
                try
                {
                    startDateFormatted = DateTime.Parse(startDate, new CultureInfo("en-GB", true));
                    endDateFormatted   = DateTime.Parse(endDate, new CultureInfo("en-GB", true));
                }
                catch (Exception)
                {
                    throw;
                }
            }
            if (startDate == "" || endDate == "")
            {
                startDateFormatted = System.DateTime.Now.Date;
                endDateFormatted   = System.DateTime.Now.Date;
            }
            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetPermissionDetail(paramUserId, reqUsr, startDateFormatted, endDateFormatted, OnlyReportedToMe, UserId);
            }
            for (int i = 0; i < LeaveRequests.Count; i++)
            {
                if (LeaveRequests[i].Reason != null)
                {
                    if (LeaveRequests[i].Reason.Length > 12)
                    {
                        LeaveRequests[i].ReasonShort = LeaveRequests[i].Reason.Substring(0, 12) + "...";
                    }
                    else
                    {
                        LeaveRequests[i].ReasonShort = LeaveRequests[i].Reason;
                    }
                }
                if (LeaveRequests[i].ApproverComments != null)
                {
                    if (LeaveRequests[i].ApproverComments.Length > 12)
                    {
                        LeaveRequests[i].CommentsShort = LeaveRequests[i].ApproverComments.Substring(0, 12) + "...";
                    }
                    else
                    {
                        LeaveRequests[i].CommentsShort = LeaveRequests[i].ApproverComments;
                    }
                }
                if (LeaveRequests[i].PermissionType.Contains('-'))
                {
                    string[] strPermissionType = LeaveRequests[i].PermissionType.Split('-');
                    LeaveRequests[i].PermissionType = strPermissionType[1].ToString().Trim();
                }
            }
            return(PartialView("ViewPermissionDetailPartial", LeaveRequests));
        }
示例#8
0
        public ActionResult ExportTimeSheetToExcel(TimeSheetQueryModel TimeSheetQueryModelObj, string RequestLevelPerson)
        {
            string errorMessage = string.Empty;
            string startDate    = TimeSheetQueryModelObj.DateRange.Substring(0, 10);
            string endDate      = TimeSheetQueryModelObj.DateRange.Substring(12);

            //TimeSheetQueryModelObj.FromDate = startDate;
            if (startDate != "")
            {
                try
                {
                    TimeSheetQueryModelObj.FromDate = DateTime.Parse(startDate, new CultureInfo("en-GB", true));
                    TimeSheetQueryModelObj.ToDate   = DateTime.Parse(endDate, new CultureInfo("en-GB", true));
                }
                catch (Exception)
                {
                    throw;
                }
            }

            List <TimeSheetModel> timeSheetModelList = GetEmployeeTimeSheet(TimeSheetQueryModelObj, out errorMessage, RequestLevelPerson);
            List <TimeSheetModel> excelData          = timeSheetModelList.ToList();

            if (excelData.Count > 0)
            {
                List <string> columns = new List <string>()
                {
                    "Date", "Shift", "In Time", "Out Time", "Working Hours", "Status", "Requests", "Day", "Late In", "Early Out", "Name", "Reporting Manager"
                };
                string fileName = string.Format("Timesheet_{0}{1}", DateTime.Now.ToString("ddMMyyyyHHmmss"), ".xlsx");

                //if (RequestLevelPerson == "My")
                //{
                //    EmployeeProfile profile = (EmployeeProfile)Session["Profile"];
                //    fileName = string.Format("{0}{1}{2}{3}", profile.FirstName, profile.LastName, DateTime.Now.ToString("ddMMyyyyHHmmss"), ".xlsx");
                //}
                //else
                //{
                //fileName = string.Format("TimeSheet_{0}{1}", DateTime.Now.ToString("ddMMyyyyHHmmss"), ".xlsx");
                //}
                byte[] filecontent = ExcelExportHelper.ExportTimesheetExcel(excelData, "", true, columns.ToArray());
                return(File(filecontent, ExcelExportHelper.ExcelContentType, fileName));
            }
            else
            {
                using (var Client = new LeaveClient())
                {
                    var result = Client.GetYearsFromLeaveBalance();
                    ViewBag.YearsInLeaveBal = result;
                }
                ViewBag.RequestLevelPerson = RequestLevelPerson;
                EmployeeAttendanceQueryModel data = new EmployeeAttendanceQueryModel
                {
                    ErrorMsg = "Excel file is not generated as no data returned."
                };
                return(View("~/Views/Attendance/TimeSheet.cshtml", data));
            }
        }
示例#9
0
        public ActionResult ShowLeaveDetail(Int64 LeaveId)
        {
            IList <LeaveDetailModel> LeaveRequests = null;

            using (var client = new LeaveClient())
            {
                LeaveRequests = client.ShowLeaveDetail(LeaveId);
            }
            return(PartialView("ShowLeaveDetailSplitPartial", LeaveRequests));
        }
示例#10
0
        public ActionResult LoadMonthWiseLeaveCount(int Year, string reqUsr, Int64?paramUserId, bool OnlyReportedToMe)
        {
            IList <MonthwiseLeavesCountModel> LeaveRequests = null;

            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetMonthwiseLeavesCount(Year, UserId, OnlyReportedToMe, paramUserId, reqUsr);
            }
            return(PartialView("MonthwiseLeaveCountPartial", LeaveRequests));
        }
示例#11
0
        public ActionResult LoadPendingCount()
        {
            int count = 0;

            using (var client = new LeaveClient())
            {
                count = client.GetPendingApprovalCount(UserId);
            }
            return(PartialView("PendingApprovalCountPartial", count));
        }
示例#12
0
        public ActionResult LoadTeamStatus()
        {
            List <TimeSheetModel> timeSheetModelList;

            using (var client = new LeaveClient())
            {
                timeSheetModelList = client.GetMyTeamTimeSheet(UserId);
            }
            return(PartialView("DashboardAttendancePartial", timeSheetModelList));
        }
示例#13
0
        public ActionResult GetLeaveSumary()
        {
            IList <LeaveSummary> LeaveRequests = null;

            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetLeaveSumary(UserId, System.DateTime.Now.Year);
            }
            return(View(LeaveRequests));
        }
示例#14
0
        public ActionResult LoadYearwiseLeaveSummary(int Year, string reqUsr, Int64?paramUserId, bool OnlyReportedToMe)
        {
            IList <EmployeeWiseLeaveSummaryModel> LeaveRequests = null;

            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetEmployeeWiseLeaveSumary(UserId, Year, reqUsr, paramUserId, OnlyReportedToMe);
            }
            return(PartialView("YearwiseSummaryPartial", LeaveRequests));
        }
示例#15
0
        public ActionResult GetEmployeeList(string term)
        {
            IList <EmployeeList> mdl;

            using (var Client = new LeaveClient())
            {
                mdl = Client.GetEmployeeList(term, UserId);
            }
            return(Json(mdl));
        }
示例#16
0
        public ActionResult LoadApplyLeaveSummary()
        {
            IList <LeaveSummary> LeaveRequests = null;

            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetLeaveSumary(this.UserId, System.DateTime.Now.Year);
            }
            return(PartialView("LeaveSummaryFullPartial", LeaveRequests));
        }
示例#17
0
        public ActionResult AdminOverTimePermissions()
        {
            PermissionQueryModel mdl = new PermissionQueryModel();

            using (var Client = new LeaveClient())
            {
                var result = Client.GetYearsFromLeaveBalance();
                ViewBag.YearsInLeaveBal = result;
            }
            ViewBag.RequestLevelPerson = "Admin";
            mdl.OnlyReportedToMe       = true;
            return(View("OverTimePermissions", mdl));
        }
示例#18
0
        public ActionResult LoadDaywiseLeaves(Int64?paramUserId, string FromDate, string ToDate, bool IsLeaveOnly, bool OnlyReportedToMe, string reqUsr, bool DonotShowRejected)
        {
            DateTime?startDateFormatted = null;
            DateTime?endDateFormatted   = null;

            if (FromDate != null)
            {
                if (FromDate.Trim() != "")
                {
                    startDateFormatted = DateTime.ParseExact(FromDate, "d-M-yyyy", CultureInfo.InvariantCulture);
                    endDateFormatted   = DateTime.ParseExact(ToDate, "d-M-yyyy", CultureInfo.InvariantCulture);
                }
            }
            if (FromDate == "" || ToDate == "")
            {
                startDateFormatted = System.DateTime.Now.Date;
                endDateFormatted   = System.DateTime.Now.Date;
            }
            IList <DaywiseLeaveDtlModel> LeaveRequests = null;

            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetDaywiseLeaveDtl(startDateFormatted, endDateFormatted, IsLeaveOnly, UserId, OnlyReportedToMe, paramUserId, reqUsr, DonotShowRejected);
            }
            for (int i = 0; i < LeaveRequests.Count; i++)
            {
                if (LeaveRequests[i].LeaveReason != null)
                {
                    if (LeaveRequests[i].LeaveReason.Length > 12)
                    {
                        LeaveRequests[i].ReasonShort = LeaveRequests[i].LeaveReason.Substring(0, 12) + "...";
                    }
                    else
                    {
                        LeaveRequests[i].ReasonShort = LeaveRequests[i].LeaveReason;
                    }
                }
                if (LeaveRequests[i].ApproverComments != null)
                {
                    if (LeaveRequests[i].ApproverComments.Length > 12)
                    {
                        LeaveRequests[i].CommentsShort = LeaveRequests[i].ApproverComments.Substring(0, 12) + "...";
                    }
                    else
                    {
                        LeaveRequests[i].CommentsShort = LeaveRequests[i].ApproverComments;
                    }
                }
            }
            return(PartialView("DaywiseLeaveDateRangeDtlPartial", LeaveRequests));
        }
示例#19
0
        public ActionResult AdminYearWiseLeaveSumary()
        {
            using (var Client = new LeaveClient())
            {
                var result = Client.GetYearsFromLeaveBalance();
                ViewBag.YearsInLeaveBal = result;
            }
            ViewBag.RequestLevelPerson = "Admin";
            YearwiseLeaveSummaryQueryModel qryMdl = new YearwiseLeaveSummaryQueryModel
            {
                OnlyReportedToMe = true
            };

            return(View("ViewEmployeeWiseLeaveSummary", qryMdl));
        }
示例#20
0
        public ActionResult TeamMonthWiseLeaves()
        {
            using (var Client = new LeaveClient())
            {
                var result = Client.GetYearsFromLeaveBalance();
                ViewBag.YearsInLeaveBal = result;
            }
            ViewBag.RequestLevelPerson = "Team";

            YearwiseLeaveSummaryQueryModel qryMdl = new YearwiseLeaveSummaryQueryModel
            {
                OnlyReportedToMe = true
            };

            return(View("MonthwiseLeaveCount", qryMdl));
        }
示例#21
0
        public ActionResult LoadAppyOnBehalf(DateTime?StartDate, DateTime?LeaveUpto)
        {
            ViewBag.PageTile = "Apply For Leave Others";
            var   request = new LeaveRequestModel();
            Int64 userId  = (Int64)TempData["ApplyForUserId"];

            request.UserId = userId;
            if (StartDate != null)
            {
                request.LeaveFrom = StartDate.Value;
            }
            else
            {
                request.NumberOfDays = 1;
                request.LeaveFrom    = System.DateTime.Now;
            }
            if (LeaveUpto != null)
            {
                request.LeaveUpto = LeaveUpto.Value;
            }
            else
            {
                request.LeaveUpto = System.DateTime.Now;
            }
            using (var Client = new LeaveClient())
            {
                var commonData = Client.ApplyLeaveCommonData(this.OfficeId, userId);
                request.lstLeaveTypes         = commonData.lstLeaveTypes;
                request.lstSummary            = commonData.lstSummary;
                request.WeekOffs              = commonData.WeekOffs;
                request.holidayDates          = commonData.holidayDates;
                request.TimebasedLeaveTypeIds = commonData.TimebasedLeaveTypeIds;
            }
            using (var Client = new EmployeeClient())
            {
                request.ReportingToName = Client.ReportingToName(userId);
            }

            request.ViewTitle      = "Apply Request For " + TempData["ApplyForName"].ToString();
            request.ApplyMode      = "Others";
            request.ApplyForUserId = userId;
            return(View("ApplyFor", request));
        }
示例#22
0
        public void SendRequestEmail(Int64 leaveId, string actionName)
        {
            try
            {
                EmailDataModel mdl;
                string         helloUser   = string.Empty;
                string         description = string.Empty;

                using (var client = new LeaveClient())
                {
                    mdl = client.GetEmailData(leaveId, actionName);
                }
                if (mdl.ToEmailId == "AutoApproved")
                {
                    actionName    = "Auto Approved";
                    mdl.ToEmailId = mdl.RequestorEmailId;
                }

                if (actionName == "Pending")
                {
                    helloUser   = mdl.ReportingToName;
                    description = "The request of the below employee is pending for your action:";
                }
                else
                {
                    helloUser   = mdl.RequestFor;
                    description = "Your request has been " + actionName + ".";
                }

                string body = string.Empty;

                body = this.PopulateBody(helloUser, description, mdl.RequestFor, mdl.EmpId, mdl.LeaveTypeText, mdl.Date, mdl.Duration, mdl.Reason, mdl.ReportingToName, mdl.ApproverComments, actionName);

                SendEmail(mdl.ToEmailId, mdl.CcEmailIds, "LMS - Request from " + mdl.RequestFor + " - " + actionName, body);
            }
            catch (Exception ex)
            {
                LogError(ex, leaveId);
                Elmah.ErrorLog.GetDefault(null).Log(new Elmah.Error(ex));
                throw;
            }
        }
示例#23
0
        public ActionResult ExportOverTimePermissionsExcel(PermissionQueryModel qryMdl, string RequestLevelPerson)
        {
            IList <PermissionDetailsModel> LeaveRequests = null;

            DateTime?startDateFormatted = null;
            DateTime?endDateFormatted   = null;
            string   startDate          = qryMdl.DateRange.Substring(0, 10);
            string   endDate            = qryMdl.DateRange.Substring(12);

            if (startDate != "")
            {
                try
                {
                    startDateFormatted = DateTime.Parse(startDate, new CultureInfo("en-GB", true));
                    endDateFormatted   = DateTime.Parse(endDate, new CultureInfo("en-GB", true));
                }
                catch (Exception)
                {
                    throw;
                }
            }
            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetOverTimePermissionDetail(qryMdl.SearchUserID, RequestLevelPerson, startDateFormatted, endDateFormatted, qryMdl.OnlyReportedToMe, UserId);
            }
            List <PermissionDetailsModel> excelData = new List <PermissionDetailsModel>();

            excelData = LeaveRequests.ToList();
            if (excelData.Count > 0)
            {
                string[] columns     = { "Emp Id", "Name", "Month", "Over Time Date", "Time From", "Time To", "Duration", "Reason", "Status", "Approver Comments", "Reporting Manager" };
                byte[]   filecontent = ExcelExportHelper.ExportOverTimeExcel(excelData, "", false, columns);
                return(File(filecontent, ExcelExportHelper.ExcelContentType, "OverTimeReport_" + System.DateTime.Now + ".xlsx"));
            }
            else
            {
                ViewBag.RequestLevelPerson = RequestLevelPerson;

                qryMdl.ErrorMsg = "Excel file is not generated as no data returned.";
                return(View("OverTimePermissions", qryMdl));
            }
        }
示例#24
0
        public ActionResult Apply(DateTime?StartDate, DateTime?LeaveUpto)
        {
            ViewBag.PageTile = "Apply For Leave";

            var request = new LeaveRequestModel
            {
                UserId = this.UserId
            };

            if (StartDate != null)
            {
                request.LeaveFrom = StartDate.Value;
            }
            else
            {
                request.NumberOfDays = 1;
                request.LeaveFrom    = System.DateTime.Now;
            }

            if (LeaveUpto != null)
            {
                request.LeaveUpto = LeaveUpto.Value;
            }
            else
            {
                request.LeaveUpto = System.DateTime.Now;
            }

            using (var Client = new LeaveClient())
            {
                var commonData = Client.ApplyLeaveCommonData(this.OfficeId, this.UserId);
                request.lstLeaveTypes         = commonData.lstLeaveTypes;
                request.lstSummary            = commonData.lstSummary;
                request.WeekOffs              = commonData.WeekOffs;
                request.holidayDates          = commonData.holidayDates;
                request.TimebasedLeaveTypeIds = commonData.TimebasedLeaveTypeIds;
            }

            request.ReportingToName = this.ReportingToName;

            return(View(request));
        }
示例#25
0
        public ActionResult ListHolidayByYear(string year)
        {
            int holidayYear = Convert.ToInt32(year);
            IList <HolidayModel> holidayModelList;
            bool previousYear = false;
            bool nextYear     = false;

            using (var client = new LeaveClient())
            {
                holidayModelList = client.GetHolidaysDetails(UserId, holidayYear, ref previousYear, ref nextYear);
            }
            ViewBag.PreviousYear = previousYear ? "" : "disabled";
            ViewBag.NextYear     = nextYear ? "" : "disabled";
            if (holidayModelList.Count > 0)
            {
                ViewBag.HolidayOfficeName = holidayModelList[0].HolidayOfficeName;
                ViewBag.HolidayYear       = holidayModelList[0].HolidayDate.Year;
            }
            return(PartialView("~/Views/Dashboard/HolidayListPartial.cshtml", holidayModelList));
        }
示例#26
0
        public ActionResult ExportToExcel(DaywiseLeaveQueryModel data, string RequestLevelPerson)
        {
            IList <DaywiseLeaveDtlModel> LeaveRequests = null;
            string   startDate          = data.DateRange.Substring(0, 10);
            string   endDate            = data.DateRange.Substring(12);
            DateTime?startDateFormatted = null;
            DateTime?endDateFormatted   = null;

            if (startDate != "")
            {
                try
                {
                    startDateFormatted = DateTime.Parse(startDate, new CultureInfo("en-GB", true));
                    endDateFormatted   = DateTime.Parse(endDate, new CultureInfo("en-GB", true));
                }
                catch (Exception)
                {
                    throw;
                }
            }
            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetDaywiseLeaveDtl(startDateFormatted, endDateFormatted, data.IsLeaveOnly, UserId, data.OnlyReportedToMe, data.SearchUserID, RequestLevelPerson, data.DonotShowRejected);
            }
            List <DaywiseLeaveDtlModel> excelData = new List <DaywiseLeaveDtlModel>();

            excelData = LeaveRequests.ToList();
            if (excelData.Count > 0)
            {
                string[] columns     = { "Emp Id", "Name", "Request Type", "Leave Balance", "Request Date", "Part Of Day", "Duration", "Status", "Reason", "Approver Comments" };
                byte[]   filecontent = ExcelExportHelper.ExportExcel(excelData, "", false, columns);
                return(File(filecontent, ExcelExportHelper.ExcelContentType, "DaywiseReport_" + System.DateTime.Now + ".xlsx"));
            }
            else
            {
                ViewBag.RequestLevelPerson = RequestLevelPerson;
                data.ErrorMsg = "Excel file is not generated as no data returned.";
                return(View("DaywiseLeaveDateRangeView", data));
            }
        }
示例#27
0
        public ActionResult ViewLeaveHistory(bool OnlyReportedToMe, string FromDate, string ToDate, bool IsLeaveOnly, Int64?paramUserId, string RequestMenuUser)
        {
            DateTime?startDateFormatted = null;
            DateTime?endDateFormatted   = null;

            if (FromDate != "")
            {
                try
                {
                    startDateFormatted = DateTime.Parse(FromDate, new CultureInfo("en-GB", true));
                    endDateFormatted   = DateTime.Parse(ToDate, new CultureInfo("en-GB", true));
                }
                catch (Exception)
                {
                    throw;
                }
            }
            if (FromDate == "" || ToDate == "")
            {
                startDateFormatted = System.DateTime.Now.Date;
                endDateFormatted   = System.DateTime.Now.Date;
            }
            ManageTeamLeavesQueryModel qryMdl = new ManageTeamLeavesQueryModel
            {
                OnlyReportedToMe = OnlyReportedToMe,
                FromDate         = startDateFormatted,
                ToDate           = endDateFormatted,
                RequestMenuUser  = RequestMenuUser,
                IsLeaveOnly      = IsLeaveOnly,
                SearchUserID     = paramUserId
            };
            IList <TeamLeaves> LeaveRequests = null;

            qryMdl.LeadId = UserId;
            using (var client = new LeaveClient())
            {
                LeaveRequests = client.GetTeamLeaveHistory(qryMdl);
            }
            return(PartialView("TeamHistoryDetailPartial", LeaveRequests));
        }
示例#28
0
 public ActionResult ChangeStatus(LeaveStatusModel obj)
 {
     obj.UserId = UserId;
     using (var client = new LeaveClient())
     {
         string Status = client.ChangeStatus(obj);
         if (Status == "Saved")
         {
             string action = string.Empty;
             if (obj.Status == "R")
             {
                 action = "Rejected";
             }
             else if (obj.Status == "A")
             {
                 action = "Approved";
             }
             else if (obj.Status == "C")
             {
                 action = "Cancelled";
             }
             try
             {
                 EmailHelper emailHelper = new EmailHelper();
                 //#if DEBUG
                 emailHelper.SendRequestEmail(Convert.ToInt64(obj.LeaveId), action);
                 //#else
                 //    BackgroundJob.Enqueue(() => emailHelper.SendEmail(Convert.ToInt64(obj.LeaveId), action));
                 //#endif
             }
             catch
             {
                 throw;
             }
         }
         return(Json(Status));
     }
 }
示例#29
0
        public ActionResult Index()
        {
            DashBoardModel dbMdl = new DashBoardModel();

            using (var client = new LeaveClient())
            {
                dbMdl = client.GetDashboardData(UserId, OfficeId);
            }
            dbMdl.IsLMSApprover      = IsLMSApprover;
            dbMdl.UserRole           = Role;
            ViewBag.OfficeEmployees  = dbMdl.EmployeeCount;
            ViewBag.OfficeAttendance = dbMdl.EmployeeInOfficeCount;

            ViewBag.PreviousYear = dbMdl.PreviousYear ? "" : "disabled";
            ViewBag.NextYear     = dbMdl.NextYear ? "" : "disabled";
            if (dbMdl.lstHolidayModel.Count > 0)
            {
                ViewBag.HolidayOfficeName = dbMdl.lstHolidayModel[0].HolidayOfficeName;
                ViewBag.HolidayYear       = dbMdl.lstHolidayModel[0].HolidayDate.Year;
            }

            return(View(dbMdl));
        }
示例#30
0
        public void SendEmailforAddLeave(List <EmployeeLeaveBalanceDetails> lst)
        {
            try
            {
                Int64 leaveTypeId = 0;
                if (lst.Count() > 0)
                {
                    for (int i = 0; i < lst.Count(); i++)
                    {
                        if (lst[i].NoOfDays > 0)
                        {
                            EmailDataModel mdl;
                            string         description = string.Empty;
                            leaveTypeId = Convert.ToInt64(lst[i].LeaveTypeId);
                            using (var client = new LeaveClient())
                            {
                                mdl = client.GetEmailDataAddLeave(Convert.ToInt64(lst[i].UserId), leaveTypeId);
                            }

                            description = "Your " + mdl.LeaveTypeText + " balance has been updated.";

                            string body        = string.Empty;
                            string transaction = lst[i].CreditOrDebit == "C" ? "Credit" : "Debit";
                            body = this.PopulateBodyforAddLeave(mdl.RequestFor, description, mdl.EmpId, mdl.LeaveTypeText, lst[i].BalanceDays.ToString(), transaction, lst[i].NoOfDays.ToString(), lst[i].TotalDays.ToString(), lst[i].Remarks);

                            SendEmail(mdl.RequestorEmailId, mdl.CcEmailIds, "LMS - " + mdl.RequestFor + " - " + mdl.LeaveTypeText + " balance updated", body);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Elmah.ErrorLog.GetDefault(null).Log(new Elmah.Error(ex));
                throw;
            }
        }