فحص تعارض المصالحConflict of interest check
قبل أن يجلس عميل محتمل مع محامٍ، وقبل تنشيط أي ملف، يبحث النظام في كل أطراف المكتب الحالية والسابقة والزوار وسوابق الموظفين عن تعارض محتمل، ويعرض النتائج على الشريك أو مسؤول التعارض ليقرر. تشابه الاسم وحده لا يرفض عميلًا ولا يُصدر قرارًا: هو معلومة للمراجعة.
بطاقة الميزة
| البند | القيمة |
|---|---|
| 1. اسم الميزة | فحص تعارض المصالح — Conflict of interest check |
| 2. المعرّف (Feature ID) | B16 |
| 3. مصدر المتطلب | دليل المطور ص31-32 (الميزة 4)، الوثيقة المعمارية: التطبيع وRapidFuzz، تقييم القرارات الهندسية: إلغاء دليل المطابقة المصوّر |
| 4. تصنيف المحتوى | متطلب وارد في الملفات أنواع التعارض وخطورتها الافتراضية، أوقات الفحص، التطبيع، المعرفات الدقيقة، شبكة العلاقات، سرية الفحص، القرار البشري. يحتاج اعتمادًا قانونيًا جدول الخطورة ومدد التبريد. اقتراح هندسي أوزان المطابقة. |
| الوحدة | الاستقبال والتعارض |
| الأدوار المعنية | شريك، مسؤول التعارض، محامٍ، سكرتارية |
| درجة الخطورة | حرجة |
| حالة الاعتماد | يحتاج اعتمادًا قانونيًا |
| المنصات المرتبطة | وزارة التجارة — واثق (بيانات السجل التجاري) |
5الهدف التجاري والمشكلة التي تعالجها
نظام المحاماة يمنع قبول وكالة ضد موكّل الخصم في النزاع نفسه أو المرتبط «بنفسه أو بواسطة محامٍ آخر» حتى بعد انتهاء الوكالة (دليل المطور ص31) يحتاج اعتمادًا قانونيًا؛ الفحص على مستوى المكتب كله.
6المجال القانوني المرتبط للمطوّر غير المتخصص
أنواع التعارض في الدليل (دليل المطور ص31) وخطورتها الافتراضية (كلها في جدول قابل للتعديل يحتاج اعتمادًا قانونيًا):
| النوع | الخطورة الافتراضية في الدليل | السند كما ورد |
|---|---|---|
| مباشر: الخصم موكّل حالي | منع | — |
| مثّلنا الخصم سابقًا في النزاع نفسه أو المرتبط | منع | المادة 15 كما ذكرها الدليل يحتاج اعتمادًا قانونيًا |
| جهة عمل سابقة لمحامٍ في المكتب ضمن مدة | منع | المادة 14 كما ذكرها الدليل يحتاج اعتمادًا قانونيًا |
| عقد جزئي سابق ضمن مدة | منع | المادة 14 يحتاج اعتمادًا قانونيًا |
| طرف مرتبط (شركة يملكها الموكّل، قريب) | يحتاج قرارًا | — |
| تعارض تجاري (متنافسان في صفقة) | يحتاج قرارًا | — |
| مصلحة شخصية (قرابة محامٍ بطرف) | إفصاح | — |
| تشابه اسم فقط | معلومة | — |
حتى «منع» في الجدول توصية للمراجع لا رفض آلي: النظام لا يرفض عميلًا ولا يرسل رسالة رفض من تلقاء نفسه. القرار مكتوب ومسبب من إنسان.
7المستخدمون والأدوار والصلاحيات
السكرتارية أو المحامي يطلب الفحص ويرى فقط «لا تطابق» أو «تطابق محتمل أُحيل للمراجعة». الشريك ومسؤول التعارض يرون التفاصيل ويقررون (دليل المطور ص32).
8شروط البدء والاعتماديات
B02 الموكّلون والأطراف والعلاقات الأطراف بالتطبيع والبصمات، Related Party، Staff Prior Engagement. خوارزمية فحص تعارض المصالح وتطبيع الأسماء والنصوص العربية.
9السيناريو الأساسي خطوة بخطوة
- الفحص يُطلق عند: حجز زيارة (بالأسماء)، فتح ملف (بالمعرفات الكاملة)، إضافة طرف، تعيين موظف جديد، وتغيّر بيانات طرف في ملف مفتوح (دليل المطور ص31).
- تطبيع الأسماء والبحث في: أطراف الملفات المفتوحة والمغلقة، الزوار، سوابق الموظفين، ملاك الشركات من وزارة التجارة — واثق (بيانات السجل التجاري) عند توفرها.
- مطابقة دقيقة بالمعرّف (بصمة HMAC) = «مؤكد» بغض النظر عن الاسم.
- مطابقة تقريبية للاسم بدرجة 0–100 وعتبة من الإعداد، وعلاقات حتى قفزتين.
- كل نتيجة
Conflict Hitبسبب المطابقة والدرجة والخطورة المقترحة. - المراجع يقرر: لا تعارض / قبول بشروط (ينشئ حاجزًا B06 فريق الملف وحواجز المعلومات) / اعتذار. القرار مسبب ومقفل.
- الملف لا يصبح «نشطًا» إلا بفحص معتمد B03 ملف العمل القانوني.
10السيناريوهات البديلة والاستثناءات
تغيير القرار: فحص جديد؛ المعتمد لا يُعدّل (دليل المطور ص32). الاعتذار للعميل: رسالة مهذبة لا تذكر السبب B17 الزوار والاستقبال والمواعيد. تنازل الأطراف بموافقتهم: لا يُبنى زر قبل جواب قانوني (دليل المطور ص32) يحتاج اعتمادًا قانونيًا. تجاوز الشريك للبدء قبل اكتمال الفحص (زيارة): مسجل بسبب B17 الزوار والاستقبال والمواعيد.
11المدخلات والحقول
| الاسم العربي | الاسم البرمجي | النوع | إلزامي | التحقق | القيمة الافتراضية | مصدر البيانات |
|---|---|---|---|---|---|---|
| نوع الموضوع | subject_type | Select | نعم | زيارة / ملف / طرف جديد / موظف جديد | — | (دليل المطور ص32) |
| الموضوع | subject | Dynamic Link | نعم | — | — | المُطلِق |
| نفّذه / وقته | run_by / run_at | User / Datetime | تلقائي | — | — | الخادم |
| الحالة | status | Select | تلقائي | قيد الفحص / لا نتائج / نتائج للمراجعة / مقرر | — | — |
| القرار | decision | Select | عند المراجعة | لا تعارض / قبول بشروط / اعتذار | — | المراجع |
| سبب القرار | decision_reason | Text | نعم مع القرار | 30 حرفًا على الأقل افتراض تنفيذي | — | المراجع |
| قرره | decided_by | Link → User | تلقائي | شريك أو مسؤول تعارض | — | — |
| النتيجة: الاسم المفحوص | checked_name | Data | — | — | — | Conflict Hit |
| النتيجة: الطرف/الملف/الصفة | hit_party / hit_matter / hit_role | Link / Link / Data | — | — | — | Conflict Hit |
| النتيجة: سبب المطابقة | match_reason | Select | — | معرّف / اسم كامل / أول+عائلة / لاتيني / علاقة | — | الخوارزمية |
| النتيجة: الدرجة | score | Float | — | 0–100 | — | الخوارزمية |
| النتيجة: الخطورة المقترحة | severity | Select | — | منع / قرار / إفصاح / معلومة | — | Conflict Rule |
12المخرجات والإشعارات والسجلات والتقارير
قائمة مراجعة لمسؤول التعارض. إشعار فوري عند تعيين محامٍ جهة عمله السابقة خصم في ملف مفتوح (دليل المطور ص32). سجل قرارات.
13قواعد العمل بصيغة قابلة للتحويل إلى كود
RULE B16.1 exact id_hmac match -> match_reason "معرّف", score 100, "مؤكد"
RULE B16.2 name similarity alone -> severity at most "معلومة" unless rule table says otherwise; NEVER auto-decide
RULE B16.3 requester view: {status} only; details visible to Managing Partner / Conflict Officer
RULE B16.4 decision submitted -> immutable (submittable DocType); change = new check
RULE B16.5 decision "قبول بشروط" -> B06 wall for conflicted users
RULE B16.6 Legal Matter.status -> "نشط" requires decision in (لا تعارض, قبول بشروط)
RULE B16.7 party data change on open matter -> enqueue re-check14حالات السجل وانتقالاتها وشروطها
| من | إلى | الشرط |
|---|---|---|
| قيد الفحص | لا نتائج | لا تطابق فوق العتبة |
| قيد الفحص | نتائج للمراجعة | تطابق واحد على الأقل |
| لا نتائج / نتائج للمراجعة | مقرر | قرار مسبب من المراجع (حتى «لا نتائج» يحتاج تأكيد المراجع في الملفات افتراض تنفيذي) |
15نموذج البيانات والعلاقات والقيود والفهارس
Conflict Check 1 → n Conflict Hit؛ Conflict Rule؛ Related Party؛ Staff Prior Engagement. فهارس على normalized_name وبصمات المعرفات.
16DocTypes المطلوبة في Frappe
Conflict Check(submittable)،Conflict Hit،Related Party،Staff Prior Engagement(employee, party, relation, ended_on)،Conflict Rule(conflict_kind, severity, cooling_years, legal_basis) (دليل المطور ص32).
17الشاشات والعناصر والأزرار ورسائل الخطأ
شاشة المراجع: النتائج مرتبة بالخطورة ثم الدرجة، مع «لماذا تطابق؟» لكل سطر. شاشة الطالب: «تطابق محتمل أُحيل للمراجعة.» فقط.
18خدمات Backend ومسؤولية كل خدمة
legal_erp.conflicts.run(subject) في طابور short، legal_erp.conflicts.decide، الخوارزمية في Frappe بـ RapidFuzz (الوثيقة المعمارية).
19واجهات API الداخلية
POST /api/method/legal_erp.api.v1.conflicts.run
تشغيل فحص.
الصلاحية: سكرتارية، محامٍ، شريك.
{
"subject_type": "زيارة",
"names": [
"مُحمّد بن عبدالله التجريبي",
"شركة الاختبار المحدودة"
]
}{
"check": "CC-2026-0031",
"status": "نتائج للمراجعة"
}20الأحداث والمهام الخلفية والجدولة وإعادة المحاولة
إعادة فحص عند تغيّر بيانات الأطراف، وعند تعيين موظف. لا فحص دوري ثقيل بلا سبب اقتراح هندسي.
21التكاملات المرتبطة بالميزة وحدودها
وزارة التجارة — واثق (بيانات السجل التجاري) لملاك الشركات بعد الاعتماد يحتاج تحققًا أو موافقة رسمية.
22الأمن والخصوصية والتدقيق والاحتفاظ والحذف
الفحص نفسه سري (دليل المطور ص32): لا يكشف وجود ملفات لا يملك الطالب صلاحيتها. القرارات غير قابلة للحذف.
23حالات الاختبار
| المعرّف | النوع | السيناريو | النتيجة المتوقعة |
|---|---|---|---|
B16-T01 | قبول | «مُحمّد بن عبدالله العتيبي» مقابل «محمد عبد الله العتيبي» | تطابق (دليل المطور ص32). |
B16-T02 | قبول | معرّف مطابق باسم مختلف | مؤكد. |
B16-T03 | قبول | خصم كان موكّلًا في ملف مغلق قبل سنوات | يظهر. |
B16-T04 | قبول | تعيين محامٍ جهة عمله السابقة خصم في ملف مفتوح | تنبيه فوري. |
B16-T05 | أمني | الطالب يرى تفاصيل ملف ليس في فريقه | لا. |
B16-T06 | سلبي | تنشيط ملف دون قرار | يُمنع. |
B16-T07 | سلبي | تشابه اسم فقط | لا قرار آلي ولا رسالة رفض. |
24معايير القبول
- معايير الميزة 4 في الدليل ناجحة (دليل المطور ص32).
- لا قرار آلي من التشابه.
25تعريف الاكتمال (Definition of Done)
- كل قواعد العمل في هذه الصفحة منفذة في الخادم (Controller أو Service)، لا في الواجهة وحدها.
- حالات الاختبار المذكورة هنا مكتوبة اختباراتٍ آلية في إطار اختبار Frappe، وتنجح مع كل دفعة كود.
- اختبارات الصلاحيات تثبت أن مستخدمًا خارج فريق الملف لا يرى السجل في القائمة ولا برابطه المباشر ولا في البحث العام ولا في العدّادات.
- الحقول المخصصة والأدوار ومسارات الاعتماد مُصدَّرة في Fixtures التطبيق، وتظهر بعد تثبيت نظيف على موقع فارغ دون إعداد يدوي.
- لا تعديل في ملفات Frappe أو ERPNext.
- كل قيمة قانونية (مدة، نسبة، مبلغ، قائمة) محفوظة في إعداد قابل للتعديل، وموسومة بحالة اعتمادها.
- نصوص الواجهة ورسائل الخطأ بالعربية، وتخبر المستخدم بما يفعله.
- معايير القبول في هذه الصفحة مُتحقق منها ومسجلة في مصفوفة التتبع.
26القرارات المفتوحة والمخاطر والاعتمادات المطلوبة
جدول الخطورة ومدد التبريد والمواد يحتاج اعتمادًا قانونيًا (OD-03). زر التنازل مؤجل.