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
| Campo | Contenuto |
|---|---|
DocEntry | Chiave interna. Si collega a INV1.DocEntry ed è usata da tutti i collegamenti tra documenti. |
DocNum | Numero della fattura visibile agli utenti. È univoco per serie di numerazione, non in tutta la tabella. |
DocDate | Data di registrazione. La usi per i report delle vendite per periodo. |
DocDueDate | Data di scadenza, calcolata dalle condizioni di pagamento. La usi per lo scadenziario. |
CardCode | Codice del cliente. Si collega a OCRD.CardCode. |
DocTotal | Totale comprensivo di imposta e spese di trasporto, al netto dello sconto di testata. |
VatSum | Importo dell’imposta. DocTotal - VatSum dà l’imponibile. |
PaidToDate | Importo già pagato. DocTotal - PaidToDate è il saldo aperto. |
DiscPrcnt | Percentuale di sconto di testata. Non è inclusa in INV1.LineTotal. |
DocStatus | O = aperta, C = chiusa (pagata per intero o chiusa manualmente). |
CANCELED | N = normale, Y = annullata, C = il documento di annullamento stesso. |
SlpCode | Agente 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)
- Vendite per cliente in un periodo: Vendite nette per cliente (fatture cliente meno note di credito cliente) tra due date, dalla più alta alla più bassa.
- Vendite per agente di vendita: Numero di fatture e vendite nette per agente di vendita in un periodo.
- Andamento mensile delle vendite: Vendite nette fatturate per mese negli ultimi 12 mesi.
- Scadenziario clienti: Importo residuo delle fatture per cliente, a fasce di 0–30, 31–60, 61–90 e oltre 90 giorni in base alla data di scadenza.
- Fatture cliente scadute: Fatture aperte con scadenza superata, con i giorni di ritardo e il telefono del cliente.
- Fatture create oggi per utente: Numero di fatture cliente create oggi da ciascun utente SAP B1, con l’importo totale.
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
Iniziamo?
Ci descriva di cosa ha bisogno. Riceverà una risposta tecnica chiara, un perimetro definito e un prezzo, di norma entro 24 ore.
