Added audit while mark as complete ininvoice

This commit is contained in:
ashutosh.nehete 2025-10-17 11:10:38 +05:30
parent 843dc8edfc
commit 34bd84ad73

View File

@ -1144,6 +1144,7 @@ namespace Marco.Pms.Services.Controllers
// Create a scope for permission service resolution // Create a scope for permission service resolution
using var scope = _serviceScopeFactory.CreateScope(); using var scope = _serviceScopeFactory.CreateScope();
var _permission = scope.ServiceProvider.GetRequiredService<PermissionServices>(); var _permission = scope.ServiceProvider.GetRequiredService<PermissionServices>();
var _updateLogHelper = scope.ServiceProvider.GetRequiredService<UtilityMongoDBHelper>();
// Get the currently logged-in employee // Get the currently logged-in employee
var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync();
@ -1196,15 +1197,31 @@ namespace Marco.Pms.Services.Controllers
try try
{ {
var invoiceStateBeforeChange = _updateLogHelper.EntityToBsonDocument(invoice);
// Mark invoice as completed. // Mark invoice as completed.
invoice.MarkAsCompleted = true; invoice.MarkAsCompleted = true;
invoice.UpdatedAt = DateTime.UtcNow;
invoice.UpdatedById = loggedInEmployee.Id;
// Persist the change to the database. // Persist the change to the database.
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
_logger.LogInfo("Invoice {InvoiceId} marked as completed by user {UserId}", invoiceId, loggedInEmployee.Id); _logger.LogInfo("Invoice {InvoiceId} marked as completed by user {UserId}", invoiceId, loggedInEmployee.Id);
return Ok(ApiResponse<object>.SuccessResponse(new { }, "Invoice is marked as completed successfully", 200)); await _updateLogHelper.PushToUpdateLogsAsync(new UpdateLogsObject
{
EntityId = invoice.Id.ToString(),
UpdatedById = loggedInEmployee.Id.ToString(),
OldObject = invoiceStateBeforeChange,
UpdatedAt = DateTime.UtcNow
}, "InvoiceModificationLog");
var response = _mapper.Map<InvoiceListVM>(invoice);
response.UpdatedBy = _mapper.Map<BasicEmployeeVM>(loggedInEmployee);
response.BalanceAmount = response.BasicAmount + response.TaxAmount;
return Ok(ApiResponse<object>.SuccessResponse(response, "Invoice is marked as completed successfully", 200));
} }
catch (Exception ex) catch (Exception ex)
{ {