diff --git a/Sloth.Web/Controllers/ReportsController.cs b/Sloth.Web/Controllers/ReportsController.cs index 5e913abe..af8030e9 100644 --- a/Sloth.Web/Controllers/ReportsController.cs +++ b/Sloth.Web/Controllers/ReportsController.cs @@ -57,6 +57,7 @@ public async Task FailedTransactions() ) ) .Include(t => t.Transfers) + .Include(a => a.JournalRequest) .AsNoTracking() .ToListAsync(); @@ -107,6 +108,7 @@ public async Task FailedTransactionsAllTeams() .Where(t => t.Status == TransactionStatuses.Rejected || (t.Status == TransactionStatuses.Processing && t.LastModified < DateTime.UtcNow.Date.AddDays(-5))) .Include(t => t.Transfers) + .Include(a => a.JournalRequest) .Include(t => t.Source) .ThenInclude(s => s.Team) .AsNoTracking() diff --git a/Sloth.Web/Views/Reports/FailedTransactions.cshtml b/Sloth.Web/Views/Reports/FailedTransactions.cshtml index e9324424..14b6ac70 100644 --- a/Sloth.Web/Views/Reports/FailedTransactions.cshtml +++ b/Sloth.Web/Views/Reports/FailedTransactions.cshtml @@ -1,8 +1,16 @@ +@using Humanizer +@using Microsoft.AspNetCore.Http +@using Microsoft.AspNetCore.Routing +@using Sloth.Core.Extensions +@using Sloth.Core.Models +@using Sloth.Core.Resources @using Sloth.Web.Models.TransactionViewModels @model Sloth.Web.Models.ReportViewModels.TransactionsReportViewModel +@inject IHttpContextAccessor HttpContextAccessor @{ ViewBag.Title = "Failed Transactions"; + var teamSlug = HttpContextAccessor.HttpContext.GetRouteData().Values["team"] as string; } @section AdditionalStyles @@ -14,11 +22,122 @@

Transactions


- +
+ + + + + + + + + + + + + + + + + + + + + + @foreach (var t in Model.TransactionsTable.Transactions) + { + var firstDebit = t.Transfers.First(x => x.Direction == Transfer.CreditDebit.Debit); + var firstCredit = t.Transfers.First(x => x.Direction == Transfer.CreditDebit.Credit); + var description = firstDebit.Description; + var amount = t.Transfers.Where(a => a.Direction == Transfer.CreditDebit.Credit).Sum(x => x.Amount); + var accounts = string.Join(", ", t.Transfers.Select(a => a.FinancialSegmentString).Distinct().ToList()); + if (!string.IsNullOrWhiteSpace(t.Description)) + { + description = t.Description; + } + + var slug = !string.IsNullOrWhiteSpace(teamSlug) && teamSlug != "any" ? teamSlug : t.Source?.Team?.Slug; + + + + + + + + + + + + + + + + + + + @* @if (String.IsNullOrWhiteSpace(firstDebit.FinancialSegmentString)) + { + + } + else + { + + } + *@ + + } + +
@Html.DisplayNameFor(x => x.TransactionsTable.Transactions.FirstOrDefault().Id)@Html.DisplayNameFor(x => x.TransactionsTable.Transactions.FirstOrDefault().Status)@Html.DisplayNameFor(x => x.TransactionsTable.Transactions.FirstOrDefault().TransactionDate)@Html.DisplayNameFor(x => x.TransactionsTable.Transactions.FirstOrDefault().KfsTrackingNumber)@Html.DisplayNameFor(x => x.TransactionsTable.Transactions.FirstOrDefault().DocumentNumber)@Html.DisplayNameFor(x => x.TransactionsTable.Transactions.FirstOrDefault().ProcessorTrackingNumber)@Html.DisplayNameFor(x => x.TransactionsTable.Transactions.FirstOrDefault().MerchantTrackingNumber)@Html.DisplayNameFor(x => x.TransactionsTable.Transactions.FirstOrDefault().Description)AmountAccountsRequest IDConsumer Tracking ID@Html.DisplayNameFor(x => x.TransactionsTable.Transactions.FirstOrDefault().LastModified)Team
@t.Id + @t.Status.Humanize(LetterCasing.Title) + + @t.TransactionDate.ToPacificTime()@t.KfsTrackingNumber@t.DocumentNumber@t.ProcessorTrackingNumber@t.MerchantTrackingNumber + + @description + + @amount.ToString("C")@accounts@t.JournalRequest?.RequestId@t.ConsumerTrackingId@t.LastModified.ToPacificTime()@slug @($"{firstDebit.Chart}-{firstDebit.Account}") -> @($"{firstCredit.Chart}-{firstCredit.Account}")See Details
+
@section AdditionalScripts { - + }