Tabla OINV en SAP Business One (Factura de clientes (cabecera))

OINV es la tabla de SAP Business One que guarda la cabecera de cada factura de clientes: cliente, fechas, totales, impuesto, importe pagado y estado. Sus líneas están en INV1, unidas por DocEntry, y su tipo de objeto es 13.

Campos clave de OINV

CampoQué contiene
DocEntryClave interna. Se une con INV1.DocEntry y la usan todos los vínculos entre documentos.
DocNumNúmero de factura que ven los usuarios. Es único por serie de numeración, no en toda la tabla.
DocDateFecha de contabilización. Úsela para reportes de ventas por período.
DocDueDateFecha de vencimiento, calculada a partir de las condiciones de pago. Úsela para la antigüedad de saldos.
CardCodeCódigo del cliente. Se une con OCRD.CardCode.
DocTotalTotal con impuesto y fletes, después del descuento de cabecera.
VatSumImporte del impuesto. DocTotal - VatSum da el importe neto.
PaidToDateImporte ya pagado. DocTotal - PaidToDate es el saldo pendiente.
DiscPrcntPorcentaje de descuento de cabecera. No está incluido en INV1.LineTotal.
DocStatusO = abierta, C = cerrada (pagada por completo o cerrada manualmente).
CANCELEDN = normal, Y = cancelada, C = el propio documento de cancelación.
SlpCodeEmpleado del departamento de ventas. Se une con OSLP.SlpCode.

Cómo se relaciona OINV con otras tablas

OINV es una tabla de cabecera. Cada factura tiene una fila en OINV y una fila por cada línea de artículo o servicio en INV1, y ambas comparten el mismo DocEntry. Los fletes están en INV3, las retenciones de impuestos en INV5 y las cuotas en INV6. Cuando una factura se copia de una entrega o de un pedido de cliente, el vínculo se guarda en las líneas (INV1.BaseType, BaseEntry, BaseLine), no en la cabecera.

Joins habituales

  • OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry (líneas)
  • OINV T0 INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode (maestro de clientes)
  • OINV T0 LEFT JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode (empleado del departamento de ventas)
  • OINV T0 LEFT JOIN OUSR T4 ON T0.UserSign = T4.USERID (usuario que la creó)

Cuándo se usa la tabla OINV

Casi todos los reportes de ventas, cobranza y comisiones parten de OINV: ventas por cliente o por período, facturas abiertas, facturas vencidas y antigüedad de saldos de clientes. Para ventas netas, reste las notas de crédito de clientes, que están en ORIN con los mismos nombres de columna, así que la misma estructura de consulta funciona con un UNION ALL.

Para crear facturas desde código, use la DI API (objeto Documents, oInvoices) o el Service Layer (Invoices), nunca un INSERT en OINV: SAP no admite escrituras directas en sus tablas. Cuando Add() falla, el código y el texto de GetLastError le indican el motivo. Vea Códigos de error de la DI API (-5002, -1029, -2028 y más).

Consulta de ejemplo: facturas de clientes abiertas con saldo

SQL Server

SELECT T0.DocNum, T0.DocDate, T0.DocDueDate, T0.CardCode, T0.CardName,
  T0.DocTotal, T0.PaidToDate, T0.DocTotal - T0.PaidToDate AS OpenAmount
FROM OINV T0
WHERE T0.DocStatus = 'O' AND T0.CANCELED = 'N'
ORDER BY T0.DocDueDate

SAP HANA (nombres de columna entre comillas dobles)

SELECT T0."DocNum", T0."DocDate", T0."DocDueDate", T0."CardCode", T0."CardName",
  T0."DocTotal", T0."PaidToDate", T0."DocTotal" - T0."PaidToDate" AS "OpenAmount"
FROM OINV T0
WHERE T0."DocStatus" = 'O' AND T0."CANCELED" = 'N'
ORDER BY T0."DocDueDate"

Pegue cualquiera de las dos versiones en Herramientas → Consultas → Generador de consultas. ¿Necesita el otro dialecto para su propia consulta? Use el conversor de SQL a HANA.

Error frecuente: DocTotal frente a la suma de INV1.LineTotal

DocTotal ya incluye el descuento de cabecera (DiscPrcnt), el impuesto y los fletes. INV1.LineTotal no incluye el descuento de cabecera, así que la suma de las líneas es mayor que la factura neta cuando se usa un descuento de cabecera. Aplique el factor LineTotal * (1 - DiscPrcnt / 100) cuando reporte desde las líneas, y filtre CANCELED = 'N' para que las facturas canceladas y sus documentos de cancelación no se cuenten dos veces. Vea Por qué no cuadran los totales de ventas en SAP B1 (descuento de cabecera).

Consultas listas que usan OINV

Tablas relacionadas

INV1 (Factura de clientes (líneas)) · ORIN (Nota de crédito de clientes (cabecera)) · OCRD (Socios de negocios) · ORDR (Pedido de cliente (cabecera)) · ODLN (Entrega (cabecera)) · buscar todas las tablas de SAP Business One

Fuentes: Documentación y SDK de SAP Business One (referencia de tablas de base de datos de DI API), SAP Help Portal.

¿Listo para empezar?

Cuéntenos lo que necesita. Recibirá una respuesta técnica clara, un alcance definido y un precio fijo, normalmente en 24 horas.