0%
balqalam Logo
بالقلم
المميزاتالمجتمعالتسعيرالوثائق
تسجيل الدخول
  • مقدمة
  • العرض
  • MVP
  • خارطة الطريق
  • متطلبات المنتج
  • ابدأ الآن
  • البيئة المحلية
  • البنية المعمارية
  • الهيكل
  • الأنماط
  • الحزمة التقنية
  • قاعدة البيانات
  • تعدّد المستأجرين
  • الفهرس (Catalog)
  • العمل دون اتصال
  • المصادقة
  • التهيئة (Onboarding)
  • تدفق التكامل (Integration Flow)
  • التهيئة (Provision)
  • القبول
  • الحضور
  • الامتثال التنظيمي
  • الملف الشخصي
  • الاجتماعات
  • إدارة الرسوم
  • الفاتورة
  • التدويل
  • الترجمة
  • دليل الترجمة
  • أمان قاعدة البيانات
  • المساهمة
  • هَوْغوارتس
  • عرض حي
  • الإلهام
المبيعات والانتشار
  • المبيعات
  • الذهاب إلى السوق
  • التسويق
  • القبول — تسليط الضوء
  • البرنامج التجريبي
  • العملاء المحتملون
  • العرض التجاري
  • قوالب التواصل
  • دراسة الحالة
  • المنافسون
  • نموذج العمل
  • الاقتصاد المشترك
  • الجذب والنمو
التمويل والشراكات
  • الحصول على الدعم
  • عرض المستثمر
  • غرفة البيانات
  • المستثمرون
  • المُسرِّعات
  • الحاضنات
  • المنح
  • الرعاة
  • الشركاء
  • المسابقات والهاكاثونات
  • الجامعات ومراكز التدريب

المالية

التالي

مالية المدرسة متعددة المستأجرين — محرك محاسبة بالقيد المزدوج مع 14 وحدة فرعية (الرسوم، الفواتير، الرواتب، البنوك، …)، وعملة لكل مدرسة، وبوابات دفع قابلة للتوصيل.

كتلة المالية هي أكبر ميزة في المنصة (نحو 45 ألف سطر، 14 وحدة فرعية) والعمود الفقري المالي لكل مدرسة: تُصدر فواتير الأسر، وتُحصّل المدفوعات، وتدفع رواتب الكادر، وتتابع الإنفاق، وتحتفظ بدفتر أستاذ بالقيد المزدوج. هذه الصفحة هي خريطة الحالة المعتمدة — ولكل وحدة فرعية صفحتها المرتبطة أدناه. المرجع الهندسي المفصّل (بأرقام الأسطر) هو finance/ISSUE.md.

ما هي كتلة المالية

أربع عشرة وحدة فرعية تلتف حول محرك محاسبة مشترك بالقيد المزدوج. يدخل المال (الرسوم، الفواتير، شحن المحافظ)، ويخرج المال (الرواتب، المصروفات)، وتحتفظ كل مدرسة بدليل حساباتها وعملتها وصلاحياتها. كل استعلام معزول بحسب المستأجر عبر schoolId.

المجموعةالوحدات
الإيراد والقيمةالرسوم، الفواتير، المحفظة
الأفراد والأجورالراتب، كشف الرواتب، سجلات الوقت
الإنفاق والتخطيطالمصروفات، الميزانية، الإيصالات
دفتر الأستاذ والبنوكالحسابات، البنوك، التقارير
المنصةلوحة التحكم، الصلاحيات

نموذج القيد المزدوج

يعيش المحرك في finance/lib/accounting/. يترجم posting-rules.ts حدث المجال إلى أسطر يومية متوازنة؛ ويكتبها actions.ts.

حدث في المجال (تسجيل دفعة، اعتماد راتب، …)
  → قاعدة الترحيل تحوّله إلى سطرَي مدين ودائن (المدين == الدائن)
  → تُكتب صفوف JournalEntry + LedgerEntry مقيّدة بـ schoolId
  → تتجمّع في التقارير (ميزان المراجعة، الأرباح والخسائر، الميزانية العمومية)

قواعد الترحيل تُضاف ولا تُعدَّل — تعديل قاعدة قائمة يُغيّر الميزانيات العمومية التاريخية.

الوحدات الفرعية

  • الرسوم — هياكل الرسوم، التعيين، الدفع الإلكتروني (Stripe/Tap) وغير الإلكتروني، الأقساط، مهمة التأخير الدورية، الغرامات، المنح.
  • الفواتير — دورة حياة الفاتورة، معالج الإنشاء، البريد، التحليلات. أكثر الوحدات اكتمالاً.
  • المحفظة — محافظ رصيد مخزَّن بلا نقد، الشحن، الأرصدة.
  • الراتب — هياكل رواتب لكل معلم، البدلات، الخصومات، العلاوات.
  • كشف الرواتب — دورات فترات الدفع، قسائم الرواتب، اعتماد ← صرف.
  • سجلات الوقت — فترات وسجلات وقت الكادر؛ الغاية أن تغذّي كشف الرواتب.
  • المصروفات — تقديم المصروف، سير الاعتماد، الفئات، التكامل مع الميزانية.
  • الميزانية — تخطيط الميزانية، التخصيص، تتبّع الانحراف.
  • الإيصالات — رفع إيصالات المصروفات مع استخراج بالذكاء الاصطناعي (تختلف عن إيصال دفع الرسوم PDF).
  • الحسابات — دليل الحسابات، قيود اليومية اليدوية، دفتر الأستاذ العام؛ موطن محرك المحاسبة.
  • البنوك — الحسابات البنكية، التحويلات، التسوية (Plaid / Dwolla).
  • التقارير — الميزانية العمومية، الأرباح والخسائر، ميزان المراجعة من دفتر الأستاذ.
  • لوحة التحكم — بطاقات مؤشرات بحسب الدور، رسوم بيانية، تنبيهات، إجراءات سريعة.
  • الصلاحيات — إدارة FinancePermission الدقيقة (12 وحدة × 7 إجراءات).

الاهتمامات المشتركة

عزل المستأجرين

كل استعلام مالي مقيّد بـ schoolId؛ الحد الفاصل هنا أشد صرامة من أي مكان آخر في المنصة، لأن تسرّب صف واحد يعني تسرّب دفتر أستاذ مدرسة أخرى.

العملة لكل مدرسة

يقود School.currency (رمز ISO 4217) كل تنسيق نقدي — لا $ ولا SDG مكتوبة يدوياً في أي مكان. البطاقات الملخّصة تعرض صيغة مختصرة (١٠٫٦ مليون ج.س.) بينما تبقى الجداول ودفاتر الأستاذ والفواتير دقيقة حتى القرش.

الصلاحيات بحسب الدور

تُحلّ كل صفحة بوابتها عبر finance/guard.ts: يقرأ resolveFinanceAccess(module, actions) الجلسة والمستأجر مرة واحدة ثم يقيّم كل إجراء على التوازي، وتعرض الصفحة واجهة الرفض المدمجة (لا إعادة توجيه) لمن لا يملك الصلاحية. وفي 2026-08-15 تُتُبِّعت صفحات المسار الثمانون كلها حتى استعلامات قاعدة البيانات: أُغلقت ستة مسارات مفتوحة (صفحات قوائم الرسوم الخمس التي كانت تجلب صفحتها الأولى بفحص المستأجر فقط، ورمز بوابة الاشتراك الذي كان يُصدَر لأي مستخدم مسجّل)، وأُضيفت واجهة الرفض لثماني صفحات، ويفشل البناء الآن (guard-audit) إذا ظهرت صفحة جديدة تستعلم قاعدة البيانات بلا بوابة.

الدورالوصول
المسؤولالوحدات الأربع عشرة، إدارة الصلاحيات، إعدادات المحاسبة
المحاسبكامل المالية بما فيها القيود اليدوية والرواتب والتقارير
المطوّرعلى مستوى المنصة عبر كل المدارس
المعلم / الموظفراتبه وقسائمه، تقديم المصروفات، تسجيل الحضور
الطالب / ولي الأمرعرض الرسوم ودفعها، رصيد المحفظة، تنزيل الإيصالات

التدويل والاتجاه من اليمين إلى اليسار

النصوص الثابتة كلها من القاموس (dictionaries/{en,ar}/finance.json)، والإشعارات — بما فيها مهمّتا الرسوم الدوريتان — تُرسل بلغة المدرسة المفضّلة. تُعيد إجراءات الخادم رموز أخطاء لا جملاً إنجليزية، ويحوّلها العميل إلى نص مترجم بلا أن يعرض رمزاً خاماً أو رسالة استثناء. مقياسان يمنعان التراجع: مقياس المنصة للنصوص المكتوبة يدوياً، ومقياس خاص بالمالية (scripts/finance-i18n-audit.ts) يلتقط ما لا تراه اختبارات التطابق — بحثاً عن مفتاح غير موجود في ملفَي اللغتين (فيظهر البديل الإنجليزي بصمت على /ar)، ونصاً إنجليزياً عارياً داخل JSX.

النصوص المخزّنة في قاعدة البيانات (أسماء دليل الحسابات، فئات المصروفات، أسباب الغرامات، أسماء هياكل الرسوم) لا تحمل حقل lang بعد؛ لذا تمر كل القوائم والتقارير عبر مساعدات الترجمة المجمّعة (getLabels للتسميات وgetNames للأشخاص — قرار واحد لكل قائمة، مع نقل حرفي احتياطي إذا تعطّلت الخدمة) فيراها المشاهد بلغته متى دفئت ذاكرة الترجمة. عمود lang هو الحل طويل الأمد.

الاتجاه: تستخدم الكتلة الأدوات المنطقية فقط (ms-/me-/text-start)، وأسهم التنقل تحمل rtl:rotate-180، ولا يظهر dir="ltr" إلا على حقول الآيبان والروابط والمفاتيح. جرى التحقق من عرض 39 مساراً بـ dir="rtl" على /ar.

الثغرات المعروفة وخارطة الطريق

  • جعل postFeePayment معاملةً قابلة للتراجع؛ قاعدة ترحيل للاسترداد قبل توصيل refundWallet.
  • تغذية شرائط المؤشرات في لوحة التحكم من سلسلة الأشهر التي تستخدمها رسوم الصفحة الرئيسية الآن (finance/lib/monthly-series.ts).
  • إضافة lang إلى النماذج المالية الموجّهة للمستخدم.
  • إضافة createRefund / verifyWebhook إلى واجهة الدفع؛ إتمام بنكك.
  • تغطية الاختبارات: 11 من 14 وحدة فرعية بلا اختبارات.

السجل المتحقَّق منه بأرقام الأسطر في finance/ISSUE.md.

النقل

On This Page

ما هي كتلة الماليةنموذج القيد المزدوجالوحدات الفرعيةالاهتمامات المشتركةعزل المستأجرينالعملة لكل مدرسةالصلاحيات بحسب الدورالتدويل والاتجاه من اليمين إلى اليسارالثغرات المعروفة وخارطة الطريق

من تطوير Databayt ·

مرحباً بك في بالقلم.

رحلة عظيمة على وشك أن تبدأ.