public ActionResult AddCreditCardPayment(CashPayment aPayment)
            {
            if (ModelState.IsValid)
            {
                var creditCardNumber = "No credit card";
                var aCreditCardType = "CreditCard";
                var creditcardId = int.Parse(aPayment.CreditCardNumber);
                var creditcardType = this.db.CustomersCreditCardShippings.SingleOrDefault(x => x.Id == creditcardId);
                if (creditcardType != null)
                {
                    aCreditCardType = creditcardType.CardType;
                }
                var customersCreditCardShipping =
                    this.db.CustomersCreditCardShippings.SingleOrDefault(
                        x => x.Id == creditcardId);
                if (customersCreditCardShipping != null)
                {
                    creditCardNumber =
                            customersCreditCardShipping.CreditNumber;
                }

                var customerData = this.db.Customers.SingleOrDefault(x => x.Id == aPayment.CustomerId);
                var aNewPayment = new Payments()
                {
                    PaymentNo = aPayment.PaymentNo,
                    CheckNo = aPayment.CheckNumber,
                    CustomerNo = String.IsNullOrEmpty(customerData.CustomerNo) ? string.Empty : customerData.CustomerNo,
                    SalesOrderNo = aPayment.SalesOrderNo,
                    PaymentType = aCreditCardType,
                    Amount = (decimal?)aPayment.PaymentAmount,
                    PaymentDate = aPayment.PaymentDate,
                    TransactionCode = 2,
                    CreditCardNumber = creditCardNumber
                };

                if (!string.IsNullOrEmpty(aPayment.InvoiceNo) || (aPayment.InvoiceId != -1))
                {
                    aNewPayment.InvoicePayment = "True";
                }

                db.Payments.Add(aNewPayment);
                db.SaveChanges();
                ViewBag.Environment = aPayment.ActualEnvironment;
                return RedirectToAction("FDZPayment", new { id = aNewPayment.Id, invoiceId = aPayment.InvoiceId, invoicepayment = aNewPayment.InvoicePayment, paymentAmount = aNewPayment.Amount });
            }

            var aCustomer = this.db.Customers.SingleOrDefault(x => x.Id == aPayment.CustomerId);
            var listOfCards = this.GetListOfCardSelectItems(aCustomer);
            this.ViewBag.CreditCardNumber = listOfCards;

            return View(aPayment);
            }
        public ActionResult AddCashPayment(CashPayment aPayment)
        {
            if (ModelState.IsValid)
            {
                var customerData = this.db.Customers.SingleOrDefault(x => x.Id == aPayment.CustomerId);
                var aCustomerNo = string.Empty;
                if (customerData != null)
                {
                    aCustomerNo = customerData.CustomerNo;
                }

                var aTransactionCode = Convert.ToInt32(aPayment.PaymentType);
                var paymentDescription = string.Empty;
                var transactioncodeQuery = this.db.TransactionCodes.SingleOrDefault(z => z.TransactionCode == aTransactionCode);
                if (transactioncodeQuery != null)
                {
                    paymentDescription = transactioncodeQuery.CodeDescription;
                }

                var aNewPayment = new Payments()
                                           {
                                               CheckNo = aPayment.CheckNumber,
                                               PaymentNo = aPayment.PaymentNo,
                                               CustomerNo = string.IsNullOrEmpty(aCustomerNo) ? string.Empty : aCustomerNo,
                                               SalesOrderNo = aPayment.SalesOrderNo,
                                               PaymentType = string.IsNullOrEmpty(paymentDescription) ? "None" : paymentDescription,
                                               Amount = (decimal?)aPayment.PaymentAmount,
                                               PaymentDate = aPayment.PaymentDate,
                                               TransactionCode = 1,
                                               PayLog = "Transaction succeed!"
                                           };

                if (!string.IsNullOrEmpty(aPayment.InvoiceNo) || (aPayment.InvoiceId != -1))
                {
                    aNewPayment.InvoicePayment = "True";
                }

                db.Payments.Add(aNewPayment);
                db.SaveChanges();

                this.AddPaymentAmountSalesOrder(aNewPayment);
                this.AddPaymentAmountInvoice(aNewPayment);

                return RedirectToAction("PaymentTransactionList", new { salesOrderNo = aPayment.SalesOrderNo, invoiceId = -1 });
            }

            ViewBag.PaymentType = SelectPayTypeListItems();
            return View(aPayment);
        }