جدول OINV في SAP Business One (فاتورة المبيعات (الرأس))
OINV هو جدول SAP Business One الذي يخزن رأس كل فاتورة مبيعات: العميل، والتواريخ، والإجماليات، والضريبة، والمبلغ المدفوع، والحالة. أسطرها في INV1 وتُربط عبر DocEntry، ونوع كائنها 13.
الحقول الرئيسية في OINV
| الحقل | ما يحتويه |
|---|---|
DocEntry | المفتاح الداخلي. يُربط بـ INV1.DocEntry وتستخدمه كل روابط المستندات. |
DocNum | رقم الفاتورة الذي يراه المستخدمون. فريد داخل كل سلسلة ترقيم، لا على مستوى الجدول كله. |
DocDate | تاريخ الترحيل. استخدمه لتقارير المبيعات حسب الفترة. |
DocDueDate | تاريخ الاستحقاق، محسوب من شروط الدفع. استخدمه لأعمار الذمم. |
CardCode | رمز العميل. يُربط بـ OCRD.CardCode. |
DocTotal | الإجمالي شاملًا الضريبة والشحن، بعد خصم الرأس. |
VatSum | مبلغ الضريبة. DocTotal - VatSum يعطي المبلغ الصافي. |
PaidToDate | المبلغ المدفوع حتى الآن. DocTotal - PaidToDate هو الرصيد المفتوح. |
DiscPrcnt | نسبة خصم الرأس. غير مشمولة في INV1.LineTotal. |
DocStatus | O = مفتوحة، C = مغلقة (مسددة بالكامل أو مغلقة يدويًا). |
CANCELED | N = عادية، Y = ملغاة، C = مستند الإلغاء نفسه. |
SlpCode | موظف المبيعات. يُربط بـ OSLP.SlpCode. |
كيف يرتبط OINV بالجداول الأخرى
OINV جدول رأس. لكل فاتورة صف واحد في OINV وصف لكل سطر صنف أو خدمة في INV1، ويشتركان في DocEntry نفسه. الشحن في INV3، وضريبة الاستقطاع في INV5، والأقساط في INV6. عندما تُنسخ الفاتورة من مذكرة تسليم أو أمر بيع، يُخزَّن الرابط في الأسطر (INV1.BaseType و BaseEntry و BaseLine)، لا في الرأس.
عمليات الربط الشائعة
OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry(الأسطر)OINV T0 INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode(البيانات الرئيسية للعميل)OINV T0 LEFT JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode(موظف المبيعات)OINV T0 LEFT JOIN OUSR T4 ON T0.UserSign = T4.USERID(المستخدم الذي أنشأها)
متى تستخدم جدول OINV
يبدأ كل تقرير مبيعات أو تحصيل أو عمولات تقريبًا من OINV: المبيعات حسب العميل أو الفترة، والفواتير المفتوحة، والفواتير المتأخرة، وأعمار ذمم العملاء. لصافي المبيعات، اطرح الإشعارات الدائنة للمبيعات الموجودة في ORIN بأسماء الأعمدة نفسها، فيعمل شكل الاستعلام نفسه مع UNION ALL.
لإنشاء الفواتير من الكود، استخدم DI API (كائن Documents، oInvoices) أو Service Layer (Invoices)، ولا تستخدم أبدًا INSERT في OINV: فـ SAP لا تدعم الكتابة المباشرة في جداولها. وعندما يفشل Add()، يخبرك الرمز والنص من GetLastError بالسبب. انظر رموز أخطاء DI API (-5002، -1029، -2028 وغيرها).
مثال على استعلام: فواتير المبيعات المفتوحة مع الرصيد
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 (أسماء الأعمدة بين علامتي اقتباس مزدوجتين)
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"
الصق أيًّا من النسختين في الأدوات ← الاستعلامات ← مولّد الاستعلامات (Tools → Queries → Query Generator). تحتاج اللهجة الأخرى لاستعلامك الخاص؟ استخدم محوّل SQL إلى HANA.
خطأ شائع: DocTotal مقابل مجموع INV1.LineTotal
يتضمن DocTotal بالفعل خصم الرأس (DiscPrcnt) والضريبة والشحن. أما INV1.LineTotal فلا يتضمن خصم الرأس، لذلك يكون مجموع الأسطر أعلى من صافي الفاتورة عند استخدام خصم رأس. طبّق المعامل LineTotal * (1 - DiscPrcnt / 100) عندما تعدّ التقارير من الأسطر، وصفِّ CANCELED = 'N' حتى لا تُحتسب الفواتير الملغاة ومستندات إلغائها مرتين. انظر لماذا لا تتطابق إجماليات المبيعات في SAP B1 (خصم الرأس).
استعلامات جاهزة تستخدم OINV
- المبيعات حسب العميل لفترة زمنية: صافي المبيعات لكل عميل (الفواتير ناقص الإشعارات الدائنة) بين تاريخين، من الأعلى إلى الأدنى.
- المبيعات حسب موظف المبيعات: عدد الفواتير وصافي المبيعات لكل موظف مبيعات خلال فترة.
- اتجاه المبيعات الشهري: صافي المبيعات المفوترة لكل شهر خلال آخر 12 شهرًا.
- تقرير أعمار ذمم العملاء (AR Aging): رصيد الفواتير المفتوحة لكل عميل في فئات 0–30 و31–60 و61–90 وأكثر من 90 يومًا حسب تاريخ الاستحقاق.
- فواتير العملاء المتأخرة: الفواتير المفتوحة التي تجاوزت تاريخ استحقاقها، مع أيام التأخير ورقم هاتف العميل.
- الفواتير المُنشأة لكل مستخدم اليوم: عدد فواتير المبيعات التي أنشأها كل مستخدم SAP B1 اليوم، مع القيمة الإجمالية.
جداول ذات صلة
INV1 (فاتورة المبيعات (الأسطر)) · ORIN (الإشعار الدائن للمبيعات (الرأس)) · OCRD (شركاء الأعمال) · ORDR (أمر البيع (الرأس)) · ODLN (مذكرة التسليم (الرأس)) · ابحث في كل جداول SAP Business One
المصادر: توثيق SAP Business One و SDK (مرجع جداول قاعدة البيانات في DI API)، بوابة SAP Help.
جاهز للبدء؟
أخبرنا بما تحتاجه. ستحصل على إجابة تقنية واضحة ونطاق عمل محدد وسعر ثابت، عادةً خلال 24 ساعة.
