Sending the ExpenseLogs in Details API

This commit is contained in:
ashutosh.nehete 2025-08-02 12:48:20 +05:30
parent a7392a515d
commit 2ccae935f3
5 changed files with 18 additions and 5 deletions

View File

@ -27,6 +27,7 @@ namespace Marco.Pms.Model.ViewModels.Expenses
public string Description { get; set; } = string.Empty;
public string? Location { get; set; }
public List<BasicDocumentVM> Documents { get; set; } = new List<BasicDocumentVM>();
public List<ExpenseLogVM> ExpenseLogs { get; set; } = new List<ExpenseLogVM>();
public string? GSTNumber { get; set; }
public int? NoOfPersons { get; set; }
public bool IsActive { get; set; } = true;

View File

@ -0,0 +1,12 @@
using Marco.Pms.Model.ViewModels.Activities;
namespace Marco.Pms.Model.ViewModels.Expenses
{
public class ExpenseLogVM
{
public Guid Id { get; set; }
public BasicEmployeeVM? UpdatedBy { get; set; }
public string Action { get; set; } = string.Empty;
public string? Comment { get; set; }
}
}

View File

@ -188,11 +188,7 @@ namespace MarcoBMS.Services.Controllers
employeeQuery = employeeQuery.Where(e => (e.FirstName + " " + e.LastName).ToLower().Contains(searchStringLower));
}
if (string.IsNullOrWhiteSpace(searchString) && (projectId == null || projectId == Guid.Empty))
{
employeeQuery = employeeQuery.Take(10);
}
var response = await employeeQuery.Select(e => _mapper.Map<BasicEmployeeVM>(e)).ToListAsync();
var response = await employeeQuery.Take(10).Select(e => _mapper.Map<BasicEmployeeVM>(e)).ToListAsync();
return Ok(ApiResponse<object>.SuccessResponse(response, $"{response.Count} records of employees fetched successfully", 200));
}
[HttpGet]

View File

@ -123,6 +123,7 @@ namespace Marco.Pms.Services.MappingProfiles
CreateMap<Expenses, ExpenseList>();
CreateMap<CreateExpensesDto, Expenses>();
CreateMap<UpdateExpensesDto, Expenses>();
CreateMap<ExpenseLog, ExpenseLogVM>();
CreateMap<ExpensesReimburse, ExpensesReimburseVM>();
CreateMap<Expenses, ExpenseDetailsMongoDB>()

View File

@ -321,6 +321,9 @@ namespace Marco.Pms.Services.Service
response!.ThumbPreSignedUrl = _s3Service.GeneratePreSignedUrl(document.ThumbS3Key);
}
var expenselogs = await _context.ExpenseLogs.Include(el => el.UpdatedBy).Where(el => el.ExpenseId == vm.Id).Select(el => _mapper.Map<ExpenseLogVM>(el)).ToListAsync();
vm.ExpenseLogs = expenselogs;
_logger.LogInfo("Employee {EmployeeId} successfully fetched expense details with ID {ExpenseId}", loggedInEmployee.Id, vm.Id);
return ApiResponse<object>.SuccessResponse(vm, "Successfully fetched the details of expense", 200);