private void SendPaymentReceiptEmail(CreditCardViewModel viewModel, StringBuilder oLineItems, IAPayment oIAPayment) { // Email receipt to payer var sGreeting = string.Empty; if (_transientCardEntry && m_txtFirstName.Text == string.Empty && m_txtLastName.Text == string.Empty) { sGreeting = "Hello,"; } else if (viewModel.FirstName == string.Empty) { sGreeting = "Hello,"; } else { sGreeting = string.Format("{0} {1},", viewModel.FirstName, viewModel.LastName); } var oBody = new StringBuilder(); oBody.AppendLine(sGreeting); oBody.AppendLine(); oBody.AppendLine("Thank you for making a payment on SpeedySpots.com."); oBody.AppendLine(); oBody.AppendLine("Payments:"); oBody.Append(oLineItems); oBody.AppendLine(); oBody.AppendLine(string.Format("Amount: {0:c}", oIAPayment.Total)); oBody.AppendLine(string.Format("Card: {0}", viewModel.CardType)); oBody.AppendLine(string.Format("Card Number: xxxx-xxxx-xxxx-{0}", viewModel.LastFourOfCardNumber)); oBody.AppendLine(string.Format("Paid On: {0:MMMM dd, yyyy} at {0:h:mm tt}", DateTime.Now)); if (m_txtInstructions.Text.Length > 0) { oBody.AppendLine(String.Format("Special Instructions: {0}", m_txtInstructions.Text)); } oBody.AppendLine(); oBody.AppendLine("Thank you again for using SpeedySpots.com"); EmailCommunicationService.PaymentCustomerReceiptSend(oBody, viewModel.ReceiptEmailAddressCsv); }
private void SendBillingEmail(CreditCardViewModel viewModel, bool bIsPaymentAutoImported, StringBuilder oSpeedySpotsLineItems, IAPayment oIAPayment) { StringBuilder oBody; // Email SpeedySpots oBody = new StringBuilder(); if (!bIsPaymentAutoImported) { oBody.AppendLine("** This payment will NOT be auto-imported **"); oBody.AppendLine(); } oBody.AppendLine("Payments:"); oBody.Append(oSpeedySpotsLineItems); oBody.AppendLine(); oBody.AppendLine(string.Format("Customer Name: {0} {1}", viewModel.FirstName, viewModel.LastName)); oBody.AppendLine(string.Format("Company Name: {0}", viewModel.CompanyName)); oBody.AppendLine(string.Format("Customer Email(s): {0}", viewModel.ReceiptEmailAddressCsv)); oBody.AppendLine(); oBody.AppendLine(string.Format("Amount: {0:c}", oIAPayment.Total)); if (m_txtInstructions.Text.Length > 0) { oBody.AppendLine(String.Format("Special Instructions: {0}", m_txtInstructions.Text)); } oBody.AppendLine(); oBody.AppendLine(string.Format("Card: {0}", viewModel.CardType)); oBody.AppendLine(string.Format("Card Number: xxxx-xxxx-xxxx-{0}", viewModel.LastFourOfCardNumber)); oBody.AppendLine(string.Format("Paid On: {0:MMMM dd, yyyy} at {0:h:mm tt}", DateTime.Now)); EmailCommunicationService.PaymentBillingNoticeSend(oBody); }
private StringBuilder SaveLineItems(IAPayment oIAPayment, out StringBuilder oSpeedySpotsLineItems) { // Save the individual line items var oLineItems = new StringBuilder(); oSpeedySpotsLineItems = new StringBuilder(); foreach (RepeaterItem oItem in m_oRepeaterInvoices.Items) { var m_txtNumber = oItem.FindControl("m_txtNumber") as TextBox; var m_txtAmount = oItem.FindControl("m_txtAmount") as RadNumericTextBox; // Check to see if any payment has been made in the past against the given invoice var iPreviousPayments = 0; if (m_txtNumber.Text != string.Empty) { iPreviousPayments = DataAccess.IAPaymentLineItems.Count(row => row.Invoice == m_txtNumber.Text); } var oIAPaymentLineItem = new IAPaymentLineItem { IAPaymentID = oIAPayment.IAPaymentID, Invoice = iPreviousPayments == 0 ? m_txtNumber.Text : string.Empty, Amount = MemberProtect.Utility.ValidateDecimal(m_txtAmount.Text) }; var oQBInvoice = DataAccess.QBInvoices.SingleOrDefault(row => row.InvoiceNumber == m_txtNumber.Text); if (oQBInvoice != null && iPreviousPayments == 0) { oIAPaymentLineItem.QBInvoiceID = oQBInvoice.QBInvoiceID; } else { oIAPaymentLineItem.QBInvoiceID = 0; } oIAPayment.IAPaymentLineItems.Insert(0, oIAPaymentLineItem); DataAccess.SubmitChanges(); if (m_txtNumber.Text != string.Empty) { oLineItems.AppendLine(string.Format("Invoice# {0}: {1:c}", m_txtNumber.Text, MemberProtect.Utility.ValidateDecimal(m_txtAmount.Text))); } else { oLineItems.AppendLine(string.Format("{0:c}", MemberProtect.Utility.ValidateDecimal(m_txtAmount.Text))); } if (oIAPaymentLineItem.QBInvoiceID == 0) { var sInvoiceNumber = (string.IsNullOrEmpty(m_txtNumber.Text) ? "# N/A" : m_txtNumber.Text); if (iPreviousPayments > 0) { oSpeedySpotsLineItems.AppendLine(string.Format("{0}: {1:c} (additional attempt to pay invoice #{2})", sInvoiceNumber, MemberProtect.Utility.ValidateDecimal(m_txtAmount.Text), m_txtNumber.Text)); } else { oSpeedySpotsLineItems.AppendLine(string.Format("{0}: {1:c}", sInvoiceNumber, MemberProtect.Utility.ValidateDecimal(m_txtAmount.Text))); } } else { oSpeedySpotsLineItems.AppendLine(string.Format("{0}: {1:c}", oIAPaymentLineItem.Invoice, MemberProtect.Utility.ValidateDecimal(m_txtAmount.Text))); } } return oLineItems; }
private IAPayment SavePayment(PaymentGatewayResponse paymentGatewayResponse) { var oIAPayment = new IAPayment { Total = GetTotal(), Email = CardProfile.ReceiptEmailAddressCsv, Company = m_txtCompany.Text, Instructions = m_txtInstructions.Text, CreditCardFirstName = MemberProtect.Cryptography.Encrypt(CardProfile.FirstName), CreditCardLastName = MemberProtect.Cryptography.Encrypt(CardProfile.LastName), CreditCardType = MemberProtect.Cryptography.Encrypt(CardProfile.CardType), CreditCardNumber = MemberProtect.Cryptography.Encrypt(CardProfile.CreditCardNumber), AuthorizeNetTransactionID = paymentGatewayResponse.GetValue(PaymentGatewayResponse.FieldNames.TransactionId), AuthorizeNetProcessResponse = paymentGatewayResponse.GetValue(PaymentGatewayResponse.FieldNames.ResponseReasonText), CreatedDateTime = DateTime.Now, Zip = "" }; DataAccess.IAPayments.InsertOnSubmit(oIAPayment); DataAccess.SubmitChanges(); return oIAPayment; }
private bool QuickBooksInvoiceMatching(IAPayment oIAPayment) { // the payment doesn't get automatically imported into Quickbooks via the Connector. var bIsPaymentAutoImported = true; var oMPOrgID = Guid.Empty; foreach (var oIALineItem in oIAPayment.IAPaymentLineItems) { var oQBInvoice = DataAccess.QBInvoices.SingleOrDefault(row => row.InvoiceNumber == oIALineItem.Invoice); if (oQBInvoice != null) { if (oMPOrgID == Guid.Empty) { oMPOrgID = ApplicationContext.GetOrgID(oQBInvoice.IAJob.IARequest.MPUserID); } else if (oMPOrgID != ApplicationContext.GetOrgID(oQBInvoice.IAJob.IARequest.MPUserID)) { bIsPaymentAutoImported = false; break; } if (oQBInvoice.Amount != oIALineItem.Amount) { bIsPaymentAutoImported = false; break; } } else { bIsPaymentAutoImported = false; break; } } if (!bIsPaymentAutoImported) { foreach (var oIALineItem in oIAPayment.IAPaymentLineItems) { oIALineItem.QBInvoiceID = 0; } DataAccess.SubmitChanges(); } return bIsPaymentAutoImported; }