فريق الملف وحواجز المعلوماتMatter team and ethical walls
الفريق هو مفتاح الوصول: من في الفريق يرى الملف. حاجز المعلومات ethical-wall يمنع شخصًا بعينه حتى لو كان شريكًا في المكتب، ويُنشأ تلقائيًا عند قبول ملف بشروط بعد فحص التعارض.
بطاقة الميزة
| البند | القيمة |
|---|---|
| 1. اسم الميزة | فريق الملف وحواجز المعلومات — Matter team and ethical walls |
| 2. المعرّف (Feature ID) | B06 |
| 3. مصدر المتطلب | دليل الميزة 1 ص10، 12، دليل المطور ص15، 32، الوثيقة المعمارية: الأدوار والصلاحيات |
| 4. تصنيف المحتوى | متطلب وارد في الملفات جدول الفريق والأدوار داخله وحاجز المعلومات عند القبول بشروط. اقتراح هندسي سجل تاريخي لعضوية الفريق. |
| الوحدة | المنصة والصلاحيات |
| الأدوار المعنية | شريك، محامٍ، مسؤول التعارض |
| درجة الخطورة | حرجة |
| حالة الاعتماد | معتمد في الوثائق |
| المنصات المرتبطة | لا توجد |
5الهدف التجاري والمشكلة التي تعالجها
منع اطلاع محامٍ له علاقة سابقة بالخصم على أسرار الملف، وإثبات ذلك عند المساءلة (دليل المطور ص32).
6المجال القانوني المرتبط للمطوّر غير المتخصص
نظام المحاماة يمنع قبول وكالة ضد موكّل سابق في النزاع نفسه أو المرتبط «بنفسه أو بواسطة محامٍ آخر» (دليل المطور ص31)، فالتعارض على مستوى المكتب. حين يقبل الشريك ملفًا رغم علاقة، الحاجز إجراء تنظيمي داخلي يحتاج اعتمادًا قانونيًا: لا يُعرض كضمان قانوني بأن التعارض زال.
7المستخدمون والأدوار والصلاحيات
المحامي المسؤول يضيف ويزيل أعضاء الفريق. الشريك ومسؤول التعارض ينشئون الحاجز. المحجوب لا يرى الملف ولا يعرف سبب الحجب.
8شروط البدء والاعتماديات
B01 المستخدمون والأدوار والصلاحيات وB03 ملف العمل القانوني، وB16 فحص تعارض المصالح لإنشاء الحاجز من القرار.
9السيناريو الأساسي خطوة بخطوة
- المحامي المسؤول يضيف عضوًا بدور داخل الفريق: محامٍ مسؤول، محامٍ مساعد، متدرب، مساعد إداري (دليل الميزة 1 ص10).
- يُسجل تاريخ الإضافة ومن أضاف في
Matter Team History. - عند قرار «قبول بشروط» في B16 فحص تعارض المصالح يُضاف المحامي ذو العلاقة إلى
blocked_usersتلقائيًا. - المحجوب يُزال من الفريق إن كان فيه، ولا يمكن إضافته ما دام الحاجز قائمًا.
- تظهر للفريق شارة «ملف بحاجز معلومات» دون اسم المحجوب إلا للشريك.
10السيناريوهات البديلة والاستثناءات
المسؤول يغادر: لا يُحفظ الملف بلا مسؤول؛ يُطلب تعيين بديل قبل تعطيل الحساب. رفع الحاجز: للشريك فقط بسبب مكتوب ويبقى في السجل. المحجوب يطلب الملف بالبحث: لا نتيجة.
11المدخلات والحقول
| الاسم العربي | الاسم البرمجي | النوع | إلزامي | التحقق | القيمة الافتراضية | مصدر البيانات |
|---|---|---|---|---|---|---|
| المستخدم | user | Link → User | نعم | مفعّل وغير محجوب | — | المسؤول |
| الدور في الفريق | team_role | Select | نعم | محامٍ مسؤول / محامٍ مساعد / متدرب / مساعد إداري | — | (دليل الميزة 1 ص10) |
| من تاريخ | from_date | Date | تلقائي | — | اليوم | الخادم |
| سبب الحجب | wall_reason | Small Text | نعم للحاجز | — | — | قرار التعارض |
| فحص التعارض المصدر | conflict_check | Link → Conflict Check | لا | — | — | B16 فحص تعارض المصالح |
12المخرجات والإشعارات والسجلات والتقارير
سجل تاريخي لكل تغيير في الفريق. تقرير الحواجز القائمة للشريك.
13قواعد العمل بصيغة قابلة للتحويل إلى كود
RULE B06.1 see B03.1/B03.2 (one responsible, unique users)
RULE B06.2 user in blocked_users -> cannot be added to team; save blocked
RULE B06.3 Conflict decision "قبول بشروط" -> add conflicted lawyer(s) to blocked_users, remove from team
RULE B06.4 removing a wall -> Managing Partner only + reason; logged
RULE B06.5 has_permission checks blocked_users before team14حالات السجل وانتقالاتها وشروطها
الحاجز: قائم / مرفوع (بسجل).
15نموذج البيانات والعلاقات والقيود والفهارس
Matter Team Member (فرعي)، Matter Wall (فرعي: user, reason, conflict_check, created_by)، Matter Team History (سجل غير قابل للتعديل).
16DocTypes المطلوبة في Frappe
Matter Team Member،Matter Wall،Matter Team Historyاقتراح هندسي.
17الشاشات والعناصر والأزرار ورسائل الخطأ
تبويب «الفريق والوصول»: جدول الفريق، قسم الحواجز (للشريك)، والسجل. رسالة: «هذا المستخدم محجوب عن الملف بقرار تعارض ولا يمكن إضافته.»
18خدمات Backend ومسؤولية كل خدمة
legal_erp.matters.team.apply_wall(conflict_check)، remove_wall(matter, user, reason).
19واجهات API الداخلية
POST /api/method/legal_erp.api.v1.matters.remove_wall
رفع حاجز.
الصلاحية: الشريك فقط.
{
"matter": "MAT-2026-00007",
"user": "lawyer.b@example.test",
"reason": "انتهاء علاقة العمل منذ أكثر من المدة المحددة بعد مراجعة قانونية"
}{
"removed": true
}20الأحداث والمهام الخلفية والجدولة وإعادة المحاولة
لا ينطبق على هذه الميزة.
21التكاملات المرتبطة بالميزة وحدودها
لا ينطبق على هذه الميزة.
22الأمن والخصوصية والتدقيق والاحتفاظ والحذف
قرارات الحجب ورفعه في سجل غير قابل للحذف. اسم المحجوب لا يظهر لغير الشريك ومسؤول التعارض.
23حالات الاختبار
| المعرّف | النوع | السيناريو | النتيجة المتوقعة |
|---|---|---|---|
B06-T01 | طبيعي | قبول بشروط لمحامٍ له علاقة | يُحجب ويُزال من الفريق. |
B06-T02 | سلبي | إضافة المحجوب إلى الفريق | يُمنع. |
B06-T03 | صلاحيات | المحجوب يفتح رابط الملف | لا صلاحية. |
B06-T04 | صلاحيات | المحامي المسؤول يرفع الحاجز | يُمنع؛ للشريك فقط. |
24معايير القبول
- الحاجز يتقدم على الفريق في كل نقاط الوصول.
- كل تغيير في الفريق مسجل.
25تعريف الاكتمال (Definition of Done)
- كل قواعد العمل في هذه الصفحة منفذة في الخادم (Controller أو Service)، لا في الواجهة وحدها.
- حالات الاختبار المذكورة هنا مكتوبة اختباراتٍ آلية في إطار اختبار Frappe، وتنجح مع كل دفعة كود.
- اختبارات الصلاحيات تثبت أن مستخدمًا خارج فريق الملف لا يرى السجل في القائمة ولا برابطه المباشر ولا في البحث العام ولا في العدّادات.
- الحقول المخصصة والأدوار ومسارات الاعتماد مُصدَّرة في Fixtures التطبيق، وتظهر بعد تثبيت نظيف على موقع فارغ دون إعداد يدوي.
- لا تعديل في ملفات Frappe أو ERPNext.
- كل قيمة قانونية (مدة، نسبة، مبلغ، قائمة) محفوظة في إعداد قابل للتعديل، وموسومة بحالة اعتمادها.
- نصوص الواجهة ورسائل الخطأ بالعربية، وتخبر المستخدم بما يفعله.
- معايير القبول في هذه الصفحة مُتحقق منها ومسجلة في مصفوفة التتبع.
26القرارات المفتوحة والمخاطر والاعتمادات المطلوبة
هل يُحجب المتدرب أو المساعد الإداري بالقواعد نفسها؟ افتراض تنفيذي نعم.