コード例 #1
0
        /// <summary>
        /// Convertir clase producto a productoDetailsViewModel (incluye productos asignados, piezas o paquetes)
        /// </summary>
        /// <param name="producto"></param>
        /// <returns>ProductViewModel(class)</returns>
        public async Task <ProductoDetailsViewModel> ToProductosDetailsViewModelAsync(Producto producto)
        {
            var productoDetailsViewModel = new ProductoDetailsViewModel()
            {
                Activo              = producto.Activo,
                Codigo              = producto.Codigo,
                MarcaID             = producto.MarcaID,
                Marcas              = producto.Marcas,
                PrecioCosto         = producto.PrecioCosto,
                PrecioVenta         = producto.PrecioVenta,
                ProductoDescripcion = producto.ProductoDescripcion,
                ProductoID          = producto.ProductoID,
                ProductoNombre      = producto.ProductoNombre,
                TasaID              = producto.TasaID,
                TasasImpuestos      = producto.TasasImpuestos,
                Unidades            = producto.Unidades,
                UnidadID            = producto.UnidadID,
                Paquete             = producto.Paquete,
                Existencias         = producto.Existencias
            };

            if (productoDetailsViewModel.Paquete != null)
            {
                var productoAsignado = await _context.Productos.FindAsync(productoDetailsViewModel.Paquete.PiezaProductoID);

                if (productoAsignado != null)
                {
                    List <ProductoAsignadoViewModel> productosAsignados = new List <ProductoAsignadoViewModel>();
                    var productoAsignadoViewModel = new ProductoAsignadoViewModel()
                    {
                        ProductoID  = productoAsignado.ProductoID,
                        Codigo      = productoAsignado.Codigo,
                        Descripcion = productoAsignado.ProductoNombre,
                        Cantidad    = productoDetailsViewModel.Paquete.CantidadProductoxPaquete
                    };
                    productosAsignados.Add(productoAsignadoViewModel);

                    productoDetailsViewModel.ProductosAsignadosViewModel = productosAsignados;
                }
            }
            else
            {
                productoDetailsViewModel.ProductosAsignadosViewModel = await(from p in _context.Productos
                                                                             join pa in _context.Paquetes on p.ProductoID equals pa.ProductoID
                                                                             where pa.PiezaProductoID == productoDetailsViewModel.ProductoID
                                                                             orderby p.Codigo
                                                                             select new ProductoAsignadoViewModel()
                {
                    ProductoID  = p.ProductoID,
                    Codigo      = p.Codigo,
                    Descripcion = p.ProductoNombre,
                    Cantidad    = pa.CantidadProductoxPaquete
                }).ToListAsync();
            }

            return(productoDetailsViewModel);
        }
コード例 #2
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ProductoEditDto productoEditDto = _servicio.GetProductoPorId(id);

            if (productoEditDto == null)
            {
                return(HttpNotFound("Código no existente..."));
            }
            ProductoDetailsViewModel productoVm = _mapper.Map <ProductoDetailsViewModel>(productoEditDto);

            return(View(productoVm));
        }