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
| Campo | Qué contiene |
|---|---|
DocEntry | Clave interna. Se une con INV1.DocEntry y la usan todos los vínculos entre documentos. |
DocNum | Número de factura que ven los usuarios. Es único por serie de numeración, no en toda la tabla. |
DocDate | Fecha de contabilización. Úsela para reportes de ventas por período. |
DocDueDate | Fecha de vencimiento, calculada a partir de las condiciones de pago. Úsela para la antigüedad de saldos. |
CardCode | Código del cliente. Se une con OCRD.CardCode. |
DocTotal | Total con impuesto y fletes, después del descuento de cabecera. |
VatSum | Importe del impuesto. DocTotal - VatSum da el importe neto. |
PaidToDate | Importe ya pagado. DocTotal - PaidToDate es el saldo pendiente. |
DiscPrcnt | Porcentaje de descuento de cabecera. No está incluido en INV1.LineTotal. |
DocStatus | O = abierta, C = cerrada (pagada por completo o cerrada manualmente). |
CANCELED | N = normal, Y = cancelada, C = el propio documento de cancelación. |
SlpCode | Empleado 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
- Ventas por cliente en un rango de fechas: Ventas netas por cliente (facturas menos notas de crédito) entre dos fechas, de mayor a menor.
- Ventas por vendedor: Número de facturas y ventas netas por empleado del departamento de ventas en un período.
- Tendencia mensual de ventas: Ventas netas facturadas por mes en los últimos 12 meses.
- Antigüedad de saldos de clientes (cuentas por cobrar): Saldo abierto por cliente en tramos de 0–30, 31–60, 61–90 y más de 90 días según el vencimiento.
- Facturas de clientes vencidas: Facturas abiertas que pasaron su fecha de vencimiento, con días de atraso y el teléfono del cliente.
- Facturas creadas por usuario hoy: Cuántas facturas de clientes creó hoy cada usuario de SAP B1, con el valor total.
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
¿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.
