Tabela OINV no SAP Business One (Nota fiscal de saída (cabeçalho))
OINV é a tabela do SAP Business One que guarda o cabeçalho de cada nota fiscal de saída: cliente, datas, totais, imposto, valor pago e status. As linhas ficam na INV1, relacionadas por DocEntry, e o tipo de objeto é 13.
Campos-chave da OINV
| Campo | O que contém |
|---|---|
DocEntry | Chave interna. Relaciona com INV1.DocEntry e é usada por todos os vínculos entre documentos. |
DocNum | Número da nota fiscal que os usuários veem. É único por série de numeração, não na tabela inteira. |
DocDate | Data de lançamento. Use-a para relatórios de vendas por período. |
DocDueDate | Data de vencimento, calculada a partir das condições de pagamento. Use-a para o aging (vencimento) de contas a receber. |
CardCode | Código do cliente. Relaciona com OCRD.CardCode. |
DocTotal | Total com imposto e despesas adicionais (frete), após o desconto do cabeçalho. |
VatSum | Valor do imposto. DocTotal - VatSum dá o valor líquido. |
PaidToDate | Valor já pago. DocTotal - PaidToDate é o saldo em aberto. |
DiscPrcnt | Percentual de desconto do cabeçalho. Não está incluído em INV1.LineTotal. |
DocStatus | O = em aberto, C = fechada (paga integralmente ou fechada manualmente). |
CANCELED | N = normal, Y = cancelada, C = o próprio documento de cancelamento. |
SlpCode | Vendedor. Relaciona com OSLP.SlpCode. |
Como a OINV se relaciona com outras tabelas
OINV é uma tabela de cabeçalho. Cada nota fiscal tem uma linha na OINV e uma linha por item ou serviço na INV1, e as duas compartilham o mesmo DocEntry. As despesas adicionais (frete) ficam na INV3, o imposto retido na fonte na INV5 e as parcelas na INV6. Quando uma nota é copiada de uma entrega ou de um pedido de venda, o vínculo fica gravado nas linhas (INV1.BaseType, BaseEntry, BaseLine), não no cabeçalho.
Joins mais comuns
OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry (linhas)OINV T0 INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode (cadastro do cliente)OINV T0 LEFT JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode (vendedor)OINV T0 LEFT JOIN OUSR T4 ON T0.UserSign = T4.USERID (usuário que a criou)
Quando usar a tabela OINV
Quase todo relatório de vendas, cobrança e comissões começa pela OINV: vendas por cliente ou por período, notas em aberto, notas vencidas e aging de clientes. Para vendas líquidas, subtraia as devoluções de nota fiscal de saída, que ficam na ORIN com os mesmos nomes de colunas, então a mesma estrutura de consulta funciona com um UNION ALL.
Para criar notas fiscais a partir de código, use a DI API (objeto Documents, oInvoices) ou o Service Layer (Invoices), nunca um INSERT na OINV: a SAP não suporta gravações diretas nas suas tabelas. Quando o Add() falha, o código e o texto de GetLastError informam o motivo. Veja Códigos de erro da DI API (-5002, -1029, -2028 e outros).
Consulta de exemplo: notas fiscais de saída em aberto com 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 (nomes de colunas entre aspas duplas)
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"
Cole qualquer uma das duas versões em Ferramentas → Consultas → Gerador de consultas. Precisa do outro dialeto para a sua própria consulta? Use o conversor de SQL para HANA.
Erro comum: DocTotal versus a soma de INV1.LineTotal
DocTotal já inclui o desconto do cabeçalho (DiscPrcnt), o imposto e as despesas adicionais. INV1.LineTotal não inclui o desconto do cabeçalho, então a soma das linhas fica maior que o valor líquido da nota quando há desconto no cabeçalho. Aplique o fator LineTotal * (1 - DiscPrcnt / 100) ao montar relatórios a partir das linhas e filtre CANCELED = 'N' para que as notas canceladas e seus documentos de cancelamento não sejam contados em dobro. Veja Por que os totais de vendas do SAP B1 não batem (desconto do cabeçalho).
Consultas prontas que usam a OINV (em inglês)
- Sales by customer for a date range: Net sales per customer (invoices minus credit notes) between two dates, highest first.
- Sales by sales employee: Invoice count and net sales per sales employee for a period.
- Monthly sales trend: Net invoiced sales per month for the last 12 months.
- Customer aging report (AR aging): Open invoice balance per customer in 0–30, 31–60, 61–90 and 90+ day buckets by due date.
- Overdue customer invoices: Open invoices past their due date, with days overdue and the customer phone number.
- Invoices created per user today: How many A/R invoices each SAP B1 user created today, with the total value.
Tabelas relacionadas
INV1 (Nota fiscal de saída (linhas)) · ORIN (Devolução de nota fiscal de saída (cabeçalho)) · OCRD (Parceiros de negócios) · ORDR (Pedido de venda (cabeçalho)) · ODLN (Entrega (cabeçalho)) · pesquisar todas as tabelas do SAP Business One
Pronto para começar?
Diga do que você precisa. Você recebe uma resposta técnica clara, um escopo fechado e um preço, normalmente em até 24 horas.
