From 6b8ba85a311e544e8c6c6561d518b12532831403 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Tue, 25 Nov 2025 15:06:56 +0530 Subject: [PATCH] added commented job progreaasion API --- .../Controllers/DashboardController.cs | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/Marco.Pms.Services/Controllers/DashboardController.cs b/Marco.Pms.Services/Controllers/DashboardController.cs index eee93bd..edccc51 100644 --- a/Marco.Pms.Services/Controllers/DashboardController.cs +++ b/Marco.Pms.Services/Controllers/DashboardController.cs @@ -1074,5 +1074,79 @@ namespace Marco.Pms.Services.Controllers ApiResponse.ErrorResponse("An error occurred while fetching pending expenses.", "An error occurred while fetching pending expenses.", 500)); // [Error Response] } } + + //[HttpGet("job/progression")] + //public async Task GetJobProgressionAsync([FromQuery] Guid? projectId) + //{ + // Guid AssignedStatus = Guid.Parse("cfa1886d-055f-4ded-84c6-42a2a8a14a66"); + // Guid InProgressStatus = Guid.Parse("5a6873a5-fed7-4745-a52f-8f61bf3bd72d"); + // Guid ReviewDoneStatus = Guid.Parse("ed10ab57-dbaa-4ca5-8ecd-56745dcbdbd7"); + // Guid ClosedStatus = Guid.Parse("3ddeefb5-ae3c-4e10-a922-35e0a452bb69"); + + // if (tenantId == Guid.Empty) + // { + // _logger.LogWarning("Invalid request: TenantId is empty on progression endpoint"); + // return BadRequest(ApiResponse.ErrorResponse("Invalid TenantId", "Provided Invalid TenantId", 400)); + // } + + // var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); + // var jobIds = await _context.JobEmployeeMappings + // .Where(jem => jem.AssigneeId == loggedInEmployee.Id && jem.TenantId == tenantId) + // .Select(jem => jem.JobTicketId) + // .ToListAsync(); + + // if (projectId.HasValue) + // { + // var hasPermission = await _permissionServices.HasServiceProjectPermission(loggedInEmployee.Id, projectId.Value); + // if (!hasPermission) + // { + // return StatusCode(403, + // ApiResponse.ErrorResponse("You do not have permission to access this resource", "You do not have permission to access this resource", 403)); + // } + // var jobs = await _context.JobTickets + // .Include(jt => jt.Project) + // .Include(jt => jt.CreatedBy).ThenInclude(e => e!.JobRole) + // .Where(jt => jt.ProjectId == projectId.Value + // && jt.StatusId != ReviewDoneStatus + // && jt.StatusId != ClosedStatus + // && jt.Project != null + // && jt.CreatedBy != null + // && jt.TenantId == tenantId) + // .ToListAsync(); + + // var inProgressJobIds = jobs.Where(jt => jt.StatusId == InProgressStatus).Select(jt => jt.Id).ToList(); + + // var latestTagIns = await _context.JobAttendance + // .Include(ja => ja.Employee) + // .Where(ja => inProgressJobIds.Contains(ja.JobTicketId) + // && ja.Action == TAGGING_MARK_TYPE.TAG_IN + // && ja.TaggedOutAt == null + // && ja.TenantId == tenantId) + // .GroupBy(ja => ja.JobTicketId) + // .Select(g => new + // { + // JobTicketId = g.Key, + // Employee = g.Select(ja => ja.Employee).FirstOrDefault(), + // TagInAt = g.Max(ja => ja.TaggedInAt) + // }) + // .ToListAsync(); + + // var assignedJobs = jobs + // .Where(jt => jt.StatusId == AssignedStatus) + // .Take(5) + // .Select(jt => new + // { + // Project = jt.Project!.Name, + // AssignedBy = jt.CreatedBy!.FirstName + " " + jt.CreatedBy.LastName, + // Title = jt.Title, + // AssignedAt = jt.CreatedAt, + + // }) + // .ToList(); + // var inProgressJobs = jobs.Where(jt => jt.StatusId == InProgressStatus).Take(5).ToList(); + // var selfAssignedJobs = jobs.Where(jt => jobIds.Contains(jt.Id)).Take(5).ToList(); + // } + // return Ok(); + //} } }