public IActionResult Delete(CartPayment cartPayment)
        {
            var result = _cartPaymentService.Delete(cartPayment);

            if (result.Success)
            {
                return(Ok(result));
            }
            return(BadRequest(result));
        }
        /// <summary>
        /// Add GiftCarNumber in Cart
        /// </summary>
        /// <param name="transCode"></param>
        /// <param name="applyBalance"></param>
        /// <param name="giftCardNumber"></param>
        /// <param name="ticketId"></param>
        /// <returns></returns>
        public async Task <CalculatedCart> AddGiftCardPaymentTransactionAsync(string transCode = "", decimal applyBalance = 0, string giftCardNumber = "", string ticketId = "", IList <CartLine> lines = null)
        {
            CalculatedCart       calculatedCart = null;
            CalculateCartCommand request        = null;

            try
            {
                calculatedCart = await GetCartBySourceExternalIdAsync(ticketId.ToString()).ConfigureAwait(true);

                var payment = new CartPayment {
                    Amount = applyBalance, TransactionCode = transCode
                };
                if (calculatedCart != null && calculatedCart.Cart != null)
                {
                    if (calculatedCart.Cart.Payments != null && calculatedCart.Cart.Payments.Any())
                    {
                        calculatedCart.Cart.Payments.Add(payment);
                    }
                    else
                    {
                        calculatedCart.Cart.Payments = new List <CartPayment>();
                        calculatedCart.Cart.Payments.Add(payment);
                    }
                    request = new CalculateCartCommand()
                    {
                        Cart = calculatedCart.Cart, Uid = calculatedCart.Cart.Uid
                    };
                }
                else
                {
                    var cart = new Cart {
                        Lines = new List <CartLine>(), SourceExternalId = ticketId, Payments = new List <CartPayment>()
                    };
                    if (lines != null && lines.Any())
                    {
                        cart.Lines = lines;
                    }
                    cart.Payments.Add(payment);
                    request = new CalculateCartCommand()
                    {
                        Cart = cart
                    };
                }

                if (request != null)
                {
                    calculatedCart = CalculateCart(request);
                }
            }
            catch (Exception ex)
            {
                _logger.WriteLogError(ex, "LoyaltyEngineServices AddGiftCarNumberInCart");
            }
            return(calculatedCart);
        }
        public IResult Add(CartPayment cartPayment)
        {
            IResult result = BusinessRules.Run(CheckCreditCardNumber(cartPayment.CreditCardNumber));

            if (result != null)
            {
                return(result);
            }

            _cartPaymentdDal.Add(cartPayment);
            return(new SuccessResult(Messages.CartPaymentsAdded));
        }
        internal static CartPayment GetCartPaymentFromCheckoutState(OrdersManager ordersManager, CheckoutState checkoutState)
        {
            CartPayment payment = ordersManager.CreateCartPayment();

            payment.CreditCardCustomerName   = checkoutState.CreditCardInfo.CreditCardCardholderName;
            payment.CreditCardExpireMonth    = Convert.ToInt32(checkoutState.CreditCardInfo.CreditCardExpirationMonth);
            payment.CreditCardExpireYear     = Convert.ToInt32(checkoutState.CreditCardInfo.CreditCardExpirationYear);
            payment.CreditCardNumberLastFour = string.Empty;
            payment.CreditCardNumber         = string.Empty;
            payment.CreditCardType           = checkoutState.CreditCardInfo.CreditCardType;

            payment.PaymentMethodId   = checkoutState.PaymentMethodId;
            payment.PaymentMethodType = checkoutState.PaymentMethodType;

            return(payment);
        }
Exemple #5
0
        private static void UpdateCartDetails(CheckoutState checkoutState, OrdersManager ordersManager, Customer customer, CartOrder cartOrder)
        {
            CartAddress shippingAddress = null;

            if (checkoutState.OrderRequiresShipping)
            {
                shippingAddress             = ordersManager.CreateCartAddress();
                shippingAddress.FirstName   = checkoutState.ShippingFirstName;
                shippingAddress.LastName    = checkoutState.ShippingLastName;
                shippingAddress.Address     = checkoutState.ShippingAddress1;
                shippingAddress.Address2    = checkoutState.ShippingAddress2;
                shippingAddress.AddressType = AddressType.Shipping;
                shippingAddress.City        = checkoutState.ShippingCity;
                shippingAddress.PostalCode  = checkoutState.ShippingZip;
                shippingAddress.StateRegion = checkoutState.ShippingState;
                shippingAddress.Country     = checkoutState.ShippingCountry;
                shippingAddress.Phone       = checkoutState.ShippingPhoneNumber;
                shippingAddress.Email       = checkoutState.ShippingEmail;
                shippingAddress.Company     = checkoutState.ShippingCompany;
                shippingAddress.County      = checkoutState.ShippingCounty;
                cartOrder.Addresses.Add(shippingAddress);
            }

            var billingAddress = ordersManager.CreateCartAddress();

            billingAddress.FirstName   = checkoutState.BillingFirstName;
            billingAddress.LastName    = checkoutState.BillingLastName;
            billingAddress.Address     = checkoutState.BillingAddress1;
            billingAddress.Address2    = checkoutState.BillingAddress2;
            billingAddress.AddressType = AddressType.Billing;
            billingAddress.City        = checkoutState.BillingCity;
            billingAddress.PostalCode  = checkoutState.BillingZip;
            billingAddress.StateRegion = checkoutState.BillingState;
            billingAddress.Country     = checkoutState.BillingCountry;
            billingAddress.Phone       = checkoutState.BillingPhoneNumber;
            billingAddress.Email       = checkoutState.BillingEmail;
            billingAddress.Company     = checkoutState.BillingCompany;
            billingAddress.County      = checkoutState.BillingCounty;

            cartOrder.Addresses.Add(billingAddress);

            decimal vatTaxAmount = cartOrder.VatTaxAmount.HasValue ? cartOrder.VatTaxAmount.Value : 0;

            checkoutState.SubTotal        = cartOrder.SubTotalDisplay + vatTaxAmount;
            checkoutState.TotalWeight     = cartOrder.Weight;
            checkoutState.Tax             = cartOrder.Tax;
            checkoutState.ShippingAmount  = cartOrder.ShippingTotal;
            checkoutState.ShippingTax     = cartOrder.ShippingTax;
            checkoutState.ShippingTaxRate = cartOrder.ShippingTaxRate;
            checkoutState.DiscountAmount  = cartOrder.DiscountTotal;
            checkoutState.Total           = cartOrder.Total;

            var paymentmethod = ordersManager.GetPaymentMethods().FirstOrDefault();

            checkoutState.PaymentMethodId   = paymentmethod.Id;
            checkoutState.PaymentMethodType = paymentmethod.PaymentMethodType;

            CartPayment cartPayment = ordersManager.CreateCartPayment();

            cartPayment.PaymentMethodId        = paymentmethod.Id;
            cartPayment.PaymentMethodType      = paymentmethod.PaymentMethodType;
            cartPayment.CreditCardCustomerName = customer.CustomerFirstName;
            cartPayment.CreditCardNumber       = MockCreditCardNumber;

            cartOrder.Payments.Add(cartPayment);
        }
 public IResult Update(CartPayment cardPayment)
 {
     _cartPaymentdDal.Update(cardPayment);
     return(new SuccessResult(Messages.CartPaymentsUpdated));
 }
 public IResult Delete(CartPayment cartPayment)
 {
     _cartPaymentdDal.Delete(cartPayment);
     return(new SuccessResult(Messages.CartPaymentsDeleted));
 }
Exemple #8
0
        internal static IPaymentResponse PlaceOrder(OrdersManager ordersManager, CatalogManager catalogManager, UserManager userManager, RoleManager roleManager, UserProfileManager userProfileManager, CheckoutState checkoutState, Guid cartOrderId)
        {
            CartOrder cartOrder = ordersManager.GetCartOrder(cartOrderId);

            cartOrder.Addresses.Clear();
            cartOrder.Payments.Clear();

            //set the default currency of the order
            string defaultCurrency = Config.Get <EcommerceConfig>().DefaultCurrency;

            cartOrder.Currency = defaultCurrency;

            // set the shipping address
            CartAddress shippingAddress = CartHelper.GetShippingAddressFromCheckoutState(ordersManager, checkoutState);

            cartOrder.Addresses.Add(shippingAddress);

            // set the billing address
            CartAddress billingAddress = CartHelper.GetBillingAddressFromCheckoutState(ordersManager, checkoutState);

            cartOrder.Addresses.Add(billingAddress);

            //Get the first payment method in the shop

            // set the payment
            CartPayment payment = CartHelper.GetCartPaymentFromCheckoutState(ordersManager, checkoutState);

            cartOrder.Payments.Add(payment);

            ordersManager.SaveChanges();


            // Get current customer or create new one

            Customer customer = UserProfileHelper.GetCustomerInfoOrCreateOneIfDoesntExsist(userProfileManager, ordersManager, checkoutState);

            // Save the customer address
            CustomerAddressHelper.SaveCustomerAddressOfCurrentUser(checkoutState, customer);

            //Use the API to checkout
            IPaymentResponse paymentResponse = ordersManager.Checkout(cartOrderId, checkoutState, customer);

            // record the "success" state of the checkout
            checkoutState.IsPaymentSuccessful = paymentResponse.IsSuccess;

            Order order = ordersManager.GetOrder(cartOrderId);

            //Increment the order
            IncrementOrderNumber(ordersManager, order);

            // add the order to customer
            customer.Orders.Add(order);

            // Update the order
            order.Customer = customer;

            ordersManager.SaveChanges();

            if (order.OrderStatus == OrderStatus.Paid)
            {
                UserProfileHelper.AssignCustomerToRoles(userManager, roleManager, catalogManager, SecurityManager.GetCurrentUserId(), order);
                EmailHelper.SendOrderPlacedEmailToClientAndMerchant(cartOrder, checkoutState, order.OrderNumber);
            }

            return(paymentResponse);
        }
 public CheckoutControls_PaymentSummary(CartPayment c)
 {
     this.Payment = c;
 }