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