示例#1
0
        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);
                }
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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
            }));
        }
示例#4
0
        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);
        }
示例#5
0
        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
            }));
        }