コード例 #1
0
        private void cargarProductosPedidos()
        {
            Pedido.ProductosPedidos = null;

            if (CadenaArticulos != null && !CadenaArticulos.Trim().Equals(""))
            {
                Pedido.ProductosPedidos = new List <ET.ArticuloCantidad>();

                CadenaArticulos = CadenaArticulos.Trim();
                char     c1         = ' ';
                char     c2         = ';';
                string[] substrings = CadenaArticulos.Split(c1);
                for (int i = 0; i < substrings.Length; i++)
                {
                    string[]            substrings2 = substrings[i].Split(c2);
                    ET.Articulo         a           = articuloBL.obtener(Convert.ToInt32(substrings2[0]));
                    ET.ArticuloCantidad ac          = new ET.ArticuloCantidad()
                    {
                        Id             = Convert.ToInt32(substrings2[1]),
                        Articulo       = a,
                        PrecioUnitario = a.Precio,
                        Cantidad       = Convert.ToInt32(substrings2[2])
                    };

                    Pedido.ProductosPedidos.Add(ac);
                }
            }
        }
コード例 #2
0
 //GET: Catalogo/DetalleArticulo
 public ActionResult DetalleArticulo(int Id = 0)
 {
     //int idCat = 2;
     try
     {
         if (Id != 0)
         {
             Articulo a = articuloBL.obtener(Id);
             if (a != null)
             {
                 return(View(a));
             }
             else
             {
                 ViewBag.Mensaje = "No existe el artículo especificado.";
                 return(View("~/Views/Shared/_Mensajes.cshtml"));
             }
         }
         else
         {
             return(RedirectToAction("ListaCategorias"));
         }
     }
     catch (ProyectoException ex)
     {
         ViewBag.Mensaje = ex.Message;
         return(View("~/Views/Shared/_Mensajes.cshtml"));
     }
 }
コード例 #3
0
 //GET: Articulo/Editar
 public ActionResult Editar(int id = 0)
 {
     if (Session["TipoUsuario"] != null && Session["TipoUsuario"].ToString().Equals("Administrador"))
     {
         try
         {
             if (id != 0)
             {
                 EditarViewModel editVM = new EditarViewModel();
                 editVM.Articulo = articuloBL.obtener(id);
                 editVM.completarEditarVM();//Es para manejo de archivo a la hora de guardar
                 //editVM.cliente.Password = "******";//Es colo para validar el modelo
                 return(View(editVM));
             }
             else
             {
                 return(RedirectToAction("Crear", "Articulo"));
             }
         }
         catch (ProyectoException ex)
         {
             ViewBag.Mensaje = ex.Message;
             return(View("~/Views/Shared/_Mensajes.cshtml"));
         }
     }
     else
     {
         try
         {
             ViewBag.Mensaje = "No tiene permisos para relalizar esta acción.";
             return(View("~/Views/Shared/_Mensajes.cshtml"));
         }
         catch (ProyectoException ex)
         {
             ViewBag.Mensaje = ex.Message;
             return(View("~/Views/Shared/_Mensajes.cshtml"));
         }
     }
 }
コード例 #4
0
        public JsonResult Create(int id = 0, int cantidad = 0)
        {
            //Si no está logueado, le doy aviso de que no tiene permisos
            if (Session["TipoUsuario"] == null)
            {
                Json("No tiene permisos para realizar esta acción.", JsonRequestBehavior.AllowGet);
            }

            //Si no hace llegar un artículo o una cantidad, le doy aviso de que debe indicarlos
            if (id <= 0 || cantidad <= 0)
            {
                Json("Debe indicar el artículo y una cantidad mayor a 0.", JsonRequestBehavior.AllowGet);
            }

            //Si no existe un artículo con el ID que llega, doy aviso, si existe, ya me queda guardado
            Articulo a = articuloBL.obtener(id);

            if (a == null)
            {
                Json("No se encontró un Artículo con el identificador especificado.", JsonRequestBehavior.AllowGet);
            }

            //Si el Usuario logueado tiene un pedido en construcción, me quedo con el ID del mismo, sino me queda en 0
            int idUsuario        = Convert.ToInt32(Session["IdUsuario"]);
            int idEnConstruccion = 0;

            if (Session["TipoUsuario"].ToString().Equals("Administrador"))
            {
                idEnConstruccion = administradorBL.obtenerPedidoEnContruccion(idUsuario);
            }
            else if (Session["TipoUsuario"].ToString().Equals("Cliente"))
            {
                idEnConstruccion = clienteBL.obtenerPedidoEnContruccion(idUsuario);
            }

            Pedido pedidoEnConstruccion = null;

            //ACA LE SETEO LOS FILTROS QUE QUIERO TENGA SELECCIONADO POR DEFECTO
            //LOS DEJO TODOS DESELECCIONADOS, PODRIAMOS PENSAR UNA LOGICA PARA VER CUAL SELECCIONAMOS
            a.Filtros = new List <Filtro>();

            ArticuloCantidad ac = new ArticuloCantidad
            {
                Articulo       = a,
                Cantidad       = cantidad,
                PrecioUnitario = a.Precio
            };

            if (idEnConstruccion > 0)
            {
                //Si el ID del pedido en construcción es distinto de 0, me lo guardo.

                //CAMBIO IMPORTANTE  OBTENGO EL PEDIDO PERO SOLO CON LOS FILTROS SELECCIONADOS
                //YA QUE LUEGO VOY A ACTUALIZAR EL PEDIDO CON SUS FILTROS SELECCIONADOS
                //pedidoEnConstruccion = pedidoBL.obtener(idEnConstruccion);
                pedidoEnConstruccion = pedidoBL.obtenerPedidoConFiltrosSeleccionados(idEnConstruccion);

                if (pedidoEnConstruccion.ProductosPedidos == null)
                {
                    pedidoEnConstruccion.ProductosPedidos = new List <ArticuloCantidad>();
                }

                pedidoEnConstruccion.ProductosPedidos.Add(ac);

                pedidoBL.actualizar(pedidoEnConstruccion);
            }
            else
            {
                Cliente      c   = null;
                EstadoPedido ep  = estadoPedidoBL.obtener("EN CONSTRUCCION");
                double       iva = parametroBL.obtenerIVA();

                if (Session["TipoUsuario"].ToString().Equals("Administrador"))
                {
                    int idPrimerCliente = clienteBL.obtenerPrimerNombreFantasiaHabilitado();
                    if (idPrimerCliente == 0)
                    {
                        Json("Debe existir al menos un cliente registrado y habilitado para poder construir un pedido.", JsonRequestBehavior.AllowGet);
                    }

                    c = clienteBL.obtener(idPrimerCliente);
                }
                else if (Session["TipoUsuario"].ToString().Equals("Cliente"))
                {
                    c = clienteBL.obtener(Convert.ToInt32(Session["IdUsuario"]));
                }

                pedidoEnConstruccion = new Pedido
                {
                    FechaRealizado         = new DateTime(),
                    FechaEntregaSolicitada = new DateTime(),
                    ProductosPedidos       = new List <ArticuloCantidad>(),
                    Comentario             = "",
                    Estado  = ep,
                    Iva     = iva,
                    Cliente = c
                };

                pedidoEnConstruccion.ProductosPedidos.Add(ac);

                pedidoEnConstruccion.Id = pedidoBL.registrar(pedidoEnConstruccion, idUsuario, Session["TipoUsuario"].ToString());
            }

            Session["IdPedidoEnConstruccion"]   = pedidoEnConstruccion.Id;
            Session["CantidadProductosCarrito"] = pedidoBL.obtenerCantidadProductos(pedidoEnConstruccion.Id);
            List <int> datos = new List <int>();

            datos.Add(Convert.ToInt32(Session["IdPedidoEnConstruccion"]));
            datos.Add(Convert.ToInt32(Session["CantidadProductosCarrito"]));

            return(Json(datos, JsonRequestBehavior.AllowGet)); //Para que es el AllowGet?
        }