public virtual async Task <IActionResult> GetAllEmployeeExcusesJsonForKendo([DataSourceRequest] DataSourceRequest request , int employeeId) { var allExcusesDataList = await _employeesExcusesManager.GetAllAsNoTrackingListAsync(e => e.EmployeeId == employeeId); var resultData = _mapper.Map <List <EmployeeExcuseViewModel> >(allExcusesDataList); if (resultData != null && resultData.Count > 0) { try { var erpData = await _erpManager.GetEmployeesInfo(new int[] { employeeId }); var empInfo = erpData?.FirstOrDefault(); if (empInfo != null) { foreach (var empExcuse in resultData) { empExcuse.EmployeeName = empInfo.Name; } } } catch (Exception) { } } return(Json(resultData.ToDataSourceResult(request))); }
public async Task <IActionResult> Details(int id) { try { var resultData = await _erpManager.GetEmployeesInfo(new int[] { id }); if (resultData == null || resultData.Count < 1) { return(NotFound()); } resultData = await setupEmployeesInfo(resultData, DateTime.Today); return(View(resultData.First())); } catch (Exception) { throw; } }
public virtual async Task <IActionResult> GetAllEmployeeCalendarsJsonForKendo([DataSourceRequest] DataSourceRequest request , int employeeId) { try { var allDataList = await _employeesCalendarsManager.GetAllAsNoTrackingListAsync(e => e.EmployeeId == employeeId); var resultData = _mapper.Map <List <EmployeeCalendarViewModel> >(allDataList); if (resultData != null && resultData.Count > 0) { try { var erpData = await _erpManager.GetEmployeesInfo(new int[] { employeeId }); var empInfo = erpData?.FirstOrDefault(); if (empInfo != null) { foreach (var empCalendar in resultData) { empCalendar.EmployeeName = empInfo.Name; } } } catch (Exception) { } } return(Json(resultData.OrderBy(c => c.StartDate).ToDataSourceResult(request))); } catch (Exception ex) { return(Json(new DataSourceResult() { Errors = ex.Message })); } }
public async Task <bool> DoWork() { try { //Check if there is any open proceesing request var openProcessingRequest = await _processingsRequestsManager.GetSingleItemAsync(pr => !pr.Completed); if (openProcessingRequest != null) { //Get requset employees ids IEnumerable <decimal> listOfEmployeesIdsNumbers = openProcessingRequest.Employees.TryParseToNumbers(); List <int> employeesIds = listOfEmployeesIdsNumbers?.Select(d => (int)d).ToList() ?? new List <int>(); //Get last processed day report for required employees var lastDayReport = await _employeesDaysReportsManager .GetAll(d => (employeesIds.Count < 1 || employeesIds.Contains(d.EmployeeId)) && d.ProcessingDate > openProcessingRequest.RequestDate) .OrderByDescending(d => d.EmployeeId).ThenByDescending(d => d.DayDate).FirstOrDefaultAsync(); int lastEmployeeId = lastDayReport?.EmployeeId ?? 0; DateTime fromDate = lastDayReport?.DayDate.AddDays(1) ?? openProcessingRequest.FromDate; DateTime toDate = lastDayReport?.DayDate.AddDays(10) ?? openProcessingRequest.FromDate.AddDays(10); toDate = toDate <= openProcessingRequest.ToDate ? toDate : openProcessingRequest.ToDate; var employees = await _erpManager.GetEmployeesInfo(employeesIds); var lastRequestEmployeeId = employees.Max(e => e.EmployeeId); if (fromDate > openProcessingRequest.ToDate) { if (lastEmployeeId >= lastRequestEmployeeId) { openProcessingRequest.Completed = true; openProcessingRequest.CompletedDate = DateTime.Now; await _processingsRequestsManager.UpdateItemAsync(openProcessingRequest); return(true); } fromDate = openProcessingRequest.FromDate; toDate = openProcessingRequest.FromDate.AddDays(10); toDate = toDate <= openProcessingRequest.ToDate ? toDate : openProcessingRequest.ToDate; employees = employees .Where(e => e.EmployeeId > lastEmployeeId).OrderBy(e => e.EmployeeId) .Take(100).ToList(); } else if (lastEmployeeId > 0) { employees = employees .Where(e => e.EmployeeId <= lastEmployeeId).OrderByDescending(e => e.EmployeeId) .Take(100).ToList(); } else { employees = employees .Where(e => e.EmployeeId > lastEmployeeId).OrderBy(e => e.EmployeeId) .Take(100).ToList(); } return(await processDaysReports(employees, fromDate, toDate)); } } catch (Exception ex) { } return(true); }