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

CampoO que contém
DocEntryChave interna. Relaciona com INV1.DocEntry e é usada por todos os vínculos entre documentos.
DocNumNúmero da nota fiscal que os usuários veem. É único por série de numeração, não na tabela inteira.
DocDateData de lançamento. Use-a para relatórios de vendas por período.
DocDueDateData de vencimento, calculada a partir das condições de pagamento. Use-a para o aging (vencimento) de contas a receber.
CardCodeCódigo do cliente. Relaciona com OCRD.CardCode.
DocTotalTotal com imposto e despesas adicionais (frete), após o desconto do cabeçalho.
VatSumValor do imposto. DocTotal - VatSum dá o valor líquido.
PaidToDateValor já pago. DocTotal - PaidToDate é o saldo em aberto.
DiscPrcntPercentual de desconto do cabeçalho. Não está incluído em INV1.LineTotal.
DocStatusO = em aberto, C = fechada (paga integralmente ou fechada manualmente).
CANCELEDN = normal, Y = cancelada, C = o próprio documento de cancelamento.
SlpCodeVendedor. 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)

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

Fontes: Documentação e SDK do SAP Business One (referência das tabelas do banco de dados da DI API), SAP Help Portal.

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.