using System; using LCU.API.Collections.RepoApi.Models.Reporting; using LCU.Shared.Collections.RepoApiLib.Models.Reporting; namespace LCU.Shared.Collections.RepoApiLib.Formatting { public static class StdReportEntryColumns { public static Func Member(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Member", Cell = ReportCellFormatting.CreateStringCell(entry?.IndividualName) }; } public static Func AccountNo(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Account No", Cell = ReportCellFormatting.CreateStringCell(entry?.AccountNo) }; } public static Func AccountCode(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Account Code", Cell = ReportCellFormatting.CreateStringCell(entry?.AccountTypeCode) }; } public static Func Balance(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Balance", Cell = ReportCellFormatting.CreateCurrencyCell(entry?.Balance) }; } public static Func Status(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Status", Cell = ReportCellFormatting.CreateStringCell(entry?.Status) }; } public static Func DaysInStatus(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Days in Status", Cell = ReportCellFormatting.CreateIntCell(entry?.DaysInStatus) }; } public static Func Bankruptcy(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Bankruptcy", Cell = ReportCellFormatting.CreateStringCell(entry?.Bankruptcy) }; } public static Func Collector(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Collector", Cell = ReportCellFormatting.CreateStringCell(entry?.Collector) }; } public static Func DaysCurrentDelq(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Days Current Delq", Cell = ReportCellFormatting.CreateIntCell(entry?.DaysCurrentDelq) }; } public static Func DaysDelqWhenAdded(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Days Delq When Added", Cell = ReportCellFormatting.CreateIntCell(entry?.DaysDelqWhenAdded) }; } public static Func DelinquentAmount(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Delinquent Amount", Cell = ReportCellFormatting.CreateCurrencyCell(entry?.DelinquentAmount) }; } public static Func LastPaymentAmount(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Last Payment Amount", Cell = ReportCellFormatting.CreateCurrencyCell(entry?.LastPaymentAmount) }; } public static Func LastPaymentDate(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Last Payment Date", Cell = ReportCellFormatting.CreateDateCell(entry?.LastPaymentDate) }; } public static Func Auction(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Auction", Cell = ReportCellFormatting.CreateStringCell(entry?.AuctionName) }; } public static Func Collateral(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Collateral", Cell = ReportCellFormatting.CreateStringCell($"{entry?.Year} {entry?.Make} {entry?.Model}") }; } public static Func RepoCompany(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Repo Company", Cell = ReportCellFormatting.CreateStringCell(entry?.RepoCompany) }; } public static Func RepoType(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Repo Type", Cell = ReportCellFormatting.CreateStringCell(entry?.RepoType) }; } public static Func DateAssigned(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Date Assigned", Cell = ReportCellFormatting.CreateDateCell(entry?.RepoCompanyAssignmentDate) }; } public static Func DateRepoed(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Date Repoed", Cell = ReportCellFormatting.CreateDateCell(entry?.DateRepoed) }; } public static Func RepoDuration(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Repo Duration", Cell = ReportCellFormatting.CreateIntCell(entry?.RepoDuration) }; } // IMSAutoFile Data public static Func AutoImsStatus(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "AutoIMS Status", Cell = ReportCellFormatting.CreateStringCell(entry?.AutoImsStatus) }; } public static Func DateSold(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Date Sold", Cell = ReportCellFormatting.CreateDateCell(entry?.SoldDate) }; } public static Func DateEnteredAutoIMS(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Date Entered AutoIMS", Cell = ReportCellFormatting.CreateDateCell(entry?.DateEnteredAutoIMS) }; } public static Func ScheduledSaleDate(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Scheduled Sale Date", Cell = ReportCellFormatting.CreateDateCell(entry?.ScheduledSaleDate) }; } public static Func GrossPercentFloor(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Gross % Floor", Cell = ReportCellFormatting.CreatePercentageCell(entry?.GrossPercentFloor) }; } public static Func NetPercentFloor(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Net % Floor", Cell = ReportCellFormatting.CreatePercentageCell(entry?.NetPercentFloor) }; } public static Func TotalCharges(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Total Charges", Cell = ReportCellFormatting.CreateCurrencyCell(entry?.TotalCharges) }; } public static Func Grade(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Grade", Cell = ReportCellFormatting.CreateDecimalCell(entry?.Grade, true) }; } public static Func FloorPrice(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Floor Price", Cell = ReportCellFormatting.CreateCurrencyCell(entry?.FloorPrice) }; } public static Func GrossSalePrice(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Gross Sale Price", Cell = ReportCellFormatting.CreateCurrencyCell(entry?.GrossSalePrice) }; } public static Func FilteredStatus(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Filtered Status", Cell = ReportCellFormatting.CreateStringCell(entry?.FilteredStatus) }; } public static Func FilteredStatusChangeDate(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Filtered Status Changed On", Cell = ReportCellFormatting.CreateDateCell(entry?.FilteredStatusChangeDate) }; } public static Func O4RDate(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "First O4R", Cell = ReportCellFormatting.CreateDateCell(entry?.O4RDate) }; } public static Func SurplusDeficiency(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Surplus / Deficiency", Cell = ReportCellFormatting.CreateCurrencyCell(entry?.GrossSalePrice - entry?.Balance) }; } public static Func AutoIMSAssignmentToSold(string alternateHeader = null) { return (StdReportEntry entry) => new ReportHeaderCellMap() { Header = alternateHeader ?? "Days AutoIMS to Sold", Cell = ReportCellFormatting.CreateIntCell( entry != null ? ( (entry.DateEnteredAutoIMS != null && entry.SoldDate != null) ? (int?) (entry.SoldDate.Value - entry.DateEnteredAutoIMS.Value).TotalDays : null ) : null ) }; } } }