public static InvoiceModel ToInvoiceModel(this EFInvoice.Invoice value, KeithLink.Svc.Core.Models.Profile.Customer customer = null) { InvoiceModel retVal = new InvoiceModel(); retVal.BranchId = value.Division.Substring(0, 3); retVal.InvoiceNumber = value.InvoiceNumber.Trim(); retVal.Type = DetermineType(value.InvoiceType.Trim()); retVal.TypeDescription = EnumUtils <InvoiceType> .GetDescription(DetermineType(value.InvoiceType.Trim())); retVal.Status = value.DetermineStatus(); retVal.StatusDescription = EnumUtils <InvoiceStatus> .GetDescription(value.DetermineStatus()); retVal.CustomerNumber = value.CustomerNumber; retVal.CustomerName = customer == null ? "N/A" : customer.CustomerName; retVal.Amount = value.AmountDue; retVal.DueDate = value.DueDate; retVal.InvoiceDate = value.InvoiceDate; retVal.OrderDate = value.InvoiceDate; retVal.IsPayable = value.InvoiceStatus.Equals("O", StringComparison.InvariantCultureIgnoreCase) && customer != null && customer.KPayCustomer; return(retVal); }
public static PaymentTransactionModel ToPaymentTransactionModel(this PaymentTransaction payment, KeithLink.Svc.Core.Models.Profile.Customer customer, TimeSpan cutOffTime) { PaymentTransactionModel retVal = new PaymentTransactionModel(); retVal.CustomerName = customer.CustomerName; retVal.CustomerNumber = customer.CustomerNumber; retVal.AccountNumber = payment.AccountNumber; retVal.ConfirmationId = payment.ConfirmationId; retVal.InvoiceNumber = payment.InvoiceNumber; retVal.PaymentAmount = payment.PaymentAmount; retVal.PaymentDate = payment.ScheduledPaymentDate; retVal.SubmittedDate = payment.PaymentDate; retVal.BranchId = string.IsNullOrEmpty(payment.Division) ? string.Empty : payment.Division.Substring(0, 3); retVal.UserName = payment.UserName; if (payment.ScheduledPaymentDate.HasValue) { DateTime paymentCutOffTime = payment.ScheduledPaymentDate.Value.Add(cutOffTime); retVal.Editable = DateTime.Now < paymentCutOffTime; } else { retVal.Editable = true; } return(retVal); }