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