★ القاعدة الذهبية: افصل بين «مكان الفلوس» و«المسؤولية»
| المفهوم | المستوى | الغرض |
|---|---|---|
| الخزنة (Treasury) | لكل فرع | المكان اللي الفلوس بتعيش فيه فعلياً (= الخزنة الفيزيائية الواحدة في الفرع). حساب GL واحد للفرع. |
| الورديّة (Shift) | لكل كاشير | المساءلة الشخصية: فكّة افتتاحية + حصّل كام + عدّ كام + عجز/زيادة. |
الخلاصة: خزنة لكل فرع — مش لكل كاشير. والكاشير مسؤوليته بالورديّة، مش بحساب منفصل.
branch_id + treasury_id + user_id + الفكّة والمعدود والفرق (opening_float / counted_cash / over_short).1 ليه مش خزنة لكل كاشير؟
- فيزيائياً في خزنة واحدة في الفرع — حساب لكل كاشير = محاسبة وهمية مش مطابقة للواقع.
- الكاشيرية بيتغيّروا (ورديات/إجازات/استقالات) → حساب GL لكل واحد = فوضى دفاتر بمرور الوقت.
- اللي محتاجه من الكاشير هو «إنت حصّلت كام وسلّمت كام» — ودي بتتحقق بالورديّة (Z-report)، مش بخزنة منفصلة.
2 السيناريو العملي عندك (3 فروع + كذا كاشير)
3 خزن (كل واحدة مربوطة بفرع):
كاش جدة (فرع جدة) · كاش الرياض (فرع الرياض) · كاش المدينة (فرع المدينة)
⟵ الكاش يروح «خزنة جدة» · يقفل: عدّ 3500 → مطابق ✓
الكاشير سارة (جدة): نفس الوقت ورديّة تانية بفكّة 300 → تحصّل 2000
⟵ برضه «خزنة جدة» · تقفل: عدّ 2280 → عجز 20 (تُنسب لسارة)
رصيد «خزنة جدة» آخر اليوم = 500 + 300 + 3000 + 2000 = 5800 (الفكّات + كل التحصيلات)
3 نقطة محتاجة قرارك ⚠️
عندك خزنة فيزيائية واحدة لكل فرع. الكاشيرية في نفس الفرع — إزاي يتعاملوا معاها؟
(أ) كل كاشير له دُرج/فكّة خاصة وتسويته لوحده موصى به ✅
كل كاشير تراي/فكّة منفصلة، يسوّي ورديّته لوحده. مساءلة دقيقة لكل كاشير — العجز/الزيادة بتتنسب للشخص. كله تحت خزنة GL واحدة للفرع.
(ب) كل الكاشيرية على نفس الدُرج
التسوية بتبقى على مستوى الفرع آخر اليوم مش لكل كاشير → مساءلة أضعف (مش هتعرف العجز من مين).
4 فين وإزاي تعمل الخزنة (جاهز دلوقتي)
- افتح الخزن ← تبويب «صناديق الكاش» ← «إضافة خزنة».
- الاسم «كاش جدة» + اختار الفرع = جدة + احفظ.
- النظام يربطها تلقائياً بـحساب GL فرعي تحت حساب الكاش (مفيش اختيار حسابات يدوي).
- كرّر لكل فرع.
5 الناقص + اللي هننفّذه
الناقص حالياً ❌
التحصيل لسه بيتوجّه حسب طريقة الدفع على مستوى الشركة (كاش → خزينة رئيسية واحدة للكل)، مش حسب فرع الكاشير. وكل الخزن الحالية فرعها «عامة».
خطة التنفيذ (على الموديل: خزنة/فرع + ورديّة/كاشير)
⚙️ Backend
- توجيه الكاش لخزنة فرع الكاشير تلقائياً (per-branch routing).
- ربط تحصيلات الورديّة بخزنة الفرع (
treasury_id). - حساب رصيد مستقل لكل خزنة فرع.
🎨 Frontend
- شاشة التحصيل تختار خزنة الفرع تلقائياً.
- عند فتح الورديّة: ربطها بخزنة الفرع.
- Z-report لكل ورديّة: فكّة + تحصيل + معدود + فرق.
→ الخطوة التالية
أكّد الخيار (أ) كل كاشير له فكّته وتسويته (الموصى به)، وأبدأ التنفيذ على الموديل ده:
الكاش لكل فرع · المساءلة لكل كاشير بالورديّة.