Example #1
0
        public IActionResult Insertar([FromBody] FormularioRegistrarEntrada formulario)
        {
            ServicioRegistradorEntrada servicio = new ServicioRegistradorEntrada();

            if (servicio.Registrar(formulario))
            {
                return(Accepted());
            }

            return(BadRequest());
        }
        public bool Registrar(FormularioRegistrarEntrada formulario)
        {
            try
            {
                Entrada entrada = formulario.Entrada;
                IEnumerable <DetalleEntrada> detalles = formulario.Detalles;

                entrada.Fecha = DateTime.Now;

                if (repositorio.Insertar(entrada))
                {
                    RepositorioDetallEntrada repoDetalle  = new RepositorioDetallEntrada();
                    RepositorioProducto      repoProducto = new RepositorioProducto();

                    int id = repositorio.UltimoPorId();

                    foreach (DetalleEntrada detalle in detalles)
                    {
                        detalle.Entrada = id;

                        if (repoProducto.PorId(detalle.Producto) is Producto producto)
                        {
                            producto.Existencias += detalle.Cantidad;

                            repoDetalle.Insertar(detalle);
                            repoProducto.Editar(producto);
                        }
                    }

                    return(true);
                }

                return(false);
            }

            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(false);
            }
        }