コード例 #1
0
        public ViewResult Index()
        {
            var articulos = carritoComprasRepositorio.ObtenerListaArticulosCarritoCompras();

            carritoComprasRepositorio.ListaArticulosCarritoCompras = articulos;

            var carritoComprasViewModel = new CarritoComprasViewModel
            {
                DataCarritoCompras  = carritoComprasRepositorio,
                TotalCarritoCompras = carritoComprasRepositorio.ObtenerTotalCarritoCompras()
            };

            return(View(carritoComprasViewModel));
        }
コード例 #2
0
        public IViewComponentResult Invoke()
        {
            var ListaArticulos = carritoComprasRepositorio.ObtenerListaArticulosCarritoCompras();

            carritoComprasRepositorio.ListaArticulosCarritoCompras = ListaArticulos;

            var carritoComprasViewModel = new CarritoComprasViewModel
            {
                DataCarritoCompras  = carritoComprasRepositorio,
                TotalCarritoCompras = carritoComprasRepositorio.ObtenerTotalCarritoCompras()
            };

            return(View(carritoComprasViewModel));
        }
コード例 #3
0
        public ActionResult IndexTienda(int?outStock, string pagoRealizado = null)
        {
            if (pagoRealizado == "True")
            {
                ViewBag.pagoRealizado = "True";
            }
            if (outStock != null)
            {
                ViewBag.outStock = 1;
            }
            else
            {
                ViewBag.outStock = 0;
            }

            using (this.DbModel = new ApplicationDbContext())
            {
                var idPersona       = DbModel.Personas.FirstOrDefault(x => x.Correo == User.Identity.Name);
                var cantidadCarrito = DbModel.CarritoCompras.Where(X => X.idPersona == idPersona.idPersona).ToList();
                ViewBag.cantidadCarrito = cantidadCarrito.Count;


                var model = new CarritoComprasViewModel
                {
                    CarritoCollection = DbModel.CarritoCompras.Where(x => x.idPersona == idPersona.idPersona).OrderBy(x => x.Nombre).ToList()
                };

                model.CantidadesProductos = new List <CarritoCompra>();
                int j = 0;


                var persona = DbModel.Personas.FirstOrDefault(x => x.Correo == User.Identity.Name);
                var cupons  = DbModel.Cupon.Where(x => x.IdPersona == persona.idPersona).OrderByDescending(x => x.idOrder).ToList();

                if (cupons.Count > 0)
                {
                    int idOrdens          = cupons[0].idOrder.Value;
                    var validarCuponOrder = DbModel.Orders.FirstOrDefault(x => x.IdOrder == idOrdens);
                    if (validarCuponOrder.Estatus == "Procesando" || validarCuponOrder.NombreCustomer == "Nueva")
                    {
                        ViewBag.descuentoGuardado = cupons[0].Descuento / 100.00;
                    }
                }


                return(View(model));
            }
        }
コード例 #4
0
        private Payment CrearPago(APIContext apiContext, string redirectUrl, double?totalPagoPyapal, string totalship = "0")
        {
            var persona = DbModel.Personas.FirstOrDefault(x => x.Correo == User.Identity.Name);
            //create itemlist and add item objects to it
            var itemList = new ItemList()
            {
                items = new List <Item>()
            };

            var model = new CarritoComprasViewModel
            {
                CarritoCollection = DbModel.CarritoCompras.Where(x => x.idPersona == persona.idPersona).ToList()
            };

            model.CantidadesProductos = new List <CarritoCompra>();
            int j = 0, i = 0;

            var    cuponUsado = DbModel.Cupon.Where(x => x.IdPersona == persona.idPersona).OrderByDescending(x => x.idOrder).ToList();
            var    order      = DbModel.Orders.FirstOrDefault(x => x.idPersona == persona.idPersona && x.Estatus == "Procesando");
            double descuento  = 0.00;

            if (cuponUsado.Count > 0)
            {
                if (cuponUsado[0].idOrder == order.IdOrder)
                {
                    descuento = cuponUsado[0].Descuento / 100.00;

                    foreach (var item in model.CarritoCollection)
                    {
                        double DescAns = Convert.ToDouble(item.Precio - (Convert.ToDouble(item.Precio) * descuento));
                        itemList.items.Add(new Item()
                        {
                            quantity = item.Cantidad.ToString(),
                            name     = item.Nombre,
                            price    = DescAns.ToString(),
                            currency = "MXN",
                        });
                        i++;
                    }
                }
                else
                {
                    foreach (var item in model.CarritoCollection)
                    {
                        itemList.items.Add(new Item()
                        {
                            // quantity = model.CantidadesProductos[i].Cantidad.ToString(),
                            quantity = item.Cantidad.ToString(),
                            name     = item.Nombre,
                            price    = item.Precio.ToString(),
                            currency = "MXN",
                        });
                        i++;
                    }
                }
            }
            else
            {
                foreach (var item in model.CarritoCollection)
                {
                    itemList.items.Add(new Item()
                    {
                        quantity = item.Cantidad.ToString(),
                        name     = item.Nombre,
                        price    = item.Precio.ToString(),
                        currency = "MXN",
                    });
                    i++;
                }
            }



            var payer = new Payer()
            {
                payment_method = "paypal"
            };
            // Configure Redirect Urls here with RedirectUrls object
            var redirUrls = new RedirectUrls()
            {
                cancel_url = redirectUrl + "&Cancel=true",
                return_url = redirectUrl
            };
            // Adding Tax, shipping and Subtotal details
            var details = new Details()
            {
                tax      = "1",
                shipping = totalship,
                subtotal = totalPagoPyapal.ToString()
            };
            //Final amount with details
            var amount = new Amount()
            {
                currency = "MXN",
                total    = (Convert.ToDouble(details.tax) + Convert.ToDouble(details.shipping) + Convert.ToDouble(details.subtotal)).ToString(), // Total must be equal to sum of tax, shipping and subtotal.
                details  = details
            };
            var transactionList = new List <Transaction>();

            // Adding description about the transaction
            transactionList.Add(new Transaction()
            {
                description    = "Detalle Transacción",
                invoice_number = "#" + Convert.ToString((new Random()).Next(100000000)), //Generate an Invoice No
                amount         = amount,
                item_list      = itemList
            });
            this.payment = new Payment()
            {
                intent        = "sale",
                payer         = payer,
                transactions  = transactionList,
                redirect_urls = redirUrls
            };

            // Create a payment using a APIContext
            return(this.payment.Create(apiContext));
        }
コード例 #5
0
        public void ProcessOrder(int direccion)
        {
            var persona = DbModel.Personas.FirstOrDefault(x => x.Correo == User.Identity.Name);

            // Cuando llega "Nueva" significa que se utilizó un cupón en la orden
            var orderFind = DbModel.Orders.FirstOrDefault(x => x.idPersona == persona.idPersona && x.NombreCustomer == "Nueva");

            var datosCustomer = DbModel.Direcciones.FirstOrDefault(x => x.Id == direccion);
            int idOrder       = 0;

            // Todo el siguiente bloque es usado para generar un detalle de la orden, dando a conoce productos y precios que el usaurio comprara
            using (this.DbModel = new ApplicationDbContext())
            {
                var model = new CarritoComprasViewModel
                {
                    CarritoCollection = DbModel.CarritoCompras.Where(x => x.idPersona == persona.idPersona).ToList(),
                };

                model.CantidadesProductos = new List <CarritoCompra>();
                int j = 0, i = 0;

                ////return RedirectToAction("PagoProducto", new { dire = direccion, subtotal = subtotal, total = total, cupon = cupon, ship = ship }) ;



                // Si llega diferente a null significa que se va actualizar el orden que ya existe gracias al cupon
                if (orderFind != null)
                {
                    idOrder = orderFind.IdOrder;


                    MerxProject.Models.Order.Orders order = new Models.Order.Orders()
                    {
                        IdOrder           = orderFind.IdOrder,
                        NombreCustomer    = datosCustomer.NombreCompleto,
                        NumeroCustomer    = datosCustomer.NumTelefono,
                        DireccionCustomer = datosCustomer.DirCalle + ", " + datosCustomer.CodigoPostal + ", " + datosCustomer.Estado + ", " + datosCustomer.Ciudad + ", " + datosCustomer.Asentamiento,
                        EmailCustomer     = User.Identity.Name,
                        idPersona         = persona.idPersona,
                        idDireccion       = datosCustomer.Id,
                        DiaOrden          = DateTime.Now,
                        TipoPago          = "Pago Online",
                        Estatus           = "Procesando"
                    };

                    DbModel.Orders.AddOrUpdate(order);
                    DbModel.SaveChanges();
                }
                else
                {
                    var orderUpdate = DbModel.Orders.FirstOrDefault(x => x.idPersona == persona.idPersona && x.Estatus == "Procesando");



                    if (orderUpdate != null)
                    {
                        MerxProject.Models.Order.Orders order = new Models.Order.Orders()
                        {
                            IdOrder           = orderUpdate.IdOrder,
                            NombreCustomer    = datosCustomer.NombreCompleto,
                            NumeroCustomer    = datosCustomer.NumTelefono,
                            DireccionCustomer = datosCustomer.DirCalle + ", " + datosCustomer.CodigoPostal + ", " + datosCustomer.Estado + ", " + datosCustomer.Ciudad + ", " + datosCustomer.Asentamiento,
                            EmailCustomer     = User.Identity.Name,
                            idPersona         = persona.idPersona,
                            DiaOrden          = DateTime.Now,
                            idDireccion       = datosCustomer.Id,
                            TipoPago          = "Pago Online",
                            Estatus           = "Procesando"
                        };

                        DbModel.Orders.AddOrUpdate(order);
                        DbModel.SaveChanges();
                        idOrder = orderUpdate.IdOrder;
                    }
                    else
                    {
                        MerxProject.Models.Order.Orders order = new Models.Order.Orders()
                        {
                            NombreCustomer    = datosCustomer.NombreCompleto,
                            NumeroCustomer    = datosCustomer.NumTelefono,
                            DireccionCustomer = datosCustomer.DirCalle + ", " + datosCustomer.CodigoPostal + ", " + datosCustomer.Estado + ", " + datosCustomer.Ciudad + ", " + datosCustomer.Asentamiento,
                            EmailCustomer     = User.Identity.Name,
                            idPersona         = persona.idPersona,
                            DiaOrden          = DateTime.Now,
                            idDireccion       = datosCustomer.Id,
                            TipoPago          = "Pago Online",
                            Estatus           = "Procesando"
                        };

                        DbModel.Orders.Add(order);
                        DbModel.SaveChanges();
                        idOrder = order.IdOrder;
                    }
                }


                var orderDetails = DbModel.OrdersDetails.Where(x => x.idOrder == idOrder).ToList();

                foreach (var item in orderDetails)
                {
                    DbModel.OrdersDetails.Remove(item);
                    DbModel.SaveChanges();
                }


                i = 0;
                foreach (var item in model.CarritoCollection)
                {
                    OrdersDetails ordersDetails = new OrdersDetails()
                    {
                        idOrder    = idOrder,
                        idProducto = item.idProducto,
                        idColor    = item.idColor,
                        Cantidad   = item.Cantidad,
                        Precio     = item.Precio
                    };
                    i++;

                    DbModel.OrdersDetails.Add(ordersDetails);
                    DbModel.SaveChanges();
                }
            }
        }