Fixed the bug of Attendance Regularization
This commit is contained in:
parent
727e4794da
commit
7ddb1e2f8e
@ -6,11 +6,12 @@ namespace Marco.Pms.Model.ViewModels.Attendance
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public int EmployeeId { get; set; }
|
public int EmployeeId { get; set; }
|
||||||
public string FirstName { get; set; }
|
public string? FirstName { get; set; }
|
||||||
public string? LastName { get; set; }
|
public string? LastName { get; set; }
|
||||||
public string? EmployeeAvatar { get; set; }
|
public string? EmployeeAvatar { get; set; }
|
||||||
public DateTime? CheckInTime { get; set; }
|
public DateTime? CheckInTime { get; set; }
|
||||||
public DateTime? CheckOutTime { get; set; }
|
public DateTime? CheckOutTime { get; set; }
|
||||||
|
public string? JobRoleName { get; set; }
|
||||||
public ATTENDANCE_MARK_TYPE Activity { get; set; }
|
public ATTENDANCE_MARK_TYPE Activity { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
var result = new List<EmployeeAttendanceVM>();
|
var result = new List<EmployeeAttendanceVM>();
|
||||||
Attendance attendance = null;
|
Attendance? attendance = null;
|
||||||
|
|
||||||
if (dateFrom == null) fromDate = DateTime.UtcNow.Date;
|
if (dateFrom == null) fromDate = DateTime.UtcNow.Date;
|
||||||
if (dateTo == null && dateFrom != null) toDate = fromDate.AddDays(-1);
|
if (dateTo == null && dateFrom != null) toDate = fromDate.AddDays(-1);
|
||||||
@ -119,7 +119,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
LastName = teamMember.Employee.LastName
|
LastName = teamMember.Employee.LastName
|
||||||
};
|
};
|
||||||
|
|
||||||
attendance = lstAttendance.Find(x => x.EmployeeID == teamMember.EmployeeId);
|
attendance = lstAttendance.Find(x => x.EmployeeID == teamMember.EmployeeId) ?? new Attendance();
|
||||||
if (attendance != null)
|
if (attendance != null)
|
||||||
{
|
{
|
||||||
result1.Id = attendance.Id;
|
result1.Id = attendance.Id;
|
||||||
@ -158,7 +158,7 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
var result = new List<EmployeeAttendanceVM>();
|
var result = new List<EmployeeAttendanceVM>();
|
||||||
Attendance attendance = null;
|
Attendance? attendance = null;
|
||||||
|
|
||||||
if (date == null) forDate = DateTime.UtcNow.Date;
|
if (date == null) forDate = DateTime.UtcNow.Date;
|
||||||
|
|
||||||
@ -166,18 +166,27 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
|
|
||||||
|
|
||||||
List<ProjectAllocation> projectteam = await _projectsHelper.GetTeamByProject(TenantId, projectId, IncludeInActive);
|
List<ProjectAllocation> projectteam = await _projectsHelper.GetTeamByProject(TenantId, projectId, IncludeInActive);
|
||||||
|
var idList = projectteam.Select(p => p.EmployeeId).ToList();
|
||||||
|
//var emp = await _context.Employees.Where(e => idList.Contains(e.Id)).Include(e => e.JobRole).ToListAsync();
|
||||||
|
var jobRole = await _context.JobRoles.ToListAsync();
|
||||||
|
|
||||||
foreach (ProjectAllocation teamMember in projectteam)
|
foreach (ProjectAllocation teamMember in projectteam)
|
||||||
{
|
{
|
||||||
|
if (teamMember.Employee.JobRole != null)
|
||||||
|
{
|
||||||
var result1 = new EmployeeAttendanceVM()
|
var result1 = new EmployeeAttendanceVM()
|
||||||
{
|
{
|
||||||
EmployeeAvatar = null,
|
EmployeeAvatar = null,
|
||||||
EmployeeId = teamMember.EmployeeId,
|
EmployeeId = teamMember.EmployeeId,
|
||||||
FirstName = teamMember.Employee.FirstName,
|
FirstName = teamMember.Employee.FirstName,
|
||||||
LastName = teamMember.Employee.LastName
|
LastName = teamMember.Employee.LastName,
|
||||||
|
JobRoleName = teamMember.Employee.JobRole.Name,
|
||||||
};
|
};
|
||||||
|
|
||||||
attendance = lstAttendance.Find(x => x.EmployeeID == teamMember.EmployeeId);
|
//var member = emp.Where(e => e.Id == teamMember.EmployeeId);
|
||||||
|
|
||||||
|
|
||||||
|
attendance = lstAttendance.Find(x => x.EmployeeID == teamMember.EmployeeId) ?? new Attendance();
|
||||||
if (attendance != null)
|
if (attendance != null)
|
||||||
{
|
{
|
||||||
result1.Id = attendance.Id;
|
result1.Id = attendance.Id;
|
||||||
@ -188,9 +197,11 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
|
|
||||||
result.Add(result1);
|
result.Add(result1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
result.Sort(delegate (EmployeeAttendanceVM x, EmployeeAttendanceVM y) {
|
result.Sort(delegate (EmployeeAttendanceVM x, EmployeeAttendanceVM y) {
|
||||||
return x.FirstName.CompareTo(y.FirstName);
|
//return x.FirstName.CompareTo(y.FirstName);
|
||||||
|
return string.Compare(x.FirstName, y.FirstName, StringComparison.Ordinal);
|
||||||
});
|
});
|
||||||
|
|
||||||
return Ok(ApiResponse<object>.SuccessResponse(result, System.String.Format("{0} Attendance records fetched successfully", result.Count), 200));
|
return Ok(ApiResponse<object>.SuccessResponse(result, System.String.Format("{0} Attendance records fetched successfully", result.Count), 200));
|
||||||
@ -215,8 +226,9 @@ namespace MarcoBMS.Services.Controllers
|
|||||||
using var transaction = await _context.Database.BeginTransactionAsync();
|
using var transaction = await _context.Database.BeginTransactionAsync();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Attendance attendance = await _context.Attendes.FirstOrDefaultAsync(a => a.EmployeeID == recordAttendanceDot.EmployeeID &&
|
Attendance? attendance = await _context.Attendes.FirstOrDefaultAsync(a => a.Id == recordAttendanceDot.Id && a.TenantId == TenantId); ;
|
||||||
a.AttendanceDate.Date == recordAttendanceDot.Date.Date && a.TenantId == TenantId); ;
|
|
||||||
|
if (recordAttendanceDot.MarkTime == null) return BadRequest(ApiResponse<object>.ErrorResponse("Invalid Mark Time", "Invalid Mark Time",400));
|
||||||
|
|
||||||
DateTime finalDateTime = GetDateFromTimeStamp(recordAttendanceDot, recordAttendanceDot.MarkTime);
|
DateTime finalDateTime = GetDateFromTimeStamp(recordAttendanceDot, recordAttendanceDot.MarkTime);
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
_context = context;
|
_context = context;
|
||||||
_userHelper = userHelper;
|
_userHelper = userHelper;
|
||||||
}
|
}
|
||||||
[HttpPost("create-activity")]
|
[HttpPost("activity")]
|
||||||
public async Task<IActionResult> CreateActivity([FromBody] CreateActivityMasterDto createActivity)
|
public async Task<IActionResult> CreateActivity([FromBody] CreateActivityMasterDto createActivity)
|
||||||
{
|
{
|
||||||
var tenantId = _userHelper.GetTenantId();
|
var tenantId = _userHelper.GetTenantId();
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
context.Response.Headers.Remove("X-Powered-By");
|
||||||
|
context.Response.Headers.Remove("Server");
|
||||||
await _next(context);
|
await _next(context);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user