إيه اللي بيحصل بالظبط لكل وسيلة دفع · القيود المحاسبية · التقرير اليومي · مطابقة الكاشير · والمقترحات للناقص
POST /lis/payments — يحفظ payment_method + receiving_account_id + amount + created_by (الكاشير) + branch_id (تلقائي من الفاتورة/فرع اليوزر).PostLabPayment اللي بيعمل القيد ويربطه بالدفعة (journal_entry_id).POST /lis/payments/{id}/void — بيعكس القيد (reverse) ويخزّن void_journal_entry_id + voided_by + void_reason، ويعيد حساب رصيد الفاتورة.مثال: فاتورة مريض غير سعودي — تحاليل بـ 140، ضريبة 15% = 21، الإجمالي 161.
| الحساب | مدين | دائن |
|---|---|---|
ذمم العملاء (AR) — lis.receivable_account | 161.00 | — |
إيرادات المعمل — lis.revenue_account | — | 140.00 |
ضريبة القيمة المضافة المستحقة — lis.tax_payable_account | — | 21.00 |
+ قيد تكلفة منفصل (لو فيه تكلفة): مدين تكلفة المبيعات COGS · دائن مصروف الخامات/الكواشف — لكل مركز تكلفة (lab_cogs).
نفس الفاتورة، اتدفعت كاملة 161:
| الحساب | مدين | دائن |
|---|---|---|
حساب الاستلام (receiving_account_id) — خزينة كاش أو بنك حسب الوسيلة | 161.00 | — |
| ذمم العملاء (AR) | — | 161.00 |
payment_method بيفضل مختلف ومتسجّل لكل دفعة (للتقارير).| الوسيلة | حساب الاستلام النموذجي | القيد (مدين / دائن) | ملاحظات |
|---|---|---|---|
| 💵 كاش | خزينة نقدية (Petty Cash) — حساب فرعي تحت 1101 نقدية |
مدين الخزينة النقدية · دائن العملاء | الفلوس فعليًا في درج الكاشير. دي اللي بتتعدّ في تقفيل الكاشير. |
| 💳 فيزا | حساب بنكي (مكنة الشبكة/POS) — تحت 1102 بنوك |
مدين البنك · دائن العملاء | بتتحوّل للبنك من مكنة الشبكة. مش كاش في الدرج. |
| 📅 تمارا | حساب بنكي / وسيط — تحت 1102 بنوك |
مدين البنك/الوسيط · دائن العملاء | دفع آجل (BNPL). حاليًا بيتعامل زي الفيزا (إيداع بنكي مباشر). عمولة تمارا والتأخير في التحويل لسه مش متتبّعين — انظر المقترحات. |
| 🕐 تابي | حساب بنكي / وسيط — تحت 1102 بنوك |
مدين البنك/الوسيط · دائن العملاء | زي تمارا بالظبط. |
| 🏛️ تحويل بنكي | حساب بنكي — تحت 1102 بنوك |
مدين البنك · دائن العملاء | تحويل مباشر لحساب المعمل. |
payment_method (الخمسة) بيتخزّن على كل دفعة مستقل عن الحساب — فالتقارير بتقدر تقولك «جالي كام كاش، كام فيزا، كام تمارا، كام تابي» حتى لو بعضهم دخلوا نفس البنك.
| الحدث | الحساب | مدين | دائن |
|---|---|---|---|
| ترحيل الفاتورة | ذمم العملاء | 161.00 | — |
| إيرادات المعمل | — | 140.00 | |
| ض.ق.م مستحقة | — | 21.00 | |
| الدفع بتمارا | البنك/الوسيط (حساب الاستلام) | 161.00 | — |
| ذمم العملاء | — | 161.00 |
النتيجة: ذمم العملاء صفّرت (161 مدين من الترحيل − 161 دائن من الدفع)، الإيراد 140، الضريبة 21، والبنك زاد 161. في التقرير اليومي هتظهر الدفعة دي تحت «تمارا».
GET /lis/payments/daily-summary?date=YYYY-MM-DDبيرجّع إجمالي اليوم + تفصيل لكل وسيلة (عدد + مبلغ). بيستثني الملغي. فلترة: التاريخ + الشركة فقط.
| الوسيلة | عدد العمليات | الإجمالي |
|---|---|---|
| كاش | 3 | 250.00 |
| فيزا | 2 | 200.00 |
| تمارا | 1 | 161.00 |
| تابي | 1 | 90.00 |
| الإجمالي | 7 | 701.00 |
GET /lis/treasury/cash-flow?date=الداخل (IN) حسب الوسيلة + حسب حساب الاستلام، والخارج (OUT): مرتجعات + تسويات عمولات أطباء + معامل خارجية + مصروفات الخزينة، والصافي (Net).
دلوقتي created_by (الكاشير اللي حصّل) بيتسجّل على كل دفعة، لكن مفيش تقرير يجمّع التحصيل لكل كاشير عشان يراجع دفعته. كل كاشير محتاج يعرف: «أنا حصّلت النهاردة كام كاش (أعدّ الدرج)، كام فيزا، كام تمارا، كام تابي».
المقترح (Quick win):
daily-summary بفلاتر ?cashier_id= و ?branch_id= + تجميع إضافي by_cashier.أقوى من #1: الكاشير يفتح وردية برصيد افتتاحي، يحصّل خلال الوردية، ويقفل بإدخال الكاش المعدود → النظام يحسب المتوقع (افتتاحي + كاش محصّل − مصروفات) ويقارنه بالمعدود → عجز/زيادة. ده الـ Z-report الاحترافي.
يحتاج موديل جديد LisCashierSession (open/close, opening_float, counted_cash, over_short) + ربط كل دفعة بالـ session. شغل أكبر — يُفضّل بعد #1.
زي ما في بند 4: تتبّع الفلوس المعلّقة عند تمارا/تابي وعمولتهم عبر حساب وسيط «ذمم تمارا/تابي» + قيد تسوية عند التحويل الفعلي (مدين بنك + مدين عمولة · دائن الوسيط).
branch_id متسجّل على كل دفعة بس التقارير لسه مابتفلترش بيه. أضيف ?branch_id= على daily-summary و cash-flow عشان كل فرع يراجع تحصيله.
| # | الشغل | الفايدة | الحجم |
|---|---|---|---|
| 1 | تقرير/شاشة مطابقة الكاشير (by_cashier + الكاش المتوقع) | كل كاشير يراجع تحصيله ويعدّ درجه | صغير–متوسط |
| 4 | فلتر الفرع في التقارير | مراجعة لكل فرع | صغير |
| 2 | وردية بدرج نقدية (Z-report) بعجز/زيادة | ضبط نقدي كامل | كبير |
| 3 | حسابات وسيطة + عمولة تمارا/تابي | دقّة محاسبية للـ BNPL | متوسط |