private Factura MapearFactura(FacturaInputModels facturaInput) { var factura = new FacturaVenta(); facturaInput.Detalles.ForEach(d => { var detalle = new Detalle { Cantidad = d.Cantidad, Producto = new Producto { Cantidad = d.Producto.Cantidad, Codigo = d.Producto.Codigo, Descripcion = d.Producto.Descripcion, Descuento = d.Producto.Descuento, Estado = d.Producto.Estado, Fecha = d.Producto.Fecha, IVA = d.Producto.IVA, ProveedorNIT = d.Producto.IdProveedor, ValorDescontado = d.Producto.ValorDescontado, ValorUnitario = d.Producto.ValorUnitario }, }; factura.AgregarDetalle(detalle); }); factura.Estado = "Activo"; factura.InteresadoId = facturaInput.InteresadoId; factura.UsuarioVentasId = facturaInput.UsuarioVentasId; factura.CalcularTotales(); return(factura); }
public ActionResult <FacturaInputModels> CrearFactura(FacturaInputModels facturaInput) { Factura factura = MapearFactura(facturaInput); var response = _serviceFactura.CrearFactura(factura); if (response.Error) { ModelState.AddModelError("Error al crear la factura", response.Mensaje); var detallesproblemas = new ValidationProblemDetails(ModelState); if (response.Estado == "Error") { detallesproblemas.Status = StatusCodes.Status500InternalServerError; } if (response.Estado == "Registrado") { detallesproblemas.Status = StatusCodes.Status409Conflict; } return(BadRequest(detallesproblemas)); } return(Ok(new FacturaViewModels(response.Factura))); }