public ActionResult Editar(int id, SalidaProductos salida)
        {
            try
            {
                clsSalidaProductos         ObjSalida  = new clsSalidaProductos();
                clsUsuario                 objUsuario = new clsUsuario();
                clsBitacoraSalidaProductos objBitacoraSalidaProductos = new clsBitacoraSalidaProductos();

                bool Resultado = ObjSalida.ActualizarSalidaProducto(salida.idSalida, salida.fechaSalida, salida.codigoProducto,
                                                                    salida.nombreProducto, salida.unidad, salida.detalle, true);

                string nombreUsuario = (string)Session["Usuario"];
                int    IdUsuario     = objUsuario.ConsultarIdUsuario(nombreUsuario);

                objBitacoraSalidaProductos.ActualizarBitacoraSalidaProductos(salida.idSalida, IdUsuario, nombreUsuario, DateTime.Now, salida.fechaSalida, salida.codigoProducto,
                                                                             salida.nombreProducto, salida.unidad, salida.detalle, true);

                TempData["exitoMensaje"] = "La boleta de salida de productos se ha modificado exitosamente.";
                return(View());
            }
            catch
            {
                TempData["errorMensaje"] = "Inserte correctamente el formato de los datos.";
                return(View());
            }
        }
        public ActionResult Editar(int id, SalidaProductos salida, string listCodigoStock)
        {
            try
            {
                clsSalidaProductos         ObjSalida  = new clsSalidaProductos();
                clsUsuario                 objUsuario = new clsUsuario();
                clsBitacoraSalidaProductos objBitacoraSalidaProductos = new clsBitacoraSalidaProductos();

                clsSalidaProductos objSalidaproductos = new clsSalidaProductos();

                int idStock = objSalidaproductos.ConsultaIdProducto(listCodigoStock);

                ViewBag.Lista = objSalidaproductos.ConsultarCodigoStock().ToList();

                bool Resultado = ObjSalida.ActualizarSalidaProducto(salida.idSalida, salida.fechaSalida, listCodigoStock,
                                                                    objSalidaproductos.ConsultaNombreProducto().ElementAt(idStock - 1).nombreProducto, salida.detalle, true);

                string nombreUsuario = (string)Session["Usuario"];
                int    IdUsuario     = objUsuario.ConsultarIdUsuario(nombreUsuario);

                objBitacoraSalidaProductos.ActualizarBitacoraSalidaProductos(salida.idSalida, IdUsuario, nombreUsuario, DateTime.Now, salida.fechaSalida, listCodigoStock,
                                                                             objSalidaproductos.ConsultaNombreProducto().ElementAt(idStock - 1).nombreProducto, salida.detalle, true);

                TempData["exitoMensaje"] = "La boleta de salida de productos se ha modificado exitosamente.";
                return(View());
            }
            catch
            {
                clsSalidaProductos objSalidaproductos = new clsSalidaProductos();
                ViewBag.Lista            = objSalidaproductos.ConsultarCodigoStock().ToList();
                TempData["errorMensaje"] = "Inserte correctamente el formato de los datos.";
                return(View());
            }
        }
        public ActionResult Crear(SalidaProductos salida)
        {
            try
            {
                if (salida.unidad > 0)
                {
                    if (ModelState.IsValid)
                    {
                        clsSalidaProductos         objsalida  = new clsSalidaProductos();
                        clsUsuario                 objUsuario = new clsUsuario();
                        clsBitacoraSalidaProductos objBitacoraSalidaProductos = new clsBitacoraSalidaProductos();

                        bool Resultado = objsalida.AgregarSalidaProducto(salida.fechaSalida, salida.codigoProducto, salida.nombreProducto,
                                                                         salida.unidad, salida.detalle, true);

                        string nombreUsuario = (string)Session["Usuario"];
                        int    IdUsuario     = objUsuario.ConsultarIdUsuario(nombreUsuario);

                        objBitacoraSalidaProductos.AgregarBitacoraSalidaProductos(IdUsuario, nombreUsuario, DateTime.Now, salida.fechaSalida, salida.codigoProducto, salida.nombreProducto,
                                                                                  salida.unidad, salida.detalle, true);

                        if (Resultado)
                        {
                            TempData["exitoMensaje"] = "La boleta de salida del producto se ha insertado exitosamente.";
                            return(RedirectToAction("Crear"));
                        }
                        else
                        {
                            TempData["errorMensaje"] = "Se presentó un error al intentar insertar este elemento, revise que los datos coincidan con lo que especifican los campos";
                            return(View("Crear"));
                        }
                    }
                    else
                    {
                        return(View("Crear"));
                    }
                }
                else
                {
                    TempData["errorMensaje"] = "El número de unidades no puede ser negativo.";
                    return(View("Crear"));
                }
            }
            catch
            {
                TempData["errorMensaje"] = "Todos los campos son obligatorios.";
                return(View());
            }
        }
        public ActionResult Editar(int id, SalidaProductos salida)
        {
            try
            {
                clsSalidaProductos         ObjSalida  = new clsSalidaProductos();
                clsUsuario                 objUsuario = new clsUsuario();
                clsBitacoraSalidaProductos objBitacoraSalidaProductos = new clsBitacoraSalidaProductos();

                bool Resultado = ObjSalida.ActualizarSalidaProducto(salida.idSalida, salida.fechaSalida, salida.codigoProducto,
                                                                    salida.nombreProducto, salida.unidad, salida.detalle, true);

                string nombreUsuario = (string)Session["Usuario"];
                int    IdUsuario     = objUsuario.ConsultarIdUsuario(nombreUsuario);

                objBitacoraSalidaProductos.ActualizarBitacoraSalidaProductos(salida.idSalida, IdUsuario, nombreUsuario, DateTime.Now, salida.fechaSalida, salida.codigoProducto,
                                                                             salida.nombreProducto, salida.unidad, salida.detalle, true);

                return(View());
            }
            catch
            {
                return(View());
            }
        }
        public ActionResult Crear(SalidaProductos salida, string listCodigoStock)
        {
            try
            {
                if (salida.unidad > 0)
                {
                    if (ModelState.IsValid)
                    {
                        clsSalidaProductos objsalida = new clsSalidaProductos();

                        int excede = objsalida.ComprobarUnidadesStock(listCodigoStock, salida.unidad);

                        if (excede == 0)
                        {
                            clsUsuario objUsuario = new clsUsuario();
                            clsBitacoraSalidaProductos objBitacoraSalidaProductos = new clsBitacoraSalidaProductos();

                            int idStock = objsalida.ConsultaIdProducto(listCodigoStock);

                            bool Resultado = objsalida.AgregarSalidaProducto(salida.fechaSalida, listCodigoStock, objsalida.ConsultaNombreProducto().ElementAt(idStock - 1).nombreProducto,
                                                                             salida.unidad, salida.detalle, true);

                            string nombreUsuario = (string)Session["Usuario"];
                            int    IdUsuario     = objUsuario.ConsultarIdUsuario(nombreUsuario);

                            objBitacoraSalidaProductos.AgregarBitacoraSalidaProductos(IdUsuario, nombreUsuario, DateTime.Now, salida.fechaSalida, listCodigoStock, objsalida.ConsultaNombreProducto().ElementAt(idStock - 1).nombreProducto,
                                                                                      salida.unidad, salida.detalle, true);

                            if (Resultado)
                            {
                                TempData["exitoMensaje"] = "La boleta de salida del producto se ha insertado exitosamente.";
                                return(RedirectToAction("Crear"));
                            }
                            else
                            {
                                TempData["errorMensaje"] = "Se presentó un error al intentar insertar este elemento, revise que los datos coincidan con lo que especifican los campos";
                                return(View("Crear"));
                            }
                        }
                        else
                        {
                            clsSalidaProductos objSalidaproductos = new clsSalidaProductos();
                            ViewBag.Lista            = objSalidaproductos.ConsultarCodigoStock().ToList();
                            TempData["errorMensaje"] = "La cantidad de unidades del producto a retirar excede la cantidad de unidades disponibles en el inventario.";
                            return(View("Crear"));
                        }
                    }
                    else
                    {
                        clsSalidaProductos objSalidaproductos = new clsSalidaProductos();
                        ViewBag.Lista = objSalidaproductos.ConsultarCodigoStock().ToList();
                        return(View("Crear"));
                    }
                }
                else
                {
                    clsSalidaProductos objSalidaproductos = new clsSalidaProductos();
                    ViewBag.Lista            = objSalidaproductos.ConsultarCodigoStock().ToList();
                    TempData["errorMensaje"] = "El número de unidades no puede ser negativo.";
                    return(View("Crear"));
                }
            }
            catch
            {
                clsSalidaProductos objSalidaproductos = new clsSalidaProductos();
                ViewBag.Lista            = objSalidaproductos.ConsultarCodigoStock().ToList();
                TempData["errorMensaje"] = "Todos los campos son obligatorios.";
                return(View());
            }
        }