Tabella OINV in SAP Business One (Fattura cliente (testata))

OINV è la tabella di SAP Business One che contiene la testata di ogni fattura cliente: cliente, date, totali, imposta, importo pagato e stato. Le righe sono in INV1, collegate tramite DocEntry, e il tipo di oggetto è 13.

Campi chiave di OINV

CampoContenuto
DocEntryChiave interna. Si collega a INV1.DocEntry ed è usata da tutti i collegamenti tra documenti.
DocNumNumero della fattura visibile agli utenti. È univoco per serie di numerazione, non in tutta la tabella.
DocDateData di registrazione. La usi per i report delle vendite per periodo.
DocDueDateData di scadenza, calcolata dalle condizioni di pagamento. La usi per lo scadenziario.
CardCodeCodice del cliente. Si collega a OCRD.CardCode.
DocTotalTotale comprensivo di imposta e spese di trasporto, al netto dello sconto di testata.
VatSumImporto dell’imposta. DocTotal - VatSum dà l’imponibile.
PaidToDateImporto già pagato. DocTotal - PaidToDate è il saldo aperto.
DiscPrcntPercentuale di sconto di testata. Non è inclusa in INV1.LineTotal.
DocStatusO = aperta, C = chiusa (pagata per intero o chiusa manualmente).
CANCELEDN = normale, Y = annullata, C = il documento di annullamento stesso.
SlpCodeAgente di vendita. Si collega a OSLP.SlpCode.

Come OINV si collega alle altre tabelle

OINV è una tabella di testata. Ogni fattura ha una riga in OINV e una riga per ogni articolo o servizio in INV1, con lo stesso DocEntry. Le spese di trasporto sono in INV3, le ritenute d’acconto in INV5 e le scadenze in INV6. Quando una fattura viene copiata da una consegna o da un ordine cliente, il collegamento è salvato nelle righe (INV1.BaseType, BaseEntry, BaseLine), non nella testata.

Join più comuni

  • OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry (righe)
  • OINV T0 INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode (anagrafica clienti)
  • OINV T0 LEFT JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode (agente di vendita)
  • OINV T0 LEFT JOIN OUSR T4 ON T0.UserSign = T4.USERID (utente che l’ha creata)

Quando si usa la tabella OINV

Quasi tutti i report di vendite, incassi e provvigioni partono da OINV: vendite per cliente o per periodo, fatture aperte, fatture scadute e scadenziario clienti. Per le vendite nette sottragga le note di credito cliente, che si trovano in ORIN con gli stessi nomi di colonna: la stessa struttura di query funziona con un UNION ALL.

Per creare fatture da codice usi la DI API (oggetto Documents, oInvoices) o il Service Layer (Invoices), mai un INSERT in OINV: SAP non supporta scritture dirette nelle sue tabelle. Quando Add() non riesce, il codice e il testo di GetLastError Le indicano il motivo. Veda Codici di errore della DI API (-5002, -1029, -2028 e altri).

Query di esempio: fatture cliente aperte 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 (nomi delle colonne tra virgolette doppie)

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"

Incolli una delle due versioni in Strumenti → Query → Generatore di query. Le serve l’altro dialetto per una Sua query? Usi il convertitore da SQL a HANA.

Errore frequente: DocTotal e somma di INV1.LineTotal a confronto

DocTotal include già lo sconto di testata (DiscPrcnt), l’imposta e le spese di trasporto. INV1.LineTotal non include lo sconto di testata, quindi la somma delle righe supera la fattura netta quando si usa uno sconto di testata. Applichi il fattore LineTotal * (1 - DiscPrcnt / 100) quando lavora sulle righe e filtri CANCELED = 'N', così le fatture annullate e i relativi documenti di annullamento non vengono contati due volte. Veda Perché i totali delle vendite in SAP B1 non tornano (sconto di testata).

Query pronte che usano OINV (pagine in inglese)

Tabelle correlate

INV1 (Fattura cliente (righe)) · ORIN (Nota di credito cliente (testata)) · OCRD (Business Partner) · ORDR (Ordine cliente (testata)) · ODLN (Consegna (testata)) · cerca tutte le tabelle di SAP Business One

Fonti: Documentazione e SDK di SAP Business One (riferimento delle tabelle del database della DI API), SAP Help Portal.

Iniziamo?

Ci descriva di cosa ha bisogno. Riceverà una risposta tecnica chiara, un perimetro definito e un prezzo, di norma entro 24 ore.