Merge branch 'Ashutosh_Enhancement#276_TodaysPlanned' into Issue_Jun_1W

# Conflicts:
#	Marco.Pms.Services/Controllers/ProjectController.cs
This commit is contained in:
Vikas Nale 2025-06-03 17:28:33 +05:30
commit 2e9459444f
3 changed files with 19 additions and 48 deletions

View File

@ -15,5 +15,6 @@ namespace Marco.Pms.Model.ViewModels.Projects
public List<WorkArea>? workAreas { get; set; }
public List<WorkItem>? workItems { get; set; }
public List<TaskAllocation>? Tasks { get; set; }
}
}

View File

@ -5,6 +5,7 @@ namespace Marco.Pms.Model.ViewModels.Projects
public class WorkItemVM
{
public Guid WorkItemId { get; set; }
public double TodaysAssigned { get; set; }
public WorkItem? WorkItem { get; set; }
}
}

View File

@ -1,5 +1,5 @@
using System.Collections.Generic;
using Marco.Pms.DataAccess.Data;
using Marco.Pms.DataAccess.Data;
using Marco.Pms.Model.Activities;
using Marco.Pms.Model.Dtos.Project;
using Marco.Pms.Model.Employees;
using Marco.Pms.Model.Entitlements;
@ -162,17 +162,25 @@ namespace MarcoBMS.Services.Controllers
foreach (WorkItem workItemDto in vm.workItems.Where(c => c.WorkAreaId == workAreaDto.Id).ToList())
{
WorkItemVM workItemVM = new WorkItemVM() { WorkItemId = workItemDto.Id, WorkItem = workItemDto };
//workItemVM.WorkItem.WorkArea = null
workItemVM.WorkItem.WorkArea = new WorkArea();
//workItemVM.WorkItem.ActivityMaster.Tenant = null;
if (workItemVM.WorkItem.ActivityMaster != null)
{
workItemVM.WorkItem.ActivityMaster.Tenant = new Tenant();
}
//workItemVM.WorkItem.Tenant = null;
workItemVM.WorkItem.Tenant = new Tenant();
double todaysAssigned = 0;
if (vm.Tasks != null)
{
var tasks = vm.Tasks.Where(t => t.WorkItemId == workItemDto.Id).ToList();
foreach (TaskAllocation task in tasks)
{
todaysAssigned += task.PlannedTask;
}
}
workItemVM.TodaysAssigned = todaysAssigned;
workAreaVM.WorkItems.Add(workItemVM);
}
@ -211,13 +219,14 @@ namespace MarcoBMS.Services.Controllers
idList = workAreas.Select(o => o.Id).ToList();
List<WorkItem> workItems = await _context.WorkItems.Include(c => c.WorkCategoryMaster).Where(c => idList.Contains(c.WorkAreaId)).Include(c => c.ActivityMaster).ToListAsync();
// List <WorkItem> workItems = _unitOfWork.WorkItem.GetAll(c => idList.Contains(c.WorkAreaId), includeProperties: "ActivityMaster").ToList();
idList = workItems.Select(t => t.Id).ToList();
List<TaskAllocation> tasks = await _context.TaskAllocations.Where(t => idList.Contains(t.WorkItemId) && t.AssignmentDate.Date == DateTime.UtcNow.Date).ToListAsync();
vm.project = project;
vm.buildings = buildings;
vm.floors = floors;
vm.workAreas = workAreas;
vm.workItems = workItems;
vm.Tasks = tasks;
return vm;
}
@ -654,45 +663,5 @@ namespace MarcoBMS.Services.Controllers
}
[HttpGet("assigned-projects/{employeeId}")]
public async Task<IActionResult> GetProjectsByEmployee([FromRoute] Guid employeeId)
{
Guid tenantId = _userHelper.GetTenantId();
if (employeeId == Guid.Empty)
{
return BadRequest(ApiResponse<object>.ErrorResponse("Invalid details.", "Employee id not valid.", 400));
}
List<Guid> projectList = await _context.ProjectAllocations
.Where(c => c.TenantId == tenantId && c.EmployeeId == employeeId)
.Select(c => c.ProjectId).Distinct()
.ToListAsync();
if (!projectList.Any())
{
return NotFound(ApiResponse<object>.SuccessResponse(new List<object>(), "No projects found.",404));
}
List<Project> projectlist = await _context.Projects
.Where(p => projectList.Contains(p.Id))
.ToListAsync();
List<ProjectListVM> projects = new List<ProjectListVM>();
foreach (var project in projectlist) {
projects.Add(project.ToProjectListVMFromProject());
}
return Ok(ApiResponse<object>.SuccessResponse(projects, "Success.", 200));
}
}
}