public ActionResult ExportAccessCardAttendanceToExcel(EmployeeAttendanceQueryModel EmployeeAttendanceQueryModelObj, string RequestLevelPerson) { List <EmployeeAttendanceModel> excelData = GetAccessCardEmployeeAttendanceList(EmployeeAttendanceQueryModelObj.CardID.ToString(), (EmployeeAttendanceQueryModelObj.FromDate == DateTime.MinValue ? "" : EmployeeAttendanceQueryModelObj.FromDate.ToString()), (EmployeeAttendanceQueryModelObj.ToDate == DateTime.MinValue ? "" : EmployeeAttendanceQueryModelObj.ToDate.ToString()), RequestLevelPerson).ToList(); if (excelData.Count > 0) { List <string> columns = new List <string>() { "Card Id", "Date", "In Out Time", "In Out", "Name" }; string fileName = string.Format("AccessCardReport_{0}{1}", DateTime.Now.ToString("ddMMyyyyHHmmss"), ".xlsx"); if (EmployeeAttendanceQueryModelObj.RequestLevelPerson == "My") { columns = new List <string>() { "Card Id", "Date", "In Out Time", "In Out", "Name" }; } byte[] filecontent = ExcelExportHelper.ExportExcelAccessCardAttendance(excelData, "", false, columns.ToArray()); return(File(filecontent, ExcelExportHelper.ExcelContentType, fileName)); } else { ViewBag.RequestLevelPerson = RequestLevelPerson; EmployeeAttendanceQueryModel data = new EmployeeAttendanceQueryModel { ErrorMsg = "Excel file is not generated as no data returned." }; return(View("~/Views/Attendance/AccessCardAttendance.cshtml", data)); } }
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)); } }
public async Task <EmployeeAttendanceQueryModel> EmployeeWorkingDays(int employeeId, DateTime startTime, DateTime endTime) { var duration = await EmployeeAttendance.GetEmployeeAttendanceForDuration(employeeId, startTime, endTime); var workingFullDays = duration.Where(d => d.Duration >= 480).Count(); var workingHalfDays = duration.Where(d => d.Duration <= 480 && d.Duration >= 240).Count(); var totalWorkingDays = workingFullDays + (workingHalfDays / 2); var employeeAttendanceDUration = new EmployeeAttendanceQueryModel() { EmployeeId = employeeId, QueryEndTime = endTime, QueryStartTime = startTime, TotalWorkingDays = totalWorkingDays }; return(employeeAttendanceDUration); }