diff --git a/API/ROLAC.API/DTOs/Expense/ExpenseDtos.cs b/API/ROLAC.API/DTOs/Expense/ExpenseDtos.cs index 9527125..2584854 100644 --- a/API/ROLAC.API/DTOs/Expense/ExpenseDtos.cs +++ b/API/ROLAC.API/DTOs/Expense/ExpenseDtos.cs @@ -35,6 +35,7 @@ public class ExpenseListItemDto public string? ReviewedByName { get; set; } // resolved Member full name, email fallback public DateTimeOffset? ReviewedAt { get; set; } public string? ReviewNotes { get; set; } // reject reason (or approval note) + public int? PayeeId { get; set; } } public class ExpenseDto : ExpenseListItemDto @@ -66,6 +67,7 @@ public class CreateExpenseRequest [MaxLength(50)] public string? CheckNumber { get; set; } [Required] public DateOnly ExpenseDate { get; set; } public string? Notes { get; set; } + public int? PayeeId { get; set; } } public class UpdateExpenseRequest : CreateExpenseRequest { } diff --git a/API/ROLAC.API/Services/ExpenseService.cs b/API/ROLAC.API/Services/ExpenseService.cs index 5c2bfe3..3ce5249 100644 --- a/API/ROLAC.API/Services/ExpenseService.cs +++ b/API/ROLAC.API/Services/ExpenseService.cs @@ -120,6 +120,7 @@ public class ExpenseService : IExpenseService ReviewedByName = e.ReviewedBy != null ? reviewerNames.GetValueOrDefault(e.ReviewedBy) : null, ReviewedAt = e.ReviewedAt, ReviewNotes = e.ReviewNotes, + PayeeId = e.PayeeId, }; }).ToList(); @@ -211,6 +212,7 @@ public class ExpenseService : IExpenseService CheckNumber = e.CheckNumber, Notes = e.Notes, ReviewNotes = e.ReviewNotes, ReviewedByName = reviewerName, ReviewedAt = e.ReviewedAt, SubmittedBy = e.SubmittedBy, SubmittedAt = e.SubmittedAt, PaidAt = e.PaidAt, + PayeeId = e.PayeeId, Lines = lineDtos, }; } @@ -273,6 +275,7 @@ public class ExpenseService : IExpenseService e.VendorName = null; } + e.PayeeId = r.PayeeId; _db.Expenses.Add(e); await _db.SaveChangesAsync(); return e.Id; @@ -294,7 +297,7 @@ public class ExpenseService : IExpenseService throw new InvalidOperationException("You can only edit your own draft, pending, or rejected reimbursements."); e.MinistryId = r.MinistryId; e.Description = r.Description; e.CheckNumber = r.CheckNumber; - e.ExpenseDate = r.ExpenseDate; e.Notes = r.Notes; + e.ExpenseDate = r.ExpenseDate; e.Notes = r.Notes; e.PayeeId = r.PayeeId; if (e.Type == "VendorPayment") e.VendorName = r.VendorName; // Replace the line set wholesale (lines are owned by the header), recompute the total.