diff --git a/MoneyMap/Pages/EditTransaction.cshtml b/MoneyMap/Pages/EditTransaction.cshtml index f7cca2b..952d999 100644 --- a/MoneyMap/Pages/EditTransaction.cshtml +++ b/MoneyMap/Pages/EditTransaction.cshtml @@ -159,7 +159,7 @@ @((item.Receipt.FileSizeBytes / 1024.0).ToString("F1")) KB - · @item.Receipt.UploadedAtUtc.ToLocalTime().ToString("MMM d, yyyy") + � @item.Receipt.UploadedAtUtc.ToLocalTime().ToString("MMM d, yyyy") @if (!string.IsNullOrWhiteSpace(item.Receipt.Merchant)) { @@ -208,8 +208,11 @@ } +
+ +
+ onsubmit="return confirm('Are you sure? This will PERMANENTLY DELETE the receipt file!')" class="d-inline">
diff --git a/MoneyMap/Pages/EditTransaction.cshtml.cs b/MoneyMap/Pages/EditTransaction.cshtml.cs index 9c86c2f..d7d856a 100644 --- a/MoneyMap/Pages/EditTransaction.cshtml.cs +++ b/MoneyMap/Pages/EditTransaction.cshtml.cs @@ -181,13 +181,30 @@ namespace MoneyMap.Pages return RedirectToPage(new { id = Transaction.Id }); } + public async Task OnPostUnmapReceiptAsync(long receiptId) + { + var receipt = await _db.Receipts.FindAsync(receiptId); + if (receipt != null) + { + receipt.TransactionId = null; + await _db.SaveChangesAsync(); + SuccessMessage = "Receipt unmapped successfully! You can now find it on the Receipts page."; + } + else + { + ErrorMessage = "Receipt not found."; + } + + return RedirectToPage(new { id = Transaction.Id }); + } + public async Task OnPostDeleteReceiptAsync(long receiptId) { var success = await _receiptManager.DeleteReceiptAsync(receiptId); if (success) { - SuccessMessage = "Receipt deleted successfully!"; + SuccessMessage = "Receipt deleted permanently!"; } else {