خزنة كاش لكل فرع — اللوجيك الكامل + الإعداد + طريقة العمل

Moon ERP — وحدة المختبر (LIS) · مناقشة الموديل قبل التنفيذ

القاعدة الذهبية: افصل بين «مكان الفلوس» و«المسؤولية»

المفهومالمستوىالغرض
الخزنة (Treasury)لكل فرعالمكان اللي الفلوس بتعيش فيه فعلياً (= الخزنة الفيزيائية الواحدة في الفرع). حساب GL واحد للفرع.
الورديّة (Shift)لكل كاشيرالمساءلة الشخصية: فكّة افتتاحية + حصّل كام + عدّ كام + عجز/زيادة.

الخلاصة: خزنة لكل فرع — مش لكل كاشير. والكاشير مسؤوليته بالورديّة، مش بحساب منفصل.

الموديل عندنا بيدعم ده فعلاً: وردية الكاشير عندها branch_id + treasury_id + user_id + الفكّة والمعدود والفرق (opening_float / counted_cash / over_short).

1 ليه مش خزنة لكل كاشير؟

2 السيناريو العملي عندك (3 فروع + كذا كاشير)

3 خزن (كل واحدة مربوطة بفرع):

كاش جدة (فرع جدة) · كاش الرياض (فرع الرياض) · كاش المدينة (فرع المدينة)

الكاشير أحمد (جدة): يفتح ورديّة بفكّة 500 → يحصّل 3000 كاش
  ⟵ الكاش يروح «خزنة جدة» · يقفل: عدّ 3500 → مطابق ✓

الكاشير سارة (جدة): نفس الوقت ورديّة تانية بفكّة 300 → تحصّل 2000
  ⟵ برضه «خزنة جدة» · تقفل: عدّ 2280 → عجز 20 (تُنسب لسارة)

رصيد «خزنة جدة» آخر اليوم = 500 + 300 + 3000 + 2000 = 5800 (الفكّات + كل التحصيلات)

كل كاشير مسؤول عن ورديّته (العجز/الزيادة بتتنسب له)، بس الفلوس كلها في خزنة الفرع الواحدة.

3 نقطة محتاجة قرارك ⚠️

عندك خزنة فيزيائية واحدة لكل فرع. الكاشيرية في نفس الفرع — إزاي يتعاملوا معاها؟

(أ) كل كاشير له دُرج/فكّة خاصة وتسويته لوحده موصى به ✅

كل كاشير تراي/فكّة منفصلة، يسوّي ورديّته لوحده. مساءلة دقيقة لكل كاشير — العجز/الزيادة بتتنسب للشخص. كله تحت خزنة GL واحدة للفرع.

(ب) كل الكاشيرية على نفس الدُرج

التسوية بتبقى على مستوى الفرع آخر اليوم مش لكل كاشير → مساءلة أضعف (مش هتعرف العجز من مين).

4 فين وإزاي تعمل الخزنة (جاهز دلوقتي)

/lab/treasuries → «الخزن» (صلاحية lis.settings)
  1. افتح الخزن ← تبويب «صناديق الكاش» ← «إضافة خزنة».
  2. الاسم «كاش جدة» + اختار الفرع = جدة + احفظ.
  3. النظام يربطها تلقائياً بـحساب GL فرعي تحت حساب الكاش (مفيش اختيار حسابات يدوي).
  4. كرّر لكل فرع.
جاهز دلوقتي: إنشاء الخزنة + اختيار الفرع + الربط بالـ GL + ختم كل دفعة بفرع الكاشير (تقارير لكل فرع شغّالة).

5 الناقص + اللي هننفّذه

الناقص حالياً

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

خطة التنفيذ (على الموديل: خزنة/فرع + ورديّة/كاشير)

⚙️ Backend

  • توجيه الكاش لخزنة فرع الكاشير تلقائياً (per-branch routing).
  • ربط تحصيلات الورديّة بخزنة الفرع (treasury_id).
  • حساب رصيد مستقل لكل خزنة فرع.

🎨 Frontend

  • شاشة التحصيل تختار خزنة الفرع تلقائياً.
  • عند فتح الورديّة: ربطها بخزنة الفرع.
  • Z-report لكل ورديّة: فكّة + تحصيل + معدود + فرق.

الخطوة التالية

أكّد الخيار (أ) كل كاشير له فكّته وتسويته (الموصى به)، وأبدأ التنفيذ على الموديل ده:
الكاش لكل فرع · المساءلة لكل كاشير بالورديّة.