public ViewResult Index() { var articulos = carritoComprasRepositorio.ObtenerListaArticulosCarritoCompras(); carritoComprasRepositorio.ListaArticulosCarritoCompras = articulos; var carritoComprasViewModel = new CarritoComprasViewModel { DataCarritoCompras = carritoComprasRepositorio, TotalCarritoCompras = carritoComprasRepositorio.ObtenerTotalCarritoCompras() }; return(View(carritoComprasViewModel)); }
public IViewComponentResult Invoke() { var ListaArticulos = carritoComprasRepositorio.ObtenerListaArticulosCarritoCompras(); carritoComprasRepositorio.ListaArticulosCarritoCompras = ListaArticulos; var carritoComprasViewModel = new CarritoComprasViewModel { DataCarritoCompras = carritoComprasRepositorio, TotalCarritoCompras = carritoComprasRepositorio.ObtenerTotalCarritoCompras() }; return(View(carritoComprasViewModel)); }
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)); } }
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)); }
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(); } } }