private void BuildPaymentSummaryPaymentDetails (StringBuilder orderDetails, UserSelectedContext customer, Core.Models.Profile.Customer cust, int paymentNumber, PaymentTransactionModel payment) { Core.Models.OnlinePayments.Invoice.EF.Invoice invoice; Core.Enumerations.InvoiceType invoiceTyped; GetPaymentInvoiceInformation(customer, payment, out invoice, out invoiceTyped); if (paymentNumber == 1) { ApplyPaymentSummaryDetailsWithCustomerTemplate (orderDetails, cust, payment, invoice, invoiceTyped); } else { if (paymentNumber % 2 == 1) { ApplyPaymentSummaryDetailsTemplate(orderDetails, payment, invoice, invoiceTyped); } else { ApplyPaymentSummaryDetailsAltTemplate(orderDetails, payment, invoice, invoiceTyped); } } }
private void BuildPaymentSummaryFooter(StringBuilder orderDetails, Core.Models.Profile.Customer cust, decimal paymentSum, Core.Models.OnlinePayments.Customer.EF.CustomerBank bankUsed) { ApplyAccountPaymentSummaryTemplate(orderDetails, bankUsed, paymentSum); ApplyCustomerPaymentSummaryTemplate(orderDetails, cust, paymentSum); ApplyEndFooterTemplate(orderDetails); }
private void ApplyCustomerPaymentSummaryTemplate (StringBuilder orderDetails, Core.Models.Profile.Customer cust, decimal paymentSum) { // the following appends a summation of payments on the customer MessageTemplateModel footerCustomerTemplate = _messageTemplateLogic.ReadForKey (Constants.MESSAGE_TEMPLATE_MULTI_PAYMENTFOOTERCUSTOMER); orderDetails.Append(footerCustomerTemplate.Body.Inject(new { CustomerNumber = cust.CustomerNumber, CustomerBranch = cust.CustomerBranch, CustomerName = cust.CustomerName, CustomerSum = paymentSum })); }
private Message GetEmailMessageForNotification(List <PaymentTransactionModel> payments, Core.Models.Profile.Customer customer) { MessageTemplateModel template = _messageTemplateLogic.ReadForKey(Constants.MESSAGE_TEMPLATE_PAYMENTCONFIRMATION); MessageTemplateModel detailTemplate = _messageTemplateLogic.ReadForKey(Constants.MESSAGE_TEMPLATE_PAYMENTDETAIL); StringBuilder orderDetails = new StringBuilder(); foreach (var payment in payments) { var invoice = _invoiceRepo.GetInvoiceHeader(DivisionHelper.GetDivisionFromBranchId(customer.CustomerBranch), customer.CustomerNumber, payment.InvoiceNumber); var invoiceTyped = KeithLink.Svc.Core.Extensions.InvoiceExtensions.DetermineType(invoice.InvoiceType); orderDetails.Append(detailTemplate.Body.Inject(new { InvoiceType = invoiceTyped, InvoiceNumber = payment.InvoiceNumber, InvoiceDate = invoice.InvoiceDate, DueDate = invoice.DueDate, ScheduledDate = payment.PaymentDate, PaymentAmount = payment.PaymentAmount })); } var bank = _bankRepo.GetBankAccount(DivisionHelper.GetDivisionFromBranchId(customer.CustomerBranch), customer.CustomerNumber, payments[0].AccountNumber); var confirmationId = payments[0].ConfirmationId; Message message = new Message(); message.BodyIsHtml = template.IsBodyHtml; message.MessageSubject = template.Subject.Inject(customer); StringBuilder header = _messageTemplateLogic.BuildHeader("Thank you for your payment", customer); message.MessageBody = template.Body.Inject(new { NotifHeader = header.ToString(), ConfirmationId = confirmationId, BankAccount = string.Format("{0} - {1}", GetBankAccountNumber(bank), GetBankName(bank)), PaymentDetailLines = orderDetails.ToString(), TotalPayments = payments.Sum(p => p.PaymentAmount) }); message.CustomerNumber = customer.CustomerNumber; message.CustomerName = customer.CustomerName; message.BranchId = customer.CustomerBranch; message.NotificationType = NotificationType.PaymentConfirmation; return(message); }
private void ApplyPaymentSummaryDetailsWithCustomerTemplate(StringBuilder orderDetails, Core.Models.Profile.Customer cust, PaymentTransactionModel payment, Core.Models.OnlinePayments.Invoice.EF.Invoice invoice, Core.Enumerations.InvoiceType invoiceTyped) { MessageTemplateModel detailTemplate = _messageTemplateLogic.ReadForKey (Constants.MESSAGE_TEMPLATE_MULTI_PAYMENTDETAIL1); orderDetails.Append(detailTemplate.Body.Inject(new { CustomerNumber = cust.CustomerNumber, CustomerBranch = cust.CustomerBranch, CustomerName = cust.CustomerName, InvoiceType = invoiceTyped, InvoiceNumber = payment.InvoiceNumber, InvoiceDate = invoice.InvoiceDate, DueDate = invoice.DueDate, PaymentAmount = payment.PaymentAmount })); }