private string GetBankAccountNumber(Core.Models.OnlinePayments.Customer.EF.CustomerBank bank) { string ret = BANK_RESOLVE_UNDEFINED; if (bank != null && bank.AccountNumber != null) { ret = bank.Name; } return(ret); }
private void InPaymentSummaryAccountForMultiplePaymentAccountsWithOneCustomer (StringBuilder orderDetails, decimal paymentSum, Core.Models.OnlinePayments.Customer.EF.CustomerBank bankUsed) { if (bankUsed != null) { // not sure if this happens, but wanted to provide for it just in case // if bankused is not null but the bank account used changes, then we close out the table // for the previous account ApplyAccountPaymentSummaryTemplate(orderDetails, bankUsed, paymentSum); ApplyEndFooterTemplate(orderDetails); } }
private void ApplyAccountPaymentSummaryTemplate (StringBuilder orderDetails, Core.Models.OnlinePayments.Customer.EF.CustomerBank bankUsed, decimal paymentSum) { // the following appends a summation of the account used MessageTemplateModel footerAccountTemplate = _messageTemplateLogic.ReadForKey (Constants.MESSAGE_TEMPLATE_MULTI_PAYMENTFOOTERACCOUNT); orderDetails.Append(footerAccountTemplate.Body.Inject(new { BankName = GetBankName(bankUsed), AccountNumber = GetBankAccountNumber(bankUsed), AccountSum = paymentSum })); }
private Core.Models.OnlinePayments.Customer.EF.CustomerBank BuildPaymentSummaryBankUsed(StringBuilder orderDetails, decimal paymentSum, Core.Models.OnlinePayments.Customer.EF.CustomerBank bankUsed, Core.Models.OnlinePayments.Customer.EF.CustomerBank bank) { if (bankUsed == null || bankUsed.AccountNumber.Equals(bank.AccountNumber) == false) { InPaymentSummaryAccountForMultiplePaymentAccountsWithOneCustomer (orderDetails, paymentSum, bankUsed); bankUsed = bank; ApplyPaymentSummaryAccountHeaderTemplate(orderDetails, bankUsed); } return(bankUsed); }
private Message GetEmailMessageForMultipleAccountSummaryNotification (List <PaymentTransactionModel> payments, List <UserSelectedContext> customers) { StringBuilder orderDetails = new StringBuilder(); int confirmationId = 0, customerNumber = 0; string payer = null; decimal grandSum = 0; DateTime submittedDate = DateTime.MinValue; foreach (var customer in customers.OrderBy(ctx => ctx.CustomerId)) { // the start of each customer ++customerNumber; Svc.Core.Models.Profile.Customer cust = _customerRepo.GetCustomerByCustomerNumber(customer.CustomerId, customer.BranchId); int paymentNumber = 0; decimal paymentSum = 0; Core.Models.OnlinePayments.Customer.EF.CustomerBank bankUsed = null; foreach (var payment in payments.Where(p => p.CustomerNumber == customer.CustomerId && p.BranchId == customer.BranchId) .OrderBy(p => p.AccountNumber)) { paymentNumber++; Core.Models.OnlinePayments.Customer.EF.CustomerBank bank = _bankRepo.GetBankAccount (DivisionHelper.GetDivisionFromBranchId(customer.BranchId), customer.CustomerId, payment.AccountNumber); bankUsed = BuildPaymentSummaryBankUsed(orderDetails, paymentSum, bankUsed, bank); paymentSum = paymentSum + payment.PaymentAmount; grandSum = grandSum + payment.PaymentAmount; confirmationId = payment.ConfirmationId; payer = payment.UserName; submittedDate = payment.PaymentDate.Value; BuildPaymentSummaryPaymentDetails(orderDetails, customer, cust, paymentNumber, payment); } BuildPaymentSummaryFooter(orderDetails, cust, paymentSum, bankUsed); } ApplyGrandPaymentSummaryTemplate(orderDetails, grandSum, submittedDate); return(AssembleMessageForPayerSummary(orderDetails, confirmationId, payer)); }
private void ApplyPaymentSummaryAccountHeaderTemplate(StringBuilder orderDetails, Core.Models.OnlinePayments.Customer.EF.CustomerBank bankUsed) { // this starts a table for the new account MessageTemplateModel headerTemplate = _messageTemplateLogic.ReadForKey (Constants.MESSAGE_TEMPLATE_MULTI_PAYMENTHEADER); orderDetails.Append(headerTemplate.Body.Inject(new { BankName = GetBankName(bankUsed), AccountNumber = GetBankAccountNumber(bankUsed) })); }
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); }