/// <summary>
        /// vista que toma el id de un registro y muestra los datos en un formulario
        /// </summary>
        /// <param name="iIdProducto">id del producto seleccionado</param>
        /// <returns>devuelve los datos del registro del objeto en una vista modal </returns>
        public ActionResult VisualizarProducto(int id)
        {
            Categoria CategoriaBus = new Categoria();

            tblCat_Producto oProducto = ProductoBus.ObtenerProducto(id);

            ViewBag.cNombreCat = CategoriaBus.ObtenerNombreCategoria(oProducto.iIdCategoria);


            return(View(oProducto));
        }
        public ActionResult EditarProducto(int iIdProducto)
        {
            Categoria categoria = new Categoria();

            tblCat_Producto oProducto = ProductoBus.ObtenerProducto(iIdProducto);

            List <ListaCategoriaDTO> _lstCategoria = categoria.CategoriaActiva();

            ViewBag.ListaCategoria = new SelectList(_lstCategoria, nameof(ListaCategoriaDTO.iIdCategoria), nameof(ListaCategoriaDTO.cNombre));

            return(View(oProducto));
        }
Beispiel #3
0
        /// <summary>
        /// Método para editar productos
        /// </summary>
        /// <param name="_objProducto">Objeto con los datos del producto</param>
        public void EditarProducto(tblCat_Producto _objProducto)
        {
            tblCat_Producto otblProducto = db.tblCat_Producto.FirstOrDefault(Cat => Cat.iIdProducto == _objProducto.iIdProducto);

            otblProducto.cNombre             = _objProducto.cNombre;
            otblProducto.iIdCategoria        = _objProducto.iIdCategoria;
            otblProducto.cNombre             = _objProducto.cNombre;
            otblProducto.iCantidad           = _objProducto.iCantidad;
            otblProducto.dPrecio             = _objProducto.dPrecio;
            otblProducto.cDescripcion        = _objProducto.cDescripcion;
            otblProducto.cImagen             = "Foto";
            otblProducto.lEstatus            = true;
            otblProducto.dtFechaModificacion = DateTime.Now;

            db.Entry(otblProducto).State = EntityState.Modified;

            db.SaveChanges();
        }
Beispiel #4
0
        /// <summary>
        /// Método para desactivar productos
        /// </summary>
        /// <param name="_objPrododucto">Objeto con los datos del producto</param>
        public void DesactivarProducto(tblCat_Producto _objPrododucto)
        {
            tblCat_Producto otblProducto = db.tblCat_Producto.FirstOrDefault(Cat => Cat.iIdProducto == _objPrododucto.iIdProducto);

            if (otblProducto.lEstatus == true)
            {
                otblProducto.lEstatus    = false;
                otblProducto.dfFechaBaja = DateTime.Now;
            }
            else
            {
                otblProducto.lEstatus = true;
            }

            db.Entry(otblProducto).State = EntityState.Modified;

            db.SaveChanges();
        }
Beispiel #5
0
        /// <summary>
        /// Método para realizar la compra de un producto
        /// </summary>
        /// <param name="oProducto">Objeto con los datos del producto</param>
        /// <param name="iIdCompra">ID de la compra</param>
        public void RealizarCompraDirecta(ProductosCompraDTO oProducto, int iIdCompra)
        {
            tbl_DetalleCompra _oDetalleCompra = new tbl_DetalleCompra()
            {
                iIdCompra   = iIdCompra,
                iIdProducto = oProducto.iIdProducto,
                iCantidad   = oProducto.iCantidadSeleccion
            };

            db.Entry(_oDetalleCompra).State = EntityState.Added;

            tblCat_Producto _oProducto = db.tblCat_Producto.AsNoTracking().FirstOrDefault(p => p.iIdProducto == _oDetalleCompra.iIdProducto);

            _oProducto.iCantidad -= _oDetalleCompra.iCantidad;

            db.Entry(_oProducto).State = EntityState.Modified;

            db.SaveChanges();
        }
Beispiel #6
0
        /// <summary>
        /// Método para realizar la compra desde el carrito
        /// </summary>
        /// <param name="iIdCarrito">ID del carrito</param>
        /// <param name="iIdCompra">ID de la compra</param>
        public void RealizarCompraCarrito(int iIdCarrito, int iIdCompra)
        {
            List <ProductosCompraDTO> _lstProductos = ObtenerProductosCompra(iIdCarrito);

            foreach (var _producto in _lstProductos)
            {
                tbl_DetalleCompra _oDetalleCompra = new tbl_DetalleCompra();

                _oDetalleCompra.iIdCompra   = iIdCompra;
                _oDetalleCompra.iIdProducto = _producto.iIdProducto;
                _oDetalleCompra.iCantidad   = _producto.iCantidadSeleccion;

                db.Entry(_oDetalleCompra).State = EntityState.Added;

                tblCat_Producto _oProducto = db.tblCat_Producto.AsNoTracking().FirstOrDefault(p => p.iIdProducto == _producto.iIdProducto);
                _oProducto.iCantidad -= _producto.iCantidadSeleccion;

                db.Entry(_oProducto).State = EntityState.Modified;
            }
            db.SaveChanges();
        }
Beispiel #7
0
        /// <summary>
        /// Método para registrar productos
        /// </summary>
        /// <param name="_objProducto">Objeto con los datos del producto</param>
        public int AgregaProducto(tblCat_Producto _objProducto)
        {
            tblCat_Producto otblProducto = new tblCat_Producto
            {
                iIdCategoria        = _objProducto.iIdCategoria,
                cNombre             = _objProducto.cNombre,
                iCantidad           = _objProducto.iCantidad,
                dPrecio             = _objProducto.dPrecio,
                cDescripcion        = _objProducto.cDescripcion,
                cImagen             = "1576172857_ImagenProductoDef",
                lEstatus            = true,
                dtFechaAlta         = DateTime.Now,
                dfFechaBaja         = null,
                dtFechaModificacion = null
            };

            db.tblCat_Producto.Add(otblProducto);

            db.SaveChanges();

            return(otblProducto.iIdProducto);
        }
Beispiel #8
0
        /// <summary>
        /// Método que lee los datos registrados en una plantilla de Excel y los registra en la BDD
        /// </summary>
        /// <param name="_cNombreArchivo">Nombre del archivo subido</param>
        /// <returns>una cadena de texto con un mensaje con el resultado de la operación</returns>
        public string ImportarProductosEnPlantilla(string _cNombreArchivo)
        {
            string cEstatus       = "pendiente";
            string cHome          = AppDomain.CurrentDomain.BaseDirectory;
            string cRutaPlantilla = cHome + "Plantillas\\PlantillaSubida\\" + _cNombreArchivo;

            using (FileStream _oFileStream = new FileStream(cRutaPlantilla, FileMode.Open, FileAccess.Read))
            {
                IWorkbook oLibro = new XSSFWorkbook(_oFileStream);
                ISheet    oHoja  = oLibro.GetSheetAt(0);

                for (int i = 1; i <= oHoja.LastRowNum; i++)
                {
                    tblCat_Producto oProducto  = new tblCat_Producto();
                    IRow            oFilaDatos = oHoja.GetRow(i);
                    for (int j = 0; j < oFilaDatos.LastCellNum; j++)
                    {
                        ICell oCeldaDatos = oFilaDatos.GetCell(j);
                        switch (j)
                        {
                        case 0:
                            oProducto.cNombre = oCeldaDatos.StringCellValue.Trim();
                            break;

                        case 1:
                            oProducto.cDescripcion = oCeldaDatos.StringCellValue.Trim();
                            break;

                        case 2:
                            oProducto.dPrecio = (decimal)oCeldaDatos.NumericCellValue;
                            break;

                        case 3:
                            oProducto.iIdCategoria = ObtenerIdCategoria(oCeldaDatos.StringCellValue);
                            break;

                        case 4:

                            bool   lEstatusActivoProducto = true;
                            string cDatoEstatusEnCelda    = oCeldaDatos.StringCellValue;

                            if (cDatoEstatusEnCelda.Equals("Activo"))
                            {
                                lEstatusActivoProducto = true;
                            }
                            else
                            {
                                lEstatusActivoProducto = false;
                            }
                            oProducto.lEstatus = lEstatusActivoProducto;

                            break;

                        case 5:
                            oProducto.iCantidad = Convert.ToInt32(oCeldaDatos.NumericCellValue);
                            break;

                        default:
                            break;
                        }
                    }
                    oProducto.cImagen             = "Foto";
                    oProducto.dtFechaAlta         = DateTime.Now;
                    oProducto.dtFechaModificacion = DateTime.Now;
                    try
                    {
                        db.tblCat_Producto.Add(oProducto);
                        db.SaveChanges();
                        cEstatus = "Registro exitoso";
                    }
                    catch (Exception e)
                    {
                        cEstatus = "Error: " + e.Message;
                    }
                }
            }

            return(cEstatus);
        }
Beispiel #9
0
        /// <summary>
        /// Método que Obtiene los datos de un producto de acuerdo a su identificador para mostrar los detalles
        /// </summary>
        /// <param name="_iIdProducto">la id del producto a localizar </param>
        /// <returns>regresa un objeto con los datos del producto</returns>
        public tblCat_Producto ObtenerProducto(int _iIdProducto)
        {
            tblCat_Producto oProducto = db.tblCat_Producto.Where(p => p.iIdProducto == _iIdProducto).FirstOrDefault();

            return(oProducto);
        }