Ejemplo n.º 1
0
        public async Task <IActionResult> Create([Bind("IdProducto,CantidadVendida,PrecioVenta,Importe")] List <DetalleViewModel> detalle)
        {
            if (detalle == null)
            {
                detalle = new List <DetalleViewModel>();
                return(View(detalle));
            }

            if (ModelState.IsValid && detalle.Count >= 1)
            {
                var trabajador = await repositorioTrabajadores.GetCurrentTrabajador();

                var venta = await ventaRepository.Add(detalle.Sum(item => item.Importe));

                var productos = await productoRepository.GetAll();

                if (venta == null || trabajador == null)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new { message = "ha ocurrido un error, intente crear la boleta nuevamente." }));
                }

                Debug.WriteLine(detalle.Sum(item => item.Importe));
                foreach (DetalleViewModel d in detalle)
                {
                    await repositorioDetalle.Add(d, venta, trabajador, productos);
                }
                return(RedirectToAction(nameof(Index)));
            }

            ViewData["IdProducto"] = new SelectList(await productoRepository.GetAll(), "IdProducto", "Nombre");

            return(View(detalle));
        }