Ejemplo n.º 1
0
        public ActionResult CargarPedidoViejo(string PrePed)
        {
            try
            {
                int IDPrePedido = int.Parse(PrePed);
                //aca cargo los datos del Prepedido en la sesion
                var PrePedido = DocWorker.ObtenerDocXID(IDPrePedido);
                ListCarrito carrito = new ListCarrito();
                carrito.IDDocumento = PrePedido.IDDocumento;
                modelCarrito item;
                foreach (var p in PrePedido.DocumentoDetalle)
                {
                    item = new modelCarrito();
                    item.id = p.PrecioDetalle.Producto.IDProducto;
                    item.Nombre = p.PrecioDetalle.Producto.Nombre;
                    item.IDPrecioDetalle = p.IDPrecioDetalle;
                    item.Cant = p.Cantidad;
                    item.Precio = (double)p.PrecioDetalle.Precio;
                    carrito.Productos.Add(item);
                }
                //ya tengo el carrito. Acá tengo q verificar los precios y actualizarlo.
                //agarro los productos con precios.
                var ListaP = ProdWorker.traerProductosConPrecio();
                Boolean PrePedidoActualizado = false;
                foreach (var prodCarr in carrito.Productos)
                {
                    prodCarr.conPrecio = false;
                    foreach (var prodBase in ListaP)
                    {
                        if (prodCarr.id == prodBase.IDProducto)
                        {
                            prodCarr.conPrecio = true;
                            if (prodCarr.IDPrecioDetalle != prodBase.IDPrecioDetalle)
                            {
                                prodCarr.IDPrecioDetalle = prodBase.IDPrecioDetalle;
                                prodCarr.Precio = prodBase.PrecioActual;
                                PrePedidoActualizado = true;
                            }
                            break;
                        }
                    }
                }
                string msgReturn = "";
                if (PrePedidoActualizado)
                {
                    msgReturn = Language.PrePedidoActualizado;
                }

                Session["ListCarrito"] = carrito;
                ViewBag.NrPedido = carrito.IDDocumento;
                return Json(new { Result = msgReturn }, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex2)
            {
                Nullable<int> idUser = null;
                string ip = "Unknown";
                try
                {
                    idUser = (int)Session["userID"];
                }
                catch (Exception ex) { }
                try
                {
                    ip = Session["_ip"].ToString();
                }
                catch (Exception ex) { }
                try
                {
                    Bita.guardarBitacora(new BIZBitacora("Error", "Error al intentar cargar un prepedido", idUser, ip));
                }
                catch (Exception ex) { }
                TempData["ErrorNormal"] = Language.ErrorLogInAgain;
                return RedirectToAction("CerrarSesion", "Login");
            }
        }
Ejemplo n.º 2
0
        public ActionResult PedidoAjax2(ModelPedido item)
        {
            try
            {
                BIZUsuario UsuarioIN = (BIZUsuario)Session["SUsuario"];
                var productosSesion = Session["productosSesion"];
                var ListaP = (List<BIZProducto>)productosSesion;
                var ListCarrito = (Session["ListCarrito"] as ListCarrito) ?? new ListCarrito();
                int id = Convert.ToInt32(item.id);
                int cantidad = Convert.ToInt32(item.Cantidad);
                if (ListCarrito.Productos.Count == 0)
                {

                    modelCarrito carri = new modelCarrito();
                    carri.id = id;
                    //carri. = b.Name;
                    carri.Cant = cantidad;
                    // carri.Precio = Convert.ToInt32(item.);
                    if (cantidad > 0) //evitamos negativos
                    {
                        foreach (var p in ListaP)
                        {
                            if (carri.id == p.IDProducto)
                            {
                                carri.Precio = p.PrecioActual;
                                carri.Nombre = p.Nombre;
                                carri.IDPrecioDetalle = p.IDPrecioDetalle;
                                break;
                            }
                        }
                        ListCarrito.Productos.Add(carri);
                        Session["ListCarrito"] = ListCarrito;
                    }
                    //carri.Precio = 100;
                    //var cartObjects = (Session["CartObjects"] as List<carrito>) ?? new List<carrito>();

                }
                else
                {
                    bool existe = false;

                    for (int i = ListCarrito.Productos.Count - 1; i >= 0; i--)
                    {
                        //  foreach (carrito elem in cartObjects)
                        // {

                        if (id == ListCarrito.Productos[i].id)
                        {
                            ListCarrito.Productos[i].Cant += cantidad;
                            existe = true;
                        }
                        if (ListCarrito.Productos[i].Cant <= 0)
                        {
                            ListCarrito.Productos.RemoveAt(i);
                        }

                    }

                    if (!existe)
                    {
                        modelCarrito carri = new modelCarrito();
                        carri.id = id;
                        //carri.Name = b.Name;
                        carri.Cant = cantidad;
                        foreach (var p in ListaP)
                        {
                            if (carri.id == p.IDProducto)
                            {
                                carri.Precio = p.PrecioActual;
                                carri.Nombre = p.Nombre;
                                carri.IDPrecioDetalle = p.IDPrecioDetalle;
                            }
                        }
                        if (carri.Cant > 0)  // esto para evitar cantidades negativas
                        {
                            ListCarrito.Productos.Add(carri);
                        }
                        //Session["CartObjects"] = cartObjects;

                    }
                }

                Session["ListCarrito"] = ListCarrito;

                double Subtotal = 0;

                foreach (modelCarrito elem in ListCarrito.Productos)
                {
                    Subtotal += (double)elem.Precio * (int)elem.Cant;
                }
                double IVA = UsuarioIN.ClienteEmpresa.TipoIVA.Valor;
                string rIVA = IVA.ToString();
                return Json(new { ListCarrito, rIVA }, JsonRequestBehavior.AllowGet);
            }
            catch (Exception er)
            {
                Nullable<int> idUser = null;
                string ip = "Unknown";
                try
                {
                    idUser = (int)Session["userID"];
                }
                catch (Exception ex) { }
                try
                {
                    ip = Session["_ip"].ToString();
                }
                catch (Exception ex) { }
                try
                {
                    Bita.guardarBitacora(new BIZBitacora("Error", "Error al intentar agregar un producto al carrito", idUser, ip));
                }
                catch (Exception ex) { }

                ViewBag.AlertError = Language.ErrorLogInAgain;
                return Json(new { Result = "" }, JsonRequestBehavior.AllowGet);
            }
        }
Ejemplo n.º 3
0
        public ActionResult VerPedido(string Pedido)
        {
            try
            {

                int IDPedido = int.Parse(Pedido);
                //aca cargo los datos del Prepedido en la sesion
                var RPedido = DocWorker.ObtenerDocXID(IDPedido);
                ListCarrito carritoPedido = new ListCarrito();
                carritoPedido.IDDocumento = RPedido.IDDocumento;
                modelCarrito item;
                foreach (var p in RPedido.DocumentoDetalle)
                {
                    item = new modelCarrito();
                    item.id = p.PrecioDetalle.Producto.IDProducto;
                    item.Nombre = p.PrecioDetalle.Producto.Nombre;
                    item.IDPrecioDetalle = p.IDPrecioDetalle;
                    item.Cant = p.Cantidad;
                    item.Precio = (double)p.PrecioDetalle.Precio;
                    carritoPedido.Productos.Add(item);
                }
                carritoPedido.estado = RPedido.EstadoMisc.Detalle;
                carritoPedido.comentario = RPedido.Detalle;

                //Session["CarritoPedido"] = carritoPedido;
                ViewBag.NrPedido = carritoPedido.IDDocumento;
                return Json(new { Result = "", Pedido = carritoPedido }, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex2)
            {
                Nullable<int> idUser = null;
                string ip = "Unknown";
                try
                {
                    idUser = (int)Session["userID"];
                }
                catch (Exception ex) { }
                try
                {
                    ip = Session["_ip"].ToString();
                }
                catch (Exception ex) { }
                try
                {
                    Bita.guardarBitacora(new BIZBitacora("Error", "Error al intentar visualizar pedido en modal", idUser, ip));
                }
                catch (Exception ex) { }
                TempData["ErrorNormal"] = Language.ErrorLogInAgain;
                return RedirectToAction("CerrarSesion", "Login");
            }
        }