Commit 76880e09 authored by DevPilot's avatar DevPilot

docs: one accounting guide instead of nine

There were nine accounting documents, each covering part of the picture and
pointing at the others for the rest — so no one file answered a question end to
end. They are now one: docs/الدليل-المحاسبي-الكامل.md, 1,607 lines, self-contained,
with no reference to any sibling guide.

Merged in full, nothing dropped:

  - معالج توزيع المبالغ — the five scopes, stage skipping, member-category
    precedence, the running remainder, the mandatory remainder line, the
    resulting-entry panel, versioning on save, and all 17 rejection cases
  - أنواع البنود for both collection and disbursement, and why a stamp fee
    booked as revenue overstates profit and misstates the tax base
  - الضرائب — inclusive vs added vs exempt vs zero-rated, and why exempt blocks
    input-tax recovery while zero-rated does not
  - مسار الفلوس — the four chains, the FIFO ageing behind «فين الفلوس دلوقتي»,
    and the treasury reclassification with its three guarantees
  - الاستحقاقات — including the point the whole thing turns on: collection posts
    revenue directly, so an accrual left standing books the income twice
  - سد الفجوات, the three-way purchase match, the cheque lifecycle through
    bounce and re-presentation, vouchers, chart-of-accounts management
  - the fixed-asset cycle, reclassification, payroll, inventory, closing,
    reports, the 39-tool index, troubleshooting, and the open decisions

Verified: 26 diagrams parse against the real mermaid parser, all 59 routes it
cites resolve against the router, all 37 table-of-contents anchors resolve, and
a 29-topic coverage check against the replaced files comes back clean. The nine
originals remain in git history.
Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
parent 5ed78ec8
# مسار الفلوس والاستحقاقات — الدليل خطوة بخطوة
> **لمين الدليل ده؟** للمحاسب اللي هيشغّل النظام، وللمبرمج اللي هيصيّنه.
>
> **بيغطي إيه؟** تلات حاجات اتبنوا مع بعض: **مسار الفلوس** (الفلوس وهي بتتنقّل من
> حساب لحساب)، و**الاستحقاقات** (الفلوس اللي لينا قبل ما حد يدفع)، و**سد الفجوات**
> (الحاجات اللي النظام مش عارف يسعّرها لوحده).
---
## المحتويات
| # | القسم | لمين |
|---|---|---|
| ٠ | [الصورة الكبيرة](#٠--الصورة-الكبيرة) | الكل |
| ١ | [مسار الفلوس](#١--مسار-الفلوس) | محاسب + مبرمج |
| ٢ | [الاستحقاقات](#٢--الاستحقاقات) | محاسب + مبرمج |
| ٣ | [سد الفجوات](#٣--سد-الفجوات) | محاسب |
| ٤ | [التشغيل — أول مرة وبعدين كل يوم](#٤--التشغيل) | محاسب |
| ٥ | [لما حاجة تبوظ](#٥--لما-حاجة-تبوظ) | الكل |
| ٦ | [مرجع فني](#٦--مرجع-فني) | مبرمج |
---
## ٠ — الصورة الكبيرة
### كان فيه تلات مشاكل
```mermaid
flowchart TB
subgraph P1["١ — الفلوس بتتنقّل ومحدش بيتابع"]
A1["التحصيل بينزل حساب نقدية عام"]
A2["التسوية بتفضّي حساب تاني خالص"]
A3["النتيجة: النقدية اتعدّت مرتين<br/>وصندوق الدولار بالسالب"]
A1 --> A2 --> A3
end
subgraph P2["٢ — فلوس مستحقة والدفاتر ما تعرفش"]
B1["اشتراك اتولّد / ملعب اتحجز"]
B2["مفيش قيد لحد ما حد يدفع"]
B3["النتيجة: ٨٣٥ ألف مستحقات<br/>مش ظاهرة في الميزانية"]
B1 --> B2 --> B3
end
subgraph P3["٣ — حاجات مالهاش سعر أصلًا"]
C1["حجز مسجّل بصفر<br/>كارنيه من غير عمود مبلغ"]
C2["النظام مش هيخترع رقم"]
C3["النتيجة: إيراد ضايع<br/>ومفيش أداة تحله"]
C1 --> C2 --> C3
end
style A3 fill:#FEE2E2,stroke:#DC2626
style B3 fill:#FEE2E2,stroke:#DC2626
style C3 fill:#FEE2E2,stroke:#DC2626
```
### واتبنى تلات حلول
```mermaid
flowchart LR
S1["مسار الفلوس<br/>Posting Chains"] --> R1["كل خطوة بتفضّي<br/>اللي قبلها بالظبط"]
S2["ماسح الاستحقاقات<br/>Accrual Runner"] --> R2["بيقرا الجداول ويقيّد<br/>اللي لسه ما اتقيّدش"]
S3["سد الفجوات<br/>Gap Tools"] --> R3["المحاسب بيحدد التسعيرة<br/>ويشوف هينزل كام قبل ما يعتمد"]
style S1 fill:#DBEAFE,stroke:#2563EB
style S2 fill:#DBEAFE,stroke:#2563EB
style S3 fill:#DBEAFE,stroke:#2563EB
style R1 fill:#D1FAE5,stroke:#059669
style R2 fill:#D1FAE5,stroke:#059669
style R3 fill:#D1FAE5,stroke:#059669
```
### الشاشات الجديدة
| الشاشة | الرابط | بتعمل إيه |
|---|---|---|
| **مسار الفلوس** | `/accounting/posting-chains` | السلاسل وصحتها |
| **فين الفلوس دلوقتي** | `/accounting/posting-chains/parked` | الأرصدة الواقفة وأعمارها |
| **تصحيح التبويب** | `/accounting/posting-chains/reclassification` | تصحيح نقدية الخزائن القديمة |
| **الاستحقاقات** | `/accounting/accruals` | المستحق، والفحص اليدوي |
| **سد الفجوات** | `/accounting/gaps` | التسعيرات المعتمدة |
---
## ١ — مسار الفلوس
### ١.١ الفكرة
فيه فرق بين حاجتين، وخلطهم هو أصل المشكلة:
```mermaid
flowchart TB
subgraph T1["تقسيم — معالج توزيع المبالغ"]
D1["مبلغ ١٠٠٠"] --> D2["٧٠٠ قيمة عضوية"]
D1 --> D3["٢٠٠ تنمية"]
D1 --> D4["١٠٠ دمغة"]
D5["قيد واحد ✓"]
end
subgraph T2["تنقّل — مسار الفلوس"]
E1["نفس الـ١٠٠٠"] --> E2["في خزنة العضويات"]
E2 --> E3["بعد التسوية:<br/>في الخزنة الرئيسية"]
E3 --> E4["بعد الإيداع:<br/>في البنك"]
E5["تلات قيود مختلفة ✓"]
end
style T1 fill:#EFF6FF
style T2 fill:#F0FDF4
```
**القاعدة الذهبية:** كل خطوة **لازم تفضّي** الحساب اللي الخطوة اللي قبلها حطّت فيه
الفلوس. لو ما فضّتوش، يبقى فيه فلوس واقفة في النص ومحدش واخد باله.
---
### ١.٢ اللي كان بيحصل (ومهم تفهمه)
```mermaid
sequenceDiagram
autonumber
participant K as الكاشير
participant GL as الدفاتر
participant M as الخزنة الرئيسية
K->>GL: تحصيل ١٠٠٠ في خزنة العضويات
Note over GL: مدين ١٢٠٦٠١٠١ (نقدية عامة)<br/>مش حساب الخزنة!
K->>GL: تسوية الوردية
Note over GL: مدين ١٢٠٦٠١٠١ تاني ⚠️<br/>دائن ١٢٠٦٠١٠٢ (الصندوق بالدولار) ⚠️
GL-->>M: النقدية العامة زادت ٢٠٠٠ بدل ١٠٠٠
GL-->>M: صندوق الدولار بقى سالب ١٠٠٠
```
**ليه محدش خد باله؟** لأن القيد **متوازن**. ميزان المراجعة بيظبط، والشاشة بتقول
«تمت التسوية». الرقم غلط بس الشكل سليم.
**وكمان:** الخزائن الفرعية كانت مربوطة أصلًا بصناديق العملات الأجنبية:
| الخزنة | كانت بتنزل في | المبلغ اللي اتجمّع |
|---|---|---|
| خزنة الأنشطة الرياضية | `12060102` الصندوق بالدولار | ٦٣٬٢٨٩ |
| خزنة العضويات | `12060103` الصندوق باليورو | ٩٠٩٬٥٠٢ |
| | **الإجمالي** | **٩٧٢٬٧٩١ جنيه** |
---
### ١.٣ الحل — الطرف التاني ما بيتكتبش بالإيد
```mermaid
flowchart LR
S1["مرحلة ١<br/>التحصيل"] -->|"بتحجز في"| A1["حساب الخزنة<br/>اللي في المستند"]
S2["مرحلة ٢<br/>التسوية"] -->|"بتفضّي"| A1
S2 -->|"بتحجز في"| A2["حساب الخزنة<br/>المستقبِلة"]
S3["مرحلة ٣<br/>الإيداع"] -->|"بتفضّي"| A2
S3 -->|"بتحجز في"| A3["حساب البنك"]
style A1 fill:#FEF3C7,stroke:#D97706
style A2 fill:#FEF3C7,stroke:#D97706
style A3 fill:#D1FAE5,stroke:#059669
```
المرحلة **مش بتكتب** الحساب اللي هتفضّيه. بتقول: «أنا بفضّي المرحلة اللي قبلي».
والسيستم بيرجع للمرحلة دي ويسأل **نفس السؤال** اللي سأله وقت التحصيل، بنفس بيانات
المستند.
> يعني الطرف الدائن في قيد التسوية هو **حرفيًا نفس التعبير** اللي حدّد الطرف المدين
> وقت التحصيل. مش قاعدتين اتصادف إنهم متفقين — تعبير واحد اتحسب مرتين. عشان كده
> **مستحيل** تكتب سلسلة ما تتقفلش.
---
### ١.٤ السلاسل الأربعة
```mermaid
flowchart TB
subgraph C1["دورة النقدية — السلسلة بترحّلها"]
N1["الكاشير حصّل"] --> N2["تسوية الوردية"] --> N3["إيداع بنكي"]
end
subgraph C2["دورة الشيكات"]
K1["استلام الشيك<br/>أوراق قبض"] --> K2["إيداع برسم التحصيل<br/>تحت التحصيل"]
K2 --> K3["البنك حصّل ✓"]
K2 --> K4["الشيك ارتد ⚠️"]
end
subgraph C3["دورة مديونية الأعضاء"]
M1["استحقاق على العضو"] --> M2["التحصيل ✓"]
M1 --> M3["إسقاط الدين ⚠️"]
end
subgraph C4["دورة مستحقات الموردين"]
V1["اعتماد الفاتورة"] --> V2["السداد"]
end
style N3 fill:#D1FAE5
style K3 fill:#D1FAE5
style K4 fill:#FEF3C7
style M3 fill:#FEF3C7
```
> **بس دورة النقدية هي اللي السلسلة بترحّلها.** التلاتة التانية بترحّلهم خدمات
> موجودة أصلًا — والسلسلة بتعرّفهم عشان الشاشة تعرض الطريق كامل، والفحص يتأكد إن
> الطرفين متفقين، وتقرير الأعمار يعرف يراقب الحسابات الوسيطة.
---
### ١.٥ خطوة بخطوة — أول مرة تفتح الشاشة
```mermaid
flowchart TD
A["١ — افتح /accounting/posting-chains"]
B{"فيه خزائن<br/>من غير حساب؟"}
C["شغّل php cli.php migrate"]
D{"فيه نقدية<br/>محتاجة تصحيح؟"}
E["٢ — دوس «مراجعة التصحيح»"]
F["٣ — راجع الجدول:<br/>كل خزنة والمبلغ والفترة"]
G["٤ — حدد التاريخ واكتب السبب"]
H["٥ — «رحّل قيد التصحيح»"]
I["٦ — راجع صحة السلاسل"]
J{"فيه أخطاء<br/>حمرا؟"}
K["صلّحها — الرسالة بتقول<br/>بالظبط إيه الناقص"]
L["٧ — /posting-chains/parked<br/>شوف الأرصدة الواقفة"]
A --> B
B -->|أيوه| C --> D
B -->|لأ| D
D -->|أيوه| E --> F --> G --> H --> I
D -->|لأ| I
I --> J
J -->|أيوه| K --> I
J -->|لأ| L
style C fill:#FEE2E2,stroke:#DC2626
style H fill:#DBEAFE,stroke:#2563EB
style L fill:#D1FAE5,stroke:#059669
```
#### تفاصيل خطوة التصحيح
الشاشة هتوريك جدول كده:
| الخزنة | كانت نازلة في | هتروح لـ | السطور | المبلغ |
|---|---|---|---|---|
| خزنة الأنشطة | ١٢٠٦٠١٠٢ الصندوق بالدولار | ١٢٠٦٠١٠٤ خزنة الأنشطة | ٥٠ | ٦٣٬٢٨٩ |
| خزنة العضويات | ١٢٠٦٠١٠٣ الصندوق باليورو | ١٢٠٦٠١٠٥ خزنة العضويات | ٣٢ | ٩٠٩٬٥٠٢ |
> **٣ ضمانات مهمة:**
> 1. **القيود القديمة ما بتتغيّرش.** تعديل قيد مرحّل مش تصحيح — ده تزوير. التصحيح
> قيد جديد بتاريخ النهاردة.
> 2. **مش ممكن يتظبط مرتين.** القيد بيتوسم على مستوى السطر، والشاشة بتخصم اللي اتنقل.
> 3. **لو اتعكس، الشغل بيرجع يظهر تاني.** فينفع تعيده.
>
> والفلوس الأجنبية الحقيقية **ما بتتلمسش** — التطابق بيمشي على السطور اللي وراها
> **دفعة** مكتوب فيها **خزنة**.
---
### ١.٦ شاشة «فين الفلوس دلوقتي»
دي الشاشة اللي بتكشف السلسلة المكسورة **من غير ما تفتح دفتر الأستاذ**.
العمر محسوب **الأقدم يخرج الأول (FIFO)**:
```mermaid
flowchart LR
I1["دخل ٥٠٠٠<br/>من ٤٠ يوم"] --> Q["الطابور"]
I2["دخل ٣٠٠٠<br/>من ٩ أيام"] --> Q
I3["دخل ٢٠٠٠<br/>إمبارح"] --> Q
Q --> O["خرج ٦٠٠٠<br/>بالتسوية"]
O --> R1["أكل الـ٥٠٠٠ كلها"]
O --> R2["وأكل ١٠٠٠ من التانية"]
R2 --> F["الواقف فعلًا:<br/>٢٠٠٠ عمرهم ٩ أيام<br/>+ ٢٠٠٠ عمرهم يوم"]
style F fill:#FEF3C7,stroke:#D97706
```
يعني اللي قدامك مش «رصيد إجمالي» — دول المبالغ اللي **فعلًا** لسه واقفة، بتاريخها
ومستندها.
---
## ٢ — الاستحقاقات
### ٢.١ المشكلة
```mermaid
flowchart LR
A["اشتراك اتولّد<br/>على ٥٧٧ عضو"] --> B["مفيش قيد"]
B --> C{"حد دفع؟"}
C -->|أيوه| D["دلوقتي بس<br/>الإيراد بيتسجّل"]
C -->|لأ| E["الدفاتر عمرها<br/>ما هتعرف"]
style E fill:#FEE2E2,stroke:#DC2626
style D fill:#FEF3C7,stroke:#D97706
```
**النتيجة حاجتين والاتنين غلط:**
1. النادي بيقلّل اللي ليه — ٨٣٥ ألف مش ظاهرين
2. الإيراد بينزل في **الشهر الغلط** — شهر الدفع مش شهر الاستحقاق
---
### ٢.٢ ليه ماسح مش أحداث؟
```mermaid
flowchart TB
subgraph BAD["الطريقة الهشّة — أحداث"]
X1["الموديول يبعت حدث"] --> X2{"وصل؟"}
X2 -->|"الاسم غلط"| X3["ضاع للأبد ❌"]
X2 -->|"ما اتبعتش"| X3
X2 -->|"قبل الـcommit"| X3
end
subgraph GOOD["الطريقة المتينة — ماسح"]
Y1["الماسح يقرا الجدول"] --> Y2["يقارن بجدول الاستحقاقات"]
Y2 --> Y3["يقيّد الفرق بس"]
Y3 --> Y4["الجولة الجاية<br/>تلقط أي حاجة فاتت ✓"]
end
style X3 fill:#FEE2E2,stroke:#DC2626
style Y4 fill:#D1FAE5,stroke:#059669
```
> **ده مش كلام نظري.** مستمع رواتب المدربين في النظام ده كان مربوط على اسم حدث
> **محدش بيبعته** — وفضل كده شهور ومحدش واخد باله.
---
### ٢.٣ أهم نقطة في الملف كله — الإقفال بعد التحصيل
التحصيل في النظام ده بيسجّل الإيراد **على طول**. فلو قيّدنا الاستحقاق وسبناه،
الإيراد هيتعدّ **مرتين**:
```mermaid
sequenceDiagram
autonumber
participant S as الماسح
participant GL as الدفاتر
participant C as الكاشير
S->>GL: استحقاق — مدين مدينون ١٠٠ / دائن إيراد ١٠٠
Note over GL: الإيراد = ١٠٠ ✓
C->>GL: تحصيل — مدين نقدية ١٠٠ / دائن إيراد ١٠٠
Note over GL: الإيراد = ٢٠٠ ❌ مرتين!
S->>GL: إقفال — مدين إيراد ١٠٠ / دائن مدينون ١٠٠
Note over GL: الإيراد = ١٠٠ ✓<br/>المدينون = صفر ✓
```
قيد الإقفال هو **المرآة بالظبط** لقيد الاستحقاق — بيتبني بإعادة تطبيق **نفس القاعدة**
وقلب كل سطر. فلو التقسيمة مقسّمة على كذا حساب، بتتفك على نفس الحسابات.
> وبيشتغل من **جدول الاستحقاقات** مش من مسار الدفع — فمستحيل يشتغل على فلوس ما
> اتقيّدتش، ومستحيل يشتغل مرتين على نفس المستند.
---
### ٢.٤ الجولة الكاملة
```mermaid
flowchart TD
START["بداية الجولة"] --> A["١ — قيّد اللي لسه ما اتقيّدش<br/>(١٥ ماسح)"]
A --> B["٢ — اقفل اللي اتحصّل"]
B --> C["٣ — اعكس اللي اتلغى"]
C --> END["نهاية"]
A -.->|"لكل مستند"| A1{"موجود في<br/>posting_accruals؟"}
A1 -->|لأ| A2["قيّد المبلغ كامل"]
A1 -->|"أيوه بمبلغ أقل"| A3["قيّد الفرق بس"]
A1 -->|"أيوه بنفس المبلغ"| A4["اعمل حاجة ❌"]
style A4 fill:#F3F4F6
style A2 fill:#D1FAE5
style A3 fill:#DBEAFE
```
> **الترتيب مهم.** مستند اتعمل واتدفع بين جولتين لازم يتقيّد ويتقفل في **نفس**
> الجولة. لو الإقفال اتعمل الأول، الاستحقاق هيتقيّد بعده ومش هيلاقي حاجة تقفله —
> ويفضل مدين واقف على فلوس موجودة في البنك.
---
### ٢.٥ اللي اتوصّل
| المصدر | اللي اتقيّد |
|---|---|
| اشتراكات الأعضاء السنوية | ١٨٠٬٩٣٦ على ٥٧٧ |
| إيجار الأكاديميات | ٣١٥٬٠٠٠ على ٢ |
| اشتراكات النشاط الرياضي | ١٠٤٬٧٦٩ على ١٣٥ |
| غرامات تأخير الاشتراكات | ١٠٠٬٠٠٣ على ٣٨٦ |
| حجوزات الملاعب | ٧٤٬٨٨٤ على ٢٠ |
| تأمينات عقود الأكاديميات | ٥٠٬٠٠٠ على ٤ |
| رسوم التنمية + حجوزات + لوكرات | ٩٬٥٧٥ على ١٩٢ |
| **الإجمالي** | **١٬٣١٦ مطالبة بـ٨٣٥٬١٦٧ جنيه** |
**وفلوس خارجة كانت مش متسجّلة خالص:**
| العملية | القيد |
|---|---|
| صرف سلفة موظف | مدين **سلف عاملين** / دائن نقدية |
| نهاية الخدمة | مدين مكافأت ترك الخدمة / دائن نقدية |
| مستحقات المدربين | مدين مكافآت / دائن مصروفات مستحقة |
| استلام بضاعة | مدين مخزون / دائن **بضاعة لم ترد فاتورتها** |
| إهلاك الأصول | لكل فئة أصول على حدة |
| فروق الجرد | عجز = خسارة، زيادة = بالعكس |
| استبعاد أصل | التكلفة + المجمع + الربح/الخسارة |
| الإعفاء من غرامة | عكس قيد الاستحقاق |
> **السلفة أصل مش مصروف.** النادي مستنيها ترجع. لو اتسجّلت مصروف كانت هتقلّل
> الربح **والأصول** بالمبلغ كله.
> **التأمين مش إيراد.** فلوس النادي ماسكها ولازم يرجّعها — التزام. لو اتسجّلت إيراد
> كانت هتضخّم النتيجة وتخفي الالتزام.
---
### ٢.٦ المطابقة الثلاثية للمشتريات
```mermaid
flowchart LR
G["استلام البضاعة"] -->|"مدين"| INV["المخزون"]
G -->|"دائن"| CLR["بضاعة لم ترد<br/>فاتورتها"]
I["اعتماد الفاتورة"] -->|"مدين"| CLR
I -->|"دائن"| AP["الموردون"]
CLR --> Z["الرصيد بيتصفّر<br/>لما الاتنين ينزلوا ✓"]
style CLR fill:#FEF3C7,stroke:#D97706
style Z fill:#D1FAE5,stroke:#059669
```
> من غير الحساب الوسيط، الاتنين كانوا هيقيّدوا **المخزون** فيتحسب مرتين — عشان كده
> استلام البضاعة كان مش موصّل أصلًا. الفاتورة دلوقتي **بتشوف** لو فيه استلام اتقيّد
> وبتغيّر الطرف المدين لوحدها.
>
> واللي فاضل في الحساب الوسيط = **بضاعة عندنا ولسه محدش حاسبنا عليها**.
---
## ٣ — سد الفجوات
### ٣.١ الفكرة
فيه ٦ حاجات الماسح **رفض** يقيّدها لأن المبلغ مش متسجّل أصلًا.
> **الماسح مش هيخترع رقم — وده صح.** رقم غلط في الدفاتر أصعب في اكتشافه من رقم
> ناقص، وكمان بيبان إنه مظبوط.
>
> **بس «النظام مش عارف» مش معناها «محدش عارف».** إنت عارف الحارة بكام.
---
### ٣.٢ الخطوات الأربعة
```mermaid
flowchart TD
A["١ — افتح /accounting/gaps"]
B["٢ — اقرا الكارت:<br/>إيه المشكلة وكام مستند"]
C["٣ — حط رقم واختار الأساس"]
D["٤ — دوس «احسبلي هينزل كام»"]
E{"الرقم<br/>منطقي؟"}
F["غيّر الرقم أو الأساس"]
G["٥ — اكتب السبب<br/>وتاريخ السريان"]
H["٦ — احفظ"]
I["٧ — /accounting/accruals<br/>«شغّل الفحص دلوقتي»"]
J["القيد نزل ✓"]
A --> B --> C --> D --> E
E -->|لأ| F --> D
E -->|أيوه| G --> H --> I --> J
style D fill:#DBEAFE,stroke:#2563EB
style H fill:#FEF3C7,stroke:#D97706
style J fill:#D1FAE5,stroke:#059669
```
> **الشاشة مش بتقيّد حاجة.** بتسجّل **قرار**، وماسح الاستحقاقات ينفّذه في أول جولة.
> الفصل ده مقصود: شاشة بتقيّد ٣٠٠ ألف أول ما حد يكتب رقم في خانة كانت هتبقى مشكلة
> أكبر من الفجوة اللي بتحلها.
---
### ٣.٣ الفجوات وأدواتها
| المصدر | المشكلة | الأداة |
|---|---|---|
| `sa:pool_zone_booking` | ٧٣٠ حجز، سعر التذكرة وعدد الحاضرين فاضيين | تسعيرة لكل حجز |
| `sa:player_card` | الجدول مفيهوش عمود مبلغ | رسم الإصدار |
| `facility:pool_booking` | الكود بيسجّل كل حجز بصفر | تسعيرة مؤقتة |
| `facility:private_match` | المبلغ متسجّل بس من غير إيصال | «المبلغ المسجّل» |
| `academy:settlement` | ميزة متكررة في موديولين | نقل العقود |
| `academy:enrollment` | القيد مالوش رسوم | **مفيش مطلوب** |
---
### ٣.٤ ليه الحقول دي إجبارية؟
```mermaid
flowchart LR
R["رقم لوحده"] -->|"= تخمين ❌"| BAD["مالوش سند"]
R2["رقم + سبب + معتمِد"] -->|"= تقدير إداري ✓"| GOOD["أساس محاسبي مقبول"]
style BAD fill:#FEE2E2,stroke:#DC2626
style GOOD fill:#D1FAE5,stroke:#059669
```
| الحقل | ليه إجباري |
|---|---|
| **السبب** | ده اللي بيحوّل الرقم من تخمين لتقدير معتمد. المراجع هيسأل عنه. |
| **تاريخ السريان** | التسعيرة بتطبّق من التاريخ ده ورايح بس. من غيره كنت هتعيد كتابة نتائج فترات اتقفلت واتعرضت خلاص. |
> **الوقف مش بيعكس اللي اتقيّد.** لو رجعت وقفلت التسعيرة، اللي اتقيّد بيفضل زي ما
> هو. لو عايز تشيله، اعكس القيد من شاشة القيود.
---
### ٣.٥ أداة نقل عقود الأكاديميات
دي فجوة من نوع تاني خالص:
```mermaid
flowchart TB
subgraph NOW["الوضع الحالي"]
T1["academy_contracts<br/>(٠ عقد)"] --> E["محرك التسويات<br/>بيقرا من هنا"]
T2["sa_academy_contracts<br/>(١٣ عقد حقيقي)"] --> X["محدش بيقراه ❌"]
end
E --> N["مفيش أي تسوية اتحسبت<br/>ولا حصة نادي اتطالب بيها"]
style N fill:#FEE2E2,stroke:#DC2626
style X fill:#FEE2E2,stroke:#DC2626
```
**ليه مش مجرد تغيير اسم الجدول في الكود؟** لأن الجدولين **مش نسخة من بعض**:
| العمود | `academy_contracts` | `sa_academy_contracts` |
|---|---|---|
| `settlement_day` | ✓ | ✗ |
| `grace_period_days` | ✓ | ✗ |
| `penalty_rate_pct` | ✓ | ✗ |
والمحرك **بيحسب بيهم**. فالأداة **بتنسخ مش بتنقل**:
```mermaid
flowchart LR
A["اختار العقود"] --> B["حدد الشروط الناقصة:<br/>يوم التسوية / مهلة السماح / نسبة الغرامة"]
B --> C["انسخ"]
C --> D["العقود بقت في جدول التسويات ✓"]
C --> E["العقود الأصلية زي ما هي<br/>وشغّالة عادي ✓"]
style D fill:#D1FAE5,stroke:#059669
style E fill:#D1FAE5,stroke:#059669
```
> الشروط بتتطبّق على كل العقود المختارة. لو عقد ليه شروط مختلفة، عدّله بعد النقل
> من شاشة العقود.
---
## ٤ — التشغيل
### ٤.١ أول مرة — الترتيب مهم
```mermaid
flowchart TD
A["١ — php cli.php migrate<br/>php cli.php seed"]
B["٢ — عرّف حساب بنكي واربطه<br/>/accounting/bank-accounts"]
C["٣ — /accounting/posting-chains<br/>لازم ٤ سلاسل خضرا"]
D["٤ — تصحيح تبويب نقدية الخزائن"]
E["٥ — /accounting/gaps<br/>حدد التسعيرات (اختياري)"]
F["٦ — /accounting/accruals<br/>«شغّل الفحص دلوقتي»"]
G["٧ — راجع ميزان المراجعة"]
H["٨ — فعّل الكرون<br/>cron_enabled = 1"]
A --> B --> C --> D --> E --> F --> G --> H
style A fill:#FEE2E2,stroke:#DC2626
style C fill:#DBEAFE,stroke:#2563EB
style H fill:#D1FAE5,stroke:#059669
```
> **خطوة ٢ مش اختيارية لو عايز الإيداع البنكي يشتغل.** جدول `bank_accounts` فاضي
> دلوقتي، وفحص السلسلة بيقول كده صراحة.
> **خطوة ٨ آخر حاجة.** الكرون بيتشحن **مقفول** في النظام ده. شغّل الفحص بإيدك الأول
> وشوف النتيجة، وبعدين فعّله.
---
### ٤.٢ الروتين اليومي
```mermaid
flowchart LR
A["الكاشير بيقفل الوردية"] --> B["التسوية للخزنة الرئيسية"]
B --> C["الإيداع البنكي"]
C --> D["راجع «فين الفلوس دلوقتي»"]
D --> E{"فيه رصيد<br/>واقف متأخر؟"}
E -->|أيوه| F["شوف السبب:<br/>وردية ما اتسوّتش؟<br/>إيداع ما اتأكّدش؟"]
E -->|لأ| G["تمام ✓"]
style G fill:#D1FAE5,stroke:#059669
style F fill:#FEF3C7,stroke:#D97706
```
### ٤.٣ الروتين الشهري
| # | الخطوة | الشاشة |
|---|---|---|
| ١ | شغّل فحص الاستحقاقات | `/accounting/accruals` |
| ٢ | راجع أقدم المطالبات المفتوحة | نفس الشاشة |
| ٣ | راجع الحسابات الوسيطة | `/posting-chains/parked` |
| ٤ | شغّل الإهلاك الشهري | `/inventory/assets` |
| ٥ | راجع «خطوات فشلت» | `/accounting/posting-chains` |
| ٦ | ميزان المراجعة | `/accounting/reports/trial-balance` |
| ٧ | اقفل الفترة | `/accounting/period-closing` |
---
## ٥ — لما حاجة تبوظ
### ٥.١ شجرة القرار
```mermaid
flowchart TD
A{"إيه المشكلة؟"}
A -->|"سلسلة حمرا"| B["اقرا الرسالة — بتقول بالظبط<br/>إيه الناقص وفين تصلّحه"]
A -->|"رصيد واقف مش بيفضى"| C["/posting-chains/parked<br/>شوف أقدم مبلغ ومستنده"]
A -->|"الفحص ما قيّدش حاجة"| D{"فيه قاعدة<br/>ترحيل للمصدر؟"}
A -->|"خطوة فشلت"| E["الرسالة في جدول الخطوات<br/>صلّح وأعِد من المستند"]
A -->|"إيراد اتعدّ مرتين"| F["شوف هل الإقفال اشتغل —<br/>الحالة لازم تبقى settled"]
D -->|لأ| G["/accounting/revenue-mapping<br/>اربط المصدر"]
D -->|أيوه| H{"فجوة محتاجة<br/>تسعيرة؟"}
H -->|أيوه| I["/accounting/gaps"]
H -->|لأ| J["شوف الأخطاء في نتيجة الفحص"]
style B fill:#FEF3C7
style G fill:#DBEAFE
style I fill:#DBEAFE
```
### ٥.٢ رسائل شائعة
| الرسالة | معناها | الحل |
|---|---|---|
| «طرفا القيد نفس الحساب» | خزنتين على نفس الحساب | اعمل حساب لكل خزنة |
| «مفيش أي حساب بنكي معرّف» | `bank_accounts` فاضي | عرّف حساب واربطه بالدليل |
| «خزنة ملهاش حساب» | `gl_account_id` فاضي | شغّل الترحيلات |
| «المؤشر مالوش قاعدة مفعّلة» | المصدر مش مربوط | شاشة توزيع المبالغ |
| «اكتب سبب/مرجع التسعيرة» | السبب فاضي | اكتب مرجع القرار |
| «نوع الحركة بيحطّ الطرفين على نفس الجانب» | نوع الحركة مش مناسب للحسابات | راجع النوع أو الحسابات |
---
## ٦ — مرجع فني
### ٦.١ الجداول الجديدة
```mermaid
erDiagram
posting_chains ||--o{ posting_chain_steps : "بتحتوي"
posting_chains ||--o{ posting_chain_hops : "بتسجّل"
posting_chain_steps ||--o{ posting_chain_hops : "بتنفّذ"
posting_accruals }o--|| revenue_streams : "بتخص"
accrual_gap_settings }o--|| revenue_streams : "بتسعّر"
posting_accruals ||--o| accounts_receivable : "بتظهر كـ"
posting_chains {
string chain_code
enum domain
}
posting_chain_steps {
int step_no
enum hop_type
enum parks_resolver
int relieves_step_no
bool posted_by_chain
}
posting_chain_hops {
int journal_entry_id
enum outcome
}
posting_accruals {
string document_type
int document_id
decimal accrued_amount
enum status
}
accrual_gap_settings {
enum mode
decimal rate
string notes
int approved_by
}
```
| الجدول | الغرض |
|---|---|
| `posting_chains` | تعريف السلسلة |
| `posting_chain_steps` | خطواتها وحساباتها |
| `posting_chain_hops` | سجل كل حركة اتنفّذت |
| `posting_accruals` | **مفتاح عدم التكرار** — اللي الدفاتر اتقالها |
| `accrual_gap_settings` | التسعيرات المعتمدة |
> `posting_accruals` مش نفس `accounts_receivable`. الأخير `member_id` فيه **NOT NULL**،
> فمدرسة بتأجّر ملعب مالهاش مكان فيه — ولو استخدمناه كمفتاح كان هيعيد الترحيل كل ليلة.
---
### ٦.٢ الملفات
| الملف | مسؤول عن |
|---|---|
| `Services/Chain/ChainRegistry.php` | قراءة السلاسل وفحص صحتها |
| `Services/Chain/ChainAccountResolver.php` | «إزاي تلاقي الحساب» → حساب فعلي |
| `Services/Chain/ChainPostingService.php` | ترحيل الخطوة الواحدة |
| `Services/Chain/ClearingReconciliationService.php` | الأعمار (FIFO) |
| `Services/TreasuryAccountService.php` | حساب كل خزنة + تصحيح التبويب |
| `Services/Revenue/AccrualRunner.php` | الماسح |
| `Services/Revenue/AccrualService.php` | `single` / `batch` / `release` |
| `Services/Revenue/GapToolService.php` | التسعيرات والمعاينة |
| `Services/Revenue/AcademyContractImportService.php` | نقل عقود الأكاديميات |
| `Services/SubledgerService.php` | جدول الاستحقاقات + مديونية الأعضاء |
| `Services/OperationalPostingService.php` | الفلوس الخارجة والأصول |
| `cron/jobs/AccrualReconcileJob.php` | الجولة الليلية |
### ٦.٣ الصلاحيات
| الصلاحية | accountant | auditor |
|---|---|---|
| `accounting.chains.view` | ✓ | ✓ |
| `accounting.chains.manage` | ✓ | ✗ |
| `accounting.accruals.view` | ✓ | ✓ |
| `accounting.accruals.manage` | ✓ | ✗ |
| `accounting.gaps.view` | ✓ | ✓ |
| `accounting.gaps.manage` | ✓ | ✗ |
> **المراجع بيشوف ومش بيرحّل** — عن قصد. الفكرة كلها إن حد مستقل يقدر يشوف حساب
> وسيط وقف عن الفضي، من غير ما يقدر يرحّل قيد التصحيح بنفسه.
### ٦.٤ الترحيلات والبذور
```
database/migrations/
Phase_108_001_create_posting_chains.php
Phase_108_002_treasury_own_cash_accounts.php
Phase_109_001_create_posting_accruals.php
Phase_109_002_activity_receivable_account.php
Phase_109_003_goods_received_clearing.php
Phase_110_001_create_accrual_gap_settings.php
database/seeds/
Phase_108_001_seed_posting_chains.php
Phase_108_002_seed_chain_permissions.php
Phase_109_001_seed_accrual_rules.php
Phase_109_002_seed_operational_rules.php
Phase_110_001_seed_gap_rules.php
```
> كلها **idempotent** — تشغيلها كذا مرة ما بيغيّرش حاجة.
---
## ٧ — حاجات محتاجة قرار من المالية
| # | الموضوع | التفاصيل |
|---|---|---|
| ١ | **اشتراك العضو السنوي نازل على «٤١٠٢٠١ اكاديمية البادل»** | مش صح، بس عليه أكتر من ألف قيد قديم. قاعدة الاستحقاق اتعملت على **نفس الحساب** عن قصد عشان الاستحقاق والتحصيل يتقفلوا على بعض. لو اتغيّر لازم يتغيّر في الاتنين مع بعض. |
| ٢ | **`sa:monthly_subscription` نازل على «إيرادات متنوعه»** | نفس الكلام. |
| ٣ | **تقارير الأستاذ بتقرا `status = 'posted'` بس** | يعني قيد معكوس بيتشال **والعكس بينزل** — فالمبلغ بيتخصم مرتين. مفيش قيد اتعكس لحد دلوقتي فالمشكلة نايمة. الكود الجديد بيقرا `('posted','reversed')` صح. تغيير باقي التقارير بيغيّر أرقام منشورة. |
| ٤ | **١١ سطر على حسابات رئيسية** | من قيدين ٢٠٢٤/٢٠٢٥ قبل ما الحسابات دي تتعلّم رئيسية. مش من الشغل ده. |
---
## ملفات مرجعية تانية
| الملف | بيغطي |
|---|---|
| `docs/مسار-الفلوس-والحسابات-الوسيطة.md` | مرجع السلاسل بالتفصيل |
| `docs/الاستحقاقات-وربط-الإيرادات-الناقصة.md` | مرجع الاستحقاقات بالتفصيل |
| `docs/معالج-توزيع-المبالغ.md` | معالج التقسيم (اللي كان موجود قبل كده) |
| `docs/تعلّم-النظام-المحاسبي-خطوة-بخطوة.md` | أساسيات النظام المحاسبي |
# الاستحقاقات — الفلوس اللي لينا وعلينا قبل ما حد يدفع
> **الغرض:** تفهم ليه ٢٤ مصدر إيراد كانوا «محتاجين كود»، وإيه اللي اتعمل فيهم، وإزاي
> النظام دلوقتي بيقيّد المستحق من غير ما يستنى حد يدفع — من غير ما يعدّ الإيراد مرتين.
---
## المشكلة في سطرين
النادي كان بيستحق فلوس والدفاتر ما تعرفش. اشتراك بيتولّد، ملعب بيتحجز، فاتورة إيجار
بتتعمل — والقيد ما بيتعملش إلا لو ولما حد يدفع.
النتيجة حاجتين، والاتنين غلط:
1. **النادي بيقلّل اللي ليه.** ٨٣٥ ألف جنيه مستحقات ما كانتش ظاهرة في الميزانية.
2. **الإيراد بينزل في الشهر الغلط.** اشتراك السنة المالية دي بيتحسب إيراد الشهر اللي
العضو دفع فيه، مش الشهر اللي استحق فيه.
---
## اللي اتعمل
### ماسح بدل أحداث
الطبيعي إن كل موديول يبعت حدث والمحاسبة تسمع. المشكلة إن ده هش:
- حدث ممكن ما يتبعتش أصلًا
- ممكن يتبعت باسم غير اللي المستمع مستنيه — **ده حصل فعلًا**: مستمع رواتب المدربين
كان مربوط على اسم حدث محدش بيبعته، وفضل كده شهور ومحدش واخد باله
- ممكن يتبعت قبل ما الترانزاكشن يتقفل
فبدل كده: **ماسح بيقرا الجداول نفسها كل ليلة**، ويقيّد اللي لسه ما اتقيّدش.
| الميزة | يعني إيه |
|---|---|
| **بيصلّح نفسه** | حدث ما اتبعتش؟ الجولة الجاية هتلقطه. |
| **بيلحق القديم** | قيّد المتأخرات اللي اتراكمت وإحنا مش موصّلين. |
| **آمن يتشغّل ألف مرة** | جدول `posting_accruals` فاكر اللي اتقال للدفاتر. |
### النص التاني: الإقفال بعد التحصيل
**دي أهم نقطة في الملف كله.**
التحصيل في النظام ده بيسجّل الإيراد على طول (`Dr نقدية / Cr إيراد`). فلو قيّدنا
الاستحقاق وسبناه، الإيراد هيتعدّ **مرتين**:
```
الاستحقاق مدين مدينون ١٠٠ دائن إيراد ١٠٠
التحصيل مدين نقدية ١٠٠ دائن إيراد ١٠٠ ← الإيراد بقى ٢٠٠
الإقفال مدين إيراد ١٠٠ دائن مدينون ١٠٠ ← رجع ١٠٠، والمدينون صفر
```
قيد الإقفال هو **المرآة بالظبط** لقيد الاستحقاق — بيتبني بإعادة تطبيق نفس القاعدة
وقلب كل سطر. فلو التقسيمة كانت مقسّمة على كذا حساب، بتتفك على نفس الحسابات.
وبيشتغل من جدول الاستحقاقات مش من مسار الدفع، فمستحيل يشتغل على فلوس ما اتقيّدتش،
ومستحيل يشتغل مرتين على نفس المستند.
---
## اللي اتوصّل (١٨ مصدر)
### مستحقات على الغير — الماسح بيقيّدها
| المصدر | الجداول | اللي اتقيّد |
|---|---|---|
| اشتراكات الأعضاء السنوية | `subscriptions` | ١٨٠٬٩٣٦ على ٥٧٧ مطالبة |
| غرامات تأخير الاشتراكات | `subscriptions.fine_amount` | ١٠٠٬٠٠٣ على ٣٨٦ |
| رسوم التنمية | `subscriptions.development_fee` | ٦٬٤٧٥ على ١٨٥ |
| حجوزات الملاعب | `sa_bookings` | ٧٤٬٨٨٤ على ٢٠ |
| اشتراكات النشاط الرياضي | `sa_subscriptions` | ١٠٤٬٧٦٩ على ١٣٥ |
| إيجار اللوكرات | `sa_locker_rentals` | ١٬٠٠٠ على ٢ |
| حجوزات المرافق | `reservations` | ٢٬١٠٠ على ٥ |
| فواتير إيجار المحلات | `rental_invoices` | (فاضي دلوقتي) |
| رسوم البطولات | `tournament_participants` | (فاضي دلوقتي) |
| تأمينات عقود الأكاديميات | `sa_academy_contracts` | ٥٠٬٠٠٠ على ٤ |
| إيجار الأكاديميات | `sa_academy_contracts` | ٣١٥٬٠٠٠ على ٢ |
**الإجمالي: ١٬٣١٦ مطالبة بـ٨٣٥٬١٦٧ جنيه** ما كانتش في الدفاتر.
> **ملاحظتين مهمتين:**
> - **التأمين مش إيراد.** فلوس النادي ماسكها ولازم يرجّعها آخر العقد، فبتتقيّد التزام
> في «تأمينات للغير». لو اتسجّلت إيراد كانت هتضخّم النتيجة بالكامل وتخفي الالتزام.
> - **إيجار الأكاديميات بيتقيّد بالشهر المنقضي بس.** العقد كله مرة واحدة كان هيسحب
> إيراد سنين لشهر واحد.
### فلوس خارجة — مستمعين على أحداث
| المصدر | الحدث | القيد |
|---|---|---|
| صرف سلفة موظف | `hr.loan.disbursed` | مدين سلف عاملين / دائن نقدية |
| نهاية الخدمة | `hr.end_of_service.paid` | مدين مكافأت ترك الخدمة / دائن نقدية |
| مستحقات المدربين | `coach.payment.approved` | مدين مكافآت / دائن مصروفات مستحقة |
| استلام بضاعة | `procurement.grn_completed` | مدين مخزون / دائن بضاعة لم ترد فاتورتها |
| إهلاك الأصول | `inventory.depreciation_run` | مدين إهلاك / دائن مجمع إهلاك — **لكل فئة أصول** |
| فروق الجرد | `inventory.audit_completed` | عجز = خسارة، زيادة = بالعكس |
| استبعاد الأصول | `inventory.asset_disposed` | التكلفة + المجمع + الربح/الخسارة |
| الإعفاء من غرامة | `fine.waived` | عكس قيد الاستحقاق |
> **السلفة أصل مش مصروف.** النادي مستنيها ترجع، وبتتخصم من المرتب على أقساط.
> لو اتسجّلت مصروف كانت هتقلّل الربح والأصول بالمبلغ كله.
> **المطابقة الثلاثية للمشتريات.** استلام البضاعة بيقيّد المخزون مقابل حساب وسيط،
> والفاتورة لما تتعتمد بتقفل الحساب الوسيط وتقيّد المورد. من غير الحساب الوسيط ده،
> الاتنين كانوا هيقيّدوا المخزون فيتحسب مرتين — عشان كده استلام البضاعة كان مش موصّل
> أصلًا. الفاتورة دلوقتي بتشوف لو فيه استلام اتقيّد وبتغيّر الطرف المدين لوحدها.
---
## اللي محتاج قرار منك — وفيه أداة ليه
دي **مش** مشاكل ربط. دي حاجات فيها فلوس ضمنيًا بس المبلغ مش متسجّل في النظام أصلًا.
الماسح مش هيخترع رقم — ورقم غلط في الدفاتر أصعب في اكتشافه من رقم ناقص، وكمان بيبان
إنه مظبوط.
**بس «النظام مش عارف» مش معناها «محدش عارف».** إنت عارف الحارة بكام. عشان كده كل واحدة
فيهم ليها أداة في شاشة **«سد الفجوات»**`/accounting/gaps`.
| المصدر | السطور | المشكلة | الأداة |
|---|---|---|---|
| `sa:pool_zone_booking` | ٧٣٠ | سعر التذكرة وعدد الحاضرين كلهم فاضيين | حدّد تسعيرة لكل حجز |
| `sa:player_card` | ٥ | الجدول مفيهوش عمود مبلغ أصلًا | حدّد رسم الإصدار |
| `facility:pool_booking` | ٠ | الكود بيسجّل كل حجز بصفر | حدّد تسعيرة مؤقتة |
| `facility:private_match` | ٠ | المبلغ متسجّل بس من غير إيصال | فعّل «المبلغ المسجّل» |
| `academy:settlement` | ١٣ عقد | ميزة متكررة في موديولين | انسخ العقود لجدول التسويات |
| `academy:enrollment` | ١ | القيد مالوش رسوم | مفيش مطلوب |
### إزاي الأداة شغّالة
١. **تشوف المشكلة** — كل كارت بيقول بالظبط إيه الناقص وليه.
٢. **تحط رقم وتضغط «احسبلي هينزل كام»** — الشاشة بتقولك هيتقيّد كام قبل ما تعتمد.
٣. **تكتب السبب وتاريخ السريان** — السبب إجباري، وده اللي المراجع هيسأل عنه.
٤. **تحفظ** — الشاشة **مش بتقيّد حاجة**. بتسجّل قرار، وماسح الاستحقاقات ينفّذه في أول
جولة.
> **ليه السبب إجباري؟** لأن الرقم بيتحوّل من «تخمين» لـ**تقدير إداري معتمد** — وده أساس
> محاسبي مقبول طالما مكتوب ومعتمد وباسم حد. من غير سبب، الرقم مالوش سند.
> **ليه تاريخ السريان؟** التسعيرة بتطبّق من التاريخ ده ورايح بس. من غيره كنت هتعيد كتابة
> نتائج فترات اتقفلت واتعرضت خلاص.
> **الوقف مش بيعكس اللي اتقيّد.** لو رجعت وقفلت التسعيرة، اللي اتقيّد بيفضل زي ما هو —
> لو عايز تشيله، اعكس القيد من شاشة القيود.
### حكاية `academy:settlement`
محرك التسويات بيقرا `academy_contracts` (**فاضي**)، والعقود الحقيقية في
`sa_academy_contracts` (**١٣ عقد**). فمفيش أي تسوية شهرية اتحسبت ولا حصة نادي اتطالب بيها.
**الجدولين مش نسخة من بعض.** جدول التسويات فيه `settlement_day` و`grace_period_days`
و`penalty_rate_pct` — والمحرك بيحسب بيهم — ومش موجودين في الجدول التاني. عشان كده
الأداة **بتنسخ مش بتنقل**، وإنت اللي بتحدد الشروط الناقصة. العقود الأصلية بتفضل شغّالة
زي ما هي.
## الشاشة
### `/accounting/accruals` — الاستحقاقات
- اللي اتقيّد حسب المصدر، واللي لسه مفتوح
- أقدم المطالبات المفتوحة (اللي محدش لحق يجريها)
- اللي الماسح رفض يقيّده وليه
- زرار **«شغّل الفحص دلوقتي»**
> الكرون في النظام ده **بيتشحن مقفول** (`cron_enabled = 0`). الوظيفة
> `AccrualReconcileJob` جاهزة وبتشتغل مرة في اليوم لما يتفعّل — ولحد ما يتفعّل،
> شغّل الفحص من الزرار.
### `/accounting/gaps` — سد الفجوات
- كارت لكل فجوة: المشكلة، عدد المستندات، وهيتقيّد كام بالوضع الحالي
- زرار **«احسبلي هينزل كام»** بيحسب من غير ما يحفظ حاجة
- أداة نقل عقود الأكاديميات لجدول التسويات
---
## ملفات
| الملف | مسؤول عن |
|---|---|
| `Services/Revenue/AccrualRunner.php` | الماسح — بيلاقي المستحق ويقفل المدفوع |
| `Services/Revenue/AccrualService.php` | القيد نفسه: `single` / `batch` / `release` |
| `Services/SubledgerService.php` | جدول الاستحقاقات + مديونية الأعضاء |
| `Services/OperationalPostingService.php` | الفلوس الخارجة والأصول |
| `cron/jobs/AccrualReconcileJob.php` | الجولة الليلية |
| `database/seeds/Phase_109_001_seed_accrual_rules.php` | قواعد الاستحقاق |
| `database/seeds/Phase_109_002_seed_operational_rules.php` | قواعد الصرف والمخزون |
| `Services/Revenue/GapToolService.php` | تسعيرات سد الفجوات + المعاينة |
| `Services/Revenue/AcademyContractImportService.php` | نقل عقود الأكاديميات لجدول التسويات |
| `Controllers/GapController.php` + `Views/gaps/` | شاشة سد الفجوات |
---
## حاجة محتاجة قرار من المالية
**اشتراك العضو السنوي بينزل حاليًا على حساب «٤١٠٢٠١ اكاديمية البادل».**
ده مش صح — بس هو الربط الموجود فعلًا وعليه أكتر من ألف قيد قديم. قاعدة الاستحقاق
اتعملت على **نفس الحساب** عن قصد، عشان الاستحقاق والتحصيل يتقفلوا على بعض. لو
اتغيّر، لازم يتغيّر في الاتنين مع بعض — ودي مراجعة مالية مش تعديل كود.
نفس الكلام على `sa:monthly_subscription` اللي نازل على «إيرادات متنوعه».
# دليل المحاسب — خطوة بخطوة من على الشاشة
# الدليل المحاسبي الكامل — نادي شيراتون
> **لمين الدليل ده؟** للمحاسب اللي هيمسك النظام. مش دليل برمجة — ده كرّاسة تشغيل:
> كل خطوة مكتوب فيها **إنت رايح فين على الشاشة**، **بتضغط إيه**، و**القيد اللي هيتعمل**.
> **ده الدليل الوحيد.** كل حاجة محاسبية في النظام موجودة هنا: التأسيس، محرك
> التوزيع، مسار الفلوس، الاستحقاقات، الأصول الثابتة، الشيكات، الرواتب، المخزون،
> الضرايب، الإقفال، التقارير، وكل أداة وويزرد خطوة بخطوة من على الشاشة.
>
> **بيغطي إيه؟** الأساسيات المحاسبية كلها + **كل أداة وويزرد في النظام** خطوة بخطوة.
>
> **الدليل التاني:** [مسار الفلوس والاستحقاقات](./دليل-مسار-الفلوس-والاستحقاقات.md) —
> فيه تفاصيل أعمق عن توزيع الإيرادات والحسابات الوسيطة.
> **مفيش إحالة لملف تاني.** لو حاجة مكتوبة هنا، هي كاملة هنا.
---
## المحتويات
| # | القسم | إمتى |
|---|---|---|
| ٠ | [الصورة الكبيرة](#٠--الصورة-الكبيرة) | اقراه الأول |
| ١ | [التأسيس — مرة واحدة](#١--التأسيس--مرة-واحدة-بس) | أول ما تمسك النظام |
| ٢ | [الأصول الثابتة والإهلاك](#٢--الأصول-الثابتة-والإهلاك) | تأسيس + كل شهر |
| ٣ | [إعادة تبويب الحسابات](#٣--إعادة-تبويب-الحسابات) | لما رصيد يبقى في حساب غلط |
| ٤ | [الدورة اليومية](#٤--الدورة-اليومية) | كل يوم |
| ٥ | [الدورة الشهرية](#٥--الدورة-الشهرية) | آخر كل شهر |
| ٦ | [الرواتب](#٦--الرواتب) | كل شهر |
| ٧ | [المخزون وتكلفة المبيعات](#٧--المخزون-وتكلفة-المبيعات) | مستمر |
| ٨ | [الضرائب](#٨--الضرائب) | شهري / سنوي |
| ٩ | [الإقفال السنوي](#٩--الإقفال-السنوي) | آخر السنة |
| ١٠ | [التقارير وفحص سلامة الدفاتر](#١٠--التقارير-وفحص-سلامة-الدفاتر) | مستمر |
| ١١ | [**فهرس كل الأدوات والويزردز**](#١١--فهرس-كل-الأدوات-والويزردز) | مرجع |
| ١٢ | [حاجات محتاجة قرار منك](#١٢--حاجات-محتاجة-قرار-منك) | **اقراه قبل الاجتماع** |
### الجزء الأول — قبل ما تلمس حاجة
- [٠ — الصورة الكبيرة](#٠--الصورة-الكبيرة)
- [١ — المصطلحات](#١--المصطلحات)
- [٢ — خريطة الشاشات](#٢--خريطة-الشاشات)
### الجزء التاني — التأسيس
- [٣ — دليل الحسابات](#٣--دليل-الحسابات)
- [٤ — السنة المالية](#٤--السنة-المالية)
- [٥ — الملفات الضريبية](#٥--الملفات-الضريبية)
- [٦ — الحسابات البنكية والخزن](#٦--الحسابات-البنكية-والخزن)
- [٧ — القيود الافتتاحية](#٧--القيود-الافتتاحية)
### الجزء التالت — محرك التوزيع
- [٨ — محرك القيود](#٨--محرك-القيود)
- [٩ — معالج توزيع المبالغ](#٩--معالج-توزيع-المبالغ)
- [١٠ — أنواع البنود](#١٠--أنواع-البنود)
- [١١ — الإيراد المؤجل](#١١--الإيراد-المؤجل)
- [١٢ — كل الحالات اللي النظام بيرفضها](#١٢--كل-الحالات-اللي-النظام-بيرفضها)
### الجزء الرابع — مسار الفلوس
- [١٣ — الحسابات الوسيطة والسلاسل الأربعة](#١٣--الحسابات-الوسيطة-والسلاسل-الأربعة)
- [١٤ — فين الفلوس دلوقتي](#١٤--فين-الفلوس-دلوقتي)
- [١٥ — تصحيح تبويب الخزن](#١٥--تصحيح-تبويب-الخزن)
### الجزء الخامس — الاستحقاقات
- [١٦ — الاستحقاقات](#١٦--الاستحقاقات)
- [١٧ — سد الفجوات](#١٧--سد-الفجوات)
- [١٨ — المطابقة الثلاثية للمشتريات](#١٨--المطابقة-الثلاثية-للمشتريات)
### الجزء السادس — الأصول الثابتة
- [١٩ — فئات الأصول](#١٩--فئات-الأصول)
- [٢٠ — تسجيل أصل](#٢٠--تسجيل-أصل)
- [٢١ — الإهلاك الشهري](#٢١--الإهلاك-الشهري)
- [٢٢ — استبعاد أصل](#٢٢--استبعاد-أصل)
### الجزء السابع — العمليات اليومية
- [٢٣ — الأوراق التجارية والشيكات](#٢٣--الأوراق-التجارية-والشيكات)
- [٢٤ — سندات الصرف والقبض](#٢٤--سندات-الصرف-والقبض)
- [٢٥ — الرواتب](#٢٥--الرواتب)
- [٢٦ — المخزون وتكلفة المبيعات](#٢٦--المخزون-وتكلفة-المبيعات)
- [٢٧ — إعادة تبويب الحسابات](#٢٧--إعادة-تبويب-الحسابات)
- [٢٨ — القيد اليدوي](#٢٨--القيد-اليدوي)
### الجزء التامن — الدورات
- [٢٩ — الدورة اليومية](#٢٩--الدورة-اليومية)
- [٣٠ — الدورة الشهرية](#٣٠--الدورة-الشهرية)
- [٣١ — الإقفال السنوي](#٣١--الإقفال-السنوي)
### الجزء التاسع — التقارير
- [٣٢ — التقارير وفحص السلامة](#٣٢--التقارير-وفحص-السلامة)
### الجزء العاشر — المراجع
- [٣٣ — فهرس كل الأدوات](#٣٣--فهرس-كل-الأدوات)
- [٣٤ — لما حاجة تبوظ](#٣٤--لما-حاجة-تبوظ)
- [٣٥ — حاجات محتاجة قرار منك](#٣٥--حاجات-محتاجة-قرار-منك)
- [٣٦ — جدول الحسابات المرجعي](#٣٦--جدول-الحسابات-المرجعي)
---
# الجزء الأول — قبل ما تلمس حاجة
## ٠ — الصورة الكبيرة
### إزاي أي عملية بتوصل للدفاتر؟
......@@ -39,7 +80,7 @@
```mermaid
flowchart TB
E["حدث في النظام<br/>دفعة / بيع / راتب / إهلاك"]
R["محرك التوزيع<br/>بيقرا قاعدة الحساب من شاشة توزيع الإيرادات"]
R["محرك التوزيع<br/>بيقرا قاعدة الحساب"]
J["قيد يومية<br/>مدين = دائن"]
L["دفتر الأستاذ<br/>أرصدة الحسابات"]
F["التقارير<br/>ميزان المراجعة / قائمة الدخل / الميزانية"]
......@@ -52,36 +93,98 @@ flowchart TB
**يعني إيه؟** لو حساب اتغيّر في شاشة **توزيع الإيرادات**، كل القيود الجاية هتروح
للحساب الجديد — من غير ما حد يلمس كود.
### التلات دورات اللي بتشتغل مع بعض
```mermaid
flowchart TB
subgraph A["١ — التوزيع"]
A1["مبلغ داخل"] --> A2["يتقسم على حسابات<br/>حسب القاعدة"]
end
subgraph B["٢ — مسار الفلوس"]
B1["الكاشير حصّل"] --> B2["تسوية الوردية"] --> B3["إيداع بنكي"]
end
subgraph C["٣ — الاستحقاقات"]
C1["التزام قام<br/>ومحدش دفع"] --> C2["يتقيّد مدين على العضو"]
C2 --> C3["لما يدفع: الاستحقاق يتقفل"]
end
A --> B
A --> C
```
### القواعد اللي النظام بيفرضها عليك
| القاعدة | النظام بيعمل إيه |
|---|---|
| القيد لازم يتوازن | بيرفض القيد ويقولك الفرق |
| مينفعش ترحّل على حساب رئيسي | بيرفض — إلا أداة إعادة التبويب |
| مينفعش ترحّل على حساب موقوف | بيرفض — إلا قيد الإقفال السنوي |
| مينفعش ترحّل في فترة مقفولة | بيرفض — إلا قيد الإقفال السنوي |
| مينفعش ترحّل في سنة مالية مقفولة | بيرفض دايمًا |
| القيد لازم يتوازن | بيرفض ويقولك الفرق |
| مينفعش ترحّل على حساب **رئيسي** | بيرفض — إلا أداة إعادة التبويب |
| مينفعش ترحّل على حساب **موقوف** | بيرفض — إلا قيد الإقفال السنوي |
| مينفعش ترحّل في **فترة مقفولة** | بيرفض — إلا قيد الإقفال السنوي |
| مينفعش ترحّل في **سنة مالية مقفولة** | بيرفض دايمًا |
| القيد المرحّل **ما بيتمسحش** | بيتعكس بقيد عكسي |
---
## ١ — المصطلحات
| المصطلح | المعنى بالبلدي |
|---|---|
| **مصدر الإيراد** (Stream) | نوع الفلوس: «قيمة العضوية»، «حجز ملعب»، «مصروف الأجور». في النظام **٩٧ مصدر**. |
| **فئة الإيراد** (Category) | مجموعة مصادر من نفس النوع. **١٤ فئة**. |
| **النطاق** (Scope) | التقسيمة هتحكم إيه: مصدر واحد / فئة كاملة / مصادر أختارها / كل اللي مش موصّل / كل حاجة. |
| **المرحلة** (Stage) | امتى بيتعمل القيد: **استحقاق** = نطالب · **تحصيل** = نقبض · **صرف** = ندفع · **ارتجاع** · **إعدام** · **تحويل داخلي**. |
| **اتجاه الحركة** | **تحصيل** = بنود التقسيمة دائنة · **صرف** = بنودها مدينة. |
| **القاعدة** (Rule) | ورقة التعليمات: «المبلغ ده يتوزّع كذا». ليها إصدارات وتاريخ سريان. |
| **الباقي** (Remainder) | البند الأخير — بياخد اللي فضل + كسور القرش. **إجباري**. |
| **الصافي** (Net) | المبلغ بعد فصل الضريبة. التوزيع بيتم على الصافي. |
| **حساب رئيسي** (Header) | حساب بيتجمّع تحته حسابات. **القيد ما بينزلش عليه**. |
| **حساب وسيط** | محطة مؤقتة للفلوس وهي في الطريق — المفروض تفضى. |
| **الاستحقاق** (Accrual) | تقييد فلوس **قبل** ما حد يدفع. |
| **الإقفال** (Release) | إلغاء الاستحقاق لما الفلوس تتحصّل فعلًا. |
| **الإهلاك** | تحميل تكلفة الأصل على السنين. |
| **مجمع الإهلاك** | حساب بيقلل الأصل في الميزانية. |
---
## ١ — التأسيس — مرة واحدة بس
## ٢ — خريطة الشاشات
```mermaid
flowchart TB
ACC["المحاسبة والدفتر العام"]
ACC --> S1["الإعداد<br/>دليل الحسابات · السنوات المالية<br/>القيود الافتتاحية · الحسابات البنكية"]
ACC --> S2["التوزيع<br/>محرك القيود · مركز التوصيل<br/>الإيراد المؤجل"]
ACC --> S3["مسار الفلوس<br/>السلاسل · فين الفلوس دلوقتي"]
ACC --> S4["الاستحقاقات<br/>الفحص · سد الفجوات"]
ACC --> S5["العمليات<br/>قيود اليومية · السندات · الأوراق التجارية"]
ACC --> S6["الإقفال<br/>إقفال الفترات · إعادة التبويب"]
ACC --> S7["التقارير<br/>ميزان · دخل · ميزانية · أستاذ"]
INV["المخازن"] --> I1["فئات الأصول · الأصول والإهلاك"]
HR["الموارد البشرية"] --> H1["كشوف الرواتب · السلف · نهاية الخدمة"]
```
---
# الجزء التاني — التأسيس
الترتيب ده **مش اختياري** — كل خطوة بتعتمد على اللي قبلها.
```mermaid
flowchart TB
S1["١ دليل الحسابات"] --> S2["٢ السنة المالية"]
S2 --> S3["٣ الحسابات البنكية"]
S3 --> S4["٤ القيود الافتتاحية"]
S4 --> S5["٥ توزيع الإيرادات"]
S5 --> S6["٦ فئات الأصول"]
S6 --> S7["٧ سجل الأصول"]
S7 --> S8["٨ فحص التوازن"]
S2 --> S3["٣ الملفات الضريبية"]
S3 --> S4["٤ الحسابات البنكية والخزن"]
S4 --> S5["٥ القيود الافتتاحية"]
S5 --> S6["٦ توزيع الإيرادات"]
S6 --> S7["٧ فئات الأصول"]
S7 --> S8["٨ سجل الأصول"]
S8 --> S9["٩ فحص التوازن"]
```
### ١-١ — دليل الحسابات
## ٣ — دليل الحسابات
**الشاشة:** `المحاسبة ← دليل الحسابات``/accounting/chart-of-accounts`
الدليل متظبط ومتسطّب بالكامل. متعملش حاجة غير إنك تتفرج.
الدليل متظبط ومتسطّب بالكامل. بس لازم تفهم قاعدة واحدة:
| نوع الحساب | ممكن تقيّد عليه؟ |
|---|---|
......@@ -89,74 +192,655 @@ flowchart TB
| **فرعي** (المستوى الأخير) | ✅ أيوه |
| **موقوف** | ❌ لأ |
### ١-٢ — السنة المالية
### أنواع الحسابات وطبيعتها
| النوع | الطبيعة | بيزيد بـ | مثال |
|---|---|---|---|
| **أصل** | مدين | مدين | النقدية، المخزون، الأصول الثابتة |
| **التزام** | دائن | دائن | الموردون، الضرايب المستحقة |
| **حقوق ملكية** | دائن | دائن | أرباح مرحلة |
| **إيراد** | دائن | دائن | العضويات، الحجوزات |
| **مصروف** | مدين | مدين | الأجور، الكهرباء، الإهلاك |
> **إزاي تعرف الطبيعة؟** اسأل: الحساب ده بيمثّل حاجة **عندي** (أصل/مصروف = مدين)
> ولا حاجة **عليّا** أو **كسبتها** (التزام/إيراد/ملكية = دائن)؟
### إدارة حساب — نقل، تحويل، حذف
جنب أي حساب فيه زرار **«إدارة»**. الشاشة بتفحص الحساب الأول وتوريك هو مرتبط بإيه:
**نقل الحساب تحت أب تاني**
بينقل كل المتفرع منه معاه. **بيرفض** لو النوع مختلف (أصل تحت التزامات) أو لو النقل
هيعمل دايرة.
**تحويل رئيسي ↔ ترحيل**
- **بيرفض** يحوّل حساب عليه حركة لرئيسي — رصيده هيتعلّق.
- **بيرفض** يحوّل حساب له فروع لحساب ترحيل — هيتحسب مرتين.
**حذف أو أرشفة**
- **بيرفض** لو له حسابات فرعية.
- **بيرفض** لو مستخدم في قاعدة توزيع أو ملف ضريبي أو نوع سند أو حساب بنكي.
- لو عليه **حركات مرحّلة****بيتأرشف** بدل ما يتحذف، عشان القيود القديمة تفضل مقروءة.
> الشاشة بتعطّل الزرار اللي هيترفض بدل ما تضغطه ويطلعلك خطأ. ودي مش تعقيد — دي
> اللي بتمنع إن رصيد يضيع.
### إنشاء حساب جديد
1. اضغط **«+ حساب جديد»** أو من أي خانة حساب في الويزارد اضغط **«+ حساب جديد»**.
2. **تحت أي حساب رئيسي؟** — اختار الأب.
3. **اسم الحساب**.
4. **إنشاء وتحديد** — النظام بيحسب الكود التالي تحت الأب لوحده.
---
## ٤ — السنة المالية
**الشاشة:** `المحاسبة ← السنوات المالية``/accounting/fiscal-years`
**خطوة بخطوة — إضافة سنة:**
```mermaid
flowchart LR
A["سنة مالية"] -->|"مفتوحة"| B["القيود مسموحة"]
A -->|"مقفولة"| C["القيود مرفوضة"]
B --> D["إقفال شهري<br/>شهر شهر"]
D --> E["إقفال سنوي<br/>بعد ما كل الشهور تتقفل"]
E --> C
```
### إضافة سنة
1. اضغط **«+ سنة مالية جديدة»**.
2. حدد تاريخ البداية والنهاية.
3. احفظ.
4. حدد السنة الحالية بـ **is_current**.
**خطوة بخطوة — حل تداخل السنوات:**
### حل تداخل السنوات
1. افتح الشاشة. لو فيه تداخل هيظهر **تحذير أحمر فوق** فيه جدول بالسنين المتداخلة.
2. قرر: السنة المالية للنادي **تقويمية (يناير–ديسمبر)** ولا **يوليو–يونيو**؟
3. جنب اسم السنة اللي مش تابعة للنظام المعتمد اضغط **«أرشِف»**.
4. النظام هيرفض الأرشفة لو:
- السنة فيها **قيود** — لازم تنقلهم الأول (بيقولك عددهم)
- السنة هي **الحالية** — حدد سنة تانية كحالية الأول
لو فيه سنتين ماليتين بيغطوا نفس الأيام، هيظهر **تحذير أحمر** فوق الشاشة.
**المشكلة:** القيد اللي تاريخه في التداخل تابع للاتنين، وإقفال واحدة بيسيب التانية
مفتوحة على نفس العمليات — يعني نتيجة نفس الفترة ممكن تتحسب مرتين.
```mermaid
flowchart TB
A["افتح السنوات المالية"] --> B{"فيه تحذير تداخل؟"}
B -->|"لأ"| C["تمام"]
B -->|"أيوه"| D["قرر نظام السنة المالية"]
B -->|"أيوه"| D["قرر: تقويمية ولا يوليو–يونيو؟"]
D --> E["اضغط أرشِف على السنة الزيادة"]
E --> F{"فيها قيود؟"}
F -->|"أيوه"| G["النظام يرفض<br/>انقل القيود الأول"]
F -->|"لأ"| H{"هي الحالية؟"}
H -->|"أيوه"| I["النظام يرفض<br/>حدد سنة تانية كحالية"]
H -->|"لأ"| J["اتأرشفت<br/>مش هتدخل في تحديد سنة أي قيد"]
H -->|"لأ"| J["اتأرشفت"]
```
> **الأرشفة مش حذف.** السنة بتفضل موجودة في قاعدة البيانات، بس بتخرج من حسابات
> النظام لما يحدد قيد جديد تابع لأنهي سنة.
**الخطوات:**
### ١-٣ — الحسابات البنكية
1. افتح الشاشة واقرا التحذير.
2. قرر: السنة المالية للنادي **تقويمية (يناير–ديسمبر)** ولا **يوليو–يونيو**؟
3. جنب اسم السنة الزيادة اضغط **«أرشِف»**.
> **الأرشفة مش حذف.** السنة بتفضل موجودة، بس بتخرج من حسابات النظام لما يحدد قيد
> جديد تابع لأنهي سنة.
---
## ٥ — الملفات الضريبية
**الشاشة:** من الويزارد — خانة **المعالجة الضريبية**
| المعالجة | يعني إيه |
|---|---|
| **شاملة السعر** | السعر المعلن شامل الضريبة |
| **تُضاف على السعر** | الضريبة فوق السعر |
| **معفاة** | صفر ضريبة — **وتمنع خصم ضريبة المدخلات** |
| **خارج نطاق الضريبة** | مش خاضعة أصلًا |
| **نسبة صفر** | خاضعة بنسبة صفر — **بتسمح بخصم المدخلات** |
> **الفرق مهم — على ١٬١٤٠ شامل ١٤٪:**
> الإيراد **١٬٠٠٠** والضريبة **١٤٠**.
> لو حسبتها ١٤٪ من ١٬١٤٠ غلط → **١٥٩٫٦٠** (فرق ١٩٫٦٠ في كل عملية).
> **«معفاة» ولا «صفر»؟** الاتنين صفر ضريبة، لكن **المعفاة تمنع خصم ضريبة المدخلات**.
> الفرق بيبان في الإقرار مش في الفاتورة.
**الضريبة بتتفصل الأول** وبتروح لحساب التزام ضريبي (مش إيراد)، والتوزيع بيتم على
**الصافي**.
---
## ٦ — الحسابات البنكية والخزن
**الشاشة:** `المحاسبة ← الحسابات البنكية``/accounting/bank-accounts`
النظام عامل ٤ حسابات مربوطة بحسابات الأستاذ ١٢٠٦٠٢٠١–٠٤.
النظام عامل **٤ حسابات** مربوطة بحسابات الأستاذ:
| البنك | حساب الأستاذ |
|---|---|
| البنك الأهلي المصري | ١٢٠٦٠٢٠١ |
| بنك مصر | ١٢٠٦٠٢٠٢ |
| بنك القاهرة | ١٢٠٦٠٢٠٣ |
| بنك التعمير والإسكان | ١٢٠٦٠٢٠٤ |
> **🔴 مطلوب منك:** الأرقام دلوقتي **مؤقتة** ومكتوب فيها «رقم الحساب غير محدد».
> النظام **ما ينفعش** يخترع رقم آيبان حقيقي — ممكن يطلع على إشعار إيداع مطبوع.
> **عدّلهم قبل أول إيداع.**
### الخزن
كل خزنة لازم يكون ليها **حساب أستاذ خاص بيها**. لو خزنتين على نفس الحساب، النظام
هيقول «طرفا القيد نفس الحساب».
**🔴 خطوة مطلوبة:** الأرقام دلوقتي **مؤقتة** ومكتوب فيها «رقم الحساب غير محدد».
النظام **ما ينفعش** يخترع رقم آيبان. عدّلهم قبل أول إيداع.
---
### ١-٤ — القيود الافتتاحية
## ٧ — القيود الافتتاحية
**الشاشة:** `المحاسبة ← القيود الافتتاحية``/accounting/opening-entries`
### ١-٥ — توزيع الإيرادات
دي أرصدة أول المدة — اللي النادي كان عنده قبل ما يبدأ على النظام.
**القاعدة:** مجموع المدين لازم يساوي مجموع الدائن، والفرق بيروح لحساب **أرباح مرحلة**.
---
# الجزء التالت — محرك التوزيع
## ٨ — محرك القيود
**الشاشة:** `المحاسبة ← توزيع الإيرادات``/accounting/revenue-mapping`
بتقول لكل نوع إيراد ينزل على أنهي حساب. التفاصيل في
[الدليل التاني](./دليل-مسار-الفلوس-والاستحقاقات.md).
الشاشة دي هي اللي بتقول لكل نوع فلوس **ينزل على أنهي حساب**.
### الكروت الستة فوق
بيوروك: كام مصدر إجمالي · كام موصّل · كام مش موصّل · كام قاعدة نشطة · كام فئة ·
آخر تعديل.
### مركز التوصيل
**الشاشة:** `/accounting/revenue-mapping/connections`
بيوريك **اللي لسه مش موصّل** — أي مصدر إيراد مالوش قاعدة ترحيل. جنب كل واحد زرار
**«قسّم على حسابات»** بيفتح الويزارد عليه.
### فحص الحالة (التشخيص)
**الشاشة:** `/accounting/revenue-mapping/diagnostics`
بيوريك:
- المصادر اللي فيها مشكلة
- أي حساب مربوط على **header**
- أي قاعدة ناقصة **بند الباقي**
- تفصيل الحسابات المجمّعة بند بند بالمبلغ والنسبة
---
## ٩ — معالج توزيع المبالغ
ده أهم ويزرد في النظام. بتكتب التقسيمة **مرة واحدة** وتقول هي تحكم إيه.
### إزاي تفتحه
| من فين | بيفتح إيه |
|---|---|
| زرار **«وزّع على مجموعة»** فوق | الويزارد على **فئة كاملة** — ده اللي هتستخدمه أغلب الوقت |
| اسم المرحلة جنب أي مصدر في الجدول | الويزارد على **المصدر ده** في المرحلة دي |
| زرار الترس ⚙ | الوضع المتقدّم |
| **مركز التوصيل** ← «قسّم على حسابات» | نفس الويزارد للمصدر ده |
```mermaid
flowchart TB
W1["الخطوة ١<br/>التقسيمة دي هتحكم إيه"] --> W2["الخطوة ٢<br/>المبلغ اللي هنوزّعه"]
W2 --> W3["الخطوة ٣<br/>اقتطع الأجزاء"]
W3 --> W4["الخطوة ٤<br/>الباقي يروح لـ"]
W4 --> W5["راجع القيد الناتج"]
W5 --> W6["احفظ وفعّل"]
```
### الخطوة ١ — التقسيمة دي هتحكم إيه
خمس اختيارات، كل واحد كارت:
| النطاق | يعني إيه | امتى تستخدمه |
|---|---|---|
| **المصدر ده بس** | مصدر واحد | تقسيمة خاصة بحاجة واحدة |
| **كل فئة إيراد** | كل المصادر من نفس النوع | **الأكتر استخدامًا** |
| **مصادر أختارها** | تعلّم بإيدك من قايمة الـ٩٧ | مجموعة مش متجانسة |
| **كل اللي لسه مش موصّل** | أي مصدر ما لوش قاعدة | تلمّ الناقص دفعة واحدة |
| **كل مصادر الإيراد** | كل حاجة | سياسة عامة للنادي |
**المرحلة:** اختار (تحصيل / استحقاق / صرف / …). المصادر اللي المرحلة ما تنطبقش
عليها **بتتخطّى تلقائيًا** — يعني لو اخترت «تحصيل» على فئة الأجور، النظام هيقول
«اتخطّى — المرحلة دي ما تنطبقش» بدل ما يكتب قيد غلط.
**فئة العضو:**
- **كل الأعضاء — قاعدة عامة** → التوزيع يطبّق على أي حد.
- **عضو عامل (١٢٠)** → على العضو العامل **بس**.
> **القاعدة الأخص بتغلب العامة تلقائيًا.**
> **الترتيب:** فئة العضو (٤) > الفرع (٢) > طريقة الدفع (١).
> مش محتاج تعمل حاجة عشان ده يحصل.
**الشريط الأزرق** تحت بيقول: *«هتتطبّق على ١١ قاعدة قيد — حركة تحصيل»*. اضغط
**«اعرض القايمة»** تشوف كل مصدر ومرحلته، والمتخطّى ليه اتخطّى.
**اتجاه الحركة** بيحدد أنواع البنود المتاحة:
- **تحصيل** → إيراد / إيراد مؤجل / تحصيل لحساب الغير / خصم من الإيراد / تسوية ذمم مدينة
- **صرف** → مصروف / مصروف مقدّم / أصل ثابت / مخزون / تسوية ذمم دائنة / إعدام
> **مينفعش** تحط تقسيمة واحدة على نطاق فيه مصادر تحصيل ومصادر صرف مع بعض. النظام
> هيرفض ويقولك قسّمهم على دفعتين.
### الخطوة ٢ — المبلغ اللي هنوزّعه
**مبلغ مرجعي للحساب** — الرقم ده **للتوضيح بس**. النظام بيملاه بمتوسط اللي المصدر
حصّله فعلًا. النسب بتتطبّق على أي مبلغ فعلي مش على الرقم ده.
**مثال محسوب:** ١٥٠٬٠٠٠ بضريبة ١٤٪ شاملة →
صافي **١٣١٬٥٧٨٫٩٥** + ضريبة **١٨٬٤٢١٫٠٥**.
٢٠٪ هتاخد **٢٦٬٣١٥٫٧٩** (٢٠٪ من الصافي، مش من الـ١٥٠ ألف).
**مركز التكلفة** و**الفرع** — اختياريين. قاعدة لفرع معيّن بتغلب العامة.
### الخطوة ٣ — اقتطع الأجزاء
فوق خالص:
```
الباقي غير الموزَّع 150,000.00
[████████████████████████████████████████████]
```
الرقم بيتحدّث **مع كل حرف بتكتبه**.
اضغط **«+ اقتطع جزء»**:
| الحقل | تعمل بيه إيه |
|---|---|
| **الطريقة** | **نسبة %** أو **مبلغ ثابت** |
| **القيمة** | ٢٠ (يعني ٢٠٪) أو ٥٠٠٠ (يعني ٥٬٠٠٠ جنيه) |
| **يروح لحساب** | اكتب حرفين من الكود أو الاسم. مش موجود؟ **«+ حساب جديد»** |
| **نوع البند** | حسب الاتجاه |
| **الوصف** | اللي يظهر في القيد. اختياري. |
تحت كل كارت سطر بيقول:
> ٢٠% من ١٥٠٬٠٠٠٫٠٠ · قبله **١٥٠٬٠٠٠٫٠٠** · بياخد **٣٠٬٠٠٠٫٠٠** · يفضل **١٢٠٬٠٠٠٫٠٠**
> **النسبة دايمًا من صافي المبلغ، مش من الباقي.** ٢٠٪ بعدين ٣٠٪ = ٥٠٪ من المبلغ.
> **المبالغ الثابتة بتتخصم الأول**، وبعدين النسب بتتحسب على اللي فضل.
### الخطوة ٤ — الباقي يروح لـ
سطر **إجباري** أخضر تحت. اختار الحساب اللي هياخد اللي فضل.
> **ليه إجباري؟** عشان القيد يفضل متوازن مهما حصل. لو المبلغ اتغيّر أو كسور القرش
> ما اتقسمتش بالظبط، البند ده بيبلع الفرق.
### لوحة «القيد الناتج»
على الشمال، بتوريك بالظبط اللي هينزل الأستاذ قبل ما تحفظ:
| الحساب | مدين | دائن |
|---|---|---|
| النقدية / البنك | 150,000.00 | |
| ضريبة القيمة المضافة *(التزام)* | | 18,421.05 |
| ٤١٠١٠١ — صندوق النشاط الرياضي | | 26,315.79 |
| ٤١٠٥١٥ — إيرادات عضويات | | 39,473.69 |
| ٢٣٠٩٠١ — صندوق دعم المنشآت *(الباقي)* | | 65,789.47 |
| **الإجمالي** | **150,000.00** | **150,000.00** |
وتحتها **✓ القيد متوازن**. لو ظهر **✗ غير متوازن** بالأحمر — **ما تحفظش**.
### الحفظ
- **ساري اعتبارًا من** — التاريخ اللي التوزيع يبدأ منه.
- **سبب التغيير** — رقم قرار المجلس أو المذكرة. بيتسجّل في التاريخ.
> **القيود اللي اترحّلت قبل التاريخ ده ما بتتغيّرش أبدًا.** الحفظ بيعمل **إصدار
> جديد** ويوقف القديم. سؤال «القيد بتاع الشهر اللي فات كان بأي توزيع؟» له إجابة محفوظة.
> **الحفظ كله أو ولا حاجة.** لو مصدر واحد في النطاق فيه مشكلة، النظام بيرفض الدفعة
> كلها.
### ١-٦ إلى ١-٧ — الأصول
### مثال كامل — العضويات كلها
اقرا القسم [٢](#٢--الأصول-الثابتة-والإهلاك).
المطلوب: **٢٠٪ لصندوق النشاط الرياضي، ٣٠٪ لإيرادات العضويات، والباقي لصندوق دعم
المنشآت** — على كل إيرادات العضويات، للعضو العامل.
### ١-٨ — فحص التوازن
1. المحاسبة ← محرك القيود ← **«وزّع على مجموعة»**.
2. النطاق: **كل فئة إيراد****العضويات (١١ مصدر)**.
3. المرحلة: **تحصيل**. فئة العضو: **عضو عامل (١٢٠)**.
4. المبلغ المرجعي: **١٥٠٬٠٠٠**.
5. **+ اقتطع جزء** → نسبة **٢٠***صندوق النشاط الرياضي***إيراد**. الباقي: **١٢٠٬٠٠٠**
6. **+ اقتطع جزء** → نسبة **٣٠***إيرادات العضويات***إيراد**. الباقي: **٧٥٬٠٠٠**
7. المربع الأخضر: *صندوق دعم المنشآت***٧٥٬٠٠٠**
8. راجع القيد → **✓ متوازن**
9. سبب التغيير → **«حفظ وتفعيل على ١١ قاعدة»** → تأكيد.
**الشاشة:** `المحاسبة ← ميزان المراجعة``/accounting/reports/trial-balance`
**اتأكد:** غيّر المبلغ لـ ٢٠٠٬٠٠٠ → ٤٠٬٠٠٠ / ٦٠٬٠٠٠ / ١٠٠٬٠٠٠.
جرّب ٠٫٠٣ جنيه → ٠٫٠١ / ٠٫٠١ / ٠٫٠١ — لسه متوازن.
لازم **مجموع المدين = مجموع الدائن**.
---
## ١٠ — أنواع البنود
### على حركة **تحصيل**
| النوع | استخدمه لما | نوع الحساب المطلوب |
|---|---|---|
| **إيراد** | الفلوس بتاعة النادي وكسبناها دلوقتي | إيراد |
| **تحصيل لحساب الغير** | الفلوس مش بتاعتنا (دمغة، اتحاد، تأمين) | التزام |
| **إيراد مؤجل** | قبضنا دلوقتي والخدمة على مدار السنة | التزام |
| **خصم من الإيراد** | خصومات ومردودات | إيراد أو مصروف |
| **تسوية ذمم مدينة** | تسوية مديونية عضو | أصل |
### على حركة **صرف**
| النوع | استخدمه لما | نوع الحساب المطلوب |
|---|---|---|
| **مصروف** | تكلفة اتحمّلناها دلوقتي | مصروف |
| **مصروف مقدَّم** | دفعنا مقدّم لخدمة جاية | أصل |
| **أصل ثابت** | شراء أصل | أصل |
| **مخزون** | استلام بضاعة | أصل |
| **تسوية ذمم دائنة** | سداد لمورد | التزام |
| **إعدام / إسقاط** | إسقاط مديونية | مصروف |
> **غلطة شائعة:** «رسوم اتحاد» أو «دمغة» تتحط **إيراد**. دي فلوس بتتحصّل لحساب جهة
> تانية — لو اتسجّلت إيراد، أرباح النادي تظهر أعلى من الحقيقة والضريبة تتحسب غلط.
> خليها **تحصيل لحساب الغير**.
>
> **النظام بيتأكد من ده بنفسه:** لو اخترت بند «إيراد» ووديته على حساب التزام، هيرفض.
---
## ١١ — الإيراد المؤجل
لما تختار نوع البند **«إيراد مؤجل»**، بيفتح مربع أصفر:
- **يترحّل على كام شهر** — مثلًا ١٢ للاشتراك السنوي.
- **حساب الإيراد اللي يترحّل له** — البحث بيفلتر حسابات الإيراد بس.
```
عند التحصيل: مدين النقدية ١٢٬٠٠٠ / دائن إيرادات مقدمة ١٢٬٠٠٠
كل شهر: مدين إيرادات مقدمة ١٬٠٠٠ / دائن إيراد الاشتراكات ١٬٠٠٠
```
**الترحيل الشهري:** `الإيراد المؤجل` (`/accounting/revenue-mapping/recognition`)
← الفترة ← **معاينة****ترحيل تحقق الإيراد**.
> السند: معيار المحاسبة المصري رقم ٤٨.
---
## ١٢ — كل الحالات اللي النظام بيرفضها
كلها بترفض **قبل** ما يتكتب أي صف:
| الحالة | الرسالة |
|---|---|
| من غير بند باقي | لازم بند واحد اسمه «الباقي» |
| بندين باقي | مش ممكن أكتر من بند «باقي» واحد |
| مجموع النسب > ١٠٠٪ | مجموع النسب ١٢٠٪ — أكبر من ١٠٠٪ |
| نسبة صفر أو سالبة | النسبة لازم تكون أكبر من صفر |
| مبلغ ثابت صفر | المبلغ الثابت لازم يكون أكبر من صفر |
| **حساب رئيسي** | حساب رئيسي، والقيد ما بينزلش عليه |
| حساب مش موجود أو موقوف | الحساب رقم … مش موجود / موقوف |
| بند من غير حساب | البند ١: ما اخترتش حساب |
| نوع حساب مش مناسب | الحساب … نوعه liability ومش مناسب لبند «إيراد» |
| بند صرف على حركة تحصيل | نوع البند مش مناسب لحركة تحصيل |
| **خلط تحصيل مع صرف** | قسّمهم على دفعتين |
| تقسيمة فاضية | أضف بندًا واحدًا على الأقل |
| نطاق مفيهوش مصادر | ما فيش أي مصدر مطابق للنطاق |
| **تاريخ في فترة مقفولة** | واقع في فترة مقفولة (٢٠٢٦-٠٩) |
| مؤجل من غير حساب ترحيل | حدد حساب الإيراد اللي المؤجل هيترحّل له |
| مرحلة ما تنطبقش | اتخطّى — المرحلة دي ما تنطبقش على الأجور |
---
# الجزء الرابع — مسار الفلوس
## ١٣ — الحسابات الوسيطة والسلاسل الأربعة
### الفكرة
في المحاسبة فيه حاجات **مستحيل تتكتب في خطوة واحدة**، لأنها بتحصل على مراحل:
```mermaid
flowchart LR
A["الكاشير حصّل<br/>الفلوس في إيده"] --> B["تسوية الوردية<br/>الفلوس في الخزنة"]
B --> C["إيداع بنكي<br/>الفلوس في البنك"]
```
كل محطة من دول لها **حساب**. والحساب الوسيط المفروض **يفضى** — لو فضل فيه رصيد
كتير، يبقى فيه خطوة ما اتعملتش.
### السلاسل الأربعة
```mermaid
flowchart TB
subgraph C1["١ — دورة النقدية"]
N1["الكاشير حصّل"] --> N2["تسوية الوردية"] --> N3["إيداع بنكي"]
end
subgraph C2["٢ — دورة الشيكات"]
K1["استلام الشيك<br/>أوراق قبض"] --> K2["إيداع برسم التحصيل"]
K2 --> K3["البنك حصّل"]
K2 --> K4["الشيك ارتد"]
end
subgraph C3["٣ — مديونية الأعضاء"]
M1["استحقاق على العضو"] --> M2["التحصيل"]
M1 --> M3["إسقاط الدين"]
end
subgraph C4["٤ — مستحقات الموردين"]
V1["اعتماد الفاتورة"] --> V2["السداد"]
end
```
**الشاشة:** `المحاسبة ← مسار الفلوس``/accounting/posting-chains`
الشاشة بتوريك كل سلسلة وخطواتها، وبتعمل **فحص ذاتي**: لو خطوة ناقصة حساب أو
الطرفين على نفس الجانب، بتقولك بالظبط إيه الناقص.
---
## ١٤ — فين الفلوس دلوقتي
**الشاشة:** `/accounting/posting-chains/parked`
دي الشاشة اللي بتكشف السلسلة المكسورة **من غير ما تفتح دفتر الأستاذ**.
العمر محسوب **الأقدم يخرج الأول (FIFO)**:
```mermaid
flowchart LR
I1["دخل ٥٠٠٠<br/>من ٤٠ يوم"] --> Q["الطابور"]
I2["دخل ٣٠٠٠<br/>من ٩ أيام"] --> Q
I3["دخل ٢٠٠٠<br/>إمبارح"] --> Q
Q --> O["خرج ٦٠٠٠<br/>بالتسوية"]
O --> R1["أكل الـ٥٠٠٠ كلها"]
O --> R2["وأكل ١٠٠٠ من التانية"]
R2 --> F["الواقف فعلًا:<br/>٢٠٠٠ عمرهم ٩ أيام<br/>+ ٢٠٠٠ عمرهم يوم"]
```
يعني اللي قدامك مش «رصيد إجمالي» — دول المبالغ اللي **فعلًا** لسه واقفة، بتاريخها
ومستندها.
> **افتحها كل يوم.** لو رقم قعد واقف كتير — فيه حاجة غلط.
---
## ١٥ — تصحيح تبويب الخزن
**الشاشة:** `/accounting/posting-chains/reclassification`
لو خزنة كانت بتنزل على حساب غلط (مثلًا تحصيل بالجنيه نازل على صندوق الدولار):
1. اضغط **«مراجعة التصحيح»**.
2. الشاشة بتوريك جدول: كل خزنة، كانت نازلة فين، هتروح فين، عدد السطور، المبلغ.
3. حدد **التاريخ** واكتب **السبب**.
4. اضغط **«رحّل قيد التصحيح»**.
| الخزنة | كانت نازلة في | هتروح لـ | السطور | المبلغ |
|---|---|---|---|---|
| خزنة الأنشطة | ١٢٠٦٠١٠٢ الصندوق بالدولار | ١٢٠٦٠١٠٤ خزنة الأنشطة | ٥٠ | ٦٣٬٢٨٩ |
| خزنة العضويات | ١٢٠٦٠١٠٣ الصندوق باليورو | ١٢٠٦٠١٠٥ خزنة العضويات | ٣٢ | ٩٠٩٬٥٠٢ |
> **٣ ضمانات:**
> 1. **القيود القديمة ما بتتغيّرش.** التصحيح قيد جديد بتاريخ النهارده.
> 2. **مش ممكن يتظبط مرتين.** القيد بيتوسم على مستوى السطر.
> 3. **لو اتعكس، الشغل بيرجع يظهر تاني** فينفع تعيده.
>
> والفلوس الأجنبية الحقيقية **ما بتتلمسش**.
---
## ٢ — الأصول الثابتة والإهلاك
# الجزء الخامس — الاستحقاقات
## ١٦ — الاستحقاقات
**الشاشة:** `المحاسبة ← الاستحقاقات``/accounting/accruals`
### المشكلة اللي بتحلها
اشتراك اتولّد، ملعب اتحجز، غرامة اتفرضت — **الالتزام قام** ومحدش دفع. من غير
استحقاق، الدفاتر ما تعرفش إن فيه فلوس للنادي.
```mermaid
flowchart TB
A["التزام قام<br/>اشتراك / حجز / غرامة"] --> B["استحقاق<br/>مدين المدينون / دائن الإيراد"]
B --> C{"العضو دفع؟"}
C -->|"أيوه"| D["إقفال الاستحقاق<br/>الحالة settled"]
C -->|"اتلغى"| E["عكس الاستحقاق<br/>الحالة reversed"]
C -->|"لسه"| F["يفضل مفتوح<br/>ويظهر في المدينون"]
```
### 🔴 أهم نقطة في الملف كله
التحصيل في النظام ده بيقيّد **مدين النقدية / دائن الإيراد** مباشرة. يعني:
```
استحقاق: مدين المدينون ١٠٠ دائن الإيراد ١٠٠
تحصيل: مدين النقدية ١٠٠ دائن الإيراد ١٠٠ ← الإيراد بقى ٢٠٠!
```
عشان كده **لازم** الاستحقاق يتقفل لما الفلوس تتحصّل. الماسح بيعمل ده تلقائيًا في
نفس الجولة — بيقيّد الاستحقاقات الجديدة **وبعدين** يقفل اللي اتحصّل.
### الخطوات
1. افتح `/accounting/accruals`.
2. الشاشة بتوريك المطالبات المستحقة اللي لسه ما اتقيّدتش.
3. اضغط **«شغّل الفحص»**.
> بيتشغّل أكتر من مرة براحتك — المطالبة اللي اتقيّدت مرة ما بتتقيّدش تاني.
### اللي اتوصّل
| المصدر | اللي اتقيّد |
|---|---|
| اشتراكات الأعضاء السنوية | ١٨٠٬٩٣٦ على ٥٧٧ |
| إيجار الأكاديميات | ٣١٥٬٠٠٠ على ٢ |
| اشتراكات النشاط الرياضي | ١٠٤٬٧٦٩ على ١٣٥ |
| غرامات تأخير الاشتراكات | ١٠٠٬٠٠٣ على ٣٨٦ |
| حجوزات الملاعب | ٧٤٬٨٨٤ على ٢٠ |
| تأمينات عقود الأكاديميات | ٥٠٬٠٠٠ على ٤ |
| رسوم التنمية + حجوزات + لوكرات | ٩٬٥٧٥ على ١٩٢ |
| **الإجمالي** | **١٬٣١٦ مطالبة بـ ٨٣٥٬١٦٧ جنيه** |
### فلوس خارجة بتتقيّد تلقائيًا
| العملية | القيد |
|---|---|
| صرف سلفة موظف | مدين **سلف عاملين** / دائن نقدية |
| نهاية الخدمة | مدين مكافأت ترك الخدمة / دائن نقدية |
| مستحقات المدربين | مدين مكافآت / دائن مصروفات مستحقة |
| استلام بضاعة | مدين مخزون / دائن **بضاعة لم ترد فاتورتها** |
| إهلاك الأصول | لكل فئة أصول على حدة |
| فروق الجرد | عجز = خسارة، زيادة = بالعكس |
| استبعاد أصل | التكلفة + المجمع + الربح/الخسارة |
| الإعفاء من غرامة | عكس قيد الاستحقاق |
> **السلفة أصل مش مصروف.** النادي مستنيها ترجع. لو اتسجّلت مصروف كانت هتقلّل
> الربح **والأصول** بالمبلغ كله.
>
> **التأمين مش إيراد.** فلوس النادي ماسكها ولازم يرجّعها — التزام.
---
## ١٧ — سد الفجوات
**الشاشة:** `المحاسبة ← سد الفجوات``/accounting/gaps`
الحاجات اللي النظام **مش عارف يسعّرها لوحده** — حجز مكتوب بصفر، كارنيه من غير عمود
رسم، منطقة حمام سباحة من غير سجل دخول. **الماسح بيرفض يخترع رقم، وده صح.**
بس «النظام مش عارف» مش معناها «محدش عارف». لما تحدد التسعيرة، الرقم بيبقى
**تقدير إداري معتمد** — وده أساس محاسبي مقبول طالما مكتوب ومعتمد وباسم حد.
```mermaid
flowchart LR
R["رقم لوحده"] -->|"= تخمين"| BAD["مالوش سند"]
R2["رقم + سبب + معتمِد + تاريخ"] -->|"= تقدير إداري"| GOOD["أساس محاسبي مقبول"]
```
### الفجوات وأدواتها
| المصدر | المشكلة | الأداة |
|---|---|---|
| `sa:pool_zone_booking` | ٧٣٠ حجز، سعر التذكرة وعدد الحاضرين فاضيين | تسعيرة لكل حجز |
| `sa:player_card` | الجدول مفيهوش عمود مبلغ | رسم الإصدار |
| `facility:pool_booking` | الكود بيسجّل كل حجز بصفر | تسعيرة مؤقتة |
| `facility:private_match` | المبلغ متسجّل بس من غير إيصال | «المبلغ المسجّل» |
| `academy:settlement` | ميزة متكررة في موديولين | نقل العقود |
| `academy:enrollment` | القيد مالوش رسوم | **مفيش مطلوب** |
### الخطوات
**تحديد تسعيرة:**
1. اختار البند.
2. اكتب السعر.
3. شوف **«هينزل كام»** — معاينة من غير ما تحفظ.
4. اكتب **السبب** (إجباري) و**تاريخ السريان** (إجباري).
5. احفظ.
**نقل عقود الأكاديميات:**
1. اختار العقود.
2. حدد يوم التسوية ومهلة السماح ونسبة الغرامة.
3. انقل.
**لاعبين مربوطين بعضو مش موجود:**
خانة العضو فيها **رقم عضوية** مش رقم العضو. الاستحقاق بيتقيّد بس الدين **مش بيظهر
على حساب العضو**. اضغط **«صلّح الربط»** → بيوديك لملف اللاعب.
> **ليه السبب وتاريخ السريان إجباريين؟**
> **السبب** هو اللي بيحوّل الرقم من تخمين لتقدير معتمد — المراجع هيسأل عنه.
> **تاريخ السريان** بيمنع إنك تعيد كتابة نتائج فترات اتقفلت واتعرضت خلاص.
> **مفيش حاجة بتتقيّد من الشاشة دي على طول.** إنت بتسجّل **قرار**، وماسح
> الاستحقاقات بينفّذه في أول جولة بعد كده.
> **الوقف مش بيعكس اللي اتقيّد.** لو رجعت وقفلت التسعيرة، اللي اتقيّد بيفضل زي ما
> هو. لو عايز تشيله، اعكس القيد من شاشة القيود.
---
## ١٨ — المطابقة الثلاثية للمشتريات
```mermaid
flowchart LR
G["استلام البضاعة"] -->|"مدين"| INV["المخزون"]
G -->|"دائن"| CLR["بضاعة لم ترد فاتورتها"]
I["اعتماد الفاتورة"] -->|"مدين"| CLR
I -->|"دائن"| AP["الموردون"]
CLR --> Z["الرصيد بيتصفّر<br/>لما الاتنين ينزلوا"]
```
> من غير الحساب الوسيط، الاتنين كانوا هيقيّدوا **المخزون** فيتحسب مرتين.
> واللي فاضل في الحساب الوسيط = **بضاعة عندنا ولسه محدش حاسبنا عليها**.
---
# الجزء السادس — الأصول الثابتة
### المفهوم
......@@ -170,10 +854,10 @@ flowchart TB
G --> H["ربح أو خسارة استبعاد"]
```
> **القاعدة:** الأصل الثابت **مش مصروف**. النادي بدّل أصل بأصل. التكلفة بتتحمّل
> على قائمة الدخل على مدى عمر الأصل عن طريق الإهلاك.
> **القاعدة:** الأصل الثابت **مش مصروف**. النادي بدّل أصل بأصل. التكلفة بتتحمّل على
> قائمة الدخل على مدى عمر الأصل عن طريق الإهلاك.
### ٢-١ — فئات الأصول ← ابدأ من هنا
## ١٩ — فئات الأصول
**الشاشة:** `المخازن ← فئات الأصول``/inventory/asset-categories`
......@@ -198,16 +882,15 @@ flowchart TB
| أجهزة كمبيوتر | ١١٠١٠٧٠١ | ٢٣٠١٠١٠٦ | ٣١٣٧٠٦ | ٣ سنين |
| أجهزة كهربائية | ١١٠١٠٨٠١ | ٢٣٠١٠١٠٧ | ٣١٣٧٠٧ | ٥ سنين |
**خطوة بخطوة — تعديل فئة:**
### تعديل فئة
1. افتح `/inventory/asset-categories`.
2. لو فيه **تحذير أحمر** «فئات فيها أصول ومن غير حسابات إهلاك» — دي أهم حاجة تصلّحها.
3. اضغط **«تعديل»** جنب الفئة.
4. غيّر الحسابات من القوايم. **القوايم بتعرض بس الحسابات الفرعية النشطة**
الحساب الرئيسي مش هيظهر أصلًا.
3. اضغط **«تعديل»**.
4. غيّر الحسابات من القوايم. **القوايم بتعرض بس الحسابات الفرعية النشطة**.
5. احفظ.
**خطوة بخطوة — فئة جديدة:**
### فئة جديدة
1. اضغط **«+ فئة جديدة»**.
2. اكتب الاسم.
......@@ -216,21 +899,20 @@ flowchart TB
5. حدد الطريقة والعمر الافتراضي.
6. احفظ.
> **⚠️ قاعدة مهمة:** لو حطيت مجمع الإهلاك من غير مصروف الإهلاك (أو العكس)،
> النظام بيرفض. القيد مش هيتوازن، والفئة كانت هتتخطّى بالكامل في الترحيل الشهري.
>
> **⚠️ قاعدة مهمة:** لو حطيت مجمع الإهلاك من غير مصروف الإهلاك (أو العكس) النظام
> بيرفض — القيد مش هيتوازن والفئة كانت هتتخطّى بالكامل.
> **سيبهم الاتنين فاضيين بس للأصول اللي ما بتتهلكش** — زي الأراضي.
> **مصروف الإهلاك بيتبع وظيفة الأصل:**
> **٣١٣٧xx** للنشاط · **٣٢٠٦xx** للبيع والتوزيع · **٣٣١٦xx** للعمومية والإدارية.
> **تغيير الفئة بيأثر على الإهلاك الجاي بس.** القيود اللي اتقيّدت خلاص بتفضل زي
> ما هي — تعديلها معناه إعادة كتابة فترات مقفولة.
> **تغيير الفئة بيأثر على الإهلاك الجاي بس.** القيود اللي اتقيّدت بتفضل زي ما هي.
---
### ٢-٢ — تسجيل أصل — التلات طرق
## ٢٠ — تسجيل أصل
**الشاشة:** `المخازن ← الأصول والإهلاك``/inventory/assets`
**«تسجيل أصل ثابت»**
**الشاشة:** `المخازن ← الأصول والإهلاك``/inventory/assets`**«تسجيل أصل ثابت»**
```mermaid
flowchart TB
......@@ -246,40 +928,42 @@ flowchart TB
I --> H
```
#### 🔴 أهم اختيار في الشاشة
### 🔴 أهم اختيار في الشاشة
| الاختيار | إمتى؟ | القيد |
|---|---|---|
| **شراء جديد** | النادي اشترى الأصل دلوقتي | `من ح/ الأصل` / `إلى ح/ النقدية أو الموردين` |
| **رصيد افتتاحي** | الأصل موجود في الدفاتر من زمان | **مفيش أي قيد** |
| **رسملة مشروع تحت التنفيذ** | مشروع خلص وبقى جاهز للاستخدام | `من ح/ الأصل` / `إلى ح/ المشروع` |
| **رسملة مشروع تحت التنفيذ** | مشروع خلص وبقى جاهز | `من ح/ الأصل` / `إلى ح/ المشروع` |
> **ليه ده مهم؟**
> - لو الأصل في القيد الافتتاحي وسجّلته «شراء جديد» → **الميزانية هتتعدّ مرتين**.
> - لو مشروع خلص وسجّلته «شراء جديد» → **المصروف هيتعدّ مرتين**، لأن الفلوس
> اتصرفت خلاص وهي في «مشروعات تحت التنفيذ».
#### خطوات الرسملة بالتفصيل
### خطوات الرسملة
1. اضغط **«تسجيل أصل ثابت»**.
2. اختار **الفئة** الصح للأصل الجاهز (مباني، آلات… إلخ).
2. اختار **الفئة** الصح للأصل الجاهز.
3. اختار **«رسملة مشروع تحت التنفيذ»**.
4. من القايمة اللي هتظهر اختار **حساب المشروع** — القايمة بتوريك رصيد كل مشروع.
4. من القايمة اختار **حساب المشروع** — القايمة بتوريك رصيد كل مشروع.
5. اكتب **التكلفة** المطلوب رسملتها.
6. حدد **تاريخ الجاهزية للاستخدام** — الإهلاك بيبدأ منه.
7. احفظ.
> **مفيش فلوس بتتصرف في الرسملة.** الفلوس اتصرفت وقت التنفيذ. الرسملة بس بتنقل
> **مفيش فلوس بتتصرف في الرسملة.** الفلوس اتصرفت وقت التنفيذ. الرسملة بتنقل
> التكلفة المتراكمة من حساب المشروع لحساب الأصل عشان يبدأ يتهلك.
>
> **المشروعات تحت التنفيذ ما بتتهلكش** وهي تحت التنفيذ — الحاجة لسه مش شغّالة.
#### حقول الشاشة
### حقول الشاشة
| الحقل | يتكتب فيه إيه |
|---|---|
| رقم الأصل | بيتولّد لوحده — `FA-2026-0001` |
| الفئة | **إجباري** — هي اللي بتحدد حسابات الإهلاك |
| المخزن | سيبه فاضي للمباني والملاعب والعربيات |
| تاريخ الشراء | تاريخ الشراء الأصلي أو تاريخ الجاهزية للرسملة |
| تاريخ الشراء | تاريخ الشراء الأصلي أو تاريخ الجاهزية |
| التكلفة | التكلفة الأصلية كاملة |
| مجمع الإهلاك حتى تاريخه | للأصل القديم اللي اتهلك جزء منه قبل التسجيل |
| القيمة التخريدية | الإهلاك بيقف عندها |
......@@ -288,7 +972,9 @@ flowchart TB
> **بعد أول قيد أو أول إهلاك، التكلفة ومجمع الإهلاك بيتقفلوا** في شاشة التعديل.
> أي تغيير عليهم بيتعمل **بقيد يومية** عشان السجل والدفاتر يفضلوا متطابقين.
### ٢-٣ — تشغيل الإهلاك الشهري
---
## ٢١ — الإهلاك الشهري
**الشاشة:** `/inventory/assets`
......@@ -305,9 +991,19 @@ flowchart TB
إلى ح/ ٢٣٠١٠١٠٢ مجمع إهلاك — آلات ١٠٬٠٠٠
```
### طرق الإهلاك
| الطريقة | الحساب |
|---|---|
| **القسط الثابت** | (التكلفة − التخريدية) ÷ عدد الشهور |
| **القسط المتناقص** | القيمة الدفترية × النسبة السنوية ÷ ١٢ |
> **بيتشغّل مرة واحدة للشهر.** لو ضغطت تاني بالغلط، النظام بيتجاهل.
> **الإهلاك بيقف** لما القيمة الدفترية توصل للقيمة التخريدية.
---
### ٢-٤ — استبعاد أصل
## ٢٢ — استبعاد أصل
**الشاشة:** `/inventory/assets/{رقم}`**«تسجيل التصرف»**
......@@ -318,6 +1014,7 @@ flowchart TB
```
مثال: تكلفة ٣٦٬٠٠٠، مجمع إهلاك ١٬٠٠٠، اتباع بـ ٣٠٬٠٠٠
القيمة الدفترية = ٣٥٬٠٠٠ → خسارة ٥٬٠٠٠
من ح/ النقدية ٣٠٬٠٠٠
من ح/ مجمع الإهلاك ١٬٠٠٠
......@@ -325,9 +1022,148 @@ flowchart TB
إلى ح/ الأصل الثابت ٣٦٬٠٠٠
```
> القيد بيشيل **التكلفة ومجمع إهلاكها** الاتنين من الدفاتر. لو شيلت التكلفة بس،
> مجمع الإهلاك هيفضل معلّق في الميزانية للأبد.
---
# الجزء السابع — العمليات اليومية
## ٢٣ — الأوراق التجارية والشيكات
**الشاشة:** `المحاسبة ← الأوراق التجارية``/accounting/instruments`
### دورة الشيك المستلم
```mermaid
flowchart TB
A["في اليد<br/>أوراق قبض"] --> B["تحت التحصيل<br/>ودّيناه البنك"]
B --> C["محصَّل<br/>البنك صرفه"]
B --> D["مرتد<br/>البنك رفضه"]
D --> E["إعادة للتحصيل"]
E --> B
A --> F["مظهَّر<br/>ظهّرناه لمورد"]
```
| الحالة | معناها | القيد |
|---|---|---|
| **في اليد** | استلمنا الشيك | مدين **أوراق قبض** `120302004` |
| **تحت التحصيل** | ودّيناه البنك | مدين شيكات تحت التحصيل `1207` / دائن أوراق قبض |
| **محصَّل** | البنك صرفه | مدين **البنك** / دائن شيكات تحت التحصيل |
| **مرتد** | البنك رفضه | مدين **شيكات مرتدة** `120301005` / دائن تحت التحصيل |
| **مظهَّر** | ظهّرناه لمورد | مدين الدائن / دائن أوراق قبض |
### الخطوات
- **إيداع الشيك:** افتح الورقة ← **«إيداع بالبنك»** ← اختار الحساب البنكي والتاريخ.
- **التحصيل:****«تأكيد التحصيل»** بتاريخ التحصيل الفعلي.
- **الارتداد:****«تسجيل ارتداد»** ← السبب ← ومعاه **مصاريف الارتداد** لو هتحمّلها للعضو.
- **إعادة التقديم:** من الشيك المرتد ← **«إعادة للتحصيل»**.
> **مصاريف الارتداد بتتقيّد في قيد منفصل** عن الدين نفسه — عشان لو قررت تعفي العضو
> من المصاريف، ده ما يمسّش أصل المديونية.
> **كل تقديم بيسيب أثره الخاص.** التقديم التاني والتالت كل واحد له قيده وتاريخه في
> سجل الحالات — ده اللي بيخليك تقدر تثبت عدد مرات الارتداد قانونيًا.
> **الشيك لما نستلمه مش نقدية في البنك** — هو ورقة قبض لحد ما البنك يحصّله فعلًا.
---
## ٢٤ — سندات الصرف والقبض
**الشاشة:** `المحاسبة ← سندات الصرف والقبض``/accounting/vouchers`**«+ سند جديد»**
1. **نوع السند** — سند صرف دعاية وإعلان (أو صيانة، كهرباء، عام…)
2. **التاريخ** و**البيان**
3. **من أي حساب خرجت الفلوس** — الصندوق أو البنك
4. **طريقة الدفع** — لو شيك بيطلبك رقم الشيك والبنك والتاريخ
5. **الفلوس دي راحت على إيه** — الحساب والمبلغ (تقدر تضيف أكتر من بند)
6. لو في **ضريبة مدخلات**، اختار الملف الضريبي
7. القيد بيتعرض على اليمين وانت بتكتب ← **«حفظ وترحيل»**
> **مفيش مدين ودائن.** بتقول صرفت كام وعلى إيه، والنظام بيبني القيد.
**نوع مصروف جديد؟** `أنواع السندات ← إضافة نوع`: الكود، الاسم، الاتجاه، وحساب
افتراضي. **من غير مبرمج.**
**ضريبة المدخلات:** لو الفاتورة ١٬١٤٠ شاملة ١٤٪، المصروف بيتسجّل **١٬٠٠٠** والضريبة
**١٤٠** في حساب أصل قابل للخصم.
> **الإلغاء:** سند مُرحَّل بيتلغى بـ**قيد عكسي**، مش بيتمسح.
---
## ٢٥ — الرواتب
**الشاشة:** `الموارد البشرية ← كشوف الرواتب``/hr/payroll`
```mermaid
flowchart TB
A["١ إنشاء فترة رواتب"] --> B["٢ حساب المسير"]
B --> C["٣ مراجعة"]
C --> D["٤ اعتماد وصرف"]
D --> E["قيد الرواتب تلقائي"]
```
1. اعمل **فترة رواتب** للشهر.
2. اضغط **«حساب المسير»** — النظام بيحسب الأساسي والبدلات والتأمينات والضريبة.
3. راجع.
4. اضغط **«صرف»**.
```
من ح/ ٣١٠١٠١ الأجور الأساسية ١٥٬٠٠٠
من ح/ ٣١٠١٠٣ حصة النادي في التأمينات ٢٬٣٦٢٫٥٠
إلى ح/ ١٢٠٦٠٢٠١ البنك — الصافي ٤٬٤٠٢٫٢٠
إلى ح/ ٢٣٠٨٠٦٠١ التأمينات المستحقة ٣٬٧٤٨٫٥٠
إلى ح/ ٢٣٠٨٠٤٠٣ ضريبة كسب العمل ٩٬٢١١٫٨٠
```
> **القيد بيتعمل عند الصرف مش عند الحساب.** المسير المحسوب ومش مصروف = مفيش مصروف
> رواتب في الدفاتر.
>
> **الصرف مرتين بالغلط ما بيقيّدش مرتين** — النظام بيتجاهل التاني.
**السلف:** `/hr/loans` — السلفة **أصل** مش مصروف.
**نهاية الخدمة:** `/hr/end-of-service`.
---
## ٢٦ — المخزون وتكلفة المبيعات
```mermaid
flowchart TB
A["استلام بضاعة"] --> B["من ح/ المخزون<br/>إلى ح/ بضاعة لم ترد فاتورتها"]
B --> C["فاتورة المورد"]
C --> D["من ح/ بضاعة لم ترد<br/>إلى ح/ الموردين"]
D --> E["بيع"]
E --> F["من ح/ تكلفة المبيعات<br/>إلى ح/ المخزون"]
```
| الشاشة | الطريق |
|---|---|
| الأصناف | `/inventory/items` |
| التصنيفات | `/inventory/categories` |
| المخازن | `/inventory/warehouses` |
| حركات المخزون | `/inventory/movements` |
| النقل بين المخازن | `/inventory/transfers` |
| الجرد | `/inventory/audits` |
| أرصدة افتتاحية | `/inventory/opening-balances` |
| أوامر الشراء | `/inventory/purchase-orders` |
| الموردين | `/inventory/suppliers` |
### الجرد خطوة بخطوة
1. `/inventory/audits`**«جرد جديد»**.
2. اختار المخزن.
3. **«بدء العد»** → ادخل الكميات الفعلية.
4. **«اعتماد»** → الفرق بيتقيّد تسوية مخزون:
- **عجز** → خسارة
- **زيادة** → بالعكس
---
## ٣ — إعادة تبويب الحسابات
## ٢٧ — إعادة تبويب الحسابات
**الشاشة:** `المحاسبة ← إعادة تبويب الحسابات``/accounting/reclassification`
......@@ -336,8 +1172,8 @@ flowchart TB
رصيد وقع في حساب غلط: قيد افتتاحي نزل على **حساب رئيسي**، أو تكلفة اتقيّدت على
الأب بدل الابن، أو حساب اتوقف وفيه رصيد.
**الرصيد ما ينفعش يتعدّل بالإيد.** الدفاتر هي السجل، ورصيد مختلف عن القيود اللي
وراه أسوأ من رصيد غلط.
> **الرصيد ما ينفعش يتعدّل بالإيد.** الدفاتر هي السجل، ورصيد مختلف عن القيود اللي
> وراه أسوأ من رصيد غلط.
```mermaid
flowchart TB
......@@ -350,17 +1186,16 @@ flowchart TB
G --> H["الحساب القديم يبقى صفر<br/>والرصيد في الحساب الصح"]
```
### خطوة بخطوة
### الخطوات
1. افتح `/accounting/reclassification`.
2. الشاشة بتعرض **الأرصدة العالقة** — الحسابات الرئيسية أو الموقوفة اللي فيها رصيد.
3. اضغط **«انقل الرصيد»** جنب الحساب.
4. من قايمة **«إلى حساب»** اختار الوجهة:
- الحسابات **الفرعية بتاعت نفس الحساب** بتظهر الأول
- بعدين حسابات تانية من **نفس النوع**
3. اضغط **«انقل الرصيد»**.
4. من قايمة **«إلى حساب»** اختار الوجهة — الحسابات **الفرعية بتاعت نفس الحساب**
بتظهر الأول، بعدين حسابات تانية من **نفس النوع**.
5. **المبلغ** — سيبه فاضي عشان تنقل الرصيد كله، أو اكتب جزء.
6. النظام بيوريك **القيد بالظبط** قبل ما ترحّل.
7. اكتب **السبب** (إجباري — بيفضل في الدفاتر).
7. اكتب **السبب** (إجباري).
8. اضغط **«رحّل القيد»**.
### اللي النظام بيمنعه
......@@ -369,38 +1204,19 @@ flowchart TB
|---|---|
| الوجهة حساب **رئيسي** | ❌ «اختار حساب فرعي» |
| الوجهة حساب **موقوف** | ❌ مرفوض |
| نقل بين **نوعين مختلفين** (أصل ← إيراد) | ❌ «بيغيّر تصنيف الميزانية» |
| نقل بين **نوعين مختلفين** | ❌ «بيغيّر تصنيف الميزانية» |
| نفس الحساب مصدر ووجهة | ❌ مرفوض |
| مبلغ أكبر من الرصيد | ❌ بيقولك الرصيد الفعلي |
| من غير سبب | ❌ مرفوض |
> **الاتجاه بيتحسب لوحده.** الحساب اللي رصيده مدين بيتقفل بـ**دائن**، والعكس.
> دي أكتر حاجة بتتغلط في القيد اليدوي — لو عكستها بتضاعف الرصيد بدل ما تنقله.
> **الاتجاه بيتحسب لوحده.** الحساب اللي رصيده مدين بيتقفل بـ**دائن**، والعكس. دي
> أكتر حاجة بتتغلط في القيد اليدوي — لو عكستها بتضاعف الرصيد بدل ما تنقله.
> **القيد ده تقدر تعكسه** من شاشة قيود اليومية زي أي قيد تاني.
---
## ٤ — الدورة اليومية
```mermaid
flowchart TB
A["١ الحركات اليومية"] --> B["٢ حركة النقدية اليومية"]
B --> C["٣ فين الفلوس دلوقتي"]
C --> D["٤ سندات الصرف والقبض"]
```
| # | الشاشة | الطريق | بتعمل إيه |
|---|---|---|---|
| ١ | الحركات اليومية | `/accounting/daily-transactions` | كل حركة النهارده |
| ٢ | حركة النقدية اليومية | `/accounting/statements/daily-cash` | الداخل والخارج نقدًا |
| ٣ | فين الفلوس دلوقتي | `/accounting/posting-chains/parked` | فلوس واقفة في حسابات وسيطة |
| ٤ | سندات الصرف والقبض | `/accounting/vouchers` | صرف أو قبض بره الدورة |
> **«فين الفلوس دلوقتي»** أهم شاشة يومية: بتوريك الفلوس اللي اتحصّلت وما وصلتش
> البنك. لو رقم قعد واقف كتير — فيه حاجة غلط.
### القيد اليدوي
## ٢٨ — القيد اليدوي
**الشاشة:** `/accounting/journal-entries`**«قيد جديد»**
......@@ -420,70 +1236,69 @@ flowchart LR
E -->|"أيوه"| F["ترحيل"]
```
**عكس قيد:** افتح القيد ← **«عكس القيد»** ← اكتب السبب. بيتعمل قيد جديد بالعكس،
والقيد الأصلي بيفضل موجود.
---
## ٥ — الدورة الشهرية
# الجزء التامن — الدورات
## ٢٩ — الدورة اليومية
```mermaid
flowchart TB
M1["١ فحص الاستحقاقات"] --> M2["٢ سد الفجوات"]
M2 --> M3["٣ الرواتب"]
M3 --> M4["٤ الإهلاك"]
M4 --> M5["٥ المطابقة البنكية"]
M5 --> M6["٦ ميزان المراجعة"]
M6 --> M7["٧ إقفال الشهر"]
A["١ الحركات اليومية"] --> B["٢ حركة النقدية اليومية"]
B --> C["٣ فين الفلوس دلوقتي"]
C --> D["٤ سندات الصرف والقبض"]
```
### ٥-١ — فحص الاستحقاقات
**الشاشة:** `/accounting/accruals`
1. افتح الشاشة — بتوريك المطالبات المستحقة اللي لسه ما اتقيّدتش.
2. اضغط **«شغّل الفحص»**.
3. النظام بيقيّد: `من ح/ المدينون` / `إلى ح/ الإيراد`.
> بيتشغّل أكتر من مرة براحتك — المطالبة اللي اتقيّدت مرة ما بتتقيّدش تاني.
### ٥-٢ — سد الفجوات
**الشاشة:** `/accounting/gaps`
الحاجات اللي النظام مش عارف يسعّرها لوحده:
1. **تحديد تسعيرة:** اختار البند → اكتب السعر → شوف **هينزل كام** → احفظ.
2. **نقل عقود الأكاديميات:** اختار العقود → حدد شروط التسوية → انقل.
3. **لاعبين مربوطين بعضو مش موجود:** اضغط **«صلّح الربط»** → بيوديك لملف اللاعب.
| # | الشاشة | الطريق | بتعمل إيه |
|---|---|---|---|
| ١ | الحركات اليومية | `/accounting/daily-transactions` | كل حركة النهارده |
| ٢ | حركة النقدية اليومية | `/accounting/statements/daily-cash` | الداخل والخارج نقدًا |
| ٣ | فين الفلوس دلوقتي | `/accounting/posting-chains/parked` | فلوس واقفة في حسابات وسيطة |
| ٤ | سندات الصرف والقبض | `/accounting/vouchers` | صرف أو قبض بره الدورة |
> **مفيش حاجة بتتقيّد من الشاشة دي على طول.** إنت بتسجّل قرار، وماسح
> الاستحقاقات بينفّذه في أول جولة بعد كده.
---
### ٥-٣ إلى ٥-٤ — الرواتب والإهلاك
## ٣٠ — الدورة الشهرية
القسم [٦](#٦--الرواتب) والقسم [٢-٣](#٢-٣--تشغيل-الإهلاك-الشهري).
```mermaid
flowchart TB
M1["١ فحص الاستحقاقات"] --> M2["٢ سد الفجوات"]
M2 --> M3["٣ الرواتب"]
M3 --> M4["٤ الإهلاك"]
M4 --> M5["٥ الإيراد المؤجل"]
M5 --> M6["٦ المطابقة البنكية"]
M6 --> M7["٧ ميزان المراجعة"]
M7 --> M8["٨ إقفال الشهر"]
```
### ٥-٥ — المطابقة البنكية
| # | الخطوة | الشاشة |
|---|---|---|
| ١ | فحص الاستحقاقات | `/accounting/accruals` |
| ٢ | سد الفجوات | `/accounting/gaps` |
| ٣ | الرواتب | `/hr/payroll` |
| ٤ | الإهلاك | `/inventory/assets` |
| ٥ | ترحيل الإيراد المؤجل | `/accounting/revenue-mapping/recognition` |
| ٦ | المطابقة البنكية | `/accounting/bank-reconciliation` |
| ٧ | ميزان المراجعة | `/accounting/reports/trial-balance` |
| ٨ | إقفال الشهر | `/accounting/period-closing` |
**الشاشة:** `/accounting/bank-reconciliation`
### المطابقة البنكية
1. اختار الحساب البنكي والفترة.
2. ادخل رصيد كشف البنك.
3. طابق الحركات.
4. اعتمد المطابقة.
### ٥-٦ — ميزان المراجعة
**لازم** مدين = دائن قبل الإقفال.
### ٥-٧ — إقفال الشهر
**الشاشة:** `/accounting/period-closing`
### إقفال الشهر
1. اختار **السنة المالية** و**الشهر**.
2. اضغط **«إقفال الفترة»**.
3. أي قيد جديد في الشهر ده هيترفض.
**لو محتاج تعدّل بعد الإقفال:**
1. اضغط **«إعادة فتح»**.
2. **اكتب السبب** — إجباري وبيتسجّل.
3. عدّل.
......@@ -491,80 +1306,7 @@ flowchart TB
---
## ٦ — الرواتب
**الشاشة:** `الموارد البشرية ← كشوف الرواتب``/hr/payroll`
```mermaid
flowchart TB
A["١ إنشاء فترة رواتب"] --> B["٢ حساب المسير"]
B --> C["٣ مراجعة"]
C --> D["٤ اعتماد وصرف"]
D --> E["قيد الرواتب تلقائي"]
```
1. اعمل **فترة رواتب** للشهر.
2. اضغط **حساب المسير** — النظام بيحسب الأساسي والبدلات والتأمينات والضريبة.
3. راجع المسير.
4. اضغط **صرف**.
```
من ح/ ٣١٠١٠١ الأجور الأساسية ١٥٬٠٠٠
من ح/ ٣١٠١٠٣ حصة النادي في التأمينات ٢٬٣٦٢٫٥٠
إلى ح/ ١٢٠٦٠٢٠١ البنك — الصافي ٤٬٤٠٢٫٢٠
إلى ح/ ٢٣٠٨٠٦٠١ التأمينات المستحقة ٣٬٧٤٨٫٥٠
إلى ح/ ٢٣٠٨٠٤٠٣ ضريبة كسب العمل ٩٬٢١١٫٨٠
```
> **القيد بيتعمل عند الصرف مش عند الحساب.** المسير المحسوب ومش مصروف = مفيش
> مصروف رواتب في الدفاتر.
>
> **الصرف مرتين بالغلط ما بيقيّدش مرتين** — النظام بيتجاهل التاني.
---
## ٧ — المخزون وتكلفة المبيعات
```mermaid
flowchart TB
A["استلام بضاعة"] --> B["من ح/ المخزون<br/>إلى ح/ فواتير لم ترد"]
B --> C["فاتورة المورد"]
C --> D["من ح/ فواتير لم ترد<br/>إلى ح/ الموردين"]
D --> E["بيع"]
E --> F["من ح/ تكلفة المبيعات<br/>إلى ح/ المخزون"]
```
| الشاشة | الطريق |
|---|---|
| الأصناف | `/inventory/items` |
| حركات المخزون | `/inventory/movements` |
| النقل بين المخازن | `/inventory/transfers` |
| الجرد | `/inventory/audits` |
| أرصدة افتتاحية | `/inventory/opening-balances` |
| أوامر الشراء | `/inventory/purchase-orders` |
**الجرد خطوة بخطوة:**
1. `/inventory/audits`**«جرد جديد»**.
2. اختار المخزن.
3. **«بدء العد»** → ادخل الكميات الفعلية.
4. **«اعتماد»** → الفرق بيتقيّد تسوية مخزون.
---
## ٨ — الضرائب
| الضريبة | الحساب | من فين |
|---|---|---|
| القيمة المضافة | ٢٣٠٨٠٤٠٤ | تلقائي مع المبيعات |
| كسب العمل | ٢٣٠٨٠٤٠٣ | `/hr/payroll` |
| التمغة العادية | ٢٣٠٨١٢٠٢ | تلقائي مع الاستمارات |
| التمغة الإضافية | ٢٣٠٨١٢٠٣ | تلقائي |
| الخصم من المنبع | ٢٣٠٨٠٦ | مع مدفوعات الموردين |
---
## ٩ — الإقفال السنوي
## ٣١ — الإقفال السنوي
```mermaid
flowchart TB
......@@ -587,6 +1329,7 @@ flowchart TB
```
من ح/ ٤١٠٥١٥ إيرادات متنوعة ٤٬٢٨٠٬٩٩٩٫٩٦
من ح/ ٤١٠١٠٢ إضافة عضويات ٢٬٠٧٨٬٨٠٤٫٠٠
من ح/ ٤١٠١٠١ عضويات جديدة ١٬٧٠٧٬١٤٥٫٠٠
... باقي حسابات الإيراد والمصروف ...
إلى ح/ ٢١٠٢٠١ أرباح مرحلة ٧٬١٥٧٬٤٧٦٫٢٦
```
......@@ -594,9 +1337,13 @@ flowchart TB
> **قيد الإقفال هو الوحيد اللي مسموحله** يترحّل في فترة مقفولة وعلى حساب موقوف —
> لأنه بالظبط اللي بيقفلهم.
> بعد الإقفال، حسابات الإيراد والمصروف بتبقى **صفر** والسنة الجديدة بتبدأ من نضيف.
---
## ١٠ — التقارير وفحص سلامة الدفاتر
# الجزء التاسع — التقارير
## ٣٢ — التقارير وفحص السلامة
| التقرير | الطريق |
|---|---|
......@@ -605,48 +1352,55 @@ flowchart TB
| الميزانية العمومية | `/accounting/reports/balance-sheet` |
| ميزانية موحدة | `/accounting/reports/consolidated-balance-sheet` |
| دفتر الأستاذ | `/accounting/reports/general-ledger` |
| المدينون | `/accounting/reports/accounts-receivable` |
| الدائنون | `/accounting/reports/accounts-payable` |
| المدينون (AR) | `/accounting/reports/accounts-receivable` |
| الدائنون (AP) | `/accounting/reports/accounts-payable` |
| كشف حساب عضو | `/accounting/reports/member-statement` |
| الخزينة والمدفوعات | `/accounting/reports/treasury` |
| تحليل الإيرادات | `/accounting/reports/revenue-analysis` |
| كشف حساب عميل | `/accounting/statements/customer` |
| كشف حساب مورد | `/accounting/statements/supplier` |
### فحص شهري سريع
### فحص السلامة — بالترتيب
```mermaid
flowchart TB
A["ميزان المراجعة"] --> B{"مدين = دائن؟"}
B -->|"لأ"| C["وقف واتصل بالدعم"]
B -->|"أيوه"| D["الميزانية العمومية"]
D --> E{"أصول = التزامات + حقوق ملكية؟"}
B -->|"أيوه"| D["قائمة الدخل"]
D --> E{"الإيراد مطابق لميزان المراجعة؟"}
E -->|"لأ"| C
E -->|"أيوه"| F["فين الفلوس دلوقتي"]
F --> G{"فيه فلوس واقفة من زمان؟"}
G -->|"أيوه"| H["راجع التسويات"]
G -->|"لأ"| I["الدفاتر سليمة"]
E -->|"أيوه"| F["الميزانية العمومية"]
F --> G{"أصول = التزامات + حقوق ملكية؟"}
G -->|"لأ"| C
G -->|"أيوه"| H["فين الفلوس دلوقتي"]
H --> I{"فيه فلوس واقفة من زمان؟"}
I -->|"أيوه"| J["راجع التسويات"]
I -->|"لأ"| K["الدفاتر سليمة"]
```
> **التطابق ده محسوب من الدفاتر نفسها مش من جدول مساعد** — فلو فيه فرق كان هيبان هنا.
---
## ١١ — فهرس كل الأدوات والويزردز
# الجزء العاشر — المراجع
## ٣٣ — فهرس كل الأدوات
| # | الأداة | الطريق | بتعمل إيه |
|---|---|---|---|
| ١ | دليل الحسابات | `/accounting/chart-of-accounts` | شجرة الحسابات |
| ١ | دليل الحسابات | `/accounting/chart-of-accounts` | شجرة الحسابات + نقل/تحويل/أرشفة |
| ٢ | السنوات المالية | `/accounting/fiscal-years` | إضافة/إقفال/**أرشفة** السنين |
| ٣ | القيود الافتتاحية | `/accounting/opening-entries` | أرصدة أول المدة |
| ٤ | قيود اليومية | `/accounting/journal-entries` | قيد يدوي + عكس القيود |
| ٥ | أنواع اليومية | `/accounting/journal-types` | تصنيف القيود |
| ٦ | **إعادة تبويب الحسابات** | `/accounting/reclassification` | نقل رصيد من حساب لحساب بقيد |
| ٧ | إقفال الفترات | `/accounting/period-closing` | إقفال شهري وسنوي + إعادة فتح |
| ٨ | توزيع الإيرادات | `/accounting/revenue-mapping` | كل إيراد ينزل على أنهي حساب |
| ٨ | توزيع الإيرادات | `/accounting/revenue-mapping` | معالج توزيع المبالغ |
| ٩ | مركز التوصيل | `/accounting/revenue-mapping/connections` | البنود غير الموصّلة |
| ١٠ | الإيراد المؤجل | `/accounting/revenue-mapping/recognition` | الاعتراف بالإيراد على فترات |
| ١١ | مسار الفلوس | `/accounting/posting-chains` | سلاسل الترحيل والحسابات الوسيطة |
| ١١ | مسار الفلوس | `/accounting/posting-chains` | السلاسل والحسابات الوسيطة |
| ١٢ | فين الفلوس دلوقتي | `/accounting/posting-chains/parked` | فلوس واقفة في الطريق |
| ١٣ | إعادة تبويب الخزن | `/accounting/posting-chains/reclassification` | تصحيح حسابات الخزن |
| ١٣ | تصحيح تبويب الخزن | `/accounting/posting-chains/reclassification` | تصحيح حسابات الخزن |
| ١٤ | الاستحقاقات | `/accounting/accruals` | تقييد اللي لينا قبل التحصيل |
| ١٥ | سد الفجوات | `/accounting/gaps` | تسعيرات + عقود + ربط الأعضاء |
| ١٦ | رسوم الفروع | `/accounting/branch-fees` | توزيع رسوم الفروع |
......@@ -666,7 +1420,7 @@ flowchart TB
| ٣٠ | الحركات اليومية | `/accounting/daily-transactions` | حركة اليوم |
| ٣١ | حركة النقدية اليومية | `/accounting/statements/daily-cash` | نقدية داخلة وخارجة |
| ٣٢ | **فئات الأصول** | `/inventory/asset-categories` | ربط كل فئة بحساباتها التلاتة |
| ٣٣ | الأصول والإهلاك | `/inventory/assets` | تسجيل الأصول + تشغيل الإهلاك + الاستبعاد |
| ٣٣ | الأصول والإهلاك | `/inventory/assets` | تسجيل + إهلاك + استبعاد |
| ٣٤ | عهدة الأصول | `/inventory/assets/custody` | مين مستلم الأصل |
| ٣٥ | الجرد | `/inventory/audits` | جرد المخزون وتسوية الفروق |
| ٣٦ | أرصدة افتتاحية للمخزون | `/inventory/opening-balances` | أرصدة أول المدة للأصناف |
......@@ -676,29 +1430,63 @@ flowchart TB
---
## ١٢ — حاجات محتاجة قرار منك
## ٣٤ — لما حاجة تبوظ
```mermaid
flowchart TD
A{"إيه المشكلة؟"}
A -->|"سلسلة حمرا"| B["اقرا الرسالة — بتقول<br/>إيه الناقص وفين تصلّحه"]
A -->|"رصيد واقف مش بيفضى"| C["فين الفلوس دلوقتي<br/>شوف أقدم مبلغ ومستنده"]
A -->|"الفحص ما قيّدش حاجة"| D{"فيه قاعدة ترحيل للمصدر؟"}
A -->|"إيراد اتعدّ مرتين"| F["شوف هل الإقفال اشتغل<br/>الحالة لازم تبقى settled"]
A -->|"ميزان مش متوازن"| G["وقف — ده مش طبيعي"]
D -->|"لأ"| H["توزيع الإيرادات<br/>اربط المصدر"]
D -->|"أيوه"| I{"فجوة محتاجة تسعيرة؟"}
I -->|"أيوه"| J["سد الفجوات"]
I -->|"لأ"| K["شوف الأخطاء في نتيجة الفحص"]
```
### رسائل شائعة
| الرسالة | معناها | الحل |
|---|---|---|
| «القيد غير متوازن» | مدين ≠ دائن | راجع السطور |
| «لا يمكن الترحيل إلى حساب رئيسي» | الحساب عنوان مش حساب | اختار حساب فرعي |
| «الحساب غير نشط» | الحساب موقوف | فعّله أو اختار غيره |
| «الفترة مغلقة» | الشهر مقفول | افتح الفترة بسبب |
| «السنة المالية مغلقة» | السنة مقفولة | مفيش — السنة خلاص |
| «طرفا القيد نفس الحساب» | خزنتين على نفس الحساب | اعمل حساب لكل خزنة |
| «مفيش أي حساب بنكي معرّف» | `bank_accounts` فاضي | عرّف حساب واربطه بالدليل |
| «خزنة ملهاش حساب» | `gl_account_id` فاضي | اربط الخزنة بحساب |
| «المؤشر مالوش قاعدة مفعّلة» | المصدر مش مربوط | شاشة توزيع المبالغ |
| «اكتب سبب/مرجع التسعيرة» | السبب فاضي | اكتب مرجع القرار |
| «حسابات الإهلاك لازم يتحطوا مع بعض» | فئة نصّها متظبط | حط الاتنين أو سيبهم فاضيين |
| «مجمع الإهلاك أكبر من تكلفة الأصل» | رقم غلط | راجع المدخلات |
---
## ٣٥ — حاجات محتاجة قرار منك
> دي الحاجات اللي **النظام مش هيقررها لوحده** — بس دلوقتي **لكل واحدة فيهم أداة**.
> دي الحاجات اللي **النظام مش هيقررها لوحده** — بس **لكل واحدة فيهم أداة**.
### 🔴 ١ — سنوات مالية متداخلة
فيه سنتين ماليتين بيغطوا نفس الأيام (تقويمية + يوليو–يونيو).
**الأداة:** `/accounting/fiscal-years` — التحذير فوق وجنب كل سنة زرار **«أرشِف»**.
**القرار:** تقويمية ولا يوليو–يونيو؟
### 🔴 ٢ — سجل الأصول الثابتة
الدفاتر فيها أصول ثابتة كبيرة والسجل فاضي → **مفيش إهلاك بيتحسب**.
الدفاتر فيها أصول ثابتة كبيرة والسجل فاضي → **مفيش إهلاك بيتحسب**، يعني الأرباح
والأصول مبالغ فيهم.
**الأداة:** `/inventory/assets`**«تسجيل أصل ثابت»****«رصيد افتتاحي»**.
**للمشروعات اللي خلصت:** اختار **«رسملة مشروع تحت التنفيذ»**.
**للمشروعات اللي خلصت:** **«رسملة مشروع تحت التنفيذ»**.
### 🟠 ٣ — أرصدة على حسابات رئيسية
القيد الافتتاحي نزّل أرصدة على حسابات **رئيسية**، فمينفعش drill-down.
**الأداة:** `/accounting/reclassification` — بتعرضهم كلهم وبتنقلهم بقيد.
**الأداة:** `/accounting/reclassification`.
### 🟠 ٤ — أرقام الحسابات البنكية مؤقتة
......@@ -706,7 +1494,8 @@ flowchart TB
### 🟠 ٥ — مسيرات رواتب محسوبة وما اتصرفتش
القيد بيتعمل عند الصرف. **الأداة:** `/hr/payroll`.
القيد بيتعمل عند الصرف.
**الأداة:** `/hr/payroll`.
### 🟡 ٦ — لاعبين مربوطين بعضو مش موجود
......@@ -718,44 +1507,101 @@ flowchart TB
---
## ملخص — روتين المحاسب
## ٣٥ب — أسئلة سريعة
```mermaid
flowchart TB
subgraph DAY["كل يوم"]
D1["الحركات اليومية"]
D2["فين الفلوس دلوقتي"]
end
subgraph MONTH["كل شهر"]
M1["الاستحقاقات"] --> M2["الرواتب"] --> M3["الإهلاك"]
M3 --> M4["المطابقة البنكية"] --> M5["ميزان المراجعة"] --> M6["إقفال الشهر"]
end
subgraph YEAR["كل سنة"]
Y1["اقفل ١٢ شهر"] --> Y2["إقفال السنة"] --> Y3["أرباح مرحلة"]
end
DAY --> MONTH --> YEAR
```
**س: أقدر أعمل توزيع مختلف لكل فرع؟**
ج: أيوه — من الويزارد نفسه، خانة **الفرع**. الأخص بيغلب العام.
**س: وطريقة الدفع؟ لو دفع شيك بدل كاش؟**
ج: من الوضع المتقدّم (⚙). والشيك بينزل **أوراق قبض** مش البنك لحد ما يتحصّل فعلًا —
ده مظبوط تلقائيًا.
**س: لو غلطت وحفظت على ١١ مصدر؟**
ج: ادخل تاني بنفس النطاق، عدّل، احفظ. هيتعمل **إصدار جديد** ويوقف القديم على
الـ١١ كلهم. القيود اللي نزلت قبل كده تفضل زي ما هي — وده الصح محاسبيًا.
**س: فين أشوف اللي موصّل واللي لأ؟**
ج: **مركز التوصيل**`/accounting/revenue-mapping/connections`. أو من الويزارد
نفسه: نطاق **«كل اللي لسه مش موصّل»**.
**س: إزاي أتأكد إن التوزيع شغال فعلًا؟**
ج: شاشة **فحص الحالة**`/accounting/revenue-mapping/diagnostics`.
**س: النادي فيه كام مصدر إيراد؟**
ج: **٩٧ مصدر** على **١٤ فئة**، بتغطي **٩٩ قاعدة قيد**. كلهم من نفس الويزارد.
**س: قيد اتقيّد غلط — أمسحه؟**
ج: **لأ.** القيد المرحّل ما بيتمسحش. افتحه واضغط **«عكس القيد»** واكتب السبب.
**س: عايز أغيّر رصيد حساب؟**
ج: الرصيد ما بيتعدّلش بالإيد. استخدم **إعادة تبويب الحسابات** أو اعمل قيد تسوية.
**س: الإهلاك ما اشتغلش على أصل؟**
ج: غالبًا فئته ناقصة حسابات الإهلاك. افتح `/inventory/asset-categories` — التحذير
الأحمر فوق بيقولك الفئات دي.
**س: ليه الإقفال السنوي بيرفض؟**
ج: لازم **كل** شهور السنة تتقفل الأول. الرسالة بتقولك الشهور الناقصة بالاسم.
---
## جدول الحسابات المرجعي
## ٣٦ — جدول الحسابات المرجعي
| الغرض | الحساب |
|---|---|
| الصندوق بالجنيه | ١٢٠٦٠١٠١ |
| خزنة الأنشطة الرياضية | ١٢٠٦٠١٠٤ |
| خزنة العضويات | ١٢٠٦٠١٠٥ |
| البنك الأهلي | ١٢٠٦٠٢٠١ |
| أوراق قبض | ١٢٠٣٠٢٠٠٤ |
| شيكات تحت التحصيل | ١٢٠٧ |
| شيكات مرتدة | ١٢٠٣٠١٠٠٥ |
| المدينون — أنشطة | ١٢٠٣٠١٠٠٦ |
| مباني | ١١٠١٠٢٠١ |
| آلات | ١١٠١٠٣٠١ |
| مشروعات تحت التنفيذ | ١١٠٣ |
| مجمع إهلاك — مباني | ٢٣٠١٠١٠١ |
| مجمع إهلاك — آلات | ٢٣٠١٠١٠٢ |
| الموردون | ٢٣٠٦٠١ |
| أرباح مرحلة | ٢١٠٢٠١ |
| إيرادات مدفوعة مقدمًا | ٢٣٠٨١١١٥ |
| مقدم عضوية (التزام) | ٢٣٠٨١١١٩ |
| ضريبة القيمة المضافة | ٢٣٠٨٠٤٠٤ |
| ضريبة كسب العمل | ٢٣٠٨٠٤٠٣ |
| التأمينات المستحقة | ٢٣٠٨٠٦٠١ |
| التمغة العادية | ٢٣٠٨١٢٠٢ |
| التمغة الإضافية | ٢٣٠٨١٢٠٣ |
| الأجور الأساسية | ٣١٠١٠١ |
| حصة النادي في التأمينات | ٣١٠١٠٣ |
| مصروف إهلاك — مباني | ٣١٣٧٠١ |
| مصروف إهلاك — آلات | ٣١٣٧٠٢ |
| تكلفة المبيعات | ٣١٧٢ |
| خسائر بيع أصول | ٣٣٢٠ |
| عضويات جديدة | ٤١٠١٠١ |
| إضافة عضويات | ٤١٠١٠٢ |
| إيرادات متنوعة | ٤١٠٥١٥ |
---
*آخر تحديث: ٢٠٢٦-٠٩-٠٧*
## ملخص — روتين المحاسب
```mermaid
flowchart TB
subgraph DAY["كل يوم"]
D1["الحركات اليومية"]
D2["فين الفلوس دلوقتي"]
end
subgraph MONTH["كل شهر"]
M1["الاستحقاقات"] --> M2["الرواتب"] --> M3["الإهلاك"]
M3 --> M4["الإيراد المؤجل"] --> M5["المطابقة البنكية"]
M5 --> M6["ميزان المراجعة"] --> M7["إقفال الشهر"]
end
subgraph YEAR["كل سنة"]
Y1["اقفل ١٢ شهر"] --> Y2["إقفال السنة"] --> Y3["أرباح مرحلة"]
end
DAY --> MONTH --> YEAR
```
---
*آخر تحديث: ٢٠٢٦-٠٩-٠٧ — الأرقام في الدليل من الدفاتر الحقيقية وقت الكتابة.*
# تعلّم النظام المحاسبي — خطوة بخطوة من الشاشة
> ده مش دليل مرجعي، ده **درس عملي**. كل خطوة بتقول لك: افتح فين، هتشوف إيه،
> دوس على إيه، اكتب إيه، وهيحصل إيه بعدها. لو عمرك ما فتحت النظام قبل كده،
> ابدأ من الدرس ١ وامشي بالترتيب.
>
> **آخر تحديث:** ٥ سبتمبر ٢٠٢٦
>
> للتفاصيل النظرية (ليه بنعمل كده) — راجع `docs/دليل-النظام-المحاسبي-الكامل.md`.
> الملف ده بيقول **إزاي** بس.
---
## المحتويات
**الجزء الأول — قبل ما تلمس أي حاجة**
1. [ازاي تدخل وتلاقي المحاسبة](#١--ازاي-تدخل-وتلاقي-المحاسبة)
2. [خريطة القايمة — إيه كل شاشة](#٢--خريطة-القايمة--إيه-كل-شاشة)
3. [ترتيب الإعداد الصحيح](#٣--ترتيب-الإعداد-الصحيح)
**الجزء الثاني — الإعداد لأول مرة**
4. [اتأكد إن فيه سنة مالية مفتوحة](#٤--اتأكد-إن-فيه-سنة-مالية-مفتوحة)
5. [افهم دليل الحسابات قبل ما تعدّل فيه](#٥--افهم-دليل-الحسابات-قبل-ما-تعدّل-فيه)
6. [اعمل حساب جديد](#٦--اعمل-حساب-جديد)
7. [عدّل حساب موجود — نقل، تحويل، حذف](#٧--عدّل-حساب-موجود--نقل-تحويل-حذف)
8. [عرّف ملف ضريبي](#٨--عرّف-ملف-ضريبي)
9. [القيود الافتتاحية — أرصدة أول المدة](#٩--القيود-الافتتاحية--أرصدة-أول-المدة)
**الجزء الثالث — محرك القيود (أهم جزء)**
10. [اقرا شاشة محرك القيود](#١٠--اقرا-شاشة-محرك-القيود)
11. [أول توزيع بالمعالج — من الأول للآخر](#١١--أول-توزيع-بالمعالج--من-الأول-للآخر)
12. [اعمل حساب جديد وإنت جوّه المعالج](#١٢--اعمل-حساب-جديد-وإنت-جوّه-المعالج)
13. [بند إيراد مؤجل](#١٣--بند-إيراد-مؤجل)
14. [بند تخصيص (صندوق / احتياطي)](#١٤--بند-تخصيص-صندوق--احتياطي)
15. [غيّر اتجاه مصدر من تحصيل لصرف](#١٥--غيّر-اتجاه-مصدر-من-تحصيل-لصرف)
16. [مركز التوصيل — شوف الناقص](#١٦--مركز-التوصيل--شوف-الناقص)
17. [شاشة الفحص — لو حاجة مش شغالة](#١٧--شاشة-الفحص--لو-حاجة-مش-شغالة)
**الجزء الرابع — الشغل اليومي**
18. [حصّل مستحق من شاشة المطالبات](#١٨--حصّل-مستحق-من-شاشة-المطالبات)
19. [عرّف مصدر مطالبة جديد](#١٩--عرّف-مصدر-مطالبة-جديد)
20. [عرّف نوع سند](#٢٠--عرّف-نوع-سند)
21. [اعمل سند صرف](#٢١--اعمل-سند-صرف)
22. [اعتمد وارحّل وألغي سند](#٢٢--اعتمد-وارحّل-وألغي-سند)
23. [قيد يومية يدوي](#٢٣--قيد-يومية-يدوي)
24. [رحّل قيد واعكسه](#٢٤--رحّل-قيد-واعكسه)
25. [الحركات اليومية — إدخال سريع](#٢٥--الحركات-اليومية--إدخال-سريع)
**الجزء الخامس — آخر الشهر**
26. [رحّل الإيراد المؤجل](#٢٦--رحّل-الإيراد-المؤجل)
27. [اقفل الشهر](#٢٧--اقفل-الشهر)
28. [التقارير](#٢٨--التقارير)
**الجزء السادس**
29. [تمرين كامل — من صفر لقيد مرحّل](#٢٩--تمرين-كامل--من-صفر-لقيد-مرحّل)
30. [لو ظهرت لك الرسالة دي…](#٣٠--لو-ظهرت-لك-الرسالة-دي)
---
# الجزء الأول — قبل ما تلمس أي حاجة
## ١ — ازاي تدخل وتلاقي المحاسبة
1. افتح المتصفح وادخل على رابط النظام.
2. سجّل الدخول باسم المستخدم والباسورد بتاعك.
3. على **يمين** الشاشة هتلاقي القايمة الجانبية.
4. دوّر على بند اسمه **«المحاسبة والدفتر العام»** — أيقونته آلة حاسبة.
5. دوس عليه، هتتفتح تحته قايمة فرعية طويلة.
> **مش شايف البند؟** يبقى دورك مالوش صلاحية `accounting.reports.view`.
> كلّم اللي عنده صلاحية الأدوار يزوّدك.
**كل شاشة في الدليل ده ليها رابط مباشر.** لو تحب تختصر، اكتب الرابط في المتصفح
على طول — مثال: `/accounting/revenue-mapping`.
---
## ٢ — خريطة القايمة — إيه كل شاشة
القايمة طويلة. دي الشاشات اللي هتستخدمها فعلًا، مرتّبة حسب أهميتها ليك:
| البند في القايمة | الرابط | بتعمل إيه |
|---|---|---|
| **لوحة التحكم** | `/accounting` | ملخص الشهر + إجراءات سريعة |
| **دليل الحسابات** | `/accounting/chart-of-accounts` | شجرة الحسابات كلها |
| **توزيع الإيرادات** | `/accounting/revenue-mapping` | محرك القيود — قلب النظام |
| **مركز التوصيل** | `/accounting/revenue-mapping/connections` | إيه اللي موصّل وإيه اللي لأ |
| **المطالبات والتحصيل** | `/accounting/billing` | كل مبلغ مستحق في النظام |
| **سندات الصرف والقبض** | `/accounting/vouchers` | صرف وقبض من غير قيود يدوية |
| **الإيراد المؤجل** | `/accounting/revenue-mapping/recognition` | الترحيل الشهري |
| **قيود اليومية** | `/accounting/journal-entries` | كل القيود، يدوي وآلي |
| **السنوات المالية** | `/accounting/fiscal-years` | لازم واحدة مفتوحة |
| **إقفال الفترات** | `/accounting/period-closing` | إقفال شهري |
| **القيود الافتتاحية** | `/accounting/opening-entries` | أرصدة أول المدة |
| **الحركات اليومية** | `/accounting/daily-transactions` | إدخال سريع مجمّع |
| **ميزان المراجعة** | `/accounting/reports/trial-balance` | التقرير اللي بيثبت إن كله متوازن |
وفيه شاشات تانية (مراكز التكلفة، الموازنات، الأوراق التجارية، المطابقة البنكية،
القروض، خطابات الضمان…) — مش محتاجها في أول أسبوع.
---
## ٣ — ترتيب الإعداد الصحيح
**ما تبدأش من محرك القيود.** فيه حاجات لازم تبقى موجودة الأول، وإلا هتاخد أخطاء
مش فاهم سببها.
```mermaid
flowchart TD
A["١ — سنة مالية مفتوحة"] --> B["٢ — دليل حسابات فيه<br/>الحسابات اللي هتحتاجها"]
B --> C["٣ — ملفات ضريبية<br/>(لو عندك ض.ق.م)"]
C --> D["٤ — قيود افتتاحية<br/>(لو ناقل من نظام قديم)"]
D --> E["٥ — توزيع الإيرادات<br/>بالمعالج"]
E --> F["٦ — دلوقتي بس<br/>ابدأ تحصّل وتصرف"]
style A fill:#FEE2E2,stroke:#DC2626
style E fill:#DBEAFE,stroke:#2563EB
style F fill:#D1FAE5,stroke:#059669
```
> **الخطوة ١ دي مش اختيارية.** من غير سنة مالية مفتوحة، **كل** قيد آلي في النظام
> بيفشل في صمت — الدفعة بتتسجّل والقيد ما بيتعملش.
---
# الجزء الثاني — الإعداد لأول مرة
## ٤ — اتأكد إن فيه سنة مالية مفتوحة
**افتح:** القايمة ← المحاسبة ← **السنوات المالية**
(`/accounting/fiscal-years`)
**اللي هتشوفه:** جدول فيه أعمدة: الاسم · تاريخ البداية · تاريخ النهاية · الحالة ·
الحالية.
**اللي تعمله:**
1. دوّر على السنة الحالية (٢٠٢٦).
2. بُص على عمود **الحالة** — لازم تكون **«مفتوحة»** بلون أخضر.
3. بُص على عمود **الحالية** — لازم يكون فيه **«نعم»** خضراء قدام سنة واحدة بس.
**لو السنة مش موجودة:**
1. دوس زرار **«+ سنة مالية جديدة»** فوق على الشمال.
2. املا الاسم بالعربي والإنجليزي.
3. حدّد تاريخ البداية والنهاية.
4. **حفظ**.
> **معلومة مريحة:** النظام بيعمل سنة السنة الحالية لوحده أول ما يشتغل لو مش
> لاقيها. فغالبًا هتلاقيها موجودة خلاص.
---
## ٥ — افهم دليل الحسابات قبل ما تعدّل فيه
**افتح:** القايمة ← المحاسبة ← **دليل الحسابات**
(`/accounting/chart-of-accounts`)
**اللي هتشوفه:** شجرة. كل سطر فيه:
```
110101 الصندوق الرئيسي أصول 1,250,000.00 تعديل إدارة
└─ الكود └─ الاسم └─ النوع └─ الرصيد
```
الحسابات المتفرعة بتبقى مزاحة لجوّه، والحساب **الرئيسي** اسمه بيبقى **بولد** ومن
غير رصيد قصاده.
### الفرق اللي لازم تفهمه دلوقتي
| النوع | شكله | القيد بينزل عليه؟ |
|---|---|---|
| **حساب رئيسي** (Header) | اسمه بولد، مفيش رصيد قصاده | **لأ خالص** |
| **حساب ترحيل** (Detail) | اسمه عادي، وقصاده رصيد | **أيوه** |
> **دي أكتر حاجة بتوقّع الناس.** لو ربطت قيد على حساب رئيسي، القيد **هيفشل**
> والفلوس هتفضل بره الدفاتر. النظام بيرفض قبل الحفظ ويقول لك، بس لازم تفهم ليه.
### جرّب البحث
1. في خانة **«بحث»** فوق، اكتب كلمة زي `عضوي`.
2. الشجرة بتتفلتر وإنت بتكتب — من غير ما تدوس أي زرار.
3. جنب عنوان الشجرة هيظهر لك `(١٢ نتيجة)`.
4. من خانة **«النوع»** جنبها، اختار **إيرادات** عشان تشوف حسابات الإيراد بس.
**الأنواع الخمسة:** أصول · خصوم · حقوق ملكية · إيرادات · مصروفات.
كل نوع ليه لون في الكود على الشمال.
---
## ٦ — اعمل حساب جديد
**افتح:** دليل الحسابات ← زرار **«+ حساب جديد»** (فوق على الشمال)
(`/accounting/chart-of-accounts/create`)
**املا الحقول بالترتيب ده:**
| الحقل | إجباري | اكتب فيه إيه |
|---|:---:|---|
| **كود الحساب** | ✔ | رقم متسلسل تحت الأب. مثال: `410520` |
| **الحساب الأب** | — | اختار الحساب الرئيسي اللي هيتفرّع منه |
| **اسم الحساب (عربي)** | ✔ | الاسم اللي هيظهر في كل الشاشات |
| **اسم الحساب (إنجليزي)** | ✔ | نفس الاسم بالإنجليزي |
| **نوع الحساب** | ✔ | أصول / خصوم / حقوق ملكية / إيرادات / مصروفات |
| **طبيعة الحساب** | ✔ | مدين ولا دائن |
| **رصيد افتتاحي** | — | سيبه `0.00` لو حساب جديد |
| **مركز التكلفة الافتراضي** | — | اختياري |
| **حساب رئيسي (لا يُرحّل إليه)** | — | **سيب المربع ده فاضي** لو الحساب ده هياخد قيود |
**بعدين:** دوس **«حفظ الحساب»**.
### ازاي تعرف الطبيعة (مدين ولا دائن)؟
قاعدة بسيطة تحفظها:
| النوع | الطبيعة |
|---|---|
| أصول | **مدين** |
| مصروفات | **مدين** |
| خصوم | **دائن** |
| حقوق ملكية | **دائن** |
| إيرادات | **دائن** |
---
## ٧ — عدّل حساب موجود — نقل، تحويل، حذف
في دليل الحسابات، قصاد كل حساب فيه لينكين: **تعديل** و**إدارة**.
- **تعديل** → بيفتح فورم زي فورم الإنشاء، بيغيّر الاسم والنوع والوصف.
- **إدارة** → بيفتح نافذة فيها العمليات الخطيرة. دي اللي هنشرحها.
**اعمل كده:**
1. دوس **«إدارة»** قصاد أي حساب.
2. هتفتح نافذة فيها اسم الحساب والكود، وتحتها سطر **«جارٍ الفحص…»**.
3. استنّى ثانية — النظام بيفحص الحساب ده مرتبط بإيه.
**النتيجة هتبقى واحدة من اتنين:**
| اللي هيظهر | معناه |
|---|---|
| صندوق **أخضر**: «حساب فارغ — يمكن حذفه أو نقله بحرية» | مفيش عليه أي حركة |
| صندوق **أصفر**: «مرتبط بـ:» وتحتها قايمة | فيه حاجات معتمدة عليه |
### أ — نقل الحساب تحت أب تاني
1. من القايمة المنسدلة **«نقل الحساب تحت حساب رئيسي آخر»** اختار الأب الجديد.
2. دوس **«نقل»**.
> النقل بيحرّك الحسابات المتفرّعة معاه. وبيترفض لو النوع مختلف (مش هينفع تحط
> حساب إيراد تحت حساب أصول) أو لو هيعمل دايرة.
### ب — حوّله لحساب رئيسي أو العكس
فيه زرار واحد بيقلب:
- لو الحساب **ترحيل** → الزرار هيقول **«حوّله لحساب رئيسي»**
- لو الحساب **رئيسي** → الزرار هيقول **«حوّله لحساب ترحيل»**
> بعد التحويل لرئيسي، الحساب **مش هيقبل قيود**. اتأكد إنه فاضي الأول.
### ج — حذف أو أرشفة
الزرار الأخير بيتغيّر لوحده حسب حالة الحساب:
| حالة الحساب | الزرار | اللي هيحصل |
|---|---|---|
| فاضي تمامًا | **«حذف الحساب»** | بيتشال نهائي |
| عليه حركات مرحّلة | **«أرشفة الحساب»** | بيتأرشف عشان القيود القديمة تفضل مقروءة |
| مرتبط بحاجات تانية | الزرار **مطفي** | لازم تحل الارتباطات الأول |
---
## ٨ — عرّف ملف ضريبي
اعمل الخطوة دي لو عندك ضريبة قيمة مضافة. لو مفيش، عدّيها.
**افتح:** المحاسبة ← توزيع الإيرادات ← زرار **«الملفات الضريبية»**
(`/accounting/revenue-mapping/tax-profiles`)
**اللي هتشوفه:** فورم **«إضافة ملف ضريبي»** فوق، وتحتها جدول بالملفات الموجودة.
**املا الفورم:**
| الحقل | مثال | ملاحظة |
|---|---|---|
| **الكود** | `VAT14` | بالإنجليزي، حروف كبيرة |
| **الاسم** | `ضريبة قيمة مضافة 14%` | اللي هيظهر في القوايم |
| **المعالجة** | خاضعة بالسعر العام | ٥ خيارات، شوف الجدول تحت |
| **النسبة %** | `14` | |
| **علاقة السعر بالضريبة** | السعر شامل الضريبة | **أهم حقل — اقرا تحت** |
| **حساب ضريبة المخرجات** | ابحث واختار | لازم حساب **التزام** |
| **السند القانوني** | `قانون 67 لسنة 2016` | اختياري |
| **ساري من** | تاريخ النهاردة | |
**بعدين:** دوس **«حفظ»**.
### الخمس معالجات
| الاختيار في القايمة | استخدمه لما |
|---|---|
| **خاضعة بالسعر العام** | الحالة العادية — ١٤٪ |
| **سلع وخدمات الجدول** | السلع اللي ليها نسبة خاصة بالجدول |
| **بسعر صفر (الخصم مسموح)** | نسبة صفر، وضريبة المدخلات **تتخصم** |
| **معفاة (لا خصم مدخلات)** | معفاة، وضريبة المدخلات **ما تتخصمش** |
| **خارج نطاق الضريبة** | الحركة أصلًا مش خاضعة |
> الفرق بين **«بسعر صفر»** و**«معفاة»** مش شكلي — المعفاة بتمنعك من خصم ضريبة
> المدخلات. اسأل المحاسب لو مش متأكد.
### الحقل اللي بيغلّط الناس
**«علاقة السعر بالضريبة»** ليه خيارين، والفرق بينهم **بيغيّر المبلغ فعليًا**:
| الاختيار | لو المبلغ ١١٤٠ والنسبة ١٤٪ |
|---|---|
| **السعر شامل الضريبة (تُستخرج منه)** | الإيراد `1,000` والضريبة `140` ✅ |
| **الضريبة تُضاف على السعر** | الإيراد `1,140` والضريبة `159.60` والعميل يدفع `1,299.60` |
لو السعر اللي إنت بتقوله للعميل هو الرقم النهائي — اختار **«شامل»**.
### حقل «حساب ضريبة المخرجات»
1. اكتب **حرفين على الأقل** في الخانة.
2. استنّى لحظة، هتنزل قايمة بالحسابات المطابقة.
3. دوس على الحساب اللي عايزه.
4. الخانة هتتملى بـ `الكود — الاسم`.
> البحث ده مفلتر على حسابات **الالتزام** بس — عشان الضريبة **مش إيراد**، دي فلوس
> بتتحصّل لصالح مصلحة الضرائب.
**لو سبت الحقل ده فاضي**، الملف هيظهر في الجدول بعلامة حمرا **«غير محدد»**.
---
## ٩ — القيود الافتتاحية — أرصدة أول المدة
اعمل الخطوة دي لو إنت ناقل من نظام قديم وعندك أرصدة موجودة.
**افتح:** المحاسبة ← **القيود الافتتاحية** ← زرار **«إنشاء قيد افتتاحي»**
(`/accounting/opening-entries/create`)
**اعمل كده:**
1. من **«السنة المالية»** اختار السنة اللي الأرصدة دي بتاعتها.
2. في الجدول، أول سطر: اختار **الحساب** من القايمة.
3. اكتب الرصيد في خانة **مدين** أو **دائن** — واحدة بس، مش الاتنين.
4. البيان مكتوب فيه `قيد افتتاحي` — سيبه أو غيّره.
5. دوس **«+ سطر»** وكرّر لكل حساب عنده رصيد.
6. بُص على آخر صف في الجدول — فيه **الإجمالي** مدين ودائن، وجنبهم كلمة.
**الكلمة دي هي كل حاجة:**
| اللي هيظهر | اللون | يعني |
|---|---|---|
| **متوازن** | أخضر | تمام، تقدر تحفظ |
| **فرق: 5,000.00** | أحمر | فيه ٥٠٠٠ ناقصة، ما تحفظش |
7. لما يقول **متوازن**، دوس **«حفظ القيد الافتتاحي»**.
---
# الجزء الثالث — محرك القيود (أهم جزء)
## ١٠ — اقرا شاشة محرك القيود
**افتح:** القايمة ← المحاسبة ← **توزيع الإيرادات**
(`/accounting/revenue-mapping`)
الشاشة دي اسمها على الشاشة **«محرك القيود المحاسبية»**. خدها ٣ أجزاء:
### الجزء الأول — الكروت الستة فوق
| الكارت | معناه | تدوس عليه؟ |
|---|---|:---:|
| **مسارات القيد** | إجمالي مصادر الإيراد | — |
| **مربوطة بحسابات** | اللي ليها قاعدة شغالة | — |
| **غير مربوطة** | **مفيش قيد بيتعمل ليها** | ✔ فلتر |
| **حسابات لا تقبل الترحيل** | مربوطة على حساب رئيسي — القيد بيفشل | ✔ فلتر |
| **على حساب مجمَّع** | كلها راميه على حساب واحد | ✔ فلتر |
| **إيراد مؤجل قائم** | الرصيد المؤجل الحالي | — |
الكروت اللي فيها ✔ **قابلة للضغط** — بتفلتر الجدول تحت على المشكلة دي.
> **أول حاجة تعملها:** دوس على **«غير مربوطة»**. الرقم ده لازم يبقى صفر في الآخر.
### الجزء التاني — شريط الفلاتر
فيه: **بحث** (اسم أو كود) · **التصنيف** · **الحالة** · زرار **«تصفية»**.
### الجزء التالت — الجدول
المصادر متجمّعة حسب الفئة (العضويات، الاشتراكات، الأنشطة…). كل صف فيه:
- **مسار القيد** — اسم المصدر وكوده
- **المراحل والتوزيع** — التقسيمة الحالية بالتفصيل، أو بادج أحمر **«غير مربوط»**
- **الحركة الفعلية** — المبلغ اللي المصدر ده حصّله فعلًا وعدد العمليات
- **الأزرار** — زرار لكل مرحلة، وجنبه ⚙ للوضع المتقدّم
### الأزرار الفوقانية
| الزرار | بيعمل إيه |
|---|---|
| **وزّع على مجموعة** | يفتح المعالج — **ده اللي هتستخدمه** |
| **فحص الحالة** | شاشة تشخيص المشاكل |
| **الإيراد المؤجل** | شاشة الترحيل الشهري |
| **الملفات الضريبية** | اللي عملناها في الدرس ٨ |
| **مزامنة المصادر** | يكتشف أنواع الدفعات الجديدة من البيانات |
---
## ١١ — أول توزيع بالمعالج — من الأول للآخر
ده **أهم درس في الملف كله**. هنعمل مثال حقيقي:
> **المطلوب:** كل عضويات النادي، لما العضو يدفع، المبلغ يتقسم:
> ٢٠٪ لصندوق النشاط · ٣٠٪ لإيرادات العضويات · والباقي لصندوق دعم المنشآت.
**افتح:** توزيع الإيرادات ← زرار **«وزّع على مجموعة»**
هتلاقي نفسك في شاشة اسمها **«معالج توزيع المبالغ»**.
---
### الخطوة ١ — «التقسيمة دي هتحكم إيه»
هتشوف **٥ كروت** جنب بعض:
| الكارت | معناه |
|---|---|
| المصدر ده بس | مصدر واحد |
| **كل فئة إيراد** | كل المصادر من نفس النوع ← **اختار ده** |
| مصادر أختارها | تعلّم بإيدك |
| كل اللي لسه مش موصّل | أي مصدر مالوش قاعدة |
| كل مصادر الإيراد | كل حاجة |
**اعمل كده:**
1. دوس على كارت **«كل فئة إيراد»**.
→ الصفحة **هتعمل ريفريش لوحدها**. ده طبيعي، متستغربش.
2. تحت الكروت هتظهر قايمة كل الفئات. كل فئة مكتوب جنبها عدد المصادر وكام غير موصّل.
3. دوس على فئة **«العضويات»**.
→ ريفريش تاني.
4. انزل تحت شوية، هتلاقي خانتين جنب بعض:
**خانة «المرحلة»:**
- افتحها، هتلاقي: استحقاق · تحصيل · صرف · ارتجاع · إعدام / إسقاط · تحويل داخلي
- اللي جنبها **✓** يعني فيه قاعدة شغالة عليها خلاص
- **اختار «تحصيل»** (لأن إحنا بنتكلم عن لحظة الدفع)
**خانة «فئة العضو»:**
- الافتراضي **«كل الأعضاء — قاعدة عامة»**
- لو عايز قاعدة خاصة بالعضو العامل بس، اختاره من هنا
- في المثال ده سيبها على **كل الأعضاء**
5. تحت الخانتين هتلاقي **شريط أزرق** مكتوب فيه:
```
هتتطبّق على 11 قاعدة قيد — حركة تحصيل [اعرض القايمة]
```
6. دوس **«اعرض القايمة»** عشان تتأكد.
→ هتنزل قايمة بكل مصدر ومرحلته. الصفوف **الصفرا** معناها اتخطّى، ومكتوب جنبها ليه.
دوس تاني على نفس الزرار (اللي بقى اسمه **«إخفاء القايمة»**) عشان تقفلها.
> **الشريط ده لونه بيتغيّر.** أزرق = حركة تحصيل. **بنفسجي** = حركة صرف، ومعناه
> إن البنود هتبقى مصروفات وأصول مش إيرادات.
---
### الخطوة ٢ — «المبلغ اللي هنوزّعه»
**خانة «مبلغ مرجعي للحساب»:**
- النظام بيملاها لوحده بمتوسط اللي المصدر ده حصّله فعلًا
- **دي للتوضيح بس** — النسب بتتطبّق على أي مبلغ حقيقي، مش على الرقم ده
- في المثال بتاعنا، اكتب `150000`
**خانة «المعالجة الضريبية»:**
- الافتراضي **«بدون ضريبة»**
- لو الإيراد ده عليه ض.ق.م، اختار الملف اللي عملته في الدرس ٨
- في المثال ده سيبها **بدون ضريبة**
**خانتين اختياريين:** مركز التكلفة · الفرع. سيبهم فاضيين.
---
### الخطوة ٣ — «اقتطع الأجزاء»
دي الخطوة الممتعة. فوق خالص في الكارت هتلاقي:
```
الباقي غير الموزَّع 150,000.00
[████████████████████████████████████████████████]
```
**الرقم ده بيتحدّث مع كل حرف بتكتبه.** خلّي عينك عليه.
**اعمل كده:**
1. دوس زرار **«+ اقتطع جزء»** (فوق على الشمال في نفس الكارت).
→ هينزل لك كارت أبيض اسمه **«الجزء 1»**.
2. جوّه الكارت:
- **«الطريقة»** → سيبها **«نسبة %»**
- **«نسبة % من الصافي»** → اكتب `20`
- **«يروح لحساب»** → اكتب `النشاط` واستنّى، هتنزل قايمة، دوس على
**«صندوق النشاط الرياضي»**
3. اول ما تختار الحساب، تحت الكارت هيظهر سطر رمادي:
```
20% من 150,000.00 · قبله 150,000.00 · بياخد 30,000.00 · يفضل 120,000.00
```
4. **«نوع البند»** → اختار **«إيراد»**
(الأنواع المتاحة: إيراد · إيراد مؤجل · تحصيل لحساب الغير (التزام) ·
خصم من الإيراد · تسوية ذمم مدينة · حقوق ملكية)
5. **«وصف البند في القيد»** → اختياري، سيبه فاضي.
6. دوس **«+ اقتطع جزء»** تاني للجزء التاني:
- نسبة `30`
- حساب: `إيرادات عضويات`
- نوع البند: **إيراد**
7. الرقم الأخضر فوق دلوقتي المفروض يقول **`75,000.00`**، والشريط الملوّن اتقسم
لتلات ألوان.
**كل كارت جزء فيه ٣ أزرار على الشمال:**
| الزرار | بيعمل إيه |
|---|---|
| ▲ | يطلّع الجزء فوق |
| ▼ | ينزّل الجزء تحت |
| **حذف** | يشيل الجزء |
> **الترتيب بيهم؟** بيهم في المبالغ الثابتة بس. النسب دايمًا بتتحسب من **صافي المبلغ**،
> مش من اللي فاضل. يعني ٢٠٪ بعدين ٣٠٪ = ٥٠٪ من المبلغ، مش ٢٠٪ وبعدين ٣٠٪ من الـ٨٠٪.
---
### الخطوة ٤ — «الباقي بعد كل الاقتطاعات يروح لـ»
ده الصندوق **الأخضر** تحت خالص في نفس الكارت. **إجباري.**
**اعمل كده:**
1. في الخانة **«ابحث عن الحساب النهائي بالكود أو الاسم»** اكتب `دعم` واختار
**«صندوق دعم المنشآت»**.
2. القايمة اللي جنبها اختار منها نوع البند — **«إيراد»**.
**ليه إجباري؟** لأن ده البند اللي بيبلع الفرق. لو المبلغ الحقيقي طلع ٠٫٠٣ جنيه
و٢٠٪ منه = ٠٫٠٠٦، النظام بيقرّبها لـ ٠٫٠١، والفرق ده لازم حد ياخده — وإلا القيد
هيبقى مش متوازن.
---
### الخطوة ٥ — راجع القيد على الشمال
على شمال الشاشة فيه كارت ثابت اسمه **«القيد الناتج»**. بيتحدّث لحظيًا.
هتشوف فيه:
**٣ مربعات فوق:**
```
المحصَّل الضريبة الصافي
150,000.00 0.00 150,000.00
```
**جدول القيد:**
| الحساب | مدين | دائن |
|---|---:|---:|
| النقدية / البنك | 150,000.00 | |
| صندوق النشاط الرياضي | | 30,000.00 |
| إيرادات عضويات | | 45,000.00 |
| صندوق دعم المنشآت (الباقي) | | 75,000.00 |
| **الإجمالي** | **150,000.00** | **150,000.00** |
**وتحت الجدول السطر اللي بيهم:**
-**القيد متوازن** — بالأخضر → تمام
-**القيد غير متوازن** — بالأحمر → **ما تحفظش**، راجع الأرقام
وآخر سطر: *«نفس القيد ده هيتطبّق على ١١ قاعدة قيد.»*
---
### الخطوة ٦ — التاريخ والسبب
انزل تحت شوية، فيه كارت فيه خانتين:
| الخانة | اكتب فيها |
|---|---|
| **ساري اعتبارًا من** | التاريخ اللي التوزيع يبدأ منه (الافتراضي النهاردة) |
| **سبب التغيير** | `قرار مجلس الإدارة رقم 45` — مفيد جدًا للمراجع بعدين |
> **القيود المرحّلة قبل التاريخ ده ما بتتغيّرش.** التعديل بيعمل **إصدار جديد**،
> والقديم بيتقفل بتاريخ. عمرك ما هتخسر تاريخ.
---
### الخطوة ٧ — احفظ
1. دوس الزرار الأزرق الكبير: **«حفظ وتفعيل على 11 قاعدة»**.
2. **هتظهر لك رسالة تأكيد:** *«هتطبّق نفس التقسيمة على ١١ قاعدة قيد. تمام؟»*
(الرسالة دي بتظهر بس لو النطاق أكتر من قاعدة واحدة.)
3. دوس **موافق**.
**خلاص.** من دلوقتي، أي عضو يدفع عضوية، القيد هيتعمل بالتقسيمة دي لوحده.
> **الحفظ كله أو ولا حاجة.** لو مصدر واحد من الـ١١ فيه مشكلة، النظام بيرفض الدفعة
> كلها وما بيكتبش ولا صف — عشان الشجرة ما تفضلش نص موصّلة.
**زراير تانية جنبه:**
- **«الوضع المتقدّم»** → نفس الحاجة بس بخيارات أكتر وأعقد
- **«إلغاء»** → رجوع من غير حفظ
---
## ١٢ — اعمل حساب جديد وإنت جوّه المعالج
مش لازم تخرج من المعالج عشان تعمل حساب.
**اعمل كده:**
1. في أي كارت «جزء»، فوق خانة **«يروح لحساب»** على الشمال، فيه لينك صغير
**«+ حساب جديد»**. دوس عليه.
2. هتفتح نافذة اسمها **«حساب جديد»** فيها حقلين:
| الحقل | اعمل إيه |
|---|---|
| **تحت أي حساب رئيسي؟** | اختار من القايمة |
| **اسم الحساب** | اكتب الاسم بالعربي |
3. دوس **«إنشاء وتحديد»**.
**اللي هيحصل:** النظام بيولّد الكود لوحده، بيعمل الحساب، **وبيحطّه في الخانة على طول**.
مش محتاج تدوّر عليه.
> لو فيه مشكلة، هتظهر لك رسالة حمرا جوّه النافذة نفسها.
---
## ١٣ — بند إيراد مؤجل
استخدمه لما تقبض فلوس دلوقتي والخدمة على مدار السنة (اشتراك سنوي مثلًا).
**اعمل كده:**
1. في كارت الجزء، من **«نوع البند»** اختار **«إيراد مؤجل»**.
2. **على طول** هيفتح تحته **مربع أصفر** فيه حقلين:
| الحقل | اكتب فيه |
|---|---|
| **يترحّل على كام شهر** | `12` للاشتراك السنوي |
| **حساب الإيراد اللي يترحّل له** | ابحث واختار حساب الإيراد النهائي |
3. حقل «حساب الإيراد» ده مفلتر على حسابات **الإيراد** بس.
> **مهم:** حساب البند نفسه (خانة «يروح لحساب» فوق) لازم يكون حساب **التزام** —
> زي «إيرادات مدفوعة مقدمًا». والحساب اللي في المربع الأصفر هو حساب **الإيراد**
> اللي الفلوس هتترحّل له شهر بشهر.
**لو نسيت تملا المربع الأصفر:** النظام هيرفض الحفظ ويقول لك
*«الجزء 1: إيراد مؤجل من غير حساب يترحّل له.»*
---
## ١٤ — بند تخصيص (صندوق / احتياطي)
الحالة دي مهمة ومحدش بينتبه لها.
### السؤال اللي لازم تجاوب عليه الأول
> الـ٢٠٪ اللي رايحة لصندوق كذا — **بتشتري خدمة مختلفة**؟ ولا هي مجرد **حجز فلوس**
> النادي كسبها فعلًا؟
| الحالة | اللي تعمله |
|---|---|
| بتشتري خدمة مختلفة (جيم، حمام سباحة، لوكر) | **توزيع إيراد عادي** — سيب الشيك بوكس فاضي |
| مجرد حجز لصندوق / احتياطي | **علّم الشيك بوكس** ← الشرح تحت |
**ليه الفرق مهم؟** لو حجزت فلوس النادي كسبها فعلًا كـ«التزام»، الإيراد المُعلن
هيقلّ — وده غلط محاسبيًا. الصح إن الإيراد يتسجّل **كامل**، وبعدين يتعمل قيد
تخصيص منفصل من الأرباح.
**اعمل كده:**
1. في كارت الجزء، تحت خالص، فيه شيك بوكس:
**☐ الجزء ده تخصيص، مش نوع إيراد تاني**
2. علّم عليه.
3. هيفتح مربع **أزرق فاتح** فيه حقلين:
| الحقل | اكتب فيه |
|---|---|
| **١ — الإيراد يتسجّل في** | حساب الإيراد الحقيقي (مفلتر على الإيرادات) |
| **٢ — التخصيص يتخصم من** | أرباح مرحّلة أو حساب تخصيص |
4. وخانة **«يروح لحساب»** فوق تفضل هي **الصندوق/الاحتياطي** اللي هياخد الفلوس.
**النتيجة:** النظام بيعمل **قيدين** — واحد بالإيراد الكامل، وواحد منفصل بالتخصيص.
> الشيك بوكس ده **ما بيظهرش خالص** على الحركات الصادرة (الصرف) — لأنه مالوش معنى هناك.
>
> وبند **«الباقي»** ما ينفعش يكون تخصيص. لو جرّبت، النظام هيقول لك.
---
## ١٥ — غيّر اتجاه مصدر من تحصيل لصرف
لو لقيت مصدر مصنّف غلط (مسيّر رواتب مثلًا مصنّف «تحصيل» وهو المفروض «صرف»):
**اعمل كده:**
1. في المعالج، في الخطوة ١، اختار كارت **«المصدر ده بس»**.
2. انزل للشريط الملوّن. هتلاقي سطر زيادة:
```
اتجاه الحركة لـ مسيّر رواتب: تحصيل (البنود دائنة) غيّره لـ صرف
```
3. دوس على لينك **«غيّره لـ صرف»**.
4. هتظهر رسالة تأكيد:
*«تغيير الاتجاه بيغيّر أنواع البنود المتاحة. القواعد القديمة والقيود المرحّلة
ما بتتغيّرش. تمام؟»*
5. دوس موافق.
**اللي بيتغيّر بعدها:**
| قبل (تحصيل) | بعد (صرف) |
|---|---|
| البنود **دائنة** | البنود **مدينة** |
| الأنواع: إيراد، مؤجل، تحصيل للغير… | الأنواع: مصروف، مصروف مقدَّم، أصل ثابت، مخزون، تسوية ذمم دائنة، إعدام / إسقاط، دفع لحساب الغير |
| الشريط **أزرق** | الشريط **بنفسجي** |
| النقدية مدينة | النقدية دائنة |
> **قاعدة صارمة:** مينفعش تحط تقسيمة واحدة على نطاق فيه مصادر تحصيل ومصادر صرف
> مع بعض. النظام هيرفض ويقول لك *«قسّمهم على دفعتين»*.
---
## ١٦ — مركز التوصيل — شوف الناقص
**افتح:** القايمة ← المحاسبة ← **مركز التوصيل**
(`/accounting/revenue-mapping/connections`)
الشاشة دي بتجاوب على سؤال واحد: **إيه اللي لسه مش داخل الدفاتر، وليه؟**
**٤ كروت فوق:**
| الكارت | معناه |
|---|---|
| **موصولة بالدفاتر** | تمام |
| **تُوصَّل من الشاشة** | **إنت تقدر تصلّحها دلوقتي** |
| **تحتاج تعديل برمجي** | محتاجة مبرمج، مش إنت |
| **المبلغ الموجود خارج الدفاتر** | إجمالي الفلوس اللي لسه مش مسجّلة |
**تحتهم ٣ جداول:**
### جدول ١ — «تُوصَّل الآن من الشاشة — بدون مبرمج» (خلفية صفرا)
دي اللي تشتغل عليها. كل صف فيه المبلغ الحالي وعدد السجلات وزرار **«اربط الحسابات»**.
**اعمل كده:** دوس **«اربط الحسابات»** → هتروح على شاشة التوزيع لهذا المصدر.
### جدول ٢ — «تحتاج تعديل برمجي أولًا» (خلفية حمرا)
**مفيش زرار ربط هنا عن قصد.** الوحدة دي بتسجّل الفلوس في جدولها الخاص ومش بترسل
أي حدث للمحاسبة. لو ربطت حسابات هنا **مش هيحصل حاجة**. العمود الأخير بيقول لك
إيه الناقص بالظبط عشان تبعته للمبرمج.
### جدول ٣ — «موصولة — ويمكن إعادة توزيعها في أي وقت» (خلفية خضرا)
التوزيع الحالي ظاهر قدام كل مسار. الزرار بيتغيّر حسب الحالة:
| لو المسار | الزرار |
|---|---|
| على حساب واحد | **«قسّم على حسابات»** |
| متقسّم خلاص | **«عدّل التوزيع»** |
وجنبه زرار **«متقدّم»**.
---
## ١٧ — شاشة الفحص — لو حاجة مش شغالة
**افتح:** توزيع الإيرادات ← زرار **«فحص الحالة»**
(`/accounting/revenue-mapping/diagnostics`)
الشاشة دي بتقول لك كل حاجة مكسورة، من واقع البيانات الحقيقية. **٥ أقسام**:
| القسم | يعني إيه | اعمل إيه |
|---|---|---|
| **حسابات مُعرَّفة في الكود ولا تقبل الترحيل** | حسابات رئيسية القيد بيفشل عليها | شوف عمود «الحالة الآن» — لو **«مُعالَج عبر المحرك»** يبقى تمام |
| **قواعد توزيع تشير إلى حسابات لا تقبل الترحيل** | قاعدة رابطة على حساب رئيسي | دوس **«تصحيح»** |
| **ما هو مُرحَّل فعليًا إلى «٤١٠٥١٥ — إيرادات متنوعه»** | كل حاجة مرمية في حساب واحد | قسّمها من المعالج |
| **أنواع المدفوعات في البيانات الفعلية وحالة ربطها** | كل نوع دفعة وحالته | دوس **«فتح»** على اللي حالته **«بدون قاعدة توزيع»** |
| **آخر حالات فشل الترحيل** | القيود اللي فشلت والرسالة | اقرا الرسالة وصلّح السبب |
> القسم الأخير ده **أول مكان تبص فيه** لو حد قال لك «الدفعة اتسجّلت والقيد مش موجود».
---
# الجزء الرابع — الشغل اليومي
## ١٨ — حصّل مستحق من شاشة المطالبات
**افتح:** القايمة ← المحاسبة ← **المطالبات والتحصيل**
(`/accounting/billing`)
**اللي هتشوفه:** كروت فوق، كل كارت مصدر مطالبة ومكتوب فيه إجمالي المستحق وعدد
المستحقات.
**اعمل كده:**
1. دوس على الكارت اللي عايزه (مثلًا **«فواتير الإيجار»**).
→ الكارت هيتحدد بإطار أزرق، وتحت هيظهر جدول المستحقات.
2. فوق الجدول شريط أصفر بيقول: **`12` مستحق بإجمالي `84,500.00`**.
3. الجدول فيه: المرجع · الدافع · التاريخ · المبلغ · زرار **«تحصيل»**.
4. لو الليستة طويلة، استخدم خانة **«بحث»** فوق على الشمال.
5. دوس **«تحصيل»** قصاد السطر اللي عايزه.
→ هتفتح نافذة اسمها **«تحصيل مستحق»** وتحت العنوان المرجع واسم الدافع.
**املا النافذة:**
| الحقل | ملاحظة |
|---|---|
| **المبلغ** | بيتملا لوحده. **لو المصدر مش بيسمح بالتحصيل الجزئي، الخانة هتبقى مقفولة** — والسطر تحتها بيقول لك |
| **طريقة الدفع** | نقدي · فيزا · شيك · تحويل بنكي |
| **الخزنة** | اختار الخزنة اللي الفلوس هتدخلها |
**الحقول بتتغيّر حسب طريقة الدفع:**
- اخترت **شيك** → هتظهر: رقم الشيك · البنك · تاريخ استحقاق الشيك
- اخترت **فيزا** أو **تحويل بنكي** → هتظهر: مرجع العملية
6. دوس **«تأكيد التحصيل»**.
**اللي بيحصل:** التحصيل بيمرّ على نفس مسار دفعة العضو — إيصال، وعهدة خزنة،
**وقيد في الدفاتر بالتقسيمة اللي عملتها في الدرس ١١**.
---
## ١٩ — عرّف مصدر مطالبة جديد
**دي حاجة ما بتحتاجش مبرمج.** بتقول للنظام: الجدول ده فيه مبالغ مستحقة.
**افتح:** المطالبات ← زرار **«إعداد مصادر المطالبة»** ← زرار **«+ مصدر جديد»**
(`/accounting/billing/sources/0/edit`)
### كارت «التعريف»
| الحقل | مثال |
|---|---|
| **الاسم بالعربي** | `فواتير الإيجار` |
| **الكود** | `rental_invoice` |
| **وصف مختصر** | اختياري |
### كارت «من أين يقرأ المبالغ»
1. من **«الجدول»** اختار الجدول.
**بتظهر بس الجداول اللي فيها عمود رقمي عشري.** وجنب كل جدول عدد صفوفه التقريبي.
2. أول ما تختار الجدول، كل قوايم الأعمدة تحته **بتتملى لوحدها** بأعمدة الجدول ده.
| العمود | إجباري | يعني |
|---|:---:|---|
| **عمود المعرّف** | ✔ | غالبًا `id` |
| **عمود المبلغ** | ✔ | المبلغ المستحق |
| **عمود التاريخ** | — | |
| **عمود الرقم المرجعي** | — | |
| **عمود العضو** | — | |
| **عمود اللاعب** | — | |
| **عمود اسم الدافع** | — | |
> **لازم تحدد عمود واحد على الأقل من التلاتة الأخيرة** (عضو أو لاعب أو اسم)،
> وإلا مش هينفع نعرف المطالبة على مين.
### كارت «شروط لسه مستحق»
1. دوس **«+ شرط»**.
2. اختار العمود، والعامل، والقيمة.
**العوامل المتاحة:** يساوي · لا يساوي · أكبر من · أصغر من · أكبر أو يساوي ·
أصغر أو يساوي · ضمن (افصل بفاصلة) · ليس ضمن · فارغ · غير فارغ.
> الصفوف اللي اتحصّلت من النظام بتتشال **تلقائيًا** حتى لو ما حددتش شرط.
### كارت «بعد التحصيل» (اختياري بالكامل)
لو الجدول عنده أعمدة تتحدّث بعد السداد، حددها هنا:
عمود رقم الدفعة · عمود رقم الإيصال · عمود الحالة · عمود تاريخ السداد ·
قيمة الحالة بعد السداد (مثلًا `paid`).
> لو الجدول مفيهوش الأعمدة دي، التحصيل بيتسجّل عندنا وبيشتغل عادي.
**احفظ.** كل الأعمدة بتتأكد من وجودها فعليًا في قاعدة البيانات قبل الحفظ —
مش هينحفظ إعداد غلط.
**في شاشة المصادر بعدها،** لو المصدر إعداده اتكسر (حد شال عمود مثلًا)، هيظهر
بادج أحمر **«غير صالح»** ومكتوب تحته الخطأ.
---
## ٢٠ — عرّف نوع سند
اعمل نوع لكل مصروف متكرر — دعاية، صيانة، كهرباء — عشان الصرف يبقى بضغطة.
**افتح:** السندات ← زرار **«أنواع السندات»**
(`/accounting/vouchers/types`)
**املا فورم «إضافة نوع»:**
| الحقل | مثال |
|---|---|
| **الكود** | `PV_ADS` |
| **الاسم** | `سند صرف دعاية` |
| **الاتجاه** | **صرف — فلوس خرجت** / قبض — فلوس دخلت |
| **بادئة الترقيم** | `PV` |
| **يحتاج اعتماد؟** | لا / نعم |
| **ترتيب العرض** | `100` |
دوس **«حفظ النوع»**.
في الجدول تحت هتشوف كل نوع وعدد السندات اللي اتعملت بيه وحالته.
---
## ٢١ — اعمل سند صرف
**افتح:** القايمة ← المحاسبة ← **سندات الصرف والقبض** ← زرار **«+ سند جديد»**
(`/accounting/vouchers/create`)
> الفكرة هنا: **اكتب الصرف بلغة عادية والنظام يبني القيد المزدوج لوحده.**
### كارت «بيانات السند»
1. **نوع السند** ✔ — اختار من القايمة. كل نوع مكتوب جنبه **صرف** أو **قبض**.
2. **التاريخ** ✔ — الافتراضي النهاردة.
3. **البيان** ✔ — مثال: `مصاريف دعاية — حملة الموسم الصيفي`.
4. **المستفيد** — اسم الجهة أو الشخص.
5. **رقم المرجع** — رقم الفاتورة أو العقد.
> **لاحظ:** أول ما تختار النوع، **عناوين الكروت تحت بتتغيّر**:
> - صرف → «من أي حساب خرجت الفلوس» و«الفلوس دي راحت على إيه» و«المستفيد (المدفوع له)»
> - قبض → «في أي حساب دخلت الفلوس» و«الفلوس دي جاية من إيه» و«الدافع»
### كارت «من أي حساب خرجت الفلوس»
1. **الحساب** ✔ — اكتب `صندوق` أو `بنك` واختار من القايمة.
(لو النوع ليه حساب افتراضي، الخانة بتتملى لوحدها بـ «الحساب الافتراضي للنوع».)
2. **طريقة الدفع** — نقدي / تحويل بنكي / شيك / فيزا.
لو اخترت **شيك**، هتظهر ٣ خانات: رقم الشيك · البنك · تاريخ الشيك.
### كارت «الفلوس دي راحت على إيه»
1. دوس **«+ بند»** (لو مفيش بند ظاهر — بند واحد بيظهر لوحده).
2. **الحساب** — اكتب `دعاية` أو `صيانة` واختار.
3. **المبلغ**.
4. **بيان البند** · **مركز التكلفة** · **ضريبة** — كلهم اختياريين.
5. كرّر لكل بند.
تحت الكارت سطر **«الإجمالي»** بيتحدّث لوحده.
### على الشمال — «القيد الناتج»
بيتحدّث لحظيًا. البنود مدينة والحساب اللي الفلوس خرجت منه دائن، وتحت الجدول
**✓ القيد متوازن**.
> *«الضريبة على أي بند بتتفصل تلقائيًا عند الترحيل.»*
### الحفظ — عندك اختيارين
| الزرار | اللي بيحصل |
|---|---|
| **«حفظ وترحيل»** | يعمل السند **ويرحّله للدفاتر على طول** |
| **«حفظ كمسودة»** | يعمل السند بس، الترحيل بعدين |
---
## ٢٢ — اعتمد وارحّل وألغي سند
**افتح:** السندات (`/accounting/vouchers`) ودوس **«عرض»** قصاد أي سند.
**اللي هتشوفه:** فوق اسم النوع ورقم السند، والبادج بالحالة، والمبلغ بخط كبير.
**الحالات الأربعة:**
| الحالة | اللون |
|---|---|
| **مسودة** | رمادي |
| **بانتظار الاعتماد** | أصفر |
| **مُرحَّل** | أخضر |
| **ملغي** | أحمر |
**الأزرار تحت الصفحة بتتغيّر حسب الحالة:**
| الحالة الحالية | الأزرار المتاحة |
|---|---|
| بانتظار الاعتماد | **«اعتماد السند»** |
| مسودة | **«ترحيل إلى الدفاتر»** |
| أي حالة غير ملغي | **«إلغاء السند»** |
| مُرحَّل | **«إلغاء السند وعكس قيده»** |
**لما تدوس إلغاء:** هتظهر لك نافذة صغيرة تسألك **«سبب الإلغاء؟»**. لازم تكتب سبب،
لو سبتها فاضية العملية بتتلغي.
**لما السند يبقى مُرحَّل**، هيظهر كارت زيادة اسمه **«القيد المُرحَّل»** فيه القيد
كامل بالمدين والدائن، وزرار **«فتح القيد»** يوديك على القيد نفسه.
---
## ٢٣ — قيد يومية يدوي
استخدمه للحالات اللي مفيش لها شاشة — التسويات والأخطاء.
**افتح:** القايمة ← المحاسبة ← **قيود اليومية** ← زرار **«+ قيد جديد»**
(`/accounting/journal-entries/create`)
**اعمل كده:**
1. **تاريخ القيد** ✔ — الافتراضي النهاردة.
2. **رقم المرجع** — اختياري.
3. **الفرع** — اختياري.
4. **الوصف (عربي)** ✔.
5. **مركز التكلفة** — اختياري.
**في جدول «سطور القيد»** (بيبدأ بسطرين):
| العمود | اعمل إيه |
|---|---|
| **الحساب** | اختار من القايمة |
| **البيان** | اختياري |
| **مدين** | اكتب المبلغ، أو سيبه `0.00` |
| **دائن** | اكتب المبلغ، أو سيبه `0.00` |
| **X** | يشيل السطر (مش بيشيل لو فاضل سطرين بس) |
6. محتاج سطور زيادة؟ دوس **«+ سطر جديد»**.
7. **بُص على آخر صفين في الجدول:**
```
الإجمالي 50,000.00 50,000.00
```
ولو فيه فرق، هيظهر **صف أحمر** زيادة:
```
الفرق 5,000.00
```
8. اكتب **ملاحظات** لو حابب.
9. دوس **«حفظ كمسودة»**.
> **لاحظ:** الزرار مكتوب عليه **«حفظ كمسودة»** — القيد **مش بيتحفظ مرحّل**.
> الترحيل خطوة منفصلة، ودي حماية مقصودة.
---
## ٢٤ — رحّل قيد واعكسه
**افتح:** قيود اليومية ← دوس **«عرض»** قصاد القيد.
**اللي هتشوفه:** رقم القيد والوصف، والحالة في دايرة ملوّنة، وتحتها ٤ خانات:
التاريخ · المصدر · أنشأه · رحّله.
**الحالات:**
| الحالة | اللون | يعني |
|---|---|---|
| **مسودة** | برتقالي | لسه مش في الدفاتر |
| **مرحّل** | أخضر | في الدفاتر ومؤثّر على الأرصدة |
| **معكوس** | أحمر | القيد ده اتعمل له عكس (بيظهر مشطوب في القايمة) |
### ترحيل قيد
1. لازم القيد يكون **مسودة**.
2. دوس **«ترحيل القيد»**.
3. رسالة تأكيد: *«هل تريد ترحيل هذا القيد؟»* → موافق.
### عكس قيد
1. لازم القيد يكون **مرحّل** ومش عكس لقيد تاني.
2. دوس **«عكس القيد»** (الزرار الأحمر).
3. رسالة تأكيد: *«هل تريد عكس هذا القيد؟ سيتم إنشاء قيد عكسي.»* → موافق.
> **العكس ما بيمسحش القيد الأصلي.** بيعمل قيد جديد بالعكس، والاتنين بيفضلوا
> موجودين. ده الصح محاسبيًا — عمرك ما تمسح قيد مرحّل.
### فلترة القيود
في شاشة القايمة (`/accounting/journal-entries`) فيه شريط فلاتر:
**بحث** (رقم القيد، الوصف، كود الحساب، اسم الحساب) · **الحالة** · **المصدر**
(المدفوعات / المبيعات / الموارد البشرية / المحاسبة) · **من تاريخ** · **إلى تاريخ**.
> عمود **المصدر** في الجدول بيقول لك القيد ده جه منين: مدفوعات · مبيعات · رواتب ·
> غرامات · أقساط · محاسبة · **يدوي**.
---
## ٢٥ — الحركات اليومية — إدخال سريع
الشاشة دي للكميات — لما يكون عندك ٥٠ حركة تدخّلها بسرعة وتجمّعهم في قيد واحد.
**افتح:** القايمة ← المحاسبة ← **الحركات اليومية**
(`/accounting/daily-transactions`)
**اعمل كده:**
1. فوق فيه **«التاريخ»** — غيّره لو عايز يوم تاني. الصفحة بتعمل ريفريش لوحدها.
2. في كارت **«إدخال سريع»**:
| الحقل | إجباري |
|---|:---:|
| **الحساب** | ✔ |
| **المبلغ** | ✔ |
| **الاتجاه** (مدين / دائن) | ✔ |
| **نوع اليومية** | — |
| **مركز التكلفة** | — |
| **رقم المستند** | — |
| **بيان** | — |
3. دوس **«تسجيل»**. كرّر لكل حركة.
4. في كارت **«حركات اليوم»** تحت، كل حركة حالتها **«معلّق»** (برتقالي).
5. لما تخلّص كل حركات اليوم، دوس الزرار الأزرق فوق:
**«تجميع في قيد (23 حركة)»**
6. رسالة تأكيد: *«سيتم تجميع كل الحركات غير المجمعة في قيد يومية واحد. متابعة؟»*
→ موافق.
7. الحالات بتتغيّر لـ **«مجمّع»** (أخضر).
> بُص على صف **الإجمالي** تحت الجدول — المدين والدائن لازم يتساووا **قبل** ما
> تدوس التجميع.
---
# الجزء الخامس — آخر الشهر
## ٢٦ — رحّل الإيراد المؤجل
اعمل الخطوة دي **كل شهر**، قبل ما تقفل الشهر.
**افتح:** القايمة ← المحاسبة ← **الإيراد المؤجل**
(`/accounting/revenue-mapping/recognition`)
**اللي هتشوفه:** كارتين فوق:
```
إجمالي الإيراد المؤجل القائم يستحق حتى 2026-09
1,240,000.00 103,333.00
31 استحقاق في 4 قيد
```
**اعمل كده:**
1. في خانة **«الفترة»** حدّد الشهر (شكلها `2026-09`).
2. دوس **«معاينة»** — الأرقام فوق بتتحدّث.
3. لو الرقم أكبر من صفر، هيظهر زرار أزرق مكتوب عليه:
**«ترحيل تحقق الإيراد حتى 2026-09 — 103,333.00»**
4. دوس عليه.
5. رسالة تأكيد: *«سيتم ترحيل قيود تحقق الإيراد حتى فترة 2026-09. متابعة؟»* → موافق.
**تحت الصفحة جدولين:**
- **«جدول الاستحقاق القائم»** — كل فترة والمبلغ المستحق فيها
- **«آخر ما تم تحققه»** — اللي اترحّل خلاص، وجنب كل سطر زرار **«عرض»** يوديك للقيد
> **لو الجدول فاضي** ومكتوب *«لا يوجد إيراد مؤجل»*، يبقى مفيش أي بند من نوع
> «إيراد مؤجل» متفعّل. ارجع للدرس ١٣.
---
## ٢٧ — اقفل الشهر
**افتح:** القايمة ← المحاسبة ← **إقفال الفترات**
(`/accounting/period-closing`)
**اعمل كده:**
1. من قايمة **«السنة المالية»** فوق اختار السنة. الصفحة بتعمل ريفريش لوحدها.
2. هيظهر جدول بـ١٢ شهر، كل صف فيه: الفترة · من · إلى · عدد القيود · إجمالي الحركة ·
الحالة · تاريخ الإغلاق.
**الحالات:**
| الحالة | اللون |
|---|---|
| **مفتوحة** | أخضر |
| **مغلقة** | رمادي |
| **أعيد فتحها** | أصفر |
| **قيد الإغلاق** | أزرق |
3. قصاد الشهر المفتوح، دوس زرار **«إغلاق»**.
4. رسالة تأكيد: *«إغلاق الفترة 2026-09؟»* → موافق.
**بعد الإقفال:** أي قيد بتاريخ داخل الشهر ده **هيترفض**. ودي مش مشكلة — دي الفايدة.
### إعادة فتح شهر مغلق
1. قصاد الشهر المغلق، دوس زرار **«إعادة فتح»** (البرتقالي).
2. هتظهر نافذة تكتب فيها **«سبب إعادة الفتح:»**.
3. **لازم تكتب سبب** — لو سبتها فاضية العملية بتتلغي.
> السبب ده بيتسجّل. لو المراجع سأل «الشهر ده اتفتح تاني ليه؟» — الإجابة موجودة.
---
## ٢٨ — التقارير
كلهم في نفس القايمة تحت. مفيش تعقيد — تفتح، تحدّد الفترة، تشوف.
| التقرير | الرابط | امتى تستخدمه |
|---|---|---|
| **ميزان المراجعة** | `/accounting/reports/trial-balance` | **أول تقرير تفتحه** — بيثبت إن المدين = الدائن. وفيه **تصدير CSV** |
| **دفتر الأستاذ** | `/accounting/reports/general-ledger` | كل حركات حساب معيّن بالترتيب |
| **قائمة الدخل** | `/accounting/reports/income-statement` | الإيرادات ناقص المصروفات |
| **الميزانية العمومية** | `/accounting/reports/balance-sheet` | الأصول والخصوم وحقوق الملكية. **فيه تصدير CSV** |
| **ميزانية موحدة** | `/accounting/reports/consolidated-balance-sheet` | كل الفروع مع بعض |
| **المدينون (AR)** | `/accounting/reports/accounts-receivable` | اللي علينا نحصّله |
| **الدائنون (AP)** | `/accounting/reports/accounts-payable` | اللي إحنا مدينين بيه |
| **كشف حساب عضو** | `/accounting/reports/member-statement` | كل حركة على عضو واحد |
| **الخزينة والمدفوعات** | `/accounting/reports/treasury` | حركة الكاش |
| **تحليل الإيرادات** | `/accounting/reports/revenue-analysis` | الإيراد حسب النوع |
**وكشوف تانية:** كشف حساب عميل · كشف حساب مورد · حركة النقدية اليومية.
> **الروتين الشهري باختصار:**
> رحّل الإيراد المؤجل ← افتح ميزان المراجعة واتأكد إنه متوازن ← اقفل الشهر.
---
# الجزء السادس
## ٢٩ — تمرين كامل — من صفر لقيد مرحّل
جرّب ده بنفسك، هياخد منك ١٥ دقيقة ويثبّت كل حاجة:
```mermaid
flowchart TD
A["١ — /accounting/fiscal-years<br/>اتأكد إن ٢٠٢٦ مفتوحة"]
B["٢ — /accounting/chart-of-accounts<br/>ابحث عن حساب إيراد وشوف كوده"]
C["٣ — /accounting/revenue-mapping<br/>دوس على كارت «غير مربوطة»"]
D["٤ — اختار أي مصدر<br/>ودوس «ربط الحسابات»"]
E["٥ — في المعالج:<br/>نطاق «المصدر ده بس» + مرحلة «تحصيل»"]
F["٦ — مبلغ مرجعي 1000<br/>من غير ضريبة"]
G["٧ — اقتطع جزء 30%<br/>لأي حساب إيراد"]
H["٨ — حدد حساب الباقي"]
I["٩ — راجع «القيد الناتج»<br/>لازم ✓ متوازن"]
J["١٠ — احفظ"]
K["١١ — /accounting/journal-entries<br/>شوف القيد لما حد يدفع"]
A --> B --> C --> D --> E --> F --> G --> H --> I --> J --> K
style A fill:#FEE2E2,stroke:#DC2626
style I fill:#FEF3C7,stroke:#B45309
style K fill:#D1FAE5,stroke:#059669
```
**اختبار إنك فهمت:** لو غيّرت المبلغ المرجعي من `1000` لـ `3` وضغطت خارج الخانة،
لازم تشوف الـ٣٠٪ بقت `0.90` والباقي `2.10` — والقيد فاضل **متوازن**.
---
## ٣٠ — لو ظهرت لك الرسالة دي…
### في المعالج (بتظهر في صندوق أحمر قبل الحفظ)
| الرسالة | اعمل إيه |
|---|---|
| «لازم تحدد الحساب اللي يروح له الباقي.» | انزل للصندوق الأخضر واختار حساب |
| «الجزء 1: فيه قيمة من غير حساب.» | كتبت نسبة وما اخترتش حساب |
| «الجزء 1: إيراد مؤجل من غير حساب يترحّل له.» | املا المربع الأصفر |
| «الجزء 1: تخصيص من غير حساب الإيراد اللي هيتسجّل فيه.» | املا المربع الأزرق |
| «الجزء 1: بند الباقي ما ينفعش يكون تخصيص.» | شيل علامة التخصيص من بند الباقي |
| «مجموع النسب 120٪ — أكبر من 100٪.» | قلّل النسب |
| «النطاق اللي اخترته مفيهوش أي قاعدة قيد.» | غيّر الفئة أو المرحلة |
### من السيرفر بعد الحفظ
| الرسالة | معناها |
|---|---|
| «الحساب 210101 نوعه liability ومش مناسب لبند إيراد» | نوع البند مش متوافق مع نوع الحساب |
| «حساب رئيسي، والقيد ما بينزلش عليه» | اختار حساب فرعي، أو حوّله لحساب ترحيل من شاشة دليل الحسابات |
| «موقوف أو مؤرشف» | الحساب مش نشط |
| «واقع في فترة مقفولة (2026-09)» | غيّر تاريخ السريان، أو افتح الفترة |
| «اتخطّى — المرحلة دي ما تنطبقش على الأجور» | طبيعي، المرحلة مش من مراحل الفئة دي |
| «قسّمهم على دفعتين» | خلطت مصادر تحصيل مع مصادر صرف في نطاق واحد |
### في المعاينة على الشمال
| اللي هتشوفه | معناه |
|---|---|
| **✗ القيد غير متوازن** | فيه فرق. غالبًا حساب الباقي مش محدد |
| «اقتطاع أكبر من المتاح — تم تخفيضه.» | مبلغ ثابت أكبر من الموجود |
| «الحساب النهائي — لسه ما اتحددش» بالأحمر | حدد حساب الباقي |
### في شاشات تانية
| المكان | الرسالة | اعمل إيه |
|---|---|---|
| المطالبات | «تعذّر قراءة هذا المصدر» | دوس على لينك **«تصحيح الإعداد»** جنبها |
| مصادر المطالبة | بادج **«غير صالح»** | جدول أو عمود اتغيّر — عدّل المصدر |
| دليل الحسابات | «الحذف غير متاح — عالج الارتباطات أعلاه أولًا» | اقرا القايمة الصفرا فوق في نفس النافذة |
| الفحص | أي سطر في «آخر حالات فشل الترحيل» | اقرا الرسالة — بتقول السبب بالظبط |
---
## ملخص للطباعة — الروتين اليومي
```mermaid
flowchart RL
A["الصبح<br/>/accounting/billing<br/>حصّل المستحقات"]
B["على مدار اليوم<br/>/accounting/vouchers<br/>سندات الصرف"]
C["آخر اليوم<br/>/accounting/journal-entries<br/>اتأكد القيود اتعملت"]
D["آخر الشهر<br/>رحّل المؤجل ← ميزان المراجعة ← اقفل"]
A --> B --> C --> D
style A fill:#DBEAFE,stroke:#2563EB
style D fill:#D1FAE5,stroke:#059669
```
**٥ حاجات لو افتكرتهم مش هتغلط:**
1. **من غير سنة مالية مفتوحة، مفيش قيد بيتعمل** — وما بيقول لكش.
2. **الحساب الرئيسي ما بياخدش قيود.** الاسم البولد في الشجرة = ممنوع.
3. **بند «الباقي» إجباري** في أي تقسيمة — هو اللي بيخلّي القيد متوازن.
4. **راجع «القيد الناتج» على الشمال قبل ما تحفظ.** لازم ✓ خضرا.
5. **فلوس مش بتاعتنا = «تحصيل لحساب الغير»**، مش إيراد.
---
*ملفات ذات صلة:*
- `docs/دليل-النظام-المحاسبي-الكامل.md` — الشرح النظري وليه بنعمل كده
- `docs/معالج-توزيع-المبالغ.md` — تفاصيل المعالج
- `docs/كيف-أوصّل-أي-إيراد.md` — سيناريوهات لكل نوع إيراد
# دليل المحاسبة — تشغيل واستعراض
> اقرأ **القسم ٦ (ما لا تفتحه)** قبل أي شيء آخر. الباقي يشرح ما تفتحه وكيف.
---
## ١ — الفكرة في ثلاث جمل
كل قيد محاسبي آلي في النظام صار يمر من **محرك واحد** بدل أكواد ثابتة في البرنامج.
المحرك ده بيحدد: المبلغ ده يروح لأنهي حساب، ولو بيتقسم يتقسم إزاي، وعليه ضريبة ولا لأ،
وهل هو إيراد النهارده ولا إيراد مؤجل على شهور.
اللي كان قبل كده مكتوب في الكود وميتغيرش إلا بمبرمج — بقى شاشة يفتحها المحاسب ويغيّره بنفسه،
والتغيير بيتسجّل بإصدار وتاريخ سريان ومين عمله.
---
## ٢ — المصطلحات (لازم تكون مالكها قبل ما تدخل)
الجدول ده هو اللي هيخليك تتكلم بلغتهم. اقراه مرتين.
| المصطلح | معناه بالظبط | ليه يهمّهم |
|---|---|---|
| **دليل الحسابات** (Chart of Accounts) | شجرة كل الحسابات في النادي، كل حساب له كود رقمي | ده «القاموس» — أي رقم لازم يقع في حساب منه |
| **حساب رئيسي** (Header) | حساب تجميعي له حسابات فرعية تحته | **ممنوع الترحيل عليه.** لو الكود بيحاول، القيد بيفشل |
| **حساب فرعي/جزئي** (Leaf) | آخر مستوى — عليه بيتم الترحيل فعليًا | الحسابات دي بس اللي بتقبل قيود |
| **قيد يومية** (Journal Entry) | سطرين على الأقل: مدين ودائن، ومجموعهم متساوي | وحدة التسجيل المحاسبي |
| **مدين / دائن** (Debit / Credit) | جانبا القيد | الأصول والمصروفات تزيد بالمدين؛ الالتزامات والإيرادات تزيد بالدائن |
| **الترحيل** (Posting) | تثبيت القيد في الدفاتر | بعد الترحيل ما بيتعدلش — بيتعكس بقيد مضاد |
| **العكس** (Reversal) | قيد مضاد يلغي أثر قيد مرحّل | ده الأسلوب القانوني للتصحيح، مش الحذف |
| **الاستحقاق** (Accrual) | تسجيل الحق أو الالتزام وقت نشأته مش وقت الفلوس | أساس المحاسبة السليمة |
| **المدينون** (AR) | فلوس مستحقة **لنا** على الأعضاء | أصل في الميزانية |
| **الدائنون** (AP) | فلوس مستحقة **علينا** للموردين | التزام في الميزانية |
| **الإيراد المؤجل** (Deferred Revenue) | فلوس اتحصّلت عن خدمة لسه ما اتقدمتش | **التزام** مش إيراد — معيار ٤٨ |
| **ميزان المراجعة** (Trial Balance) | كل الحسابات بأرصدتها، والمدين لازم يساوي الدائن | أول حاجة أي محاسب بيفتحها |
| **قائمة الدخل** (Income Statement) | إيرادات ناقص مصروفات عن فترة | بتقيس الأداء |
| **الميزانية العمومية** (Balance Sheet) | أصول = التزامات + حقوق ملكية في تاريخ معيّن | بتقيس المركز المالي |
| **مركز التكلفة** (Cost Center) | تصنيف إضافي (فرع، نشاط) للتحليل | بيسمح بتقارير مقسّمة |
| **السنة المالية** (Fiscal Year) | فترة الحسابات | القيد لازم يقع في سنة مفتوحة |
| **إقفال الفترة** (Period Closing) | قفل شهر أو سنة ضد أي قيود جديدة | بيحمي الأرقام المعتمدة |
### مصطلحات المحرك الجديد
| المصطلح | معناه |
|---|---|
| **مسار قيد** (Stream) | أي حاجة في النظام بتحرّك فلوس — رسوم استمارة، اشتراك، فاتورة مورد، مرتب |
| **مرحلة** (Stage) | فين في عمر المستند بيتم القيد — استحقاق / تحصيل / صرف / ارتجاع / إعدام / تحويل |
| **اتجاه** (Direction) | وارد (فلوس داخلة) أو صادر (فلوس خارجة) — بيحدد أي جانب مدين وأي جانب دائن |
| **قاعدة توزيع** (Rule) | إعدادات مرحلة واحدة: الحسابات + النسب + الضريبة |
| **بند** (Line) | جزء من التوزيع: نسبة، أو مبلغ ثابت، أو «الباقي» |
| **الباقي** (Remainder) | البند اللي بياخد المتبقي بعد باقي البنود — **إجباري وواحد فقط**، وهو اللي بيستوعب كسور القرش |
| **مؤشر حساب** (Account Pointer) | قاعدة من سطر واحد بتحدد حساب فقط — للقيود اللي مبالغها محسوبة من مكان تاني (المرتبات، الخزنة) |
| **ملف ضريبي** (Tax Profile) | نسبة + شامل/مضاف + المعالجة (خاضعة، جدول، معفاة، خارج النطاق) |
### الفرق اللي هيسألوك عليه
**«شامل الضريبة» ولا «الضريبة تُضاف»؟** ده مش تفصيلة، ده رقم مختلف:
- مبلغ **١١٤٠ شامل ١٤٪** → الإيراد **١٠٠٠** والضريبة **١٤٠**
- لو حسبت ١٤٪ من ١١٤٠ غلطًا → **١٥٩٫٦٠** — فرق ١٩٫٦٠ في كل عملية
**«معفاة» ولا «بسعر صفر»؟** الاتنين ضريبتهم صفر، لكن **المعفاة تمنع خصم ضريبة المدخلات**
والـ«صفر» بتسمح بيه. الفرق بيبان في الإقرار الضريبي مش في الفاتورة.
---
## ٣ — الشاشات: أين كل شيء
```
المحاسبة والدفتر العام
├── دليل الحسابات /accounting/chart-of-accounts
├── توزيع الإيرادات ★ /accounting/revenue-mapping ← المحرك
├── الإيراد المؤجل ★ /accounting/revenue-mapping/recognition
├── قيود اليومية /accounting/journal-entries
├── ميزان المراجعة /accounting/reports/trial-balance
├── قائمة الدخل /accounting/reports/income-statement
├── الميزانية العمومية /accounting/reports/balance-sheet
├── دفتر الأستاذ /accounting/reports/general-ledger
└── السنوات المالية /accounting/fiscal-years
```
★ = جديد
داخل شاشة توزيع الإيرادات فيه ٤ صفحات:
| الصفحة | الرابط | وظيفتها |
|---|---|---|
| القائمة | `/accounting/revenue-mapping` | كل مسارات القيد وحالتها |
| **فحص الحالة** | `.../diagnostics` | كل اللي مكسور أو مجمّع أو غير مربوط |
| الملفات الضريبية | `.../tax-profiles` | نسب الضريبة ومعالجاتها |
| الإيراد المؤجل | `.../recognition` | جدول الاستحقاق وزر الترحيل الشهري |
---
## ٤ — خطوة بخطوة
### أ. تغيير الحساب اللي يروح له إيراد
الموقف: محاسب بيقولك «رسوم التنازل دي ما بتخشش في إيرادات متنوعة».
1. `المحاسبة ← توزيع الإيرادات`
2. اكتب «تنازل» في خانة البحث
3. اضغط زر المرحلة اللي عايز تعدّلها (غالبًا **تحصيل** أو **استحقاق**)
4. في **بنود التوزيع**، البند الموجود طريقته «الباقي» — غيّر حسابه: امسح الخانة واكتب اسم أو كود الحساب الجديد واختر من القائمة
5. بص على **محاكاة القيد** على اليسار — بيتحدث وانت بتكتب. اتأكد إن مكتوب **✓ القيد متوازن**
6. اكتب سبب التغيير في خانة الملاحظة
7. **حفظ كإصدار جديد وتفعيله**
> التاريخ في «ساري اعتبارًا من» بيحدد من إمتى القاعدة الجديدة تشتغل. **القيود المرحّلة قبله ما بتتغيرش.**
### ب. تقسيم مبلغ على أكثر من حساب
الموقف: «المبلغ ده جزء منه قيمة عضوية وجزء رسوم إدارية».
1. نفس الشاشة، اضغط **+ إضافة بند**
2. اختار طريقة التوزيع:
- **نسبة %** — مثلاً ٣٠٪
- **مبلغ ثابت** — مثلاً ٥ جنيه
- **الباقي** — المتبقي (موجود بالفعل، لا تضف تاني)
3. اختار الحساب
4. رتّب البنود بأسهم ▲▼ لو حبيت
5. راقب المحاكاة — لازم تفضل متوازنة
**ترتيب التطبيق ثابت ومعلن على الشاشة:**
> الضريبة تُفصل أولًا ← المبالغ الثابتة ← النسب ← «الباقي»
مثال: ١١٤٠ بضريبة ١٤٪ شاملة + طابع ٥ ثابتة + عمولة ١٠٪:
| الحساب | مدين | دائن |
|---|---:|---:|
| الصندوق | ١٬١٤٠٫٠٠ | |
| ضريبة القيمة المضافة `23080404` | | ١٤٠٫٠٠ |
| الدمغة `23080405` | | ٥٫٠٠ |
| عمولة نشاط (١٠٪ من ٩٩٥) | | ٩٩٫٥٠ |
| الإيراد — الباقي | | ٨٩٥٫٥٠ |
| **الإجمالي** | **١٬١٤٠٫٠٠** | **١٬١٤٠٫٠٠** |
لاحظ إن الـ١٠٪ اتحسبت على **٩٩٥** (الصافي بعد الخمسة الثابتة) مش على ١٠٠٠ — وده معروض في خانة «النسبة تُحسب على».
### ج. إضافة ضريبة على خدمة
1. في نفس شاشة المسار، خانة **المعالجة الضريبية**
2. اختار الملف المناسب:
- `ضريبة قيمة مضافة 14% (شاملة السعر)` — السعر المعلن شامل الضريبة
- `ضريبة قيمة مضافة 14% (تُضاف على السعر)` — الضريبة فوق السعر
- `معفاة` / `خارج نطاق الضريبة`
3. المحاكاة هتفصل الضريبة فورًا وتوريك الإيراد الصافي
4. حفظ
### د. إيراد مؤجل (الاشتراك السنوي)
1. في بنود التوزيع، غيّر **نوع البند** لـ **إيراد مؤجل (يُستحق على فترة)**
2. هيظهر صندوق بنفسجي: حدد **عدد الشهور** (١٢) و**حساب الإيراد الذي يُرحَّل إليه**
3. حساب البند نفسه يبقى `230809 ايرادات مدفوعة مقدما`
4. حفظ
بعد كده كل شهر:
1. `المحاسبة ← الإيراد المؤجل`
2. اختار الفترة → **معاينة**
3. **ترحيل تحقق الإيراد** — بيعمل قيد واحد مجمّع
### هـ. قراءة «فحص الحالة»
`/accounting/revenue-mapping/diagnostics` — أربع جداول:
1. **حسابات مُعرَّفة في الكود ولا تقبل الترحيل** — العمود الأخير بيقول «مُعالَج عبر المحرك» يعني اتصلح
2. **قواعد تشير إلى حسابات لا تقبل الترحيل** — لازم تكون فاضية
3. **ما هو مُرحَّل إلى «إيرادات متنوعه»** — الحساب المجمّع وتفصيله
4. **أنواع المدفوعات وحالة ربطها** — كل نوع في البيانات الفعلية
---
## ٥ — سيناريو الاجتماع (بالترتيب)
**١. ابدأ بميزان المراجعة.** `تقارير ← ميزان المراجعة`. أول حاجة أي محاسب بيدوّر عليها:
هل المدين يساوي الدائن. آه، بالقرش.
**٢. اتنقل لقائمة الدخل.** وقول إن إجمالي الإيراد فيها **مطابق تمامًا** لإجمالي الإيراد في
ميزان المراجعة. ده اسمه تطابق (reconciliation) وهو اللي بيدّي ثقة.
**٣. افتح الميزانية العمومية.** أصول = التزامات + حقوق ملكية.
**٤. ادخل على دليل الحسابات** وورّي إن الأرصدة المعروضة مطابقة لميزان المراجعة.
**٥. دلوقتي المحرك.** `توزيع الإيرادات`. ورّي القائمة والمراحل الستة.
**٦. اعمل تعديل حي.** خد أي مسار، غيّر نسبة، ورّيهم المحاكاة بتتحدث. **ما تحفظش**
إلا لو اتفقتم على التغيير.
**٧. اقفل بـ«فحص الحالة».** ده أقوى جزء — لأنه بيعرض المشاكل بدل ما يخبّيها.
قول الجملة دي بالنص:
> «الشاشة دي بتقولنا إحنا مش عارفين إيه. الحاجات اللي عليها علامة حمراء دي معروفة ومترصدة،
> والخطة إن نقفلها واحدة واحدة.»
---
## ٦ — ما لا تفتحه ولا تدّعيه
**دي أهم صفحة في الملف.** الادعاء اللي يتكشف أسوأ ألف مرة من نقص معروف.
انظر القسم ٧ للجدول التفصيلي بالأرقام. القاعدة العامة:
-**اعرض**: التقارير المالية، دليل الحسابات، قيود اليومية، محرك التوزيع، فحص الحالة،
دورة الأعضاء (استمارة، عضوية، إضافة، اشتراك سنوي، أقساط)
- ⚠️ **اذكرها كخطة، لا تفتحها**: الحجوزات، الأكاديميات، الإيجارات، المخزون والمشتريات، اللوكرات
-**لا تدّعي إطلاقًا**: إن كل إيراد في النادي بيوصل للدفاتر آليًا. **مش صحيح.**
### الجملة اللي تقولها لو سألوك السؤال الصعب
> «الدورة المحاسبية نفسها — الدفاتر والقيود والتقارير — دي مبنية وشغالة ومتطابقة.
> اللي لسه بيتوصّل هو بعض مسارات التحصيل التشغيلية اللي بتتسجل في وحداتها ولسه ما بتغذّيش
> الدفاتر آليًا. عندي كشف بيها بالاسم والمبلغ، وده أول بند في خطة الشهر الجاي.»
الجملة دي صح، ومحترمة، وبتخليك تبان إنك عارف نظامك — بدل ما تتمسك في ادعاء.
---
---
## ٧ — الحالة التفصيلية (الرقم الحقيقي)
تم مسح **٦٧ وحدة** في النظام ورصد **٢٦٧ مسار** بيحرّك فلوس، وكل خلل مرصود اتراجع
مراجعة عكسية (مدقق تاني وظيفته يثبت إن الخلل غلط) قبل ما يتسجّل هنا.
### الرقم اللي لازم تعرفه قبل ما تدخل
| | العدد |
|---|---:|
| مسارات بتحرّك فلوس | **٢٦٧** |
| **بتوصل للدفاتر فعليًا** | **٧١** |
| ما بتوصلش أو غير مؤكدة | ١٩٦ |
| منها أخطاء حرجة | ٤٣ |
| أخطاء مرتفعة الأهمية | ٧٣ |
| مسارات سليمة تمامًا | ٥٣ |
**لو حد سألك «كل الإيرادات بتدخل الدفاتر؟» الإجابة الصادقة: لأ — ٧١ من ٢٦٧.**
وده مش تناقض مع إن الدفاتر سليمة. الدفاتر سليمة ومتوازنة ومتطابقة —
اللي ناقص إن مسارات تشغيلية كتير بتسجّل الفلوس في جداولها الخاصة وما بتبلّغش المحاسبة.
### ✅ شغال ومتحقق منه — اعرضه بثقة
| المسار | الدليل |
|---|---|
| ميزان المراجعة | متوازن بالقرش: ١٧٣٬٨٧١٬٥٦٨٫٩٧ الطرفين |
| قائمة الدخل | إيرادها مطابق تمامًا لميزان المراجعة |
| الميزانية العمومية | متوازنة: ١٢٤٬٠٥١٬٨٩٥٫٢٩ الطرفين |
| دفتر الأستاذ | افتتاحي + حركات + ختامي صحيحة |
| دليل الحسابات | أرصدته مطابقة للدفاتر (بعد إعادة البناء) |
| دفعة عضو مباشرة | ١٬١١٦ دفعة، ٩٣٥ إيصال |
| إلغاء دفعة (٢٤ ساعة) | يعكس القيد صح |
| طابور الخزنة + الوردية | يعمل مع العهدة |
| الإيداع البنكي وتسوية الخزنة | يعملان |
| محرك التوزيع | ٥٨ مسار × ٦ مراحل |
| الإيراد المؤجل | ١٢ شهر تجمع للمبلغ بالظبط |
### ⚠️ اذكرها كخطة — لا تفتح الشاشة
المبالغ دي **مرصودة في النظام لكنها لم تصل الدفاتر**:
| المسار | المبلغ (ج.م) | المشكلة |
|---|---:|---|
| حجز الملاعب بالساعة | **١٤٤٬٠٦٤** | ٢٢٩ حجز مسعّر بدون أي مطالبة أو تحصيل |
| الفصل الوجوبي عند ٢٥ سنة | **١١٧٬٠٠٠** | الكرون بيغيّر الحالة ويتخطى الرسوم |
| اشتراكات النشاط الشهرية | **١٠١٬٢٢٥** | ١٣٣ اشتراك متأخر بلا مسار تحصيل |
| عقود الأكاديميات (تأمين + إيجار) | **١٠٠٬٠٠٠** | التأمين يُعلَّم «مدفوع» من قائمة منسدلة |
| العضوية الرياضية | ٧٥٬٠٠٠ | تُصنَّف في «إيرادات متنوعه» |
| الإدخال بأثر رجعي | ٣٧٬٥٠٠ | دفعات لم تُبلَّغ للمحاسبة |
| استلام أمر شراء | ٥٠٬٠٠٠ | مخزون دخل بلا قيد مقابل |
| باقي البنود | متفرقة | الحجوزات، اللوكرات، البطولات، الإيجارات |
> **ملاحظة**: مبلغ الـ١٤٤٬٠٦٤ ظاهر ٣ مرات في التقرير لأنه نفس المال من ٣ مداخل مختلفة
> (شاشة الحجوزات، شاشة المرآة، كود التحصيل غير الموصول). هو مبلغ واحد مش تلاتة.
### 🔧 اتصلح الليلة — تقدر تتكلم عنه
| الخلل | الأثر قبل الإصلاح |
|---|---|
| ازدواج الرصيد الافتتاحي | ميزان المراجعة والميزانية كانوا **بيضاعفوا** ٢٤ حساب |
| الميزانية لا تتوازن | فرق ٣٩٬١٠١٬٧٥٨٫٧١ |
| أرصدة دليل الحسابات | ٢٤ حساب مخالف للدفاتر (الأرباح المرحلة كانت صفر بدل ٧٣ مليون) |
| المرتبات لا تُرحَّل إطلاقًا | ٣ أعمدة غير موجودة — القيد كان بيموت صامت |
| دورة المشتريات كلها | «الموردون» حساب رئيسي — لا تقبل الترحيل |
| تكلفة البضاعة المباعة | عمود غير موجود — لم تُرحَّل ولا مرة |
| ضريبة الإيجارات | حساب رئيسي — لم تُرحَّل |
| دخول ضيوف الكارنيه | اسم الحدث مختلف بين المُرسِل والمستمع |
| ٥ شاشات تعطي خطأ ٥٠٠ | عمود `booker_id` غير موجود في `reservations` |
| الكرون متوقف بالكامل | جدول `cron_job_log` غير موجود — ٤٣ مهمة لم تعمل قط |
| سنتان ماليتان «حالية» | تعارض في تحديد السنة |
### ❌ لا تفتح هذه الشاشات
- لوحات الملاعب وحمام السباحة والمرافق (اتصلحت الليلة لكن ما اتجربتش بحمل حقيقي)
- شاشات الأكاديميات المالية والتسويات
- شاشات الإيجارات
- شاشات المبيعات والمشتريات
- إعدادات المهام المجدولة
### 🔒 الكرون — نقطة تحتاج قرار
٤٣ مهمة مجدولة لم تعمل ولا مرة (جدول السجل مش موجود). أنشأت الجدول **لكن تركت
المفتاح مقفول** عمدًا، لأن تشغيلهم فجأة قبل الاجتماع كان هيسقط مديونيات ويوقّع
غرامات ويغيّر حالة عضويات من غير حد واقف. يتفعّل من الإعدادات (`cron_enabled`)
وقت ما تكون قاعد تتفرج على أول دورة.
---
## ٨ — أسئلة صعبة وإجاباتها
**«الأرقام دي مضمونة؟»**
> ميزان المراجعة متوازن بالقرش، وإيراد قائمة الدخل مطابق لميزان المراجعة،
> والميزانية متوازنة. التطابق ده محسوب من الدفاتر نفسها مش من جدول مساعد.
**«لو غيّرنا حساب دلوقتي، القديم هيتغير؟»**
> لأ. كل حفظ إصدار جديد بتاريخ سريان. المُرحَّل قبله ثابت، ومسجّل مين غيّر وإمتى وليه.
**«الأربع مليون في إيرادات متنوعه دي إيه؟»**
> حساب مجمّع. عندي تفصيلها بند بند في شاشة فحص الحالة. الربط الصح بيتظبط من الشاشة،
> والأرقام التاريخية محتاجة قيد تسوية بعد ما تعتمدوا التوزيع الصحيح — وده قراركم مش قراري.
**«الحجوزات والأكاديميات فين من الدفاتر؟»**
> لسه مش موصولة. مرصودة عندي بالاسم والمبلغ، وده أول بند في الخطة.
> ما حبتش أوصلها الليلة من غير مراجعتكم لأن التوصيل هيبدأ يولّد قيود على أرقام قديمة.
**«مين ضامن إن مفيش حاجة تانية مكسورة؟»**
> عملت مسح شامل: ٢٦٧ مسار في ٦٧ وحدة، وكل خلل مراجَع مرتين. الكشف موجود ومفتوح،
> والشاشة نفسها بتعرض المشاكل بدل ما تخبّيها.
**«ليه ما تعملوش إقفال سنة؟»**
> لأن الإقفال لم يُنفَّذ ولا مرة — حسابات الإيراد والمصروف شايلة أرصدة من ٢٠١٨.
> الميزانية بتتعامل مع ده صح دلوقتي، لكن الإقفال السنوي محتاج قراركم على تاريخه.
---
## ٩ — قبل ما تدخل بربع ساعة
1. افتح `المحاسبة ← ميزان المراجعة` واتأكد إنه متوازن
2. افتح `الميزانية العمومية` واتأكد إنها متوازنة
3. افتح `توزيع الإيرادات` وشوف القائمة بتفتح
4. افتح `فحص الحالة` واقرا الجداول الأربعة
5. **اقرا القسم ٦ تاني**
الحاجة الوحيدة اللي ممكن تبوّظ الاجتماع هي ادعاء يتكشف.
النقص المعروف والمرصود بيدّي ثقة، مش العكس.
# الدليل الكامل — نظام توزيع الإيرادات والقيود المحاسبية
> دليل بالعربي المصري، من الأول للآخر. اللي إحنا عملناه، وإزاي يشتغل، وإزاي تستخدمه،
> وإيه اللي لسه ناقص.
>
> **آخر تحديث:** ٥ سبتمبر ٢٠٢٦ · **الإصدار المنشور:** build 363
---
## المحتويات
1. [الفكرة في صفحة واحدة](#١--الفكرة-في-صفحة-واحدة)
2. [الصورة الكبيرة — القيد بيتولد إزاي](#٢--الصورة-الكبيرة--القيد-بيتولد-إزاي)
3. [المصطلحات](#٣--المصطلحات)
4. [مصادر الإيراد والفئات](#٤--مصادر-الإيراد-والفئات)
5. [المراحل — امتى بيتعمل القيد](#٥--المراحل--امتى-بيتعمل-القيد)
6. [اتجاه الحركة](#٦--اتجاه-الحركة--تحصيل-ولا-صرف)
7. [النطاق — أهم فكرة جديدة](#٧--النطاق-scope--أهم-فكرة-جديدة)
8. [الويزارد خطوة بخطوة](#٨--الويزارد-خطوة-بخطوة)
9. [حسابات التوزيع — الأرقام بتتحسب إزاي](#٩--حسابات-التوزيع--الأرقام-بتتحسب-إزاي)
10. [أنواع البنود](#١٠--أنواع-البنود)
11. [الضريبة](#١١--الضريبة)
12. [الإيراد المؤجل](#١٢--الإيراد-المؤجل)
13. [القاعدة بتتحدد إزاي وقت الدفع](#١٣--القاعدة-بتتحدد-إزاي-وقت-الدفع)
14. [الإصدارات — ليه القيود القديمة ما بتتغيّرش](#١٤--الإصدارات--ليه-القيود-القديمة-ما-بتتغيّرش)
15. [كل الحالات اللي السيستم بيرفضها](#١٥--كل-الحالات-اللي-السيستم-بيرفضها)
16. [سيناريوهات كاملة](#١٦--سيناريوهات-كاملة)
17. [اللي لقيناه غلط في الداتا](#١٧--اللي-لقيناه-غلط-في-الداتا)
18. [خريطة الشاشات](#١٨--خريطة-الشاشات)
---
## ١ — الفكرة في صفحة واحدة
قبل كده: أي فلوس بتدخل النادي كانت بتروح لحساب واحد ثابت، والتغيير محتاج مبرمج.
دلوقتي: إنت بتكتب **التقسيمة** مرة واحدة من شاشة، وبتقول هي تحكم إيه — مصدر واحد،
ولا فئة كاملة، ولا السيستم كله — والسيستم بيولّد القيد المحاسبي لوحده كل مرة حد يدفع.
```mermaid
flowchart RL
A["العضو بيدفع<br/>١٥٠٬٠٠٠ جنيه"] --> B["السيستم بيدوّر<br/>على القاعدة المناسبة"]
B --> C["يفصل الضريبة"]
C --> D["يقسّم الصافي<br/>حسب التقسيمة"]
D --> E["يكتب القيد<br/>في الأستاذ العام"]
style A fill:#DBEAFE,stroke:#2563EB
style E fill:#D1FAE5,stroke:#059669
```
**اللي إنت بتتحكم فيه:** الخطوة ٢ (مين القاعدة) و٣ (الضريبة) و٤ (التقسيمة).
كله من شاشة. من غير كود خالص.
---
## ٢ — الصورة الكبيرة — القيد بيتولد إزاي
```mermaid
flowchart TD
subgraph SRC["مصدر الحركة"]
P1["دفعة في الكاشير"]
P2["فاتورة إيجار محل"]
P3["اشتراك أكاديمية"]
P4["مسيّر رواتب"]
end
SRC --> EV["EventBus<br/>الحدث بيتبعت"]
EV --> ENG["RevenuePostingEngine<br/>محرك القيود"]
ENG --> R1{"فيه قاعدة<br/>للمصدر ده؟"}
R1 -->|لأ| STOP["ما يتعملش قيد<br/>ويظهر في شاشة التشخيص"]
R1 -->|أيوه| RES["يختار الإصدار الساري<br/>حسب التاريخ والنطاق"]
RES --> TAX["RevenueAllocator<br/>يفصل الضريبة"]
TAX --> ALLOC["يوزّع الصافي على البنود"]
ALLOC --> BAL{"القيد متوازن؟"}
BAL -->|لأ| ERR["يرفض ويسجّل الخطأ"]
BAL -->|أيوه| JE["JournalService<br/>يكتب القيد"]
JE --> GL["الأستاذ العام<br/>ميزان المراجعة<br/>القوائم المالية"]
style STOP fill:#FEE2E2,stroke:#DC2626
style ERR fill:#FEE2E2,stroke:#DC2626
style GL fill:#D1FAE5,stroke:#059669
style ENG fill:#DBEAFE,stroke:#2563EB
```
**الملفات اللي بتعمل ده (لو حد سأل):**
| الملف | بيعمل إيه |
|---|---|
| `RevenuePostingEngine.php` | يختار القاعدة ويولّد القيد |
| `RevenueAllocator.php` | حسابات التوزيع والضريبة (رياضة بحتة، من غير قاعدة بيانات) |
| `AllocationPlanService.php` | تطبيق تقسيمة على مجموعة مصادر + كل التحققات |
| `PostingRouter.php` | يوجّه الحساب المقابل (خزينة / بنك / أوراق قبض) |
| `JournalService.php` | يكتب القيد ويتأكد إنه متوازن |
---
## ٣ — المصطلحات
| المصطلح | يعني إيه بالبلدي |
|---|---|
| **مصدر الإيراد** (Stream) | نوع الفلوس. "قيمة العضوية"، "حجز ملعب"، "مصروف الأجور". عندنا **٩٧ مصدر**. |
| **فئة الإيراد** (Category) | مجموعة مصادر من نفس النوع. عندنا **١٤ فئة**. |
| **النطاق** (Scope) | التقسيمة هتحكم إيه: مصدر واحد / فئة / مختارين / كل حاجة. |
| **المرحلة** (Stage) | امتى بيتعمل القيد: استحقاق، تحصيل، صرف، ارتجاع، إعدام، تحويل. |
| **الاتجاه** (Direction) | **تحصيل** = البنود دائنة. **صرف** = البنود مدينة. |
| **القاعدة** (Rule) | ورقة التعليمات: "المبلغ ده يتوزّع كذا". ليها إصدارات وتاريخ سريان. |
| **البند** (Line) | سطر واحد من التوزيع: "٢٠٪ لحساب كذا". |
| **الباقي** (Remainder) | البند الأخير — بياخد اللي فضل + كسور القرش. **إجباري**. |
| **الصافي** (Net) | المبلغ بعد فصل الضريبة. التوزيع بيتم عليه هو. |
| **حساب رئيسي** (Header) | حساب بيتجمّع تحته حسابات. **القيد ما بينزلش عليه**. |
| **حساب فرعي** (Detail/Leaf) | الحساب اللي القيد بينزل عليه فعلًا. |
| **إصدار** (Version) | نسخة من القاعدة. الجديد بيوقف القديم، والقديم بيفضل للأرشيف. |
---
## ٤ — مصادر الإيراد والفئات
عندنا **٩٧ مصدر إيراد** موزّعين على **١٤ فئة**:
```mermaid
flowchart TD
R["٩٧ مصدر إيراد<br/>١٤ فئة"]
R --> IN["داخل — تحصيل<br/>٨٠ مصدر"]
R --> OUT["خارج — صرف<br/>١٧ مصدر"]
IN --> I1["الخزينة والبنوك · ١٣"]
IN --> I2["العضويات · ١١"]
IN --> I3["الانتقالات · ٩"]
IN --> I4["الأكاديميات · ٩"]
IN --> I5["المنشآت والملاعب · ٩"]
IN --> I6["الإيجارات والمحلات · ٨"]
IN --> I7["الأنشطة · ٦"]
IN --> I8["الغرامات · ٤"]
IN --> I9["المبيعات · ٤"]
IN --> I10["الاشتراكات · ٣"]
IN --> I11["أخرى · ٢"]
OUT --> O1["الأجور والرواتب · ١٠"]
OUT --> O2["المشتريات · ٨"]
OUT --> O3["الإعدام والإسقاط · ١"]
style R fill:#DBEAFE,stroke:#2563EB
style IN fill:#ECFDF5,stroke:#059669
style OUT fill:#F5F3FF,stroke:#7C3AED
```
**حالة التوصيل دلوقتي:** ٧٠ مصدر موصّل، **٢٧ مصدر لسه مش موصّل**.
تقدر تشوفهم كلهم في لقطة واحدة من نطاق **"كل اللي لسه مش موصّل"** في الويزارد.
---
## ٥ — المراحل — امتى بيتعمل القيد
فيه ٦ مراحل. مش كل مرحلة بتنطبق على كل فئة.
```mermaid
flowchart RL
A["استحقاق<br/>Accrual"] -->|"طالبنا العضو<br/>ولسه ما قبضناش"| B["تحصيل<br/>Collection"]
B -->|"قبضنا"| C["الفلوس دخلت"]
C -.->|"رجّعنا"| D["ارتجاع<br/>Refund"]
A -.->|"ما قبضناش<br/>وسامحناه"| E["إعدام<br/>Writeoff"]
F["صرف<br/>Payment"] -->|"دفعنا لمورد<br/>أو موظف"| G["الفلوس خرجت"]
H["تحويل داخلي<br/>Transfer"] -->|"من خزينة لخزينة"| I["الفلوس اتنقلت"]
style A fill:#EDE9FE,stroke:#7C3AED
style B fill:#D1FAE5,stroke:#059669
style D fill:#FEE2E2,stroke:#DC2626
style E fill:#F3F4F6,stroke:#6B7280
style F fill:#FEF3C7,stroke:#B45309
style H fill:#DBEAFE,stroke:#2563EB
```
### أي مرحلة تنطبق على أي فئة
| الفئة | المراحل المسموحة |
|---|---|
| العضويات · الاشتراكات · الأكاديميات · الإيجارات | استحقاق، تحصيل، ارتجاع، إعدام |
| الأنشطة · المنشآت · المبيعات | استحقاق، تحصيل، ارتجاع |
| الغرامات | استحقاق، تحصيل، إعدام |
| الانتقالات | استحقاق، تحصيل، تحويل |
| الخزينة | تحصيل، صرف، تحويل |
| المشتريات | استحقاق، صرف، ارتجاع |
| الأجور | استحقاق، صرف |
| الإعدام | إعدام |
| أخرى | كلهم |
> **مهم:** لو اخترت مرحلة ما تنطبقش على فئة، السيستم **بيتخطّى** المصادر دي
> ويقول لك ليه — ما بيكتبش قيد غلط. مثال: لو اخترت "تحصيل" على فئة الأجور،
> هيقول لك *"اتخطّى ١٠ مصادر — المرحلة دي ما تنطبقش"*.
---
## ٦ — اتجاه الحركة — تحصيل ولا صرف
الاتجاه بيحدد **البنود بتاعتك مدينة ولا دائنة**، وبالتالي أنواع البنود المتاحة.
```mermaid
flowchart TD
subgraph IN["تحصيل — فلوس داخلة"]
I1["النقدية / البنك"] -->|مدين| I2["١٥٠٬٠٠٠"]
I3["بنود التقسيمة"] -->|دائن| I4["الإيرادات والالتزامات"]
end
subgraph OUT["صرف — فلوس خارجة"]
O1["بنود التقسيمة"] -->|مدين| O2["المصروفات والأصول"]
O3["النقدية / البنك / الدائنون"] -->|دائن| O4["١٥٠٬٠٠٠"]
end
style IN fill:#ECFDF5,stroke:#059669
style OUT fill:#F5F3FF,stroke:#7C3AED
```
**تقدر تغيّر اتجاه أي مصدر من الويزارد نفسه** — في الشريط الملوّن، لما النطاق يكون
"المصدر ده بس"، هتلاقي *"اتجاه الحركة لـ… : تحصيل"* وجنبه **غيّره لـ صرف**.
> تغيير الاتجاه **ما بيمسّش** القواعد القديمة ولا القيود المرحّلة. بيغيّر الافتراضي
> للقواعد الجديدة بس.
> **قاعدة صارمة:** مينفعش تحط تقسيمة واحدة على نطاق فيه مصادر تحصيل ومصادر صرف مع
> بعض. السيستم هيرفض ويقول لك *"قسّمهم على دفعتين"*.
---
## ٧ — النطاق (Scope) — أهم فكرة جديدة
دي الحاجة اللي خلّت الموضوع عملي. مش هتعيد نفس التقسيمة ٩٧ مرة.
```mermaid
flowchart TD
W["تقسيمة واحدة<br/>٢٠٪ + ٣٠٪ + الباقي"] --> S{"النطاق؟"}
S -->|"المصدر ده بس"| A["قاعدة واحدة"]
S -->|"كل فئة إيراد"| B["١١ قاعدة<br/>كل العضويات"]
S -->|"مصادر أختارها"| C["اللي علّمت عليهم"]
S -->|"كل اللي مش موصّل"| D["٢٧ قاعدة"]
S -->|"كل مصادر الإيراد"| E["٩٩ قاعدة"]
A --> V["التحقق على كل الأهداف"]
B --> V
C --> V
D --> V
E --> V
V --> OK{"كلهم عدّوا؟"}
OK -->|أيوه| WR["يكتب كلهم<br/>في معاملة واحدة"]
OK -->|"واحد بس فشل"| RB["يرفض الدفعة كلها<br/>وما يكتبش ولا صف"]
style W fill:#DBEAFE,stroke:#2563EB
style WR fill:#D1FAE5,stroke:#059669
style RB fill:#FEE2E2,stroke:#DC2626
```
### الخمس نطاقات
| النطاق | يعني إيه | امتى تستخدمه |
|---|---|---|
| **المصدر ده بس** | مصدر واحد | تقسيمة خاصة بحاجة واحدة |
| **كل فئة إيراد** | كل المصادر من نفس النوع | **الأكتر استخدامًا** — سياسة لفئة كاملة |
| **مصادر أختارها** | تعلّم بإيدك من قايمة الـ٩٧ | مجموعة مش متجانسة |
| **كل اللي لسه مش موصّل** | أي مصدر ما لوش قاعدة | تلمّ الناقص كله دفعة واحدة |
| **كل مصادر الإيراد** | كل حاجة | سياسة عامة للنادي |
> **الحفظ كله أو ولا حاجة.** لو مصدر واحد في النطاق فيه مشكلة، السيستم بيرفض الدفعة
> كلها — عشان الشجرة ما تفضلش نص موصّلة.
---
## ٨ — الويزارد خطوة بخطوة
**المسار:** المحاسبة ← محرك القيود ← زرار **وزّع على مجموعة**
```mermaid
flowchart TD
S1["١ — التقسيمة دي هتحكم إيه<br/>النطاق + المرحلة + فئة العضو"]
S2["٢ — المبلغ اللي هنوزّعه<br/>مبلغ مرجعي + الضريبة + مركز التكلفة + الفرع"]
S3["٣ — اقتطع الأجزاء<br/>نسبة أو مبلغ ثابت → حساب"]
S4["٤ — الباقي يروح لـ<br/>إجباري"]
S5["راجع القيد الناتج<br/>على الشمال"]
S6{"متوازن؟"}
S7["احفظ وفعّل"]
S1 --> S2 --> S3 --> S4 --> S5 --> S6
S6 -->|"✓ أيوه"| S7
S6 -->|"✗ لأ"| S3
style S1 fill:#EFF6FF,stroke:#2563EB
style S4 fill:#ECFDF5,stroke:#059669
style S7 fill:#D1FAE5,stroke:#059669
```
### الخطوة ١ — النطاق
- اختار كارت النطاق (الخمسة اللي فوق).
- لو اخترت **فئة**، هتشوف كل الفئات وجنب كل واحدة عدد المصادر وكام غير موصّل.
- لو اخترت **مصادر أختارها**، فيه فلتر بالاسم و**اختار الفئة كلها** و**مسح الكل**.
- اختار **المرحلة** (تحصيل غالبًا). العلامة ✓ معناها فيه قاعدة شغالة عليها.
- اختار **فئة العضو**: كل الأعضاء، ولا عضو عامل بس، ولا أجنبي… إلخ.
الشريط الأزرق تحت بيقول: **"هتتطبّق على ١١ قاعدة قيد — حركة تحصيل"**.
اضغط **اعرض القايمة** تشوف كل مصدر ومرحلته، والمتخطّى ليه اتخطّى.
### الخطوة ٢ — المبلغ
- **مبلغ مرجعي**: للتوضيح بس. السيستم بيملاه بمتوسط اللي المصدر ده حصّله فعلًا.
النسب بتتطبّق على أي مبلغ فعلي، مش على الرقم ده.
- **المعالجة الضريبية**: لو عليها ض.ق.م اختار البروفايل.
- **مركز التكلفة** و**الفرع**: اختياريين.
### الخطوة ٣ — الأجزاء
اضغط **+ اقتطع جزء**. فوق خالص:
```
الباقي غير الموزَّع 150,000.00
[████████████████████████████████████████████]
```
الرقم بيتحدّث **مع كل حرف بتكتبه**. وتحت كل كارت سطر بيقول:
> ٢٠% من ١٥٠٬٠٠٠٫٠٠ · قبله **١٥٠٬٠٠٠٫٠٠** · بياخد **٣٠٬٠٠٠٫٠٠** · يفضل **١٢٠٬٠٠٠٫٠٠**
### الخطوة ٤ — الباقي
سطر إجباري أخضر. اختار الحساب اللي هياخد اللي فضل.
**ليه إجباري؟** عشان القيد يفضل متوازن مهما حصل. لو المبلغ اتغيّر أو كسور القرش ما
اتقسمتش بالظبط، البند ده بيبلع الفرق.
### الحفظ
- **ساري اعتبارًا من**: التاريخ اللي التوزيع يبدأ منه.
- **سبب التغيير**: رقم قرار مجلس الإدارة.
- الزرار بيقول **حفظ وتفعيل على ١١ قاعدة**، ولو أكتر من واحدة هيسألك تأكيد.
---
## ٩ — حسابات التوزيع — الأرقام بتتحسب إزاي
الترتيب ده مهم جدًا، وده اللي السيستم بيعمله بالظبط:
```mermaid
flowchart TD
G["المحصَّل<br/>١٥٠٬٠٠٠٫٠٠"] --> T{"فيه ضريبة؟"}
T -->|"أيوه ١٤٪ شامل"| T1["الضريبة = ١٨٬٤٢١٫٠٥<br/>الصافي = ١٣١٬٥٧٨٫٩٥"]
T -->|لأ| T2["الصافي = ١٥٠٬٠٠٠٫٠٠"]
T1 --> F["١ — المبالغ الثابتة<br/>بتتخصم الأول"]
T2 --> F
F --> NAF["الصافي بعد الثابت<br/>= أساس النسب"]
NAF --> P["٢ — النسب<br/>كل نسبة × الأساس ده"]
P --> R["٣ — الباقي<br/>بياخد اللي فضل + الكسور"]
R --> CHK{"المجموع = الصافي؟"}
CHK -->|أيوه| DONE["✓ القيد متوازن"]
CHK -->|لأ| FAIL["✗ يرفض"]
style DONE fill:#D1FAE5,stroke:#059669
style FAIL fill:#FEE2E2,stroke:#DC2626
style NAF fill:#FEF3C7,stroke:#B45309
```
### القاعدة الذهبية
> **النسبة دايمًا من صافي المبلغ، مش من الباقي.**
>
> ٢٠٪ بعدين ٣٠٪ = **٥٠٪ من المبلغ**، مش ٢٠٪ وبعدين ٣٠٪ من الـ٨٠٪ اللي فضلت.
> ده اللي أي محاسب بيقصده لما يقول "٢٠٪ منه لكذا و٣٠٪ منه لكذا".
### أرقام حقيقية متأكَّد منها
| المبلغ | ٢٠٪ | ٣٠٪ | الباقي | متوازن؟ |
|---:|---:|---:|---:|:---:|
| ١٥٠٬٠٠٠٫٠٠ | ٣٠٬٠٠٠٫٠٠ | ٤٥٬٠٠٠٫٠٠ | ٧٥٬٠٠٠٫٠٠ | ✓ |
| ٢٠٠٬٠٠٠٫٠٠ | ٤٠٬٠٠٠٫٠٠ | ٦٠٬٠٠٠٫٠٠ | ١٠٠٬٠٠٠٫٠٠ | ✓ |
| ١٫٠٠ | ٠٫٢٠ | ٠٫٣٠ | ٠٫٥٠ | ✓ |
| **٠٫٠٣** | ٠٫٠١ | ٠٫٠١ | ٠٫٠١ | ✓ |
| ٩٩٩٬٩٩٩٫٩٩ | ٢٠٠٬٠٠٠٫٠٠ | ٣٠٠٬٠٠٠٫٠٠ | ٤٩٩٬٩٩٩٫٩٩ | ✓ |
| ١٥٠٬٠٠٠ + ض١٤٪ | ٢٦٬٣١٥٫٧٩ | ٣٩٬٤٧٣٫٦٩ | ٦٥٬٧٨٩٫٤٧ | ✓ |
> لاحظ الـ **٠٫٠٣ جنيه**: ٢٠٪ منها = ٠٫٠٠٦، والسيستم قرّبها لـ ٠٫٠١، وبند الباقي
> بلع الفرق فالقيد فضل متوازن. ده بالظبط سبب وجود بند "الباقي".
---
## ١٠ — أنواع البنود
### على حركة **تحصيل**
| النوع | استخدمه لما | نوع الحساب المطلوب |
|---|---|---|
| **إيراد** | الفلوس بتاعة النادي وكسبناها دلوقتي | إيراد |
| **تحصيل لحساب الغير** | الفلوس مش بتاعتنا (دمغة، اتحاد، تأمين) | التزام |
| **إيراد مؤجل** | قبضنا دلوقتي والخدمة على مدار السنة | التزام |
| **خصم من الإيراد** | خصومات ومردودات | إيراد أو مصروف |
| **تسوية ذمم مدينة** | تسوية مديونية عضو | أصل |
### على حركة **صرف**
| النوع | استخدمه لما | نوع الحساب المطلوب |
|---|---|---|
| **مصروف** | تكلفة اتحمّلناها دلوقتي | مصروف |
| **مصروف مقدَّم** | دفعنا مقدّم لخدمة جاية | أصل |
| **أصل ثابت** | شراء أصل | أصل |
| **مخزون** | استلام بضاعة | أصل |
| **تسوية ذمم دائنة** | سداد لمورد | التزام |
| **إعدام / إسقاط** | إسقاط مديونية | مصروف |
### الغلطة الشائعة
```mermaid
flowchart RL
A["رسوم اتحاد ٥٠ جنيه<br/>بنجمّعها للاتحاد"] --> B{"نسجّلها إزاي؟"}
B -->|"❌ غلط"| C["إيراد<br/>الأرباح تظهر أعلى<br/>والضريبة تتحسب غلط"]
B -->|"✅ صح"| D["تحصيل لحساب الغير<br/>التزام في الميزانية<br/>لحد ما ندفعه"]
style C fill:#FEE2E2,stroke:#DC2626
style D fill:#D1FAE5,stroke:#059669
```
> **السيستم بيتأكد من ده بنفسه.** لو اخترت بند "إيراد" ووديته على حساب التزام،
> هيرفض ويقول: *"الحساب ٢١٠١٠١ نوعه liability ومش مناسب لبند إيراد"*.
---
## ١١ — الضريبة
ضريبة القيمة المضافة **مش إيراد**. دي فلوس بتتحصّل لحساب مصلحة الضرائب، فبتروح
لحساب التزام.
```mermaid
flowchart TD
A["المحصَّل ١٥٠٬٠٠٠"] --> B{"شامل الضريبة<br/>ولا مضافة عليه؟"}
B -->|"شامل (الأغلب)"| C["الصافي = ١٥٠٬٠٠٠ ÷ ١٫١٤<br/>= ١٣١٬٥٧٨٫٩٥"]
C --> D["الضريبة = ١٥٠٬٠٠٠ − ١٣١٬٥٧٨٫٩٥<br/>= ١٨٬٤٢١٫٠٥"]
B -->|"مضافة عليه"| E["الضريبة = ١٥٠٬٠٠٠ × ٠٫١٤<br/>= ٢١٬٠٠٠<br/>والعميل يدفع ١٧١٬٠٠٠"]
D --> F["التوزيع بيتم على<br/>١٣١٬٥٧٨٫٩٥"]
style F fill:#FEF3C7,stroke:#B45309
```
> **غلطة مشهورة:** ناس بتحسب ضريبة ١١٤٠ على إنها ١١٤٠ × ١٤٪ = ١٥٩٫٦٠.
> ده **غلط** لو السعر شامل. الصح: ١١٤٠ ÷ ١٫١٤ = ١٠٠٠ إيراد + ١٤٠ ضريبة.
المعالجات المتاحة: **عادية ١٤٪** · **جدول** · **صفرية** · **معفاة** · **خارج النطاق**.
> المعفاة بتمنع خصم ضريبة المدخلات — فرق مهم عن الصفرية.
---
## ١٢ — الإيراد المؤجل
لو قبضت اشتراك سنة كاملة في يوليو، ما ينفعش تسجّله كله إيراد في يوليو.
```mermaid
flowchart TD
A["قبضنا ١٢٬٠٠٠<br/>اشتراك سنة"] --> B["مدين: النقدية ١٢٬٠٠٠<br/>دائن: إيراد مؤجل ١٢٬٠٠٠<br/>(التزام)"]
B --> C["كل شهر"]
C --> D["مدين: إيراد مؤجل ١٬٠٠٠<br/>دائن: إيراد اشتراكات ١٬٠٠٠"]
D --> E["بعد ١٢ شهر<br/>الالتزام = صفر<br/>الإيراد = ١٢٬٠٠٠"]
style B fill:#FEF3C7,stroke:#B45309
style E fill:#D1FAE5,stroke:#059669
```
في الويزارد: اختار نوع البند **إيراد مؤجل** → بيفتح مربع أصفر فيه:
- **يترحّل على كام شهر** (١٢ للاشتراك السنوي)
- **حساب الإيراد اللي يترحّل له** (البحث بيفلتر حسابات الإيراد بس)
> لو اخترت مؤجل ونسيت حساب الترحيل، السيستم يرفض الحفظ.
---
## ١٣ — القاعدة بتتحدد إزاي وقت الدفع
لما عضو يدفع، السيستم بيدوّر على أنسب قاعدة. الأخص بيغلب العام:
```mermaid
flowchart TD
A["عضو عامل من فرع القاهرة<br/>دفع كاش ١٥٠٬٠٠٠"] --> B["يجيب كل القواعد الشغالة<br/>للمصدر ده في مرحلة التحصيل"]
B --> C["يستبعد اللي تاريخها<br/>مش شامل النهاردة"]
C --> D["يحسب درجة التخصيص"]
D --> E["فئة العضو = ٤ نقاط"]
D --> F["الفرع = ٢ نقطة"]
D --> G["طريقة الدفع = ١ نقطة"]
E --> H["الأعلى نقاط يكسب"]
F --> H
G --> H
H --> I["لو اتساووا<br/>الأحدث إصدارًا يكسب"]
style H fill:#DBEAFE,stroke:#2563EB
style I fill:#D1FAE5,stroke:#059669
```
**يعني إيه عمليًا؟**
| عندك | عضو عامل يدفع | عضو رياضي يدفع |
|---|---|---|
| قاعدة عامة بس | القاعدة العامة | القاعدة العامة |
| قاعدة عامة + قاعدة للعضو العامل | **قاعدة العضو العامل** | القاعدة العامة |
| قاعدة عامة + قاعدة لفرع القاهرة | قاعدة الفرع (لو من القاهرة) | قاعدة الفرع (لو من القاهرة) |
| قاعدة للعضو العامل + قاعدة لفرع القاهرة | **قاعدة العضو العامل** (٤ > ٢) | قاعدة الفرع |
> مش محتاج تعمل أي حاجة عشان ده يشتغل. اعمل القاعدة الخاصة وخلاص.
---
## ١٤ — الإصدارات — ليه القيود القديمة ما بتتغيّرش
دي أهم حاجة محاسبيًا في السيستم كله.
```mermaid
timeline
title تاريخ قاعدة قيمة العضوية — مرحلة التحصيل
يناير ٢٠٢٦ : إصدار ١ — ١٠٠٪ إيرادات عضويات
مارس ٢٠٢٦ : قيود مرحّلة بإصدار ١
مايو ٢٠٢٦ : إصدار ٢ — ٢٠٪ نشاط + ٨٠٪ عضويات : إصدار ١ بقى موقوف
يوليو ٢٠٢٦ : قيود مرحّلة بإصدار ٢
سبتمبر ٢٠٢٦ : إصدار ٣ — ٢٠٪ + ٣٠٪ + الباقي : إصدار ٢ بقى موقوف
```
- **قيود مارس** لسه مربوطة بإصدار ١، بأرقامها الأصلية.
- **قيود يوليو** لسه مربوطة بإصدار ٢.
- التعديل **ما بيمسحش** القديم — بيعمل إصدار جديد ويحط للقديم `effective_to`.
> سؤال المراجع: *"القيد ده اتعمل بأي تقسيمة؟"* → الإجابة موجودة ومحفوظة.
---
## ١٥ — كل الحالات اللي السيستم بيرفضها
كلها مجرّبة على نسخة من قاعدة البيانات الحقيقية، وكلها بترفض **قبل** ما يتكتب أي صف:
```mermaid
flowchart TD
A["اضغط حفظ"] --> B["١ — شكل التقسيمة"]
B --> C["٢ — الحسابات"]
C --> D["٣ — التاريخ"]
D --> E["٤ — كل هدف في النطاق"]
E --> F{"عدّى كله؟"}
F -->|أيوه| G["معاملة واحدة<br/>يكتب كل القواعد"]
F -->|لأ| H["يرفض الدفعة كلها<br/>ولا صف اتكتب"]
style G fill:#D1FAE5,stroke:#059669
style H fill:#FEE2E2,stroke:#DC2626
```
| الحالة | الرسالة اللي هتشوفها |
|---|---|
| من غير بند باقي | لازم بند واحد اسمه "الباقي" |
| بندين باقي | مش ممكن أكتر من بند "باقي" واحد |
| مجموع النسب > ١٠٠٪ | مجموع النسب ١٢٠٪ — أكبر من ١٠٠٪ |
| نسبة صفر أو سالبة | النسبة لازم تكون أكبر من صفر |
| مبلغ ثابت صفر | المبلغ الثابت لازم يكون أكبر من صفر |
| **حساب رئيسي** | حساب رئيسي، والقيد ما بينزلش عليه |
| حساب مش موجود | الحساب رقم … مش موجود |
| حساب موقوف أو مؤرشف | … موقوف أو مؤرشف |
| بند من غير حساب | البند ١: ما اخترتش حساب |
| نوع حساب مش مناسب للبند | الحساب … نوعه liability ومش مناسب لبند "إيراد" |
| بند صرف على حركة تحصيل | نوع البند مش مناسب لحركة تحصيل |
| **خلط تحصيل مع صرف** | قسّمهم على دفعتين |
| تقسيمة فاضية | أضف بندًا واحدًا على الأقل |
| نطاق مفيهوش مصادر | ما فيش أي مصدر مطابق للنطاق |
| تاريخ سريان غلط | تاريخ السريان غير صحيح |
| **تاريخ في فترة مقفولة** | واقع في فترة مقفولة (٢٠٢٦-٠٩) |
| مؤجل من غير حساب ترحيل | حدد حساب الإيراد اللي المؤجل هيترحّل له |
| مرحلة ما تنطبقش على الفئة | اتخطّى — المرحلة دي ما تنطبقش على الأجور |
---
## ١٦ — سيناريوهات كاملة
### أ — عضوية العضو العامل تتقسّم ٢٠/٣٠/الباقي
```mermaid
flowchart TD
A["وزّع على مجموعة"] --> B["النطاق: كل فئة إيراد<br/>← العضويات ١١ مصدر"]
B --> C["المرحلة: تحصيل<br/>فئة العضو: عضو عامل ١٢٠"]
C --> D["المبلغ المرجعي: ١٥٠٬٠٠٠"]
D --> E["جزء ١: ٢٠٪ → صندوق النشاط<br/>الباقي ١٢٠٬٠٠٠"]
E --> F["جزء ٢: ٣٠٪ → إيرادات عضويات<br/>الباقي ٧٥٬٠٠٠"]
F --> G["الباقي → صندوق دعم المنشآت<br/>٧٥٬٠٠٠"]
G --> H["✓ متوازن → حفظ على ١١ قاعدة"]
style H fill:#D1FAE5,stroke:#059669
```
القيد الناتج:
| الحساب | مدين | دائن |
|---|---:|---:|
| النقدية | ١٥٠٬٠٠٠٫٠٠ | |
| صندوق النشاط الرياضي | | ٣٠٬٠٠٠٫٠٠ |
| إيرادات عضويات | | ٤٥٬٠٠٠٫٠٠ |
| صندوق دعم المنشآت *(الباقي)* | | ٧٥٬٠٠٠٫٠٠ |
| **الإجمالي** | **١٥٠٬٠٠٠٫٠٠** | **١٥٠٬٠٠٠٫٠٠** |
### ب — إيجار محل عليه ضريبة ١٤٪
- النطاق: **كل فئة إيراد** ← الإيجارات والمحلات (٨ مصادر)
- المعالجة الضريبية: **عادية ١٤٪ شامل**
- بند واحد: **الباقي** → إيرادات إيجار المحلات
| الحساب | مدين | دائن |
|---|---:|---:|
| النقدية | ١٠٠٬٠٠٠٫٠٠ | |
| ض.ق.م مستحقة *(التزام)* | | ١٢٬٢٨٠٫٧٠ |
| إيرادات إيجار المحلات | | ٨٧٬٧١٩٫٣٠ |
### ج — رسوم فيها حصة اتحاد
- جزء ١: **مبلغ ثابت ٥٠** → حساب "مستحقات الاتحاد" → نوع البند **تحصيل لحساب الغير**
- الباقي → إيرادات الأنشطة → **إيراد**
الـ٥٠ جنيه بتقعد **التزام** لحد ما تتدفع للاتحاد. ما بتدخلش الأرباح ولا الضريبة.
### د — مسيّر رواتب (حركة صرف)
- النطاق: **كل فئة إيراد** ← الأجور والرواتب
- المرحلة: **صرف** · الاتجاه: **صرف** (اتظبط تلقائيًا في تحديث ٥ سبتمبر)
- البنود دلوقتي **مدينة**: مصروف الأجور، حصة التأمينات، …
- والنقدية **دائنة**
---
## ١٧ — اللي لقيناه غلط في الداتا
الفحص على الداتا الحقيقية طلّع ٣ مشاكل محاسبية. **دي مش مشاكل في السيستم — دي في
الأرقام والإعداد**، ومحتاجة قرار منك:
```mermaid
flowchart TD
subgraph P1["١ — إيراد على أساس نقدي"]
A1["٣٦ قاعدة بتسجّل الإيراد<br/>وقت التحصيل"]
A2["٦ قواعد بس وقت الاستحقاق"]
A1 --> A3["الذمم المدينة ناقصة<br/>وفصل الفترات غلط"]
end
subgraph P2["٢ — مفيش تأجيل خالص"]
B1["كل الـ٧٢ بند = immediate"]
B2["اشتراك سنوي بيتسجّل<br/>إيراد كامل يوم التحصيل"]
B1 --> B3["الإيراد مضخّم"]
B2 --> B3
end
subgraph P3["٣ — مقدمات مسجّلة إيراد"]
C1["٤١٠٥٠٣ مقدم عضويه<br/>٢٬٧٧٤٬٤٩٥"]
C2["٤١٠٥٠٥ باقى مقدم<br/>١٨٠٬٢٦٣"]
C3["٤١٠٥٠٤ جزء من مقدم<br/>٧٧٬٥٠٠"]
C1 --> C4["٣٬٠٣٢٬٢٥٨ جنيه<br/>المفروض التزام مش إيراد"]
C2 --> C4
C3 --> C4
end
style A3 fill:#FEE2E2,stroke:#DC2626
style B3 fill:#FEE2E2,stroke:#DC2626
style C4 fill:#FEE2E2,stroke:#DC2626
```
### تفصيل
**١ — الإيراد بيتسجّل وقت التحصيل مش وقت الاستحقاق.**
٣٦ قاعدة من ٤٢ بتسجّل الإيراد لما الفلوس تدخل. للحجز اللحظي ده مظبوط (الاستحقاق
والتحصيل نفس اللحظة). لكن لأي حاجة بتتفوتر الأول — اشتراكات، عضويات، إيجارات —
ده معناه إن الذمم المدينة ناقصة وفصل الفترات غلط.
**الصح:** الاستحقاق: مدين ذمم / دائن إيراد. التحصيل: مدين نقدية / دائن ذمم — **من غير** بند إيراد.
**٢ — مفيش أي بند مؤجل.**
كل الـ٧٢ بند `immediate`. "اشتراك سنوي" بيروح إيراد على طول.
كمان: بيروح على حساب **٤١٠٢٠١ اللي اسمه "اكاديمية البادل"** — إيراد الاشتراك
السنوي بينزل على حساب أكاديمية البادل.
**٣ — ٣٬٠٣٢٬٢٥٨ جنيه مقدمات عملاء مسجّلة كإيراد.**
| الكود | الاسم | النوع الحالي | الرصيد |
|---|---|---|---:|
| ٤١٠٥٠٣ | مقدم عضويه | **إيراد** | ٢٬٧٧٤٬٤٩٥٫٠٠ |
| ٤١٠٥٠٥ | باقى مقدم عضويه | **إيراد** | ١٨٠٬٢٦٣٫٠٠ |
| ٤١٠٥٠٤ | جزء من مقدم | **إيراد** | ٧٧٬٥٠٠٫٠٠ |
المقدم = فلوس مدينها خدمة لسه ما اتقدّمتش = **التزام**. وفيه أصلًا حساب صح موجود:
**٢٣٠٨١١١٥ ايرادات مدفوعة مقدما** (التزام، رصيده ٢٬١٣١٬٢٧٢). يعني نفس الحركة
بتتعامل بطريقتين مختلفتين.
### فرق مهم — التقسيمة نوعها إيه؟
```mermaid
flowchart TD
A["٢٠٪ تروح لصندوق كذا"] --> B{"الـ٢٠٪ دي إيه؟"}
B -->|"بتشتري خدمة مختلفة<br/>(جيم / حمام سباحة / لوكر)"| C["توزيع إيراد<br/>حسب معيار ٤٨<br/>✅ قسّم عادي"]
B -->|"تخصيص فلوس لصندوق"| D["تخصيص أرباح<br/>مش تصنيف إيراد"]
D --> E["❌ لو عملتها التزام<br/>الإيراد يقلّ"]
D --> F["✅ الصح: سجّل الإيراد كامل<br/>وبعدين قيد تخصيص منفصل<br/>مدين أرباح مرحّلة / دائن احتياطي"]
style C fill:#D1FAE5,stroke:#059669
style E fill:#FEE2E2,stroke:#DC2626
style F fill:#D1FAE5,stroke:#059669
```
---
## ١٨ — خريطة الشاشات
| الشاشة | المسار | بتعمل إيه |
|---|---|---|
| **محرك القيود** | `/accounting/revenue-mapping` | كل مصادر الإيراد وحالتها |
| **معالج التوزيع** | `…/{id}/wizard` | الويزارد — التقسيمة بالنطاق |
| **الوضع المتقدّم** | `…/{id}/edit` | كل الخيارات، أعقد |
| **مركز التوصيل** | `…/connections` | الموصّل والمش موصّل |
| **التشخيص** | `…/diagnostics` | المشاكل: header، بند باقي ناقص… |
| **الملفات الضريبية** | `…/tax-profiles` | معالجات الضريبة |
| **الإيراد المؤجل** | `…/recognition` | تشغيل الترحيل الشهري |
| **المطالبات** | `/accounting/billing` | تحصيل المستحقات |
| **السندات** | `/accounting/vouchers` | سندات صرف وقبض |
| **دليل الحسابات** | `/accounting/chart-of-accounts` | الشجرة، نقل، دمج، أرشفة |
---
## ملخص سريع للطباعة
```mermaid
flowchart RL
A["افتح<br/>وزّع على مجموعة"] --> B["اختار النطاق<br/>فئة / مصدر / الكل"]
B --> C["اختار المرحلة<br/>وفئة العضو"]
C --> D["حط المبلغ المرجعي<br/>والضريبة"]
D --> E["اقتطع الأجزاء<br/>وشوف الباقي"]
E --> F["حدد حساب الباقي<br/>إجباري"]
F --> G["راجع القيد<br/>لازم متوازن"]
G --> H["احفظ"]
style A fill:#DBEAFE,stroke:#2563EB
style H fill:#D1FAE5,stroke:#059669
```
**٣ حاجات لو افتكرتهم مش هتغلط:**
1. **النسبة من الصافي، مش من الباقي.** ٢٠٪ + ٣٠٪ = ٥٠٪ من المبلغ.
2. **بند "الباقي" إجباري** — هو اللي بيخلّي القيد متوازن دايمًا.
3. **فلوس مش بتاعتنا = تحصيل لحساب الغير**، مش إيراد.
---
*ملفات ذات صلة:*
- `docs/معالج-توزيع-المبالغ.md` — تفاصيل الويزارد
- `docs/كيف-أوصّل-أي-إيراد.md` — سيناريوهات لكل نوع إيراد
- `docs/دليل-المحاسبة-للاجتماع.md` — الدورة المحاسبية الكاملة
# دليل التنفيذ — كل إجراء مالي من الشاشات
> ملف تنفيذي. كل سيناريو مكتوب بالترتيب اللي هتضغطه بالظبط، عشان تعمله قدامهم
> وانت قاعد من غير ما تدوّر ومن غير مبرمج.
---
## الشاشات
| الشاشة | الرابط | بتعمل إيه |
|---|---|---|
| **المطالبات والتحصيل** | `/accounting/billing` | كل مبلغ مستحق في أي وحدة — تحصّله من هنا |
| **مصادر المطالبة** | `/accounting/billing/sources` | تعرّف مصدر مستحقات جديد بنفسك |
| **سندات الصرف والقبض** | `/accounting/vouchers` | المصاريف — دعاية، صيانة، كهرباء |
| **أنواع السندات** | `/accounting/vouchers/types` | تعرّف نوع مصروف جديد |
| **توزيع الإيرادات** | `/accounting/revenue-mapping` | تقسيم المبلغ على حسابات |
| **مركز التوصيل** | `/accounting/revenue-mapping/connections` | حالة كل مسار |
| **فحص الحالة** | `/accounting/revenue-mapping/diagnostics` | اللي مكسور أو مجمَّع |
| **الأوراق التجارية** | `/accounting/instruments` | الشيكات ودورة حياتها |
| **دليل الحسابات** | `/accounting/chart-of-accounts` | الشجرة — إضافة ونقل وحذف |
| **الإيراد المؤجل** | `/accounting/revenue-mapping/recognition` | الترحيل الشهري |
---
## المفهوم في سطرين
كل مبلغ بيتقسم لـ**بنود**: إما **نسبة %**، أو **مبلغ ثابت**، أو **«الباقي»**.
لازم بند «باقي» واحد بالظبط — هو اللي بياخد المتبقي ويستوعب كسور القرش فيفضل القيد متوازن.
**ترتيب التطبيق ثابت ومكتوب على الشاشة:**
> الضريبة تُفصل الأول ← المبالغ الثابتة ← النسب ← «الباقي»
---
## ١ — «المية وخمسين ألف دي بتتقسم»
**اللي هيقولوه:** «قيمة العضوية ١٥٠٬٠٠٠ — ٣٠٪ صندوق دعم النشاط، ١٠٪ الرعاية الاجتماعية، والباقي إيراد.»
1. `المحاسبة ← توزيع الإيرادات`
2. ابحث: **قيمة العضوية** ← اضغط **تحصيل**
3. **+ إضافة بند****نسبة %**`30` → الحساب: `23082101 صندوق دعم النشاط الرياضي`
4. **+ إضافة بند****نسبة %**`10``23082102 صندوق الرعاية الاجتماعية للأعضاء`
5. رتّب بالأسهم ▲▼ بحيث «الباقي» آخر بند
6. في **مبلغ تجريبي** اكتب `150000`
| الحساب | مدين | دائن |
|---|---:|---:|
| الصندوق | ١٥٠٬٠٠٠٫٠٠ | |
| صندوق دعم النشاط — ٣٠٪ | | ٤٥٬٠٠٠٫٠٠ |
| الرعاية الاجتماعية — ١٠٪ | | ١٥٬٠٠٠٫٠٠ |
| عضويات جديدة — الباقي | | ٩٠٬٠٠٠٫٠٠ |
| **الإجمالي** | **١٥٠٬٠٠٠٫٠٠** | **١٥٠٬٠٠٠٫٠٠** |
7. اكتب سبب التغيير ← **حفظ كإصدار جديد وتفعيله**
> **قولها وانت بتحفظ:** «التاريخ ده معناه إن التوزيع الجديد بيشتغل من النهارده ورايح.
> القيود المرحّلة قبل كده ما بتتغيرش، ومسجّل مين غيّر وإمتى وليه.»
**مبلغ ثابت بدل نسبة؟** نفس الخطوات، بس اختار **مبلغ ثابت** — زي طابع الشهداء ٥ جنيه،
ونوع البند **تحصيل لحساب الغير (التزام)** لأنها مش فلوس النادي.
**الحساب مش موجود؟** اضغط **+ حساب جديد** جنب خانة الحساب، اختار الأب، اكتب الاسم.
بياخد الكود التالي تلقائيًا وبيتحدد في البند على طول.
---
## ٢ — «الحاجة دي مش موصولة — نوصّلها إزاي؟»
**دي أهم شاشة.** `المحاسبة ← المطالبات والتحصيل`
كل مبلغ مستحق في أي وحدة بيظهر هنا في تبويبات — حجوزات الملاعب، اشتراكات الأنشطة،
اللوكرات، حجوزات المرافق، المباريات الخاصة، فواتير الإيجار، الاشتراكات السنوية.
**للتحصيل:** اضغط **تحصيل** جنب أي سطر ← المبلغ وطريقة الدفع والخزنة ← **تأكيد**.
بيطلع **إيصال**، وبيدخل **عهدة الخزنة**، وبيتعمل **قيد في الدفاتر** — نفس مسار دفعة العضو بالظبط.
### لو عايز تضيف مصدر مستحقات جديد قدامهم
`المطالبات ← إعداد مصادر المطالبة ← + مصدر جديد`
1. **الجدول** — اختار من القائمة (بتعرض الجداول اللي فيها أعمدة مبالغ)
2. **عمود المبلغ** — القائمة بتتملي تلقائيًا من أعمدة الجدول
3. **عمود التاريخ / الرقم المرجعي / العضو أو اللاعب أو الاسم**
4. **شروط «لسه مستحق»** — مثال: `payment_status` **ضمن** `unpaid, overdue`
5. **بعد التحصيل** — أي أعمدة يكتب فيها رقم الدفعة والحالة (اختياري)
6. **نوع الدفعة** — بيحدد قاعدة التوزيع في الدفاتر
7. اضغط **جرّب** على اليمين — هيوريك كام سطر وبكام قبل ما تحفظ
8. **حفظ**
> **الجملة:** «مصدر المطالبة ده مجرد إعداد — الجدول ده فيه مبالغ، والصفوف اللي شرطها كذا
> لسه متحصّلتش. مش محتاج مبرمج، ودي نفس الطريقة اللي هنوصّل بيها أي حاجة جديدة.»
**حماية مبنية جوه:** مفيش SQL حر — الشروط منظّمة (عمود/عامل/قيمة). كل الأعمدة بتتأكد
من وجودها قبل الحفظ وقبل كل عرض. المبلغ بيتقرأ من السجل وقت التحصيل مش من الشاشة.
والصف اللي اتحصّل مرة ما بيظهرش تاني حتى لو الوحدة مالهاش عمود حالة.
---
## ٣ — «إجراءات المحلات وعقود الإيجار — إزاي نلمّ الإيجار؟»
**الدورة كاملة:**
1. **العقد**`الإيجارات ← عقد جديد`: الوحدة، المستأجر، القيمة الشهرية، التأمين، مدة العقد، نسبة الزيادة السنوية
2. **الفواتير** — من صفحة العقد: **توليد فواتير** (فاتورة واحدة أو كل فواتير المدة)
3. **التحصيل**`المحاسبة ← المطالبات ← تبويب «فواتير الإيجار»`**تحصيل**
الفاتورة الواحدة بتتقسم في الدفاتر لأربع أجزاء تلقائيًا:
| الجزء | الحساب |
|---|---|
| الإيجار الأساسي | `410521 ايجار محلات` |
| المرافق | `410515 إيرادات متنوعه` |
| **ضريبة القيمة المضافة** | `23080404`**التزام مش إيراد** |
| غرامة التأخير | `410512 غرامة تاخير` |
> **نقطة مهمة تقولها:** «ضريبة الإيجار دي كانت مربوطة بحساب رئيسي فما كانتش بتترحّل أصلًا.
> دلوقتي بتروح حساب فرعي صحيح، وكل جزء من الفاتورة له حسابه.»
**التأمين (الوديعة):** بيتسجّل **التزام** على النادي (`230809`) مش إيراد — لأنه بيترد.
لما يترد بيتعكس القيد.
---
## ٤ — «الشيكات — صرفت الشيك، ارتد، والتاني والتالت»
`المحاسبة ← الأوراق التجارية`
### دورة الشيك المستلم
| الحالة | معناها | القيد |
|---|---|---|
| **في اليد** `in_hand` | استلمنا الشيك | مدين **أوراق قبض** `120302004` |
| **تحت التحصيل** `under_collection` | ودّيناه البنك | مدين شيكات تحت التحصيل `1207` / دائن أوراق قبض |
| **محصَّل** `collected` | البنك صرفه | مدين **البنك** / دائن شيكات تحت التحصيل |
| **مرتد** `bounced` | البنك رفضه | مدين **شيكات مرتدة** `120301005` / دائن شيكات تحت التحصيل |
| **مظهَّر** `endorsed` | ظهّرناه لمورد | مدين الدائن / دائن أوراق قبض |
### الخطوات على الشاشة
**إيداع الشيك:** افتح الورقة ← **إيداع بالبنك** ← اختار الحساب البنكي والتاريخ.
**التحصيل:****تأكيد التحصيل** بتاريخ التحصيل الفعلي.
**الارتداد:****تسجيل ارتداد** ← السبب ← ومعاه **مصاريف الارتداد** لو هتحمّلها للعضو.
> **نقطة تكسب بيها:** «مصاريف الارتداد بتتقيّد **في قيد منفصل** عن الدين نفسه —
> عشان لو قررنا نعفي العضو من المصاريف، ده ما يمسّش أصل المديونية.»
### الشيك التاني والتالت (إعادة التقديم)
من الشيك المرتد: **إعادة للتحصيل** — بيرجع `under_collection` ويترحّل قيد إيداع جديد.
> **كل تقديم بيسيب أثره الخاص** — التقديم التاني والتالت كل واحد له قيده وتاريخه في
> **سجل الحالات**، مش بيمسح اللي قبله. ده اللي بيخليك تقدر تثبت عدد مرات الارتداد قانونيًا.
### النقطة اللي هتكسبك احترامهم
> «الشيك لما نستلمه **مش نقدية في البنك** — هو ورقة قبض لحد ما البنك يحصّله فعلًا.
> النظام كان بيعتبره فلوس في البنك من أول يوم، وده اتصلح. ودلوقتي حساب كل طريقة دفع
> قابل للتعديل من الشاشة.»
---
## ٥ — «مصاريف الدعاية والصيانة والكهرباء»
`المحاسبة ← سندات الصرف والقبض ← + سند جديد`
1. **نوع السند** — سند صرف دعاية وإعلان (أو صيانة، كهرباء، عام…)
2. **التاريخ** و**البيان** — مثال: «مصاريف دعاية — حملة الموسم الصيفي»
3. **من أي حساب خرجت الفلوس** — الصندوق أو البنك
4. **طريقة الدفع** — لو شيك بيطلبك رقم الشيك والبنك والتاريخ
5. **الفلوس دي راحت على إيه** — الحساب والمبلغ (تقدر تضيف أكتر من بند)
6. لو في **ضريبة مدخلات** على البند، اختار الملف الضريبي
7. القيد بيتعرض على اليمين وانت بتكتب ← **حفظ وترحيل**
> **مفيش مدين ودائن.** بتقول صرفت كام وعلى إيه، والنظام بيبني القيد.
**نوع مصروف جديد؟** `أنواع السندات ← إضافة نوع`: الكود، الاسم، الاتجاه (صرف/قبض)،
وحساب افتراضي. **من غير مبرمج.**
**ضريبة المدخلات:** لو الفاتورة ١١٤٠ شاملة ١٤٪، المصروف بيتسجّل **١٠٠٠** والضريبة
**١٤٠** في حساب أصل قابل للخصم — من غير ما حد يحسبها بإيده.
**الإلغاء:** سند مُرحَّل بيتلغى بـ**قيد عكسي**، مش بيتمسح. القيد المرحّل ما بيتشالش أبدًا.
---
## ٦ — «ظبطوا لنا شجرة الحسابات»
`المحاسبة ← دليل الحسابات` ← زر **إدارة** جنب أي حساب
الشاشة بتفحص الحساب الأول وتوريك هو مرتبط بإيه، وبعدين بتتيح:
**نقل الحساب** تحت حساب رئيسي تاني — بينقل كل المتفرع منه معاه.
بيرفض لو النوع مختلف (أصل تحت التزامات) أو لو النقل هيعمل دائرة.
**حذف الحساب** — بيرفض لو له حسابات فرعية، أو لو مستخدم في قاعدة توزيع أو ملف
ضريبي أو نوع سند أو حساب بنكي. ولو عليه **حركات مرحّلة** بيتأرشف بدل ما يتحذف،
عشان القيود القديمة تفضل مقروءة.
**تحويل رئيسي ↔ ترحيل** — بيرفض يحوّل حساب عليه حركة لرئيسي (رصيده هيتعلّق)،
وبيرفض يحوّل حساب له فروع لحساب ترحيل (هيتحسب مرتين).
> **الجملة:** «الشاشة بتفحص الأول وتقولك الحساب مرتبط بإيه، وبتعطّل الزرار اللي هيترفض
> بدل ما تضغطه ويطلعلك خطأ. ودي مش تعقيد — دي اللي بتمنع إن رصيد يضيع.»
---
## ٧ — «ضريبة ١٤٪ على الخدمة دي»
في شاشة المسار، خانة **المعالجة الضريبية**:
- **شاملة السعر** — السعر المعلن شامل الضريبة
- **تُضاف على السعر** — الضريبة فوق السعر
- **معفاة** / **خارج نطاق الضريبة**
**الفرق مهم — على ١٬١٤٠ شامل ١٤٪:** الإيراد **١٬٠٠٠** والضريبة **١٤٠**.
لو حسبتها ١٤٪ من ١٬١٤٠ غلط → **١٥٩٫٦٠** (فرق ١٩٫٦٠ في كل عملية).
**«معفاة» ولا «صفر»؟** الاتنين صفر ضريبة، لكن **المعفاة تمنع خصم ضريبة المدخلات**.
الفرق بيبان في الإقرار مش في الفاتورة.
---
## ٨ — «الاشتراك السنوي مش إيراد شهر واحد»
1. في البند، **نوع البند****إيراد مؤجل (يُستحق على فترة)**
2. **عدد الشهور** `12` و**حساب الإيراد اللي يُرحَّل إليه**
3. حساب البند نفسه: `230809 ايرادات مدفوعة مقدما`
عند التحصيل: مدين النقدية ١٢٬٠٠٠ / دائن إيرادات مقدمة ١٢٬٠٠٠
كل شهر: مدين إيرادات مقدمة ١٬٠٠٠ / دائن إيراد الاشتراكات ١٬٠٠٠
**الترحيل الشهري:** `الإيراد المؤجل` ← الفترة ← **معاينة****ترحيل تحقق الإيراد**.
> السند: معيار المحاسبة المصري رقم ٤٨.
---
## ٩ — «الحساب المجمَّع ده فيه إيه؟»
`توزيع الإيرادات ← فحص الحالة` ← الجدول التالت: تفصيل **٤١٠٥١٥ إيرادات متنوعه**
بند بند بالمبلغ والنسبة.
**للتفصيل:** روح لمسار أكبر بند ← اعمل حساب جديد أو اختار موجود ← فعّل.
> **مهم:** «التغيير بيأثر من تاريخ السريان ورايح. المبالغ التاريخية محتاجة **قيد تسوية**
> بعد ما تعتمدوا التوزيع الصحيح — وده قراركم مش قراري.»
---
## ١٠ — «ورّينا إن الأرقام سليمة»
بالترتيب:
1. `ميزان المراجعة` → المدين = الدائن
2. `قائمة الدخل` → إجمالي الإيراد **مطابق** لميزان المراجعة
3. `الميزانية العمومية` → أصول = التزامات + حقوق ملكية
4. `دليل الحسابات` → الأرصدة مطابقة لميزان المراجعة
> «التطابق ده محسوب من الدفاتر نفسها مش من جدول مساعد — فلو فيه فرق كان هيبان هنا.»
---
## ملخص الأزرار
| عايز تعمل إيه | تروح فين |
|---|---|
| تحصّل أي مستحق | المحاسبة ← المطالبات والتحصيل |
| تعرّف مستحقات جديدة | المطالبات ← إعداد مصادر المطالبة |
| تقسّم مبلغ على حسابات | توزيع الإيرادات ← المسار ← + إضافة بند |
| تعمل حساب جديد | باني التوزيع ← + حساب جديد |
| تصرف مصروف | سندات الصرف والقبض ← + سند جديد |
| تعرّف نوع مصروف | سندات ← أنواع السندات |
| تودّع شيك / تحصّله / ترصد ارتداده | الأوراق التجارية |
| تلمّ إيجار | المطالبات ← تبويب فواتير الإيجار |
| تنقل أو تحذف حساب | دليل الحسابات ← إدارة |
| تضيف ضريبة | باني التوزيع ← المعالجة الضريبية |
| ترحّل الاستحقاق الشهري | الإيراد المؤجل |
| تشوف حالة كل مسار | مركز التوصيل |
| تشوف اللي مكسور | فحص الحالة |
---
## آخر حاجة
كل حاجة فوق دي **من الشاشات**. لو حد سأل عن حاجة مش في القايمة، الإجابة مش
«ده محتاج تطوير» — الإجابة:
> «نعرّفها كمصدر مطالبة أو نوع سند. تعالى نعملها دلوقتي.»
# مسار الفلوس — الحسابات الوسيطة ودورة النقدية
> **الغرض:** تفهم الفرق بين **تقسيم** المبلغ و**تنقّل** المبلغ، وتعرف إزاي السيستم
> بيضمن إن كل خطوة بتفضّي الحساب اللي الخطوة اللي قبلها حطّت فيه الفلوس — وإزاي
> تكتشف الفلوس اللي واقفة في النص من غير ما تفتح دفتر الأستاذ.
---
## الفرق في سطرين
**معالج توزيع المبالغ** بيجاوب على سؤال: المبلغ ده يتقسّم على أنهي حسابات في **قيد واحد**؟
(٧٠٠ عضوية + ٢٠٠ تنمية + ١٠٠ دمغة).
**مسار الفلوس** بيجاوب على سؤال تاني خالص: **نفس الفلوس** وهي بتتنقّل من حساب لحساب
على مدى **كذا قيد**، كل ما يحصل أكشن جديد.
الفلوس اللي بتتحصّل على المكتب مش بتروح البنك على طول:
```
الكاشير حصّل نقدي → الفلوس في حساب «خزنة العضويات»
آخر الوردية اتسوّت → الفلوس اتنقلت لحساب «الخزنة الرئيسية»
الإيداع البنكي اتأكّد → الفلوس بقت في البنك
```
تلات أكشنز، تلات قيود، وكل قيد **لازم يفضّي** الحساب اللي قبله. لو ما فضّاهوش،
يبقى فيه فلوس واقفة في حساب ومحدش واخد باله.
---
## ليه الحكاية دي مهمة (اللي كان بيحصل قبل كده)
الخزائن الفرعية كانت مربوطة في دليل الحسابات بصناديق **العملات الأجنبية**:
| الخزنة | كانت بتنزل في |
|---|---|
| خزنة الأنشطة الرياضية | `12060102` الصندوق بالدولار |
| خزنة العضويات | `12060103` الصندوق باليورو |
يعني كل جنيه اتحصّل على المكتب نزل في صندوق بالعملة الأجنبية. وقت الكتابة كان فيه
**٩٧٢٬٧٩١ جنيه** قاعدين هناك.
وأسوأ من كده: قيد التسوية كان بيقول «مدين الخزنة الرئيسية / دائن حساب الخزنة الفرعية»،
بس «حساب الخزنة الفرعية» كان **مؤشر واحد لكل خزائن النادي**، ومش مربوط أصلًا. فالتسوية
كانت هتنزل على حساب **التحصيل ما نزلش فيه أصلًا** — القيد يتوازن، الشاشة تقول تمام،
والفلوس تتعدّ مرتين في الخزنة الرئيسية والصندوق بالدولار يبقى بالسالب.
الحل مش تظبيط الأرقام — الحل إن **الطرف التاني للقيد ما يتكتبش بالإيد أصلًا**، ده
اللي السلسلة بتعمله.
---
## مصطلحات
| المصطلح | المعنى بالبلدي |
|---|---|
| **السلسلة** (Chain) | الطريق اللي الفلوس بتمشي فيه. عندنا ٤: النقدية، الشيكات، مديونية الأعضاء، مستحقات الموردين. |
| **الخطوة** (Step) | محطة على الطريق. بتقول: الفلوس بتقعد فين، وبتفضّي أنهي حساب قبلها. |
| **الحساب الوسيط** (Clearing account) | حساب الفلوس بتعدّي منه مش بتقعد فيه. المفروض يفضى أول بأول. |
| **بتحجز فين** (Parks) | الحساب اللي الخطوة دي بتسيب الفلوس فيه. |
| **بتفضّي إيه** (Relieves) | الحساب اللي الخطوة دي بتشيل منه الفلوس. |
| **نوع الحركة** (Hop type) | **نقل** = فلوس بتتنقل من بيت لبيت. **سداد** = الطرفين بينقصوا (دفع لمورد). **استحقاق** = الطرفين بيزيدوا (فاتورة مورد). |
| **مرحلة بداية** (Entry point) | من هنا الفلوس بتدخل السلسلة. |
| **مرحلة نهاية** (Terminal) | هنا الفلوس بتستقر، مفيش خطوة بعدها. |
| **مسار بديل** (Branch) | مش الطريق الطبيعي: شيك ارتد، دين اتسقط. |
---
## الفكرة اللي بتمنع الكسر
الخطوة **ما بتكتبش** الحساب اللي هتفضّيه. بتقول: «أنا بفضّي المرحلة اللي قبلي».
والسيستم بيروح للمرحلة دي وبيسأل نفس السؤال اللي سألته وقت التحصيل، بنفس بيانات
المستند.
يعني: **الطرف الدائن في قيد التسوية هو حرفيًا نفس التعبير اللي حدّد الطرف المدين وقت
التحصيل.** مش قاعدتين اتصادف إنهم متفقين — تعبير واحد اتحسب مرتين. عشان كده مستحيل
تكتب سلسلة ما تتقفلش.
### الحسابات اللي مش ممكن تتكتب مرة واحدة
«حساب الخزنة اللي حصّلت» مختلف كل مرة. عشان كده الخطوة بتقول **إزاي تلاقي** الحساب،
مش **أنهي حساب**:
| الطريقة | يعني إيه |
|---|---|
| `treasury_of_txn` | حساب الخزنة اللي في المستند |
| `treasury_source` | حساب الخزنة المحوِّلة (في التسوية) |
| `treasury_target` | حساب الخزنة المستقبِلة |
| `bank_of_txn` | حساب البنك اللي في إذن الإيداع |
| `fixed_account` | حساب ثابت محدد |
| `stream_pointer` | مؤشر من شاشة توزيع المبالغ (`ar:control@accrual`) |
> المؤشر بياخد `@مرحلة` لأن نفس المصدر بيدّي حساب مختلف حسب المرحلة: `ar:control`
> بيدّي حساب المدينين وقت الاستحقاق وحساب الإعدام وقت الإسقاط.
---
## السلاسل الأربعة
### ١. دورة النقدية — `treasury:cash_lifecycle`
| # | الخطوة | بتفضّي | بتحجز في | مين بيرحّلها |
|---|---|---|---|---|
| ١ | التحصيل في الخزنة | — | حساب الخزنة | محرك التوزيع |
| ٢ | تسوية الوردية | حساب الخزنة المحوِّلة | حساب الخزنة المستقبِلة | **السلسلة** |
| ٣ | الإيداع البنكي | حساب الخزنة اللي في الإذن | حساب البنك | **السلسلة** |
دي السلسلة الوحيدة اللي السلسلة نفسها بترحّلها. الباقي خدمات موجودة بترحّلها،
والسلسلة بتعرّفها عشان الشاشة تعرض الطريق كامل والفحص يتأكد إن الطرفين متفقين.
### ٢. دورة الشيكات المستلمة — `instrument:cheque_receivable`
الشيك مش فلوس ساعة ما تستلمه. بيعدّي: أوراق قبض ← تحت التحصيل ← البنك، أو يرتد
ويرجع دين على العضو.
### ٣. دورة مديونية الأعضاء — `receivable:member`
استحقاق ← تحصيل (أو إسقاط). التحصيل هنا **مش إيراد تاني** — الإيراد اتسجّل وقت
الاستحقاق، والتحصيل تبديل دين بفلوس.
### ٤. دورة مستحقات الموردين — `payable:vendor`
اعتماد الفاتورة (استحقاق) ← السداد. السداد **مش مصروف تاني** — هو إطفاء التزام:
الدين بينقص والفلوس بتنقص، عشان كده نوعه «سداد» مش «نقل».
---
## الشاشات
### مسار الفلوس — `/accounting/posting-chains`
كل سلسلة وحالتها، والفلوس الواقفة فيها، وأقدم مبلغ. وفوق: الخزائن اللي ملهاش حساب،
والفلوس اللي محتاجة تصحيح تبويب، والخطوات اللي وقعت.
### فين الفلوس دلوقتي — `/accounting/posting-chains/parked`
**دي الشاشة اللي بتكشف السلسلة المكسورة من غير ما تفتح دفتر الأستاذ.** كل حساب وسيط،
رصيده الواقف، وأعمار المبالغ.
العمر محسوب **الأقدم يخرج الأول (FIFO)**: بنمشي على حركات الحساب بالترتيب، وكل مبلغ
خارج بياكل من أقدم المبالغ الداخلة. اللي فاضل في الآخر هو اللي **فعلًا** لسه واقف —
بتاريخه ومستنده. مش مجرد رصيد إجمالي.
> **مثال:** خزنة دخلها ٥٠٠٠ (من ٤٠ يوم) + ٣٠٠٠ (من ٩ أيام) + ٢٠٠٠ (إمبارح)، واتسوّى
> منها ٦٠٠٠. الرصيد ٤٠٠٠ — بس مش أي ٤٠٠٠: التسوية أكلت الـ٥٠٠٠ كلها و١٠٠٠ من
> التانية، فاللي واقف ٢٠٠٠ عمرهم ٩ أيام و٢٠٠٠ عمرهم يوم.
### تصحيح التبويب — `/accounting/posting-chains/reclassification`
بيعرض الفلوس اللي نزلت في صناديق العملات الأجنبية، ويرحّل **قيد تصحيح** ينقلها
لحسابها الصح.
- **القيود القديمة ما بتتغيّرش.** تعديل قيد مرحّل مش تصحيح.
- **مش ممكن يتظبط مرتين** — القيد بيتوسم على مستوى السطر، والشاشة بتخصم اللي اتنقل.
- **لو اتعكس، الشغل بيرجع يظهر تاني** — فينفع تعيده.
- الفلوس الأجنبية الحقيقية ما بتتلمسش: التطابق بيمشي على السطور اللي وراها **دفعة**
مكتوب فيها **خزنة**.
---
## الفحص الذاتي
فحص السلسلة بيقع لو:
- **طرفا الحركة نفس الحساب** — القيد هيتوازن ومش هينقل حاجة. ده بالظبط شكل المشكلة
القديمة، وهو **خطأ** مش تحذير.
- **نوع الحركة مش مناسب للحسابات** — «نقل» بين أصل والتزام بيحطّ الطرفين على نفس
الجانب.
- **مرحلة مش بداية ومش بتفضّي حاجة** — الفلوس هتظهر من العدم.
- **حساب رئيسي أو موقوف** — الترحيل بيرفضه.
- **مؤشر مش مربوط**، أو **خزنة ملهاش حساب**، أو **مفيش حساب بنكي معرّف**.
ونفس الفحوصات بتشتغل **وقت الترحيل** كمان، فمستحيل حركة تعدي بسبب حاجة الشاشة كانت
تقدر تشوفها.
---
## سجل الحركات — `posting_chain_hops`
كل خطوة اتنفّذت، ونتيجتها. مهم لأن الخطوة اللي **فشلت** مش هتبان في أي مكان تاني:
الفلوس هتفضل واقفة ومحدش يعرف هل حد ما سوّاش، ولا القيد وقع.
الجدول ده كمان بيمنع الترحيل مرتين: لو نفس المستند اتبعت تاني (ريتراي، أو ضغطة
دبل)، الخطوة بتترد من غير ما تعمل قيد جديد.
---
## ملفات مهمة
| الملف | مسؤول عن |
|---|---|
| `Services/Chain/ChainRegistry.php` | قراءة السلاسل وفحص صحتها |
| `Services/Chain/ChainAccountResolver.php` | تحويل «إزاي تلاقي الحساب» لحساب فعلي |
| `Services/Chain/ChainPostingService.php` | ترحيل الخطوة الواحدة |
| `Services/Chain/ClearingReconciliationService.php` | الأرصدة الواقفة وأعمارها (FIFO) |
| `Services/TreasuryAccountService.php` | حساب كل خزنة + تصحيح التبويب |
| `database/seeds/Phase_108_001_seed_posting_chains.php` | تعريف السلاسل الأربعة |
---
## حاجة لسه ناقصة
- **الحسابات البنكية مش معرّفة** — جدول `bank_accounts` فاضي، فخطوة الإيداع البنكي
مش هتلاقي حساب تنزل فيه. الفحص بيقول كده صراحة. عرّف الحساب البنكي واربطه بحسابه
في الدليل وهتبقى السلسلة سليمة.
- **٢٨ مصدر لسه `needs_code`** — مش بيبعتوا أي حدث، فالسلاسل اللي بتعتمد عليهم مش
هتوصلها فلوس. باين في «مركز التوصيل».
# معالج توزيع المبالغ — دليل الاستخدام
> **الغرض:** تعرف إزاي تمسك **أي مبلغ** في النادي — عضوية، اشتراك، حجز، أكاديمية،
> إيجار محل، غرامة، مشتريات، رواتب — وتقول: النسبة دي تروح للكود ده، والنسبة دي
> للكود ده، والباقي فين. لمصدر واحد، أو لفئة كاملة، أو للسيستم كله. من غير مبرمج.
---
## الفكرة في سطرين
اكتب التقسيمة **مرة واحدة**، وقول هي تحكم إيه. الشاشة بتوريك **الباقي غير الموزَّع**
وإنت بتقسّم لحظة بلحظة، وبتوريك القيد الناتج قبل ما تحفظ. وبند "الباقي" في الآخر
بياخد اللي فضل مهما كان، فالقيد بيفضل متوازن ١٠٠٪.
**النطاق (Scope) هو الفرق.** مش لازم تعيد نفس التقسيمة ٩٧ مرة — اختار "فئة
العضويات" مرة واحدة وهي تتكتب على الـ١١ مصدر.
---
## مصطلحات هتقابلها
| المصطلح | المعنى بالبلدي |
|---|---|
| **مصدر الإيراد** (Stream) | نوع الفلوس. "قيمة العضوية"، "حجز ملعب"، "مصروف الأجور". في السيستم **٩٧ مصدر**. |
| **فئة الإيراد** (Category) | مجموعة مصادر من نفس النوع. **١٤ فئة**: العضويات، الاشتراكات، الأنشطة، المنشآت، الأكاديميات، الإيجارات، المبيعات، الغرامات، الانتقالات، الخزينة، المشتريات، الأجور، الإعدام، أخرى. |
| **النطاق** (Scope) | التقسيمة دي هتحكم إيه: مصدر واحد / فئة كاملة / مصادر أختارها / كل اللي مش موصّل / كل حاجة. |
| **المرحلة** (Stage) | امتى بيتعمل القيد. **استحقاق** = نطالب. **تحصيل** = نقبض. **صرف** = ندفع. **ارتجاع** / **إعدام** / **تحويل داخلي**. |
| **اتجاه الحركة** (Direction) | **تحصيل** = بنود التقسيمة دائنة (فلوس داخلة). **صرف** = بنودها مدينة (فلوس خارجة). |
| **القاعدة** (Rule) | ورقة التعليمات: "المبلغ ده يتوزّع كذا". لها إصدارات وتاريخ سريان. |
| **الباقي** (Remainder) | البند الأخير — بياخد اللي فضل + كسور القرش. إجباري. |
| **الصافي** (Net) | المبلغ بعد فصل الضريبة. التوزيع بيتم على الصافي مش على المحصَّل. |
| **حساب رئيسي** (Header) | حساب بيتجمّع تحته حسابات. **القيد ما بينزلش عليه أبدًا** — والسيستم بيرفض. |
---
## ١. تفتح الويزارد إزاي
**المسار:** المحاسبة ← محرك القيود (`/accounting/revenue-mapping`)
| من فين | بيفتح إيه |
|---|---|
| زرار **وزّع على مجموعة** فوق | الويزارد على **فئة كاملة** — ده اللي هتستخدمه أغلب الوقت |
| اسم المرحلة جنب أي مصدر في الجدول | الويزارد على **المصدر ده** في المرحلة دي |
| زرار الترس ⚙ | الوضع المتقدّم (كل الخيارات، أعقد) |
| **مركز التوصيل** ← قسّم على حسابات | نفس الويزارد للمصدر ده |
---
## ٢. الخطوة ١ — التقسيمة دي هتحكم إيه
خمس اختيارات، كل واحد كارت تضغط عليه:
| النطاق | يعني إيه | امتى تستخدمه |
|---|---|---|
| **المصدر ده بس** | مصدر واحد | تقسيمة خاصة بحاجة واحدة |
| **كل فئة إيراد** | كل المصادر من نفس النوع | **الأكتر استخدامًا** — "كل إيرادات الأكاديميات تتوزّع كده" |
| **مصادر أختارها** | تعلّم بإيدك من قايمة الـ٩٧ | مجموعة مش متجانسة |
| **كل اللي لسه مش موصّل** | أي مصدر ما لوش قاعدة | تلمّ الناقص كله دفعة واحدة |
| **كل مصادر الإيراد** | كل حاجة في السيستم | سياسة عامة للنادي |
لما تختار **فئة**، هتطلع لك كل الفئات وجنب كل واحدة عدد المصادر وكام واحد منها لسه
غير موصّل — مثال: *العضويات — ١١ مصدر · كلها موصّلة* أو *المنشآت والملاعب — ٩ مصادر
· ٦ غير موصّل*.
لما تختار **مصادر أختارها**، فيه فلتر بالاسم، وزرار **اختار الفئة كلها** جنب كل
عنوان فئة، وزرار **مسح الكل**. علّم اللي عايزه واضغط **حمّل المختار**.
### المرحلة
اختار المرحلة (تحصيل / استحقاق / صرف / …). العلامة ✓ معناها إن فيه قاعدة شغالة
عليها. **المصادر اللي المرحلة دي ما تنطبقش عليها بتتخطّى تلقائيًا** — يعني لو
اخترت "تحصيل" على فئة الأجور، السيستم هيقول لك "اتخطّى — المرحلة دي ما تنطبقش"
بدل ما يكتب قيد غلط.
### فئة العضو
- **كل الأعضاء — قاعدة عامة** → التوزيع يطبّق على أي حد.
- **عضو عامل (١٢٠)** → التوزيع ده على العضو العامل **بس**.
> **القاعدة الأخص بتغلب العامة تلقائيًا.** لو عملت قاعدة عامة وقاعدة للعضو العامل،
> لما عضو عامل يدفع السيستم يمشي على بتاعت العضو العامل، وأي حد تاني على العامة.
> **الترتيب:** فئة العضو (٤) > الفرع (٢) > طريقة الدفع (١). مش محتاج تعمل حاجة
> عشان ده يحصل. الرقم بين القوسين هو عدد الأعضاء الفعليين في الفئة.
### الشريط الأزرق
تحت خالص شريط بيقول: **هتتطبّق على ١١ قاعدة قيد — حركة تحصيل**. اضغط **اعرض
القايمة** تشوف بالظبط كل مصدر ومرحلته، والمتخطّى ليه اتخطّى.
### اتجاه الحركة
لو النطاق **مصدر واحد**، تحت الشريط هتلاقي: *اتجاه الحركة لـ… : تحصيل (البنود
دائنة)* وجنبه **غيّره لـ صرف**. الاتجاه بيحدد أنواع البنود المتاحة:
- **تحصيل** → إيراد / إيراد مؤجل / تحصيل لحساب الغير / خصم من الإيراد / تسوية ذمم مدينة
- **صرف** → مصروف / مصروف مقدّم / أصل ثابت / مخزون / تسوية ذمم دائنة / إعدام
تغيير الاتجاه **ما بيمسّش** القواعد القديمة ولا القيود المرحّلة — بيغيّر الافتراضي
للقواعد الجديدة بس.
> **مهم:** مينفعش تحط تقسيمة واحدة على نطاق فيه مصادر تحصيل ومصادر صرف مع بعض.
> السيستم هيرفض ويقول لك قسّمهم على دفعتين — لأن نفس البنود ما تنفعش للاتنين.
---
## ٣. الخطوة ٢ — المبلغ اللي هنوزّعه
**مبلغ مرجعي للحساب** — الرقم ده **للتوضيح بس**. السيستم بيملاه لك بمتوسط اللي
المصدر ده حصّله فعلًا. إنت بتغيّره عشان تشوف الأرقام بعينك. النسب بتتطبّق على أي
مبلغ فعلي، مش على الرقم ده.
**المعالجة الضريبية** — لو الخدمة عليها ض.ق.م:
- الضريبة **بتتفصل الأول** وبتروح لحساب التزام ضريبي (مش إيراد).
- التوزيع بيتم على **الصافي**.
**مثال حقيقي محسوب:** ١٥٠٬٠٠٠ بضريبة ١٤٪ شاملة →
صافي **١٣١٬٥٧٨٫٩٥** + ضريبة **١٨٬٤٢١٫٠٥**. ٢٠٪ هتاخد **٢٦٬٣١٥٫٧٩**
(٢٠٪ من الصافي، مش من الـ١٥٠ ألف).
**مركز التكلفة** و**الفرع** — اختياريين. قاعدة لفرع معيّن بتغلب القاعدة العامة.
---
## ٤. الخطوة ٣ — اقتطع الأجزاء
فوق خالص:
```
الباقي غير الموزَّع 150,000.00
[████████████████████████████████████████████]
```
الرقم ده بيتحدّث **مع كل حرف بتكتبه**، والشريط الملوّن بيوريك كل جزء بلونه وحجمه
الحقيقي.
اضغط **+ اقتطع جزء**:
| الحقل | تعمل بيه إيه |
|---|---|
| **الطريقة** | **نسبة %** أو **مبلغ ثابت** |
| **القيمة** | ٢٠ (يعني ٢٠٪) أو ٥٠٠٠ (يعني ٥٬٠٠٠ جنيه) |
| **يروح لحساب** | اكتب حرفين من الكود أو الاسم. مش موجود؟ اضغط **+ حساب جديد** |
| **نوع البند** | حسب الاتجاه (جدول تحت) |
| **الوصف** | اللي يظهر في القيد. اختياري. |
تحت كل كارت سطر بيقول بالظبط:
> ٢٠% من ١٥٠٬٠٠٠٫٠٠ · قبله **١٥٠٬٠٠٠٫٠٠** · بياخد **٣٠٬٠٠٠٫٠٠** · يفضل **١٢٠٬٠٠٠٫٠٠**
الأسهم ▲▼ بتحرّك الجزء. **حذف** بيشيله.
> **النسبة دايمًا من صافي المبلغ، مش من الباقي.** ٢٠٪ بعدين ٣٠٪ = ٥٠٪ من المبلغ.
> ده اللي أي محاسب بيقصده. **المبالغ الثابتة بتتخصم الأول**، وبعدين النسب بتتحسب
> على اللي فضل بعد الثابت.
### الخطوة ٤ — الباقي يروح لـ
سطر إجباري أخضر تحت. اختار الحساب اللي هياخد اللي فضل.
**ليه إجباري؟** عشان القيد يفضل متوازن مهما حصل. لو المبلغ اتغيّر أو كسور القرش ما
اتقسمتش بالظبط، البند ده بيبلع الفرق. السيستم بيرفض الحفظ من غيره.
---
## ٥. لوحة "القيد الناتج"
على الشمال، بتوريك بالظبط اللي هينزل الأستاذ العام قبل ما تحفظ:
| الحساب | مدين | دائن |
|---|---|---|
| النقدية / البنك | 150,000.00 | |
| ضريبة القيمة المضافة *(التزام)* | | 18,421.05 |
| ٤١٠١٠١ — صندوق النشاط الرياضي | | 26,315.79 |
| ٤١٠٥١٥ — إيرادات عضويات | | 39,473.69 |
| ٢٣٠٩٠١ — صندوق دعم المنشآت *(الباقي)* | | 65,789.47 |
| **الإجمالي** | **150,000.00** | **150,000.00** |
وتحتها **✓ القيد متوازن**، وسطر: *"نفس القيد ده هيتطبّق على ١١ قاعدة قيد."*
لو ظهر **✗ القيد غير متوازن** بالأحمر — **ما تحفظش**، راجع الأرقام.
**على حركة صرف** اللوحة بتنقلب: بنود التقسيمة تبقى **مدينة** والنقدية **دائنة**.
---
## ٦. الحفظ
**ساري اعتبارًا من** — التاريخ اللي التوزيع يبدأ منه.
**سبب التغيير** — رقم قرار مجلس الإدارة أو المذكرة. بيتسجّل في التاريخ.
الزرار بيقول: **حفظ وتفعيل على ١١ قاعدة**. لو أكتر من واحدة هيسألك تأكيد.
> **القيود اللي اترحّلت قبل التاريخ ده ما بتتغيّرش أبدًا.** الحفظ ما بيعدّلش القاعدة
> القديمة — بيعمل **إصدار جديد** ويوقف القديم. سؤال "القيد بتاع الشهر اللي فات كان
> بأي توزيع؟" له إجابة محفوظة.
**الحفظ كله أو ولا حاجة.** لو مصدر واحد في النطاق فيه مشكلة، السيستم بيرفض الدفعة
كلها وما بيكتبش ولا صف — عشان الشجرة ما تفضلش نص موصّلة.
---
## ٧. المثال الكامل: العضويات كلها
المطلوب: **٢٠٪ لصندوق النشاط الرياضي، ٣٠٪ لإيرادات العضويات، والباقي لصندوق دعم
المنشآت** — على كل إيرادات العضويات، للعضو العامل.
1. المحاسبة ← محرك القيود ← **وزّع على مجموعة**.
2. النطاق: **كل فئة إيراد** ← اختار **العضويات (١١ مصدر)**.
3. المرحلة: **تحصيل**. فئة العضو: **عضو عامل (١٢٠)**.
الشريط الأزرق: *"هتتطبّق على ١١ قاعدة قيد — حركة تحصيل · على عضو عامل بس"*.
4. المبلغ المرجعي: غيّره لـ **١٥٠٬٠٠٠**.
5. **+ اقتطع جزء** → نسبة **٢٠***صندوق النشاط الرياضي***إيراد**.
الباقي: **١٢٠٬٠٠٠٫٠٠**
6. **+ اقتطع جزء** → نسبة **٣٠***إيرادات العضويات***إيراد**.
الباقي: **٧٥٬٠٠٠٫٠٠**
7. المربع الأخضر: *صندوق دعم المنشآت***٧٥٬٠٠٠٫٠٠**
8. راجع القيد → **✓ القيد متوازن**
9. سبب التغيير → **حفظ وتفعيل على ١١ قاعدة** → تأكيد.
خلاص. أي عضو عامل يدفع أي نوع عضوية من الـ١١، الفلوس بتتقسم كده لوحدها.
**اتأكد:** غيّر المبلغ لـ ٢٠٠٬٠٠٠ → ٤٠٬٠٠٠ / ٦٠٬٠٠٠ / ١٠٠٬٠٠٠.
جرّب ٠٫٠٣ جنيه → ٠٫٠١ / ٠٫٠١ / ٠٫٠١ — لسه متوازن.
---
## ٨. أنواع البنود
### على حركة **تحصيل**
| النوع | استخدمه لما | نوع الحساب المطلوب |
|---|---|---|
| **إيراد** | الفلوس بتاعة النادي وكسبناها دلوقتي | إيراد |
| **تحصيل لحساب الغير** | الفلوس مش بتاعتنا (دمغة، اتحاد، تأمين) | التزام |
| **إيراد مؤجل** | قبضنا دلوقتي والخدمة على مدار السنة | التزام |
| **خصم من الإيراد** | خصومات ومردودات | إيراد أو مصروف |
| **تسوية ذمم مدينة** | تسوية مديونية عضو | أصل |
### على حركة **صرف**
| النوع | استخدمه لما | نوع الحساب المطلوب |
|---|---|---|
| **مصروف** | تكلفة اتحمّلناها دلوقتي | مصروف |
| **مصروف مقدَّم** | دفعنا مقدّم لخدمة جاية | أصل |
| **أصل ثابت** | شراء أصل | أصل |
| **مخزون** | استلام بضاعة | أصل |
| **تسوية ذمم دائنة** | سداد لمورد | التزام |
| **إعدام / إسقاط** | إسقاط مديونية | مصروف |
> **غلطة شائعة:** "رسوم اتحاد" أو "دمغة" تتحط **إيراد**. دي فلوس بتتحصّل لحساب جهة
> تانية — لو اتسجّلت إيراد، أرباح النادي تظهر أعلى من الحقيقة والضريبة تتحسب غلط.
> خليها **تحصيل لحساب الغير**.
**السيستم بيتأكد من ده بنفسه:** لو اخترت بند "إيراد" ووديته على حساب التزام، هيرفض
ويقول لك *"الحساب ٢١٠١٠١ نوعه liability ومش مناسب لبند إيراد"*.
---
## ٩. الإيراد المؤجل
لما تختار نوع البند **إيراد مؤجل**، بيفتح لك مربع أصفر:
- **يترحّل على كام شهر** — مثلًا ١٢ للاشتراك السنوي.
- **حساب الإيراد اللي يترحّل له** — البحث هنا بيفلتر حسابات الإيراد بس.
يعني: المبلغ يقعد التزام، وكل شهر جزء منه يتحوّل لإيراد. لو اخترت مؤجل ونسيت حساب
الترحيل، السيستم يرفض الحفظ.
---
## ١٠. الحساب مش موجود؟ اعمله من مكانك
جنب أي خانة "يروح لحساب" فيه **+ حساب جديد**:
1. **تحت أي حساب رئيسي؟** — اختار الأب.
2. **اسم الحساب** — مثلًا "صندوق دعم النشاط الرياضي".
3. **إنشاء وتحديد**.
السيستم بيحسب الكود التالي تحت الأب لوحده وبيحط الحساب في الخانة على طول.
---
## ١١. كل الحالات اللي السيستم بيرفضها
كلها مجرّبة ومتأكَّد منها، وكلها بترفض **قبل** ما يتكتب أي صف:
| الحالة | الرسالة |
|---|---|
| من غير بند باقي | لازم بند واحد اسمه "الباقي" |
| بندين باقي | مش ممكن أكتر من بند "باقي" واحد |
| مجموع النسب > ١٠٠٪ | مجموع النسب ١٢٠٪ — أكبر من ١٠٠٪ |
| نسبة صفر أو سالبة | النسبة لازم تكون أكبر من صفر |
| مبلغ ثابت صفر | المبلغ الثابت لازم يكون أكبر من صفر |
| **حساب رئيسي** | حساب رئيسي، والقيد ما بينزلش عليه |
| حساب مش موجود أو موقوف | الحساب رقم … مش موجود / موقوف أو مؤرشف |
| بند من غير حساب | البند ١: ما اخترتش حساب |
| نوع حساب مش مناسب للبند | الحساب … نوعه liability ومش مناسب لبند "إيراد" |
| بند صرف على حركة تحصيل | نوع البند مش مناسب لحركة تحصيل |
| **خلط تحصيل مع صرف في نطاق واحد** | قسّمهم على دفعتين |
| تقسيمة فاضية | أضف بندًا واحدًا على الأقل |
| نطاق مفيهوش أي مصدر | ما فيش أي مصدر مطابق للنطاق |
| تاريخ سريان غلط | تاريخ السريان غير صحيح |
| **تاريخ في فترة مقفولة** | واقع في فترة مقفولة (٢٠٢٦-٠٩) |
| مؤجل من غير حساب ترحيل | حدد حساب الإيراد اللي المؤجل هيترحّل له |
| مرحلة ما تنطبقش على الفئة | اتخطّى — المرحلة دي ما تنطبقش على الأجور |
---
## ١٢. أسئلة سريعة
**س: أقدر أعمل توزيع مختلف لكل فرع؟**
ج: أيوه — من الويزارد نفسه، خانة **الفرع**. الأخص بيغلب العام.
**س: وطريقة الدفع؟ لو دفع شيك بدل كاش؟**
ج: من الوضع المتقدّم (⚙). وبالمناسبة الشيك بينزل **أوراق قبض** مش البنك لحد ما
يتحصّل فعلًا — ده مظبوط تلقائيًا.
**س: لو غلطت وحفظت على ١١ مصدر؟**
ج: ادخل تاني بنفس النطاق، عدّل، احفظ. هيتعمل إصدار جديد ويوقف القديم على الـ١١
كلهم. القيود اللي نزلت قبل كده تفضل زي ما هي — وده الصح محاسبيًا.
**س: فين أشوف اللي موصّل واللي لأ؟**
ج: **مركز التوصيل**`/accounting/revenue-mapping/connections`. أو من الويزارد
نفسه: نطاق **كل اللي لسه مش موصّل** بيوريك العدد على طول.
**س: إزاي أتأكد إن التوزيع شغال فعلًا؟**
ج: شاشة **التشخيص** (`/accounting/revenue-mapping/diagnostics`) — بتوريك المصادر
اللي فيها مشكلة، وحساب مربوط على header، وأي قاعدة ناقصة بند الباقي.
**س: النادي فيه كام مصدر إيراد؟**
ج: **٩٧ مصدر** على **١٤ فئة**، بتغطي **٩٩ قاعدة قيد**. كلهم من نفس الويزارد.
---
*ملفات ذات صلة:*
*`docs/كيف-أوصّل-أي-إيراد.md` — سيناريوهات كاملة لكل نوع إيراد*
*`docs/دليل-المحاسبة-للاجتماع.md` — الصورة الكاملة للدورة المحاسبية*
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment