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); } } }
//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")); } }
//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")); } } }
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? }