//GET: Cliente/Editar
 public ActionResult Editar(int id = 0)
 {
     if (Session["TipoUsuario"] != null && (Session["TipoUsuario"].ToString().Equals("Administrador") || (Session["TipoUsuario"].ToString().Equals("Cliente")) && (Convert.ToInt32(Session["IdUsuario"]) == id)))
     {
         try
         {
             if (id != 0)
             {
                 EditarViewModel editVM = new EditarViewModel();
                 editVM.cliente = clienteBL.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", "Cliente"));
             }
         }
         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"));
         }
     }
 }
Exemplo n.º 2
0
 //GET: Administrador/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.administrador = administradorBL.obtener(id);
                 editVM.completarEditarVM();
                 //editVM.administrador.Password = "******";//Es colo para validar el modelo
                 return(View(editVM));
             }
             else
             {
                 return(RedirectToAction("Crear", "Administrador"));
             }
         }
         catch (ProyectoException ex)
         {
             ViewBag.Mensaje = ex.Message;
             return(View("~/Views/Shared/_Mensajes.cshtml"));
         }
     }
     else
     {
         try
         {
             return(RedirectToAction("Index", "Home"));
         }
         catch (ProyectoException ex)
         {
             ViewBag.Mensaje = ex.Message;
             return(View("~/Views/Shared/_Mensajes.cshtml"));
         }
     }
 }
 //GET: Categoria/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.categoria = categoriaBL.obtener(id);
                 editVM.completarEditarVM();
                 return(View(editVM));
             }
             else
             {
                 return(RedirectToAction("Crear", "Categoria"));
             }
         }
         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 ActionResult Editar(EditarViewModel editVM)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    //COMPLETO EL PEDIDO CON LOS NUEVOS DATOS
                    //INCLUYE LA ACTUALIZACION DE LOS FILTROS SELECCIONADOS
                    if (Session["TipoUsuario"] != null)
                    {
                        editVM.completarPedido(Session["TipoUsuario"].ToString());

                        if (Session["TipoUsuario"].ToString().Equals("Cliente") && editVM.Pedido.Cliente.Id != Convert.ToInt32(Session["IdUsuario"]))
                        {
                            ViewBag.Mensaje = "No tiene permisos para relalizar esta acción.";
                            return(View("~/Views/Shared/_Mensajes.cshtml"));
                        }

                        if (editVM.Pedido.Estado.Nombre.Equals("REALIZADO") || editVM.Pedido.Estado.Nombre.Equals("CANCELADO") || editVM.Pedido.Estado.Nombre.Equals("CONFIRMADO") || (Session["TipoUsuario"].ToString().Equals("Cliente") && editVM.Pedido.Estado.Nombre.Equals("CONFIRMADO POR CLIENTE")))
                        {
                            ViewBag.Mensaje = "El pedido no se encuentra en un estado que permita modificarlo.";
                            return(View("~/Views/Shared/_Mensajes.cshtml"));
                        }

                        if (editVM.Pedido.Estado.Nombre.Equals("EN CONSTRUCCION"))
                        {
                            if (editVM.Pedido.Id == Convert.ToInt32(Session["IdPedidoEnConstruccion"]))
                            {
                                if (editVM.RealizarPedido)
                                {
                                    if (Session["TipoUsuario"].ToString().Equals("Administrador"))
                                    {
                                        editVM.Pedido.Estado = estadoPedidoBL.obtener("MODIFICADO POR ADMINISTRADOR");
                                        if (editVM.Pedido.FechaRealizado.Equals(new DateTime()))
                                        {
                                            editVM.Pedido.FechaRealizado = DateTime.Today;
                                        }
                                    }
                                    else if (Session["TipoUsuario"].ToString().Equals("Cliente"))
                                    {
                                        editVM.Pedido.Estado         = estadoPedidoBL.obtener("CONFIRMADO POR CLIENTE");
                                        editVM.Pedido.FechaRealizado = DateTime.Today;
                                    }
                                }
                            }
                            else
                            {
                                ViewBag.Mensaje = "No tiene permisos para relalizar esta acción.";
                                return(View("~/Views/Shared/_Mensajes.cshtml"));
                            }
                        }
                        else
                        {
                            if (Session["TipoUsuario"].ToString().Equals("Administrador"))
                            {
                                editVM.Pedido.Estado = estadoPedidoBL.obtener("MODIFICADO POR ADMINISTRADOR");
                            }
                            else if (Session["TipoUsuario"].ToString().Equals("Cliente"))
                            {
                                editVM.Pedido.Estado = estadoPedidoBL.obtener("CONFIRMADO POR CLIENTE");
                            }
                        }

                        //ACTUALIZO EL PEDIDO
                        bool r = pedidoBL.actualizar(editVM.Pedido);

                        if (!r)
                        {
                            // Podemos validar para mostrar un mensaje personalizado, por ahora el aplicativo se caera por el throw que hay en nuestra capa DAL
                            ViewBag.Mensaje = "Ocurrio un error inesperado";
                            return(View("~/Views/Shared/_Mensajes.cshtml"));
                        }
                        else
                        {
                            if (Session["TipoUsuario"].ToString().Equals("Administrador"))
                            {
                                Session["IdPedidoEnConstruccion"] = administradorBL.obtenerPedidoEnContruccion(Convert.ToInt32(Session["IdUsuario"]));
                            }
                            else if (Session["TipoUsuario"].ToString().Equals("Cliente"))
                            {
                                Session["IdPedidoEnConstruccion"] = clienteBL.obtenerPedidoEnContruccion(Convert.ToInt32(Session["IdUsuario"]));
                            }

                            if (editVM.RealizarPedido)
                            {
                                if (Session["TipoUsuario"].ToString().Equals("Administrador"))
                                {
                                    Administrador a = administradorBL.obtener(Convert.ToInt32(Session["IdUsuario"]));
                                    administradorBL.registrarPedidoEnConstruccion(a, 0);
                                }
                                else if (Session["TipoUsuario"].ToString().Equals("Cliente"))
                                {
                                    clienteBL.registrarPedidoEnConstruccion(editVM.Pedido.Cliente, 0);
                                }
                                Session["IdPedidoEnConstruccion"] = 0;
                            }

                            Session["CantidadProductosCarrito"] = pedidoBL.obtenerCantidadProductos(Convert.ToInt32(Session["IdPedidoEnConstruccion"]));
                            //Session["CantidadProductosCarrito"] = 0;


                            if (Session["TipoUsuario"].ToString().Equals("Administrador"))
                            {
                                Session["PedidosSinConfirmar"] = pedidoBL.obtenerCantidadSinConfirmar();
                            }

                            if (editVM.Pedido.ProductosPedidos == null)
                            {
                                return(RedirectToAction("Index", "Home"));
                            }
                            else if (editVM.Pedido.Estado.Nombre.Equals("EN CONSTRUCCION") || Session["TipoUsuario"].ToString().Equals("Administrador"))
                            {
                                editVM.mensajeSuccess = "Pedido modificado con éxito.";
                                editVM.Pedido         = pedidoBL.obtener(editVM.IdPedido);
                                editVM.completarEditarVM();
                                return(View(editVM));
                            }
                            else
                            {
                                return(RedirectToAction("Detalles", new { id = editVM.IdPedido }));
                            }
                            //ViewBag.Mensaje = "Su gestión ha sido realizada con éxito.";
                            //return View("~/Views/Shared/_Mensajes.cshtml");
                        }
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                catch (ProyectoException ex)
                {
                    ViewBag.Mensaje = ex.Message;
                    return(View("~/Views/Shared/_Mensajes.cshtml"));
                }
            }
            else
            {
                editVM.mensajeError = "Ocurrio un error al procesar su solicitud. Verifique los datos ingresados.";
                if (editVM.FechaEntregaSolicitada.Equals("") || editVM.FechaEntregaSolicitada.Equals(new DateTime()))
                {
                    editVM.mensajeError = "Debe ingresar la fecha de entrega del pedido.";
                }
                if (Session["TipoUsuario"].ToString().Equals("Administrador") && (editVM.FechaRealizado.Equals("") || editVM.FechaRealizado.Equals(new DateTime())))
                {
                    editVM.mensajeError = "Debe ingresar la fecha de realización del pedido.";
                }
                editVM.Pedido = pedidoBL.obtener(editVM.IdPedido);
                editVM.completarEditarVM();
                return(View(editVM));
            }
        }
        //LOGICA REVISADA 12/01/17
        //GET: Pedido/Editar
        public ActionResult Editar(int id = 0)
        {
            if (Session["TipoUsuario"] != null)
            {
                try
                {
                    if (id != 0)
                    {
                        //TRAIGO EL PEDIDO CON LOS ARTICULOS Y TODOS SUS FILTROS
                        //INCLUYENDO SELECCIONADOS Y NO SELECCIONADOS
                        Pedido p = pedidoBL.obtener(id);
                        if (p != null)
                        {
                            if (Session["TipoUsuario"].ToString().Equals("Cliente") && Convert.ToInt32(Session["IdUsuario"]) != p.Cliente.Id)
                            {
                                ViewBag.Mensaje = "No tiene permisos para relalizar esta acción.";
                                return(View("~/Views/Shared/_Mensajes.cshtml"));
                            }

                            if (p.Estado.Nombre.Equals("REALIZADO") || p.Estado.Nombre.Equals("CANCELADO") || p.Estado.Nombre.Equals("CONFIRMADO"))
                            {
                                ViewBag.Mensaje = "El pedido no se encuentra en un estado que permita modificarlo.";
                                return(View("~/Views/Shared/_Mensajes.cshtml"));
                            }

                            if (p.Estado.Nombre.Equals("EN CONSTRUCCION"))
                            {
                                int pedidoEnConstruccion = 0;

                                if (Session["TipoUsuario"].ToString().Equals("Administrador"))
                                {
                                    pedidoEnConstruccion = administradorBL.obtenerPedidoEnContruccion(Convert.ToInt32(Session["IdUsuario"]));
                                }
                                else if (Session["TipoUsuario"].ToString().Equals("Cliente"))
                                {
                                    pedidoEnConstruccion = clienteBL.obtenerPedidoEnContruccion(Convert.ToInt32(Session["IdUsuario"]));
                                }

                                if (pedidoEnConstruccion != id)
                                {
                                    ViewBag.Mensaje = "No tiene permisos para relalizar esta acción.";
                                    return(View("~/Views/Shared/_Mensajes.cshtml"));
                                }
                            }

                            if (p.Estado.Nombre.Equals("CONFIRMADO POR EL CLIENTE") && Session["TipoUsuario"].ToString().Equals("Cliente"))
                            {
                                ViewBag.Mensaje = "No tiene permisos para relalizar esta acción.";
                                return(View("~/Views/Shared/_Mensajes.cshtml"));
                            }

                            EditarViewModel editVM = new EditarViewModel();
                            editVM.Pedido = p;
                            editVM.completarEditarVM();

                            return(View(editVM));
                        }
                        else
                        {
                            ViewBag.Mensaje = "No se encontró el pedido que desea visualizar.";
                            return(View("~/Views/Shared/_Mensajes.cshtml"));
                        }
                    }
                    else
                    {
                        ViewBag.Mensaje = "Debe indicar qué pedido desea visualizar.";
                        return(View("~/Views/Shared/_Mensajes.cshtml"));
                    }
                }
                catch (ProyectoException ex)
                {
                    ViewBag.Mensaje = ex.Message;
                    return(View("~/Views/Shared/_Mensajes.cshtml"));
                }
            }
            else
            {
                ViewBag.Mensaje = "No tiene permisos para relalizar esta acción.";
                return(View("~/Views/Shared/_Mensajes.cshtml"));
            }
        }