💳 الدفع والمحاسبة في المعمل — التفصيل الكامل

إيه اللي بيحصل بالظبط لكل وسيلة دفع · القيود المحاسبية · التقرير اليومي · مطابقة الكاشير · والمقترحات للناقص

📅 2026-05-31 5 وسائل: كاش · فيزا · تمارا · تابي · تحويل 🧾 قيود تلقائية ⚠️ مطابقة الكاشير غير موجودة — مقترحة
الخلاصة في سطر: كل دفعة بتعمل قيد تلقائي: مدين حساب الاستلام (خزينة كاش أو بنك حسب الوسيلة) ودائن ذمم العملاء (الـ AR). وسيلة الدفع نفسها بيتسجّل عليها للتقارير بس مش هي اللي بتحدّد الحساب — اللي بيحدّده هو حساب الاستلام اللي الكاشير بيختاره. التقرير اليومي حسب الوسيلة موجود ✅، لكن مطابقة/تقفيل الكاشير لسه مش موجودة — مقترحة في آخر الملف.

1 دورة الدفع — خطوة بخطوة

1) فاتورة تتعمل 2) ترحيل الفاتورة (قيد الإيراد + الضريبة) 3) الكاشير يسجّل دفعة + يختار الوسيلة + حساب الاستلام 4) قيد دفع تلقائي (مدين الخزينة/البنك · دائن العملاء) 5) رصيد الفاتورة يتحدّث

2 القيود المحاسبية (قيدين منفصلين)

أ) قيد ترحيل الفاتورة (وقت الترحيل — مش وقت الدفع)

مثال: فاتورة مريض غير سعودي — تحاليل بـ 140، ضريبة 15% = 21، الإجمالي 161.

الحسابمديندائن
ذمم العملاء (AR) — lis.receivable_account161.00
إيرادات المعمل — lis.revenue_account140.00
ضريبة القيمة المضافة المستحقة — lis.tax_payable_account21.00

+ قيد تكلفة منفصل (لو فيه تكلفة): مدين تكلفة المبيعات COGS · دائن مصروف الخامات/الكواشف — لكل مركز تكلفة (lab_cogs).

ب) قيد الدفع (وقت ما الكاشير يحصّل الفلوس)

نفس الفاتورة، اتدفعت كاملة 161:

الحسابمديندائن
حساب الاستلام (receiving_account_id) — خزينة كاش أو بنك حسب الوسيلة161.00
ذمم العملاء (AR)161.00
النقطة المحورية: الحساب المدين = حساب الاستلام اللي الكاشير اختاره، مش وسيلة الدفع. يعني كاش وفيزا ممكن يدخلوا نفس الحساب لو الكاشير اختار نفس الحساب — لكن payment_method بيفضل مختلف ومتسجّل لكل دفعة (للتقارير).

3 كل وسيلة بتأثّر إزاي — بالتفصيل

الوسيلةحساب الاستلام النموذجيالقيد (مدين / دائن)ملاحظات
💵 كاش خزينة نقدية (Petty Cash) — حساب فرعي تحت 1101 نقدية مدين الخزينة النقدية · دائن العملاء الفلوس فعليًا في درج الكاشير. دي اللي بتتعدّ في تقفيل الكاشير.
💳 فيزا حساب بنكي (مكنة الشبكة/POS) — تحت 1102 بنوك مدين البنك · دائن العملاء بتتحوّل للبنك من مكنة الشبكة. مش كاش في الدرج.
📅 تمارا حساب بنكي / وسيط — تحت 1102 بنوك مدين البنك/الوسيط · دائن العملاء دفع آجل (BNPL). حاليًا بيتعامل زي الفيزا (إيداع بنكي مباشر). عمولة تمارا والتأخير في التحويل لسه مش متتبّعين — انظر المقترحات.
🕐 تابي حساب بنكي / وسيط — تحت 1102 بنوك مدين البنك/الوسيط · دائن العملاء زي تمارا بالظبط.
🏛️ تحويل بنكي حساب بنكي — تحت 1102 بنوك مدين البنك · دائن العملاء تحويل مباشر لحساب المعمل.
مهم: payment_method (الخمسة) بيتخزّن على كل دفعة مستقل عن الحساب — فالتقارير بتقدر تقولك «جالي كام كاش، كام فيزا، كام تمارا، كام تابي» حتى لو بعضهم دخلوا نفس البنك.

4 مثال كامل — فاتورة 161 مدفوعة بـ «تمارا»

الحدثالحسابمديندائن
ترحيل الفاتورةذمم العملاء161.00
إيرادات المعمل140.00
ض.ق.م مستحقة21.00
الدفع بتماراالبنك/الوسيط (حساب الاستلام)161.00
ذمم العملاء161.00

النتيجة: ذمم العملاء صفّرت (161 مدين من الترحيل − 161 دائن من الدفع)، الإيراد 140، الضريبة 21، والبنك زاد 161. في التقرير اليومي هتظهر الدفعة دي تحت «تمارا».

دقّة محاسبية (مقترح تحسين): في الواقع تمارا/تابي بيحوّلوا للمعمل بعد فترة وبعد خصم عمولتهم. الأدق محاسبيًا: وقت الدفع مدين «ذمم تمارا» (حساب وسيط) بدل البنك مباشرة، وبعد التحويل الفعلي: مدين البنك + مدين مصروف عمولة تمارا · دائن ذمم تمارا. ده بيخليك تعرف فلوسك «المعلّقة» عند تمارا/تابي والعمولة. (Phase لاحق — انظر المقترحات #3)

5 التقارير الموجودة دلوقتي ✅

أ) الملخّص اليومي حسب الوسيلة — GET /lis/payments/daily-summary?date=YYYY-MM-DD

بيرجّع إجمالي اليوم + تفصيل لكل وسيلة (عدد + مبلغ). بيستثني الملغي. فلترة: التاريخ + الشركة فقط.

الوسيلةعدد العملياتالإجمالي
كاش3250.00
فيزا2200.00
تمارا1161.00
تابي190.00
الإجمالي7701.00

ب) تقرير التدفق النقدي اليومي — GET /lis/treasury/cash-flow?date=

الداخل (IN) حسب الوسيلة + حسب حساب الاستلام، والخارج (OUT): مرتجعات + تسويات عمولات أطباء + معامل خارجية + مصروفات الخزينة، والصافي (Net).

تم تعديله النهاردة: كان بيعرض كاش/فيزا/تحويل بس — دلوقتي بيعرض كل الوسائل تلقائيًا (تمارا/تابي ظاهرين).

6 الناقص — والمقترحات للشغل

1 مطابقة/تقفيل الكاشير (Cashier Reconciliation) — غير موجود

دلوقتي created_by (الكاشير اللي حصّل) بيتسجّل على كل دفعة، لكن مفيش تقرير يجمّع التحصيل لكل كاشير عشان يراجع دفعته. كل كاشير محتاج يعرف: «أنا حصّلت النهاردة كام كاش (أعدّ الدرج)، كام فيزا، كام تمارا، كام تابي».

المقترح (Quick win):

2 تقفيل وردية بدرج نقدية (Shift / Z-Report) — غير موجود

أقوى من #1: الكاشير يفتح وردية برصيد افتتاحي، يحصّل خلال الوردية، ويقفل بإدخال الكاش المعدود → النظام يحسب المتوقع (افتتاحي + كاش محصّل − مصروفات) ويقارنه بالمعدود → عجز/زيادة. ده الـ Z-report الاحترافي.

يحتاج موديل جديد LisCashierSession (open/close, opening_float, counted_cash, over_short) + ربط كل دفعة بالـ session. شغل أكبر — يُفضّل بعد #1.

3 حسابات وسيطة + عمولة لتمارا/تابي — دقّة محاسبية

زي ما في بند 4: تتبّع الفلوس المعلّقة عند تمارا/تابي وعمولتهم عبر حساب وسيط «ذمم تمارا/تابي» + قيد تسوية عند التحويل الفعلي (مدين بنك + مدين عمولة · دائن الوسيط).

4 فلتر الفرع في التقارير — تحسين بسيط

branch_id متسجّل على كل دفعة بس التقارير لسه مابتفلترش بيه. أضيف ?branch_id= على daily-summary و cash-flow عشان كل فرع يراجع تحصيله.

الأولويات المقترحة

#الشغلالفايدةالحجم
1تقرير/شاشة مطابقة الكاشير (by_cashier + الكاش المتوقع)كل كاشير يراجع تحصيله ويعدّ درجهصغير–متوسط
4فلتر الفرع في التقاريرمراجعة لكل فرعصغير
2وردية بدرج نقدية (Z-report) بعجز/زيادةضبط نقدي كاملكبير
3حسابات وسيطة + عمولة تمارا/تابيدقّة محاسبية للـ BNPLمتوسط
اقتراحي نبدأ بـ #1 (مطابقة الكاشير): هي اللي بتجاوب على سؤالك «الكاشير يراجع عملياته إزاي». تقرير يجمّع تحصيل كل كاشير بالوسيلة + الكاش المتوقع في الدرج — مفيش موديل جديد، بس توسعة للتقرير الموجود + شاشة. أقدر أبدأ فيها فورًا لو موافق.