جاري تحميل النظام...

دمج الموكلين

الموكلون المحددون للدمج:

{{name}}
{{matterDetailItem&&matterDetailItem.title}} فرعي من: {{matterDetailItem.parentMatterTitle}}
{{matterDetailItem&&matterDetailItem.clientName}} ({{matterDetailItem.clientRole}}) {{matterDetailItem.opponent}} {{matterDetailItem&&matterTypeLabel(matterDetailItem.matterType)}} {{matterDetailItem.degree}} | {{matterDetailItem.caseType}} | رقم {{matterDetailItem.caseNumber}} / {{matterDetailItem.caseYear}}
{{matterDetailItem.subject}}
{{matterDetailItem.relatedMatterRelation||'مرتبط بـ'}}: {{matterDetailItem.relatedMatterTitle}}
{{s}}
لا توجد إجراءات مرتبطة بهذا الملف
{{it.type==='session'?'جلسة':'عمل'}} تاريخي {{it._histYear?'('+it._histYear+')':''}} {{it.type==='session'?'جلسة':it.type==='task'?'مهمة':'محضر'}} {{it.dD||it.deadline||it.date||'—'}} {{it.status}}
{{it.title||it.description||it.subject||it.caseTitle||'—'}}
{{it.details||it.court||it.category}}
{{it.opponent}}
القرار: {{it.sessionDecision}}
الجلسة القادمة: {{it.nextSessionDate}}
{{it.notes}}
{{it.doneNote||it.notes}}
{{it._matterTitle}}
{{matterDetailItem.relatedMatterRelation||'مرتبط بـ'}}
{{matterDetailItem.relatedMatterTitle}}
الملفات المرتبطة بهذا الملف كفروع
لا توجد ملفات فرعية — يمكنك إضافة ملف فرعي (خبراء، طب شرعي، استشكال...)
{{sub.title}}
{{matterTypeLabel(sub.matterType)}} {{sub.stage}}
{{matterStatusLabel(sub.status)}}
لا توجد جلسات مرتبطة — استخدم تبويب «ربط أعمال» لإضافة جلسات للملف
جلسة {{it.status||'—'}}
{{it.title||it.description||'—'}}
{{it.details||it.court||it.category}}
{{it.dD||it.deadline||it.date||'—'}} {{it.client}} {{it.assigned||it.lawyerAssigned}} {{it.opponent}}
{{it.doneNote||it.notes}}
من السجل التاريخي {{(historicalRecords||[]).filter(r=>r.matterId===matterDetailItem.id&&r.type==='session').length}}
جلسة تاريخية {{r.year}}
{{r.title||'—'}}
{{r.court}}
{{r.date||'—'}} {{r.opponent}}
{{r.result||r.notes}}
لا توجد مهام مرتبطة — استخدم تبويب «ربط أعمال» لإضافة مهام للملف
مهمة {{it.status||'—'}}
{{it.title||it.description||'—'}}
{{it.details||it.court||it.category}}
{{it.dD||it.deadline||it.date||'—'}} {{it.client}} {{it.assigned||it.lawyerAssigned}}
{{it.doneNote||it.notes}}
أعمال من السجل التاريخي {{(historicalRecords||[]).filter(r=>r.matterId===matterDetailItem.id&&r.type!=='session').length}}
عمل تاريخي {{r.year}}
{{r.title||'—'}}
{{r.court}}
{{r.date||'—'}}
{{r.result||r.notes}}
لا توجد أوراق محضرين مرتبطة
محضر {{po.status}}
{{po.subject||po.caseTitle||'ورقة محضر'}}
{{po.court}}
{{po.paperNumber}} {{po.date}} {{po.client}}
{{po.notes}}
مستندات الملف (أحكام، عقود، إعلانات...)
لا توجد مستندات — ارفع ملف أو أضف يدوياً
{{d.title}}
{{d.docType}} {{d.date}} {{d.actionTitle}}
{{d.notes}}
{{matterDocFm.url?'مستند مرفوع':'إضافة مستند'}}
تم رفع الملف بنجاح
مصروفات من عهدة المحامين المرتبطة بهذا الملف
إجمالي: {{matterLinkedExpensesTotal.toLocaleString()}} ج.م
لا توجد مصروفات في عهدة المحامين لهذا الملف
مرتبطة بهذا الملف
{{e.description||e.category}}
{{e.lawyer}} {{e.category}} {{e.date}}
{{Number(e.credit||0).toLocaleString()}} ج
من نفس القضية — يمكن ربطها
{{e.description||e.category}}
{{e.lawyer}} {{e.category}} {{e.date}}
{{Number(e.credit||0).toLocaleString()}} ج
الربط غير متاح من هذا العرض
افتح هذا الملف من تبويب الملفات حتى يعمل الربط بشكل صحيح
كل الأعمال مرتبطة بهذا الملف
{{linkSelectedIds.length}} محدد من {{matterUnlinkedItems.length}}
{{it.type==='session'?'جلسة':it.type==='task'?'مهمة':'محضر'}}
{{it.title||it.description||'—'}}
{{it.dD||it.deadline||it.date||'—'}}
لا يوجد تكرار في هذا الملف
كل الجلسات والمهام فريدة
تم العثور على {{matterDuplicateGroups.length}} مجموعة تكرار — اضغط «احتفظ وادمج» للإبقاء على نسخة وحذف الباقي مع نقل الملاحظات، أو «حذف هذا» لحذف نسخة بعينها
{{group[0].type==='session'?'جلسة':group[0].type==='task'?'مهمة':'محضر'}} مكررة — {{group[0].dD||group[0].date||'—'}} {{group.length}} نسخ
{{it.title||it.description||'—'}}
{{it.dD||it.date||'—'}} {{it.status}} {{it.sessionDecision}} {{it.id.substring(0,8)}}…
{{it.notes.substring(0,70)}}{{it.notes.length>70?'...':''}}
لا توجد ملفات مرتبطة
يمكنك ربط هذا الملف بملفات أخرى من زر في بطاقة الملف
الملفات المرتبطة ({{matterDetailItem.relatedMatters.length}})
{{lm.title}}
{{lm.relation}}
تفاصيل الملف
النوع: {{matterTypeLabel(matterDetailItem.matterType)}}
المحكمة: {{matterDetailItem.courtType}} - {{matterDetailItem.courtLocation}}
موكل: {{matterDetailItem.clientName}}
خصم: {{matterDetailItem.opponent}}
رقم/سنة: {{matterDetailItem.caseNumber||'—'}} / {{matterDetailItem.caseYear||'—'}}
جهة الإجراء: {{matterDetailItem.venue}}
المحامي: {{matterDetailItem.assignedLawyerName}}
الحالة: {{matterStatusLabel(matterDetailItem.status)}}
ملفات مرتبطة {{(matters||[]).filter(m=>m.id===matterDetailItem.parentMatterId||(matterDetailItem.parentMatterId&&m.parentMatterId===matterDetailItem.parentMatterId&&m.id!==matterDetailItem.id)||m.parentMatterId===matterDetailItem.id).length}}
ملف رئيسي:
{{pm.title}}
ملفات فرعية:
{{sub.title}} {{matterStatusLabel(sub.status)}}
لا توجد ملفات مرتبطة
ملخص
{{(items||[]).concat(archived||[]).filter(x=>matterDetailItem.caseKey?(x.client===matterDetailItem.clientName)&&x.type==='session':(x.matterId===matterDetailItem.id||x.client===matterDetailItem.clientName)&&x.type==='session').length}}
جلسة
{{(items||[]).concat(archived||[]).filter(x=>matterDetailItem.caseKey?(x.client===matterDetailItem.clientName)&&x.type==='task':(x.matterId===matterDetailItem.id||x.client===matterDetailItem.clientName)&&x.type==='task').length}}
مهمة
{{matterDocs.length}}
مستند
{{matterLinkedExpenses.length}}
مصروف
إجمالي المصروفات: {{matterLinkedExpensesTotal.toLocaleString()}} ج.م
كشف العهدة
{{matterDetailItem.assignedLawyerName}}
إجمالي العهدة: {{(custody||[]).filter(c=>c.lawyer===matterDetailItem.assignedLawyerName&&c.type==='debit'&&c.approved).reduce((s,c)=>s+(c.debit||0),0).toLocaleString()}} ج
المصروف: {{(custody||[]).filter(c=>c.lawyer===matterDetailItem.assignedLawyerName&&c.type==='credit').reduce((s,c)=>s+(c.credit||0),0).toLocaleString()}} ج
الرصيد المتبقي: {{getLawyerBalance(matterDetailItem.assignedLawyerName).toLocaleString()}} ج

المرفقات

جاري التحميل...
لا توجد مرفقات
{{att.fileName}}
وضع المشاهدة — يمكنك تصفح البيانات وطباعة السجلات والبحث. لا تتوفر صلاحيات التعديل.

شورى للاستشارات والمحاماة
شورى

٣٢ صبري ابو علم، وسط البلد {{lawyerName||'مستخدم'}} ({{userRole==='admin'?'مدير':userRole==='employee'?'موظف إداري':userRole==='client'?'موكل':userRole==='manager'&&userData&&userData.isManager?'رئيس قسم':userRole==='manager'?'مراجع':userRole==='viewer'?'مشاهد':'محامي'}}) الموقع النظام الجديد
{{T==='all'?'الكل':T==='tasks'?'المهام':T==='sessions'?'الجلسات':T==='dash'?'الداشبورد':T==='process'?'المحضرين':T==='clients'?'الموكلون':T==='fees'?'الأتعاب':T==='treasury'?'الخزينة':T==='jari'?'جاري شركاء':T==='users'?'المستخدمون':T==='arch'?'الأرشيف':T}}
{{twNotifCount}}
{{(lawyerName||userRole||'م').charAt(0)}}
الموكلون {{firestoreClients.length||clientsList.length||''}}
القضايا {{items.length||''}}
الجلسات {{items.filter(i=>i.type==='session').length||''}}
المهام {{items.filter(i=>i.type==='task').length||''}}
الملفات {{matters.length||''}}
مهام المحامين {{ltItems.length||''}}
طلبات الموقع {{consultNotifCount||''}}
المرفقات
الأرشيف {{archived.length||''}}
الأعمال الفنية
الخزينة {{treasuryEntries.length||''}}
جاري شركاء {{partnerJariEntries.length||''}}
الأتعاب
الاعتماد {{(pendingAdminItems.length+pendingApprovalItems.length)||''}}
العقود والعهدة {{custody.length||''}}
التقويم {{items.length+archived.length||''}}
يومي {{daily.length||''}}
أسبوعي {{weekly.length||''}}
السجل التاريخي
سجل التدقيق
المستخدمون {{pendingUsersCount||''}}
الفئات {{cats.length||''}}
الصيانة
أوراق المحضرين
{{(lawyerName||userRole||'م').charAt(0)}}
شكل النظام تفضيلك الشخصي
قائمة علوية أدمن
شريط تنقل علوي بقوائم منسدلة
{{th.name}}
{{th.desc}}
منح الثيم الحالي لمستخدم
حمّل قائمة المستخدمين أولاً من صفحة المستخدمون
{{lawyerName||'مستخدم'}}
{{userRole==='admin'?'مدير':userRole==='employee'?'موظف إداري':userRole==='client'?'موكل':userRole==='manager'&&userData&&userData.isManager?'رئيس قسم':userRole==='manager'?'مراجع':userRole==='viewer'?'مشاهد':'محامي'}}
{{fi.length}}
الإجمالي
{{base.filter(i=>i.status==='متابعة'||i.status==='مجدولة').length}}
متابعة
{{base.filter(i=>i.status==='مؤجل'||i.status==='مؤجلة').length}}
مؤجل
{{base.filter(i=>i.status==='معلق').length}}
معلق
{{base.filter(i=>isLate(i.deadline||i.date)&&(i.status==='متابعة'||i.status==='مجدولة')&&!excludedFromLate.includes(i.id)).length}}
متأخر
نسخ
البحث المتقدم فعّال
{{fi.length}} نتيجة بعد الفلترة
الملفات القانونية {{matters.length}}
{{mattersSel.length}} ملف محدد
{{casesGrouped.length}} قضية
لا توجد قضايا
عنوان القضية الموكل جلسات مهام الإجمالي
{{c.title}} {{c.client||'—'}} {{c.sessions}} {{c.tasks}} {{c.total}}
جاري التحميل...
لا توجد ملفات قانونية — ابدأ بإضافة ملف جديد
{{mattersSel.length}} ملف محدد
{{extractCaseNumber(m.parentMatterTitle||m.title)}}
{{m.parentMatterTitle}}
{{extractCaseNumber(m.title)}}
{{m.title}}
{{matterStatusLabel(m.status)}}
{{m.clientName || 'موكل غير محدد'}}
{{matterTypeLabel(m.matterType)}} {{m.title||'فرعي'}} {{m.stage}} {{m.assignedLawyerName}}
أنشطة ملف: {{selectedMatter.title}} {{activities.length}} نشاط
جاري التحميل...
لا توجد أنشطة — أضف أول نشاط لهذا الملف
{{activityTypeLabel(act.activityType)}} {{activityStatusLabel(act.status)}}
{{act.title}}
{{fmtTs(act.activityDate)}} {{act.assignedToName}} {{act.previousAction}}
{{act.notes}}
نقل الملف إلى قسم آخر
{{matterMgmtTarget.title}}
{{matterMgmtTarget.clientName}}
نسخ الملف إلى قسم آخر
{{matterMgmtTarget.title}}
{{matterMgmtTarget.clientName}}
سيتم إنشاء ملف جديد بنفس البيانات — العناصر المرتبطة تبقى في الملف الأصلي
دمج الملف مع ملف آخر
الملف المراد دمجه (سيُحذف بعد الدمج)
{{matterMgmtTarget.title}}
{{matterMgmtTarget.clientName}}
لا توجد نتائج
{{r.title}}
{{r.clientName}} · {{matterTypeLabel(r.matterType)}}
تحذير: سيتم نقل جميع عناصر الملف "{{matterMgmtTarget.title}}" إلى الملف المستهدف ثم حذف الملف الأصلي. لا يمكن التراجع.
ربط الملف بملف آخر
{{matterMgmtTarget.title}}
{{matterMgmtTarget.clientName}}
لا توجد نتائج
{{r.title}}
{{r.clientName}} · {{matterTypeLabel(r.matterType)}}
الملفات المرتبطة حالياً
{{lm.title}} ({{lm.relation}})
{{matterEditId ? 'تعديل ملف' : 'ملف قانوني جديد'}}
لا توجد أطراف إضافية
تحذير: تعارض مصالح محتمل ({{conflictResults.length}} ملف)
• {{r.title}} — موكل: {{r.clientName}} / خصم: {{r.opponent}}
جاري فحص تعارض المصالح...
بيانات القضية
تسجيل نتيجة الجلسة
{{sessionResultItem.title||sessionResultItem.description||'—'}} {{sessionResultItem.dD||sessionResultItem.date||'—'}}
{{activityEditId ? 'تعديل النشاط' : 'نشاط جديد'}} — {{selectedMatter && selectedMatter.title}}

تحليل التكاليف والربحية

إلى
المحصّل فعلاً
{{costSummary.totalRevenue.toLocaleString()}} ج
متفق عليه: {{costSummary.totalAgreed.toLocaleString()}} ج
إجمالي التكاليف
{{costSummary.totalCosts.toLocaleString()}} ج
صافي الربح
{{costSummary.totalProfit.toLocaleString()}} ج
قضايا رابحة
{{costSummary.winners}}
قضايا خاسرة
{{costSummary.losers}}
أتعاب صفرية
{{costSummary.zeros}}
تفصيل الأعباء العامة {{costOverheadBreakdown.grandTotal.toLocaleString()}} ج
{{row.cat}}
{{row.total.toLocaleString()}} اضغط للتفاصيل
الإجمالي المُوزَّع على القضايا {{costOverheadBreakdown.grandTotal.toLocaleString()}} ج
حساب الشركاء الجاري {{partnerAccountData.net>=0?'+':''}}{{partnerAccountData.net.toLocaleString()}} ج
{{p.name}} تفاصيل
ضخ في الشركة
{{p.injections.toLocaleString()}} ج
مسحوبات وأرباح
{{p.drawings.toLocaleString()}} ج
{{p.net>=0?'رصيد دائن':'رصيد مدين'}}
{{Math.abs(p.net).toLocaleString()}} ج
الصافي الإجمالي للشركاء
ضخ: {{partnerAccountData.totalInjections.toLocaleString()}} ج سحب: {{partnerAccountData.totalDrawings.toLocaleString()}} ج صافي: {{partnerAccountData.net>=0?'+':''}}{{partnerAccountData.net.toLocaleString()}} ج
رصيد دائن = الشريك ضخ أكثر مما سحب (الشركة مدينة له) · رصيد مدين = الشريك سحب أكثر مما ضخ
{{partnerDetailModal.name}}
{{partnerDetailModal.entries.length}} حركة — جاري الشركاء
إجمالي الضخ
{{partnerDetailModal.entries.filter(e=>e.category==='جاري شركاء').reduce((s,e)=>s+(e.amount||0),0).toLocaleString()}} ج
إجمالي السحب والأرباح
{{partnerDetailModal.entries.filter(e=>e.category!=='جاري شركاء').reduce((s,e)=>s+(e.amount||0),0).toLocaleString()}} ج
{{(partnerDetailModal.entries.filter(e=>e.category==='جاري شركاء').reduce((s,e)=>s+(e.amount||0),0)-partnerDetailModal.entries.filter(e=>e.category!=='جاري شركاء').reduce((s,e)=>s+(e.amount||0),0))>=0?'رصيد دائن (مستحق للشريك)':'رصيد مدين'}}
{{Math.abs(partnerDetailModal.entries.filter(e=>e.category==='جاري شركاء').reduce((s,e)=>s+(e.amount||0),0)-partnerDetailModal.entries.filter(e=>e.category!=='جاري شركاء').reduce((s,e)=>s+(e.amount||0),0)).toLocaleString()}} ج
# التاريخ البيان الفئة ضخ (ج) سحب/أرباح (ج) الرصيد (ج)
لا توجد حركات
{{i+1}} {{e.date||'—'}} {{e.description||'—'}} {{e.category}} {{e.category==='جاري شركاء'?(e.amount||0).toLocaleString():'—'}} {{e.category!=='جاري شركاء'?(e.amount||0).toLocaleString():'—'}} {{(e._runBal||0).toLocaleString()}}
{{costCatModal.cat}} {{costCatModal.rows.length}} قيد {{costCatModal.rows.reduce((s,r)=>s+(r.amount||0),0).toLocaleString()}} ج
هذه مرتبات افتراضية من الإعدادات — لا توجد قيود خزينة مرتبطة بها
# التاريخ البيان نوع الدفع المبلغ (ج)
{{i+1}} {{r.date||'—'}} {{r.description||'—'}}
{{r.notes}}
{{r.paymentMethod||'—'}} {{(r.amount||0).toLocaleString()}}
لا توجد قيود
الإجمالي {{costCatModal.rows.reduce((s,r)=>s+(r.amount||0),0).toLocaleString()}} ج
{{costSelected.length}} محدد
{{costAnalysis.length}} قضية
لا توجد بيانات — أضف قضايا وأتعاباً أولاً
القضية الموكل المحامي الساعات المتفق عليه المحصّل مباشر أعباء الصافي
{{linkItemModal.clone?'نسخ في ملف':'ربط بملف'}} — {{(linkItemModal.item&&(linkItemModal.item.description||linkItemModal.item.title||'')).slice(0,40)}}

لا توجد ملفات
{{m.title||'بدون عنوان'}}
{{m.clientName||'—'}} {{m.assignedLawyerName}} {{m.status}}
مرتبط
كشف التكرار — {{treasuryDupModal.groups.length}} مجموعة مشتبه بها
{{group.length}} قيود متشابهة — {{group[0].amount.toLocaleString()}} ج
{{ei===0?'الأول':'مكرر '+(ei)}}
{{entry.description||'—'}}
{{entry.date}} {{entry.category||'—'}} {{(entry.notes||'').slice(0,40)}}
{{entry.amount.toLocaleString()}} ج
الأول محمي — احذف المكررات بشكل فردي أو "إبقاء الأول فقط"
ربط الأتعاب المستوردة بالملفات ({{treasuryFeeLinkModal.entries.length}} أتعاب)
{{entry.description}}
{{entry.date}} {{entry.amount.toLocaleString()}} ج
{{entry._matterTitle}}
{{m.title}}
{{m.clientName||'—'}}
{{treasuryFeeLinkModal.entries.filter(e=>e._matterId).length}} / {{treasuryFeeLinkModal.entries.length}} مرتبط
{{histBulkModal.mode==='link'?'ربط بملف موجود':'إنشاء ملف جديد'}} — {{histSelectedIds.length}} سجل محدد
سيتم إنشاء ملف جديد وربط {{histSelectedIds.length}} سجل به تلقائياً. اسم الموكل سيُؤخذ من أول سجل محدد.
إعدادات تحليل التكاليف
معيار الساعات
الافتراضي: مهمة = 5 ساعات · جلسة = 20 ساعة
مرتبات الشركاء والمديرين (افتراضية)
لا يوجد — اضغط إضافة لتسجيل مرتب افتراضي

المالية

الخزينة العامة
{{treasuryStats.net.toLocaleString()}} ج
صافي الإيرادات والمصروفات
العهدة والمصروفات
{{(getCustodyByTreasurySource('الخزينة النقدية')+getCustodyByTreasurySource('البنك')).toLocaleString()}} ج
إجمالي العهد الممنوحة
الأتعاب
{{fees.length}} ملف
{{overdueFees}} متأخر
إدارة أتعاب العملاء
تحليل التكاليف
{{(matters||[]).length}} قضية
ربحية القضايا والأعباء

إدارة العهد والمصروفات

رصيد الخزينة النقدية
{{(getTreasuryBalance('نقدي').balance - getCustodyByTreasurySource('الخزينة النقدية')).toFixed(2)}} ج
إيراد: {{getTreasuryBalance('نقدي').income.toFixed(0)}} | مصروف: {{(getTreasuryBalance('نقدي').expense + getCustodyByTreasurySource('الخزينة النقدية')).toFixed(0)}}
رصيد البنك
{{(getTreasuryBalance('تحويل بنكي').balance - getCustodyByTreasurySource('البنك')).toFixed(2)}} ج
إيراد: {{getTreasuryBalance('تحويل بنكي').income.toFixed(0)}} | مصروف: {{(getTreasuryBalance('تحويل بنكي').expense + getCustodyByTreasurySource('البنك')).toFixed(0)}}
إجمالي العهد المصروفة
{{(getCustodyByTreasurySource('الخزينة النقدية') + getCustodyByTreasurySource('البنك')).toFixed(2)}} ج
نقدي: {{getCustodyByTreasurySource('الخزينة النقدية').toFixed(0)}} | بنك: {{getCustodyByTreasurySource('البنك').toFixed(0)}}
الكل
{{custodyUserTabs.reduce((s,t)=>s+t.pending,0)}}
طلب معلق
{{tab.pending}}
{{tab.name}}
{{(tab.debit-tab.credit).toFixed(0)}} ج
الرصيد المتبقي
{{filteredCustody.length}} عملية
كل الشهور
{{custodyMonthTabs.reduce((s,t)=>s+t.count,0)}}
{{tab.label}}
{{tab.net>=0?'+':''}}{{tab.net.toLocaleString()}}
{{tab.count}} عملية | عهدة: {{tab.debit.toLocaleString()}}
# التاريخ المحامي البيان الفئة المهمة/الجلسة نوع الدفع الخزينة مدين (ج) دائن (ج) الرصيد (ج) الحالة إجراءات
لا توجد عمليات بعد
{{i+1}} {{c.date}} {{c.lawyer}} {{c.description}}
📝 {{c.notes}}
{{c.category}} {{c.caseTitle||'عرض'}} {{c.paymentMethod||'-'}} {{c.treasurySource||'الخزينة النقدية'}} {{c.debit?c.debit.toFixed(2):'-'}} {{c.credit?c.credit.toFixed(2):'-'}} {{c.balance?c.balance.toFixed(2):'0.00'}} معدّل — بانتظار إعادة الاعتماد معتمد مرفوض معلق
التغييرات:
{{c.editSnapshot.date}} ← {{c.date}}
{{c.editSnapshot.description}} ← {{c.description}}
{{c.editSnapshot.amount}} ج{{c.amount}} ج
ملاحظات: {{c.notes||'—'}}
عُدِّل: {{c.editSnapshot.editedAt?new Date(c.editSnapshot.editedAt).toLocaleDateString('ar-EG'):'—'}}
{{custodyUserTab}} الكل | العهد الممنوحة: {{filteredCustody.filter(c=>c.type==='debit'||(+c.debit>0)).reduce((s,c)=>s+(+c.debit||+c.amount||0),0).toFixed(2)}} ج | المصروف: {{filteredCustody.filter(c=>c.type==='credit'||(+c.credit>0)).reduce((s,c)=>s+(+c.credit||+c.amount||0),0).toFixed(2)}} ج | المتبقي: {{(filteredCustody.filter(c=>c.type==='debit'||(+c.debit>0)).reduce((s,c)=>s+(+c.debit||+c.amount||0),0)-filteredCustody.filter(c=>c.type==='credit'||(+c.credit>0)).reduce((s,c)=>s+(+c.credit||+c.amount||0),0)).toFixed(2)}} ج | المعتمد: {{filteredCustody.filter(c=>c.approved||c.status==='approved').length}} المعلق: {{filteredCustody.filter(c=>!c.approved&&(!c.status||c.status==='pending')).length}} يحتاج إعادة اعتماد: {{filteredCustody.filter(c=>c.pendingEdit).length}}
عهدتي — {{lawyerName}}
لا توجد قيود مسجّلة
التاريخ العمل المرتبط البيان النوع المبلغ الحالة
{{c.date||'—'}} {{c.linkedItemTitle||c.caseTitle}} غير مرتبط {{c.description||'—'}} {{c.type==='debit'?'عهدة':'مصروف'}} {{c.type==='debit'?'+':'-'}}{{(c.amount||c.debit||c.credit||0).toFixed(2)}} ج معدّل
بانتظار إعادة الاعتماد
معتمد مرفوض معلق
بانتظار إعادة الاعتماد
إجمالي العهد: {{myCustody.filter(c=>c.type==='debit').reduce((s,c)=>s+(+c.amount||+c.debit||0),0).toFixed(2)}} ج | إجمالي المصروف: {{myCustody.filter(c=>c.type==='credit').reduce((s,c)=>s+(+c.amount||+c.credit||0),0).toFixed(2)}} ج | المتبقي: {{(myCustody.filter(c=>c.type==='debit').reduce((s,c)=>s+(+c.amount||+c.debit||0),0) - myCustody.filter(c=>c.type==='credit').reduce((s,c)=>s+(+c.amount||+c.credit||0),0)).toFixed(2)}} ج | المعتمد: {{myCustody.filter(c=>c.status==='approved').length}} المعلق: {{myCustody.filter(c=>!c.status||c.status==='pending').length}}
{{editMyCustodyId?'تعديل القيد':'تسجيل قيد جديد'}}
{{it.title||it.description||it.id}}
لا توجد نتائج — سيُرسل للأدمن للمراجعة
{{empCustodyFm.linkedItemTitle}}
القيد سيُرسل للأدمن للاعتماد — العهدة المعتمدة فقط تظهر في الخزينة
تسجيل ساعات إضافية
{{lawyerName}} — {{new Date().toLocaleDateString('ar-EG',{weekday:'long',year:'numeric',month:'long',day:'numeric'})}}
تم التسجيل اليوم
وقت الانصراف: {{overtime.filter(o=>(o.employeeUid===($root&&$root._uid||'')||o.employeeName===lawyerName)&&o.workDate===getWorkDate())[0].departureTime}}
الساعات الإضافية: {{overtime.filter(o=>(o.employeeUid===($root&&$root._uid||'')||o.employeeName===lawyerName)&&o.workDate===getWorkDate())[0].overtimeDisplay}}
الحالة: {{overtime.filter(o=>(o.employeeUid===($root&&$root._uid||'')||o.employeeName===lawyerName)&&o.workDate===getWorkDate())[0].status==='approved'?'✓ معتمد':overtime.filter(o=>(o.employeeUid===($root&&$root._uid||'')||o.employeeName===lawyerName)&&o.workDate===getWorkDate())[0].status==='rejected'?'✗ مرفوض':'⏳ بانتظار الاعتماد'}}
الساعات الإضافية: {{calcOvertimeDisplay(overtimeFm.departureTime)}}
يُحتسب ما بعد الساعة 5:00 مساءً فقط
سجلاتي
لا توجد سجلات
التاريخالانصرافالإضافيالحالة
{{o.workDate}} {{o.departureTime}} {{o.overtimeDisplay}} {{o.status==='approved'?'معتمد':o.status==='rejected'?'مرفوض':'معلق'}}
الساعات الإضافية {{overtime.length}}
لا توجد سجلات
الموظف التاريخ الانصراف الإضافي الحالة إجراء
{{o.employeeName||'—'}} {{o.workDate}} {{o.departureTime}} {{o.overtimeDisplay}} {{o.status==='approved'?'معتمد':o.status==='rejected'?'مرفوض':'معلق'}} ({{o.approvedBy}})
معلق: {{filteredOvertime.filter(o=>o.status==='pending').length}} معتمد: {{filteredOvertime.filter(o=>o.status==='approved').length}} إجمالي الإضافي المعتمد: {{calcTotalApprovedOvertime()}} ساعة
مقارنة وتسوية الخزينة
{{reconcileModal.fileName}} — {{reconcileModal.sheets.length}} ورقة
أولاً: اختر أوراق الملف المحلي
ثانياً: حدد الفترة الزمنية في النظام للمقارنة
{{reconcileModal.filterYear||'كل السنوات'}} · من {{['','يناير','فبراير','مارس','أبريل','مايو','يونيو','يوليو','أغسطس','سبتمبر','أكتوبر','نوفمبر','ديسمبر'][+reconcileModal.filterMonthFrom]||'البداية'}} إلى {{['','يناير','فبراير','مارس','أبريل','مايو','يونيو','يوليو','أغسطس','سبتمبر','أكتوبر','نوفمبر','ديسمبر'][+reconcileModal.filterMonthTo]||'النهاية'}} ({{reconcileSystemCount}} عملية في النظام)
بدون تحديد = كل النظام ({{treasuryEntries.length}} عملية)
جاري قراءة الأوراق والمقارنة...
لا توجد نتائج — تحقق من تنسيق الملف

جاري شركاء

{{p.name}}
إجمالي الإيداع{{p.totalIn.toLocaleString('ar-EG')}}
إجمالي السحب{{p.totalOut.toLocaleString('ar-EG')}}
الرصيد {{p.balance.toLocaleString('ar-EG')}}
مقارنة جاري شركاء مع الخزينة
الشريك في الشيت (ج) في الخزينة (ج) الفرق الحالة
{{c.name}} {{c.sheetNet.toLocaleString('ar-EG')}} {{c.treasuryNet.toLocaleString('ar-EG')}} {{c.diff.toLocaleString('ar-EG')}} ✓ متطابق فرق {{Math.abs(c.diff).toLocaleString('ar-EG')}}
تفاصيل الحركات ({{partnerJariEntries.length}} قيد)
# التاريخ الشريك البيان النوع المبلغ (ج)
{{i+1}} {{e.date}} {{e.partnerName||e.description}} {{e.description}} {{e.type==='income'?'إيداع':'سحب'}} {{(e.amount||0).toLocaleString('ar-EG',{minimumFractionDigits:2,maximumFractionDigits:2})}}
لا توجد بيانات. استخدم زر "استيراد من Excel" لرفع ملف جاري شركاء.

الخزينة العامة إيرادات ومصروفات مكتب شورى

إجمالي الإيرادات
{{treasuryStats.totalIncome.toFixed(0)}} ج
اضغط لعرض الإيرادات
إجمالي المصروفات
{{treasuryStats.totalExpense.toFixed(0)}} ج
اضغط لعرض المصروفات
إجمالي العهد المصروفة
{{treasuryStats.totalCustodySpent.toFixed(0)}} ج
اضغط لعرض العهد
الصافي (إيراد - مصروف - عهد)
{{treasuryStats.net.toFixed(0)}} ج
اضغط لعرض الكل
من
إلى
{{filteredTreasury.length}} عملية
الكل
{{yr}} ({{treasuryMonthTabs.filter(t=>t.yr===yr).length}} شهر)
{{tab.label.replace(/\s*\d{4}/,'').trim()}}
{{tab.net>=0?'+':''}}{{(tab.net/1000).toFixed(1)}}k
{{(tab.closingBalance/1000).toFixed(1)}}k
محدد: {{treasurySel.length}}
# التاريخ النوع البيان الفئة نوع الدفع إيراد (ج) مصروف (ج) الرصيد (ج) إجراءات
مرحّل رصيد مرحّل من الفترة السابقة (لا يُحتسب في الإجمالي) {{treasuryOpeningBalance.toFixed(2)}} ج
لا توجد عمليات بعد
{{i+1}} {{e.date}} {{e.type==='income'?'⬇ إيراد':'⬆ مصروف'}} {{e.description}}
📝 {{e.notes}}
{{e.paymentMethod||'—'}} {{e.type==='income'?e.amount.toFixed(2):'-'}} {{e.type==='expense'?e.amount.toFixed(2):'-'}} {{e.runningBalance?e.runningBalance.toFixed(2):'0.00'}}
حركة الفترة ({{filteredTreasury.length}} عملية) رصيد افتتاحي: {{treasuryOpeningBalance.toFixed(2)}} ج {{filteredTreasury.filter(e=>e.type==='income').reduce((s,e)=>s+(+(e.amount)||0),0).toFixed(2)}} ج {{filteredTreasury.filter(e=>e.type==='expense').reduce((s,e)=>s+(+(e.amount)||0),0).toFixed(2)}} ج {{((+(treasuryOpeningBalance)||0) + filteredTreasury.filter(e=>e.type==='income').reduce((s,e)=>s+(+(e.amount)||0),0) - filteredTreasury.filter(e=>e.type==='expense').reduce((s,e)=>s+(+(e.amount)||0),0)).toFixed(2)}} ج رصيد ختامي
التقرير المفصل — الخزينة
الإيرادات حسب الفئة
{{cat}} {{g.count}} عملية {{g.total.toFixed(2)}} ج
الإجمالي{{treasuryStats.totalIncome.toFixed(2)}} ج
المصروفات حسب الفئة
{{cat}} {{g.count}} عملية {{g.total.toFixed(2)}} ج
الإجمالي{{(treasuryStats.totalExpense+treasuryStats.totalCustodySpent).toFixed(2)}} ج
الصافي النهائي {{treasuryStats.net.toFixed(2)}} ج
تقارير الأتعاب
{{feeReportSummary.clientCount}}
موكل نشط
{{feeReportSummary.totalAgreed.toLocaleString()}} ج
إجمالي الأتعاب
{{feeReportSummary.totalPaid.toLocaleString()}} ج
المحصَّل
{{feeReportSummary.totalRemaining.toLocaleString()}} ج
المتبقي
يستثني {{feeReportSummary.zeroCount}} موكل بأتعاب صفر
{{g.name}}
⚠ {{g.overdue}} متأخر {{g.count}} عمل
{{g.agreed.toLocaleString()}} ج
الأتعاب المتفق عليها
{{g.paid.toLocaleString()}} ج
المحصَّل
{{g.remaining.toLocaleString()}} ج
المتبقي
تفاصيل الأعمال — نسبة التحصيل: {{g.collectRate}}%
{{f.caseTitle||'بدون عنوان عمل'}} ⚠ متأخر 🔔 قريب
{{(f.agreedFee||0).toLocaleString()}} ج
الأتعاب
{{feeCalcPaid(f).toLocaleString()}} ج
المحصَّل
{{((f.agreedFee||0)-feeCalcPaid(f)).toLocaleString()}} ج
المتبقي
الاستحقاق: {{f.dueDate}} الأقساط: {{feeInstPaidCount(f)}}/{{f.installments.length}} مدفوع {{feeStatusLabel(f.paymentStatus)}}
الأقساط:
{{(inst.amount||0).toLocaleString()}} ج {{inst.date||''}} ✓ {{inst.paidDate}} {{inst.notes}}
لا توجد بيانات
إجمالي المتأخرات: {{feeReportSummary.totalOverdue.toLocaleString()}} ج — بعد استبعاد {{feeReportSummary.zeroCount}} موكل بصفر
{{g.name}} {{g.overdueAmount.toLocaleString()}} ج متأخر
{{f.caseTitle||'بدون عنوان'}}
{{(f.agreedFee||0).toLocaleString()}} ج
الأتعاب
{{feeCalcPaid(f).toLocaleString()}} ج
المحصَّل
{{((f.agreedFee||0)-feeCalcPaid(f)).toLocaleString()}} ج
المتأخر
الاستحقاق: {{f.dueDate||'—'}} {{feeInstPaidCount(f)}}/{{f.installments.length}} قسط مدفوع

لا توجد متأخرات
إجمالي المحصَّل: {{feeReportSummary.totalPaid.toLocaleString()}} ج
{{g.name}}
{{g.paid.toLocaleString()}} ج {{g.collectRate}}%
{{f.caseTitle||'بدون عنوان'}} {{feeCalcPaid(f).toLocaleString()}} ج من {{(f.agreedFee||0).toLocaleString()}} ج {{feeInstPaidCount(f)}}/{{f.installments.length}} قسط
لا توجد مدفوعات
إجمالي المتبقي: {{feeReportSummary.totalRemaining.toLocaleString()}} ج
{{g.name}}
⚠ {{g.overdue}} متأخر {{g.remaining.toLocaleString()}} ج
{{f.caseTitle||'بدون عنوان'}}
{{((f.agreedFee||0)-feeCalcPaid(f)).toLocaleString()}} ج
متبقي من {{(f.agreedFee||0).toLocaleString()}} ج
{{f.dueDate}} {{feeInstPaidCount(f)}}/{{f.installments.length}} قسط ⚠ متأخر

كل الأتعاب محصَّلة

الفئات ({{cats.length}}) — اضغط على فئة لعرض بياناتها

{{activeCat}} — {{catItems.length}} عنصر
#النوعالحالةالعنوان / البيانالتاريخالموكلالمسؤولالخصمملاحظاتإجراءات
{{i+1}} {{item.type==='task'?'مهمة':'جلسة'}} {{item.status}} {{item.changeRequest.action==='postpone'?'طلب تأجيل':item.changeRequest.action==='archive'?'طلب أرشفة':'طلب تغيير'}} {{item.title||item.description}} {{item.deadline||item.date||'—'}} {{item.client||'—'}} {{item.assigned||item.lawyerAssigned||'—'}} {{item.opponent||'—'}} {{item.notes||'—'}}
لا توجد عناصر في هذه الفئة

الرسوم والأتعاب

{{feesFiltered.length}} نتيجة
⚠️ {{feesDueSoon.length}} سجل يقترب موعد استحقاقه خلال 7 أيام: {{feeDisplayClientName(f)}} ({{f.dueDate}})
إجمالي الأتعاب
{{totalAgreed.toLocaleString()}} ج
{{fees.length}} سجل — اضغط للكل
المحصَّل
{{totalPaid.toLocaleString()}} ج
{{Math.round(totalPaid/totalAgreed*100)}}% نسبة التحصيل
المتبقي
{{totalRemaining.toLocaleString()}} ج
غير مدفوع — اضغط للعرض
المتأخرات
{{feeReportOverdue.reduce((s,g)=>s+g.overdueAmount,0).toLocaleString()}} ج
{{feesOverdueCount}} سجل متأخر
يقترب الاستحقاق
{{feesDueSoon.length}}
خلال 7 أيام
التقارير
{{feeReportByClient.length}}
موكل نشط — اضغط للتقارير
نسبة التحصيل الإجمالية {{Math.round(totalPaid/totalAgreed*100)}}%

لا توجد سجلات رسوم
الموكل / القضية الأتعاب المدفوع المتبقي الأقساط الحالة الاستحقاق إجراءات
{{feesSel.length}} سجل محدد

{{clientEditId?'تعديل':'إضافة'}} موكل

{{powerEditId!==null?'تعديل':'إضافة'}} توكيل

ملف موجود مسبقاً — عرض (رفع ملف جديد يحل محله)

{{processEditId?'تعديل':'إضافة'}} ورقة محضر

{{feeEditId?'تعديل':'إضافة'}} رسوم

جاري التحميل...
لم يُعثر على قضايا باسم "{{feeFm.clientName}}" — ابحث يدوياً:
💡 يمكنك إنشاء سجل أتعاب منفصل لكل قضية بنفس الموكل بالضغط على "إضافة رسوم" مرة أخرى
ابحث عن القضية في النظام:
لا توجد نتائج
تم اختيار {{feeFm.linkedCaseIds.length}} عمل
{{i+1}}
لا توجد أقساط
مجموع الأقساط: {{feeFm.installments.reduce((s,i)=>s+(i.amount||0),0).toLocaleString()}} ج — الأتعاب المتفق عليها: {{(feeFm.agreedFee||0).toLocaleString()}} ج ⚠ تعارض = الأتعاب المتفق عليها ✓
الأرشيف: المنجز والمستلم والمنفذ. يمكن الاسترداد بنفس البيانات (↩️) أو مع تعديل (✏️).
فلتر الفئة:
{{fi.length}} عنصر · {{catF}}
أجندة الجلسات {{fi.length}} جلسة
لا توجد عناصر
#النوعالحالة العنوان / البيان التفاصيل الفئة / المحكمةبيانات الدعوىالتاريخالمتابعة الموكل / العميل الملف القانوني المسؤول الخصم الإجراء السابق ملاحظات إجراءات
لا توجد عناصر
#النوعالحالةالعنوانالفئةالتاريخالموكلالمسؤولالخصمالإجراء السابقملاحظاتإجراءات
{{i+1}} {{item.type==='task'?'مهمة':'جلسة'}} {{item.title||item.description}} {{item.category||item.court||'—'}} {{item.deadline||item.date||'—'}} {{item.client||'—'}} {{item.assigned||item.lawyerAssigned||'—'}} {{item.opponent||'—'}} {{item.previousDate||item.prevAction}} {{item.notes||'—'}}
لا توجد عناصر {{T==='daily'?'اليوم':'هذا الأسبوع'}}
{{ltItems.filter(i=>(i.lawyerAssigned||i.assigned)===l.name).length}}
{{l.name}}
مهام المحامين {{flt.length}} مهمة
#المحاميالحالةالعنوانالفئةالموعدالموكلالخصمالإجراء السابقملاحظاتإجراءات
{{i+1}} {{item.lawyerAssigned||item.assigned}} {{item.title||item.description}} {{item.category||item.court||'—'}} {{item.deadline||item.date||'—'}} {{item.client||'—'}} {{item.opponent||'—'}} {{item.previousDate||item.prevAction}} {{item.notes||'—'}}
لا توجد مهام مسندة

لوحة الإحصائيات

{{dashStats.total}}
إجمالي النشط
{{dashStats.tasks}}
مهام نشطة
{{dashStats.sessions}}
جلسات نشطة
{{dashStats.late}}
متأخرة ({{dashStats.lateRate}}%)
{{dashStats.done}}
منجزة ({{dashStats.doneRate}}%)
{{clientsList.length}}
موكلون

أداء المحامين

لا توجد بيانات
{{l.name}} {{l.total}} عنصر
مهام: {{l.tasks}} جلسات: {{l.sessions}} متأخر: {{l.late}} منجز: {{l.done}}

أكثر الفئات

لا توجد بيانات
{{cat}} {{count}}

نشاط الإضافة — آخر 30 يوم

منذ 30 يوماليوم

أعلى أولوية الآن

لا توجد مهام عاجلة متأخرة
{{item.title||item.description}}
{{item.client||'—'}} · {{item.date||'بدون تاريخ'}}
{{statusLabel(item.wfStatus)}}

ملخص الأتعاب

{{numFmt(totalAgreed)}}
إجمالي الاتفاق
{{numFmt(totalPaid)}}
المحصّل
{{numFmt(totalAgreed-totalPaid)}}
المتبقي
نسبة التحصيل {{Math.round(totalPaid/totalAgreed*100)}}%
ملفات الموكلين — نشاط كل موكل
{{firestoreClients.length}} موكل
{{clientsSel.length}} محدد
لا يوجد موكلون
اسم الموكل ملفات جلسات مهام محضرين الإجمالي آخر نشاط
{{c.clientName}} {{(matters||[]).filter(m=>m.clientName===c.clientName&&!m.parentMatterId).length}} {{(items||[]).concat(archived||[]).filter(x=>x.client===c.clientName&&x.type==='session').length}} {{(items||[]).concat(archived||[]).filter(x=>x.client===c.clientName&&x.type==='task').length}} {{(processOfficers||[]).filter(x=>x.client===c.clientName).length}} {{(items||[]).concat(archived||[]).filter(x=>x.client===c.clientName).length+(processOfficers||[]).filter(x=>x.client===c.clientName).length}} {{(items||[]).concat(archived||[]).filter(x=>x.client===c.clientName).sort((a,b)=>b.createdAt>a.createdAt?1:-1)[0]&&((items||[]).concat(archived||[]).filter(x=>x.client===c.clientName).sort((a,b)=>b.createdAt>a.createdAt?1:-1)[0].dD||'—')}}
{{selectedFsClient.clientName||selectedFsClient.name}}
{{selectedFsClient.phone}} {{selectedFsClient.nationalId}} {{selectedFsClient.clientType==='individual'?'فرد':'شركة/جهة'}}
{{selectedFsClient.address}} {{selectedFsClient.email}}
{{selectedFsClient.notes}}
العنوان / البيان النوع الحالة التاريخ إجراء
لا توجد عمليات
{{item.title||item.description||'—'}} {{item.type==='session'?'جلسة':item.type==='process'?'محضر':'مهمة'}} {{item.archived?'أرشيف':item.status}} {{item.deadline||item.date||'—'}}
التوكيلات
لا توجد توكيلات
{{pw.title||'توكيل #'+(idx+1)}}
{{pw.date}} {{pw.notaryOffice}}
{{pw.notes}}
أوراق المحضرين {{filteredProcessOfficers.length}}
جاري التحميل من قاعدة البيانات...
تعذّر تحميل البيانات
{{processLoadError}}
لا توجد أوراق محضرين
إجمالي المحمّل: {{processOfficers.length}} — لو أكثر من ٠ تحقق من الفلاتر
النوع / الاتجاه رقم الورقة المحضر الموكل / القضية الجهة / المحكمة التاريخ الحالة إجراء
{{po.type}} {{po.direction}} {{po.paperNumber||'—'}} {{po.officerName||'—'}}
{{po.clientName||'—'}}
{{po.caseTitle}}
{{po.court||po.party||'—'}} {{po.date||'—'}}

دمج الأتعاب في سجل واحد

{{(fees.find(f=>f.id===id)||{}).caseTitle||'بدون عنوان'}}

تعديل اسم الملف

دمج القضايا

{{key.split('|')[1]}}
جميع المرفقات {{globalAttachments.length}}
جاري التحميل...
لا توجد مرفقات
{{globalAttachSel.length}} مرفق محدد
اسم الملف البيان / القضية النوع الحجم رُفع بواسطة التاريخ إجراء
{{att.fileName||att.name||'—'}} توكيل — {{att.powerClientName||'—'}} {{getItemTitleForAtt(att)}} {{att.type==='power'?'توكيل':(att.fileType||att.type||'').split('/').pop()||'ملف'}} {{att.size?(att.size>1048576?(att.size/1048576).toFixed(1)+'MB':(att.size/1024).toFixed(0)+'KB'):'—'}} {{att.uploadedByName||att.addedByName||'—'}} {{fmtTs(att.uploadedAt||att.addedAt)}}
{{calRangeLabel}}
{{day.dayName}}
{{day.dayNum}}
{{day.monthLabel}}
{{item.title||item.description}}
{{item.assigned||item.lawyerAssigned}}
{{item.status}} أرشيف
فارغ
{{calSelectedItem.type==='session'?'جلسة':'مهمة'}} {{calSelectedItem.archived?'📦 أرشيف: ':''}}{{calSelectedItem.status}}

{{calSelectedItem.title||calSelectedItem.description||'—'}}

التاريخ
{{calSelectedItem.deadline||calSelectedItem.date||'—'}}
آخر متابعة
{{calSelectedItem.lastFollow}}
{{calSelectedItem.type==='session'?'المحكمة':'الفئة'}}
{{calSelectedItem.court||calSelectedItem.category||'—'}}
الموكل
{{calSelectedItem.client}} ({{calSelectedItem.clientRole}})
الخصم
{{calSelectedItem.opponent}} ({{calSelectedItem.opponentRole}})
المسؤول
{{calSelectedItem.assigned||calSelectedItem.lawyerAssigned}}
الإجراء السابق
{{calSelectedItem.prevAction||calSelectedItem.previousDate}}
موعد التأجيل
{{calSelectedItem.postponedDate}}
{{calSelectedItem.postponeNote}}
التفاصيل
{{calSelectedItem.details}}
ملاحظات الإنجاز
{{calSelectedItem.doneNote}}
ملاحظات
{{calSelectedItem.notes}}

إدارة المستخدمين

مستخدم جديد

الموظف سيدخل بـ رقم الهاتف + كلمة المرور — رقم الهاتف هو اسم الدخول دائماً

اختر الموكل — سيتم ملء الاسم والإيميل تلقائياً

تم الربط بـ {{newUserFm.name}} — إيميله: {{newUserFm.email}}
سيتمكن هذا المستخدم من الدخول على portal.html برؤية ملفاته القانونية فقط
جاري التحميل...
لا توجد أعمال مسجلة باسم هذا الموكل
جاري البحث...
لا توجد نتائج
تم اختيار {{newUserFm.linkedCaseIds.length}} عمل

تعديل بيانات المستخدم


جارٍ التحميل...

لا يوجد مستخدمون بعد. اطلب منهم تسجيل الدخول أولاً.
{{pendingUsersCount}} مستخدم بانتظار التفعيل
الاسم البريد الهاتف الدور الحالة إجراءات
{{u.name||'— بدون اسم —'}}
{{u.uid.slice(0,16)}}...
{{u.email||'—'}} {{u.phone||'—'}} {{roleLabel(u.role)}} معطّل نشط
Manager+Lawyer
إجمالي: {{usersList.length}} مستخدم | محدد: {{selectedUserUids.length}}
{{techWorkStats.total}}
الإجمالي
{{techWorkStats.inProgress}}
جاري العمل
{{techWorkStats.pending}}
بانتظار الاعتماد
{{techWorkStats.approved}}
معتمد
{{techWorkStats.overdue}}
متأخر / منتهي
لا توجد أعمال فنية
# العمل / النوع المحامي الموكل الميعاد الحالة الملف الإجراءات
{{idx+1}}
{{w.title}}
{{w.type}}
{{w.relatedItemTitle}}
{{w.adminNote}}
{{w.assignedToName}} {{w.clientName||'—'}} {{w.deadline||'—'}} {{w.status}}
محفوظ للاعتماد
نقل إلى:
{{st}}

إشعارات الأعمال الفنية

لا توجد تنبيهات حالياً
{{n.title}}
{{n.msg}}
الميعاد: {{n.deadline}}

تمديد ميعاد التنفيذ

{{twExtendWork.title}}
أو أضف أيام:

رفض العمل الفني

{{twRejectWork.title}}

{{twFm.id?'تعديل العمل الفني':'إضافة عمل فني جديد'}}

{{t}}
{{twFm.assignedToName}}
{{twFm.clientName}}
{{twFm.relatedItemTitle||twFm.relatedItemId}}

المساعد الذكي

مدعوم بـ Claude · Anthropic
يرجى إدخال مفتاح Anthropic API من زر "مفتاح API" أعلاه لتفعيل المساعد الذكي. لم يتم تفعيل المساعد الذكي بعد. يرجى التواصل مع المسؤول.
الوضع: يقرأ ويعدّل النظام تطوير واكتشاف أخطاء
اسألني أي سؤال قانوني أخبرني ماذا تريد وسأتصرف في النظام اسألني عن مشاكل النظام وتحسيناته
مثال: "أضف جلسة لقضية أحمد غداً" أو "أرني القضايا المتأخرة"
مثال: "حلّل النظام واكتشف الأخطاء" أو "اقترح تحسينات على الداشبورد"
{{aiConfirmAction.description}}

أرشيف — {{aiMode==='legal'?'قانوني':aiMode==='agent'?'وكيل ذكي':'مطوّر'}}

لا توجد محادثات محفوظة
{{c.date}}
{{c.title}}
{{c.messages.filter(m=>m.role==='user'||m.role==='assistant').length}} رسالة

تلخيص القضايا والمهام

{{aiSummaryResult}}
{{card.title}}

{{b}}

  • {{it}}

صياغة المذكرات القانونية

{{aiDraftResult}}
{{card.title}}

{{b}}

  • {{it}}

تحليل المستندات (PDF)

{{aiPdfFile?aiPdfFile.name:'اضغط أو اسحب ملف PDF هنا'}}
يدعم ملفات PDF حتى 30 صفحة
{{aiPdfResult}}
{{card.title}}

{{b}}

  • {{it}}

التنبيهات الذكية

اضغط "تحليل القضايا" وسيراجع المساعد الذكي كل القضايا ويعطيك تنبيهات عاجلة
{{aiAlertsData.summary}}
التنبيهات الذكية
{{aiAlertsData&&aiAlertsData.summary}}
{{day.label}} {{day.date}} {{(day.items||[]).length}} بند
{{item.title}}
{{item.client}} {{item.type}} {{item.note}}

إعداد مفتاح Claude API

أدخل مفتاح Anthropic API. سيتم تخزينه بأمان ومشاركته مع المستخدمين الذين لديهم صلاحية المساعد الذكي.

مساعد ترحيل البيانات

يحوّل الجلسات القديمة للبنية الجديدة (الدرجة · المحكمة · نوع الدعوى · السنة · رقم الدعوى)

سيعرض الجلسات التي تحتاج تكملة البيانات
{{migrationItems.length}} جلسة تحتاج تحديث {{migrationDone}} مكتملة بالفعل
البيان / الجلسة الموكل المحكمة الحالية الدرجة نوع الدعوى السنة رقم الدعوى حفظ
{{mi.label.substring(0,40)}}{{mi.label.length>40?'...':''}}
{{mi.date}}
{{mi.client}} {{mi.courtOld||'—'}}
تلقائي
سنة قضائية
الصفوف الصفراء = قيم تلقائية اقترحها النظام من اسم المحكمة — راجعها قبل الحفظ

إصلاح البيانات — ربط الأعمال بالملفات

يكتشف الجلسات والمهام غير المرتبطة بأي ملف ويقترح ربطها تلقائياً

سيعرض كل الأعمال غير المرتبطة بملف
كل الأعمال مرتبطة بملفات
لا توجد بيانات تحتاج إصلاح
{{repairScanData.reduce((s,g)=>s+g.items.length,0)}} عمل {{repairScanData.filter(g=>g.matchType==='exact').length}} تطابق دقيق {{repairScanData.filter(g=>g.matchType==='single').length}} ملف وحيد {{repairScanData.filter(g=>g.matchType==='multiple').length}} اختيار يدوي {{repairScanData.filter(g=>g.matchType==='none').length}} ملف جديد
{{group.clientName}}
تطابق دقيق بالرقم والسنة ملف وحيد — تحقق قبل الربط {{group.existingMatters.length}} ملفات — اختر يدوياً لا يوجد ملف — سيُنشأ جديد {{group.items.length}} عمل
{{group.existingMatters[0]&&group.existingMatters[0].title}} {{group.existingMatters[0]&&( group.existingMatters[0].matterType==='litigation'?'قضية': group.existingMatters[0].matterType==='complaint'?'شكوى': group.existingMatters[0].matterType==='contract'?'عقد': group.existingMatters[0].matterType==='consultation'?'استشارة':'إجراء')}}
بيانات مستخرجة تلقائياً من العنوان — يمكنك التعديل قبل الإنشاء
تم إنشاء الملف وربط {{group.items.length}} عمل بنجاح
حدث خطأ أثناء الإنشاء
{{(it.title||it.description||'—').substring(0,35)}} {{it.dD||it.date||''}}
روابط مكسورة — {{repairBrokenLinks.length}} عنصر
مرتبطة بملفات محذوفة أو غير موجودة
{{repairBrokenLinks.filter(it=>repairBrokenChecked[it.id]).length}} محدد
إنشاء ملف جديد من {{repairBrokenLinks.filter(it=>repairBrokenChecked[it.id]).length}} عنصر محدد
عنوان الملف *
الموكل *
النوع
معاينة الملفات التي ستُنشأ
يوجد ملف مشابه للموكل "{{grp.clientName}}" — هل تدمج أم تنشئ ملفاً مستقلاً؟
{{grp.items.length}} عنصر
سيُرتبط
الملفات المشابهة:
{{dm.title.substring(0,25)}}
{{(it.title||it.description||'—').substring(0,25)}}
{{repairBrokenFiltered.length}} نتيجة · صفحة {{repairBrokenPage+1}} / {{repairBrokenTotalPages||1}}
{{it.type==='session'?'جلسة':it.type==='task'?'مهمة':'محضر'}}
{{it.title||it.description||'—'}}
{{it.client||'—'}} · {{it.dD||it.date||'—'}} · {{(it.matterId||'').substring(0,8)}}…
عناصر بدون موكل — {{repairNoClient.length}} عنصر
لا ملف ولا اسم موكل
{{repairNoClient.filter(it=>repairNoClientChecked[it.id]).length}} محدد
{{repairNoClientFiltered.length}} نتيجة · صفحة {{repairNoClientPage+1}} / {{repairNoClientTotalPages||1}}
{{it.type==='session'?'جلسة':it.type==='task'?'مهمة':'محضر'}}
{{it.title||it.description||'—'}}
{{it.dD||it.date||'—'}}

محرك الأرشفة التلقائي (البيانات السابقة)

يقوم بفحص وتأسيس ملفات قضايا أوتوماتيكياً لأي جلسات أو مهام أو أوراق محضرين غير مرتبطة بملف.

أدوات الصيانة

مراقبة التخزين

وضع السحابة (Firestore) — البيانات متزامنة عبر كل الأجهزة {{storageInfo.itemCount}} عنصر
{{storageInfo.usedMB}} MB
مستخدم من 10 MB
{{storageInfo.percent}}%
نسبة الاستخدام
{{storageInfo.itemCount}}
إجمالي العناصر
تحذير: الذاكرة تقترب من الامتلاء. يُنصح بالأرشفة.

نظام توزيع نسخ المحامين

قم بتصدير نسخة خاصة لكل محامي تحتوي فقط على مهامه، ثم استيراد التحديثات باستخدام "التحديث الذكي"
📌 طريقة العمل:
1️⃣ صدّر نسخة لكل محامي من الأزرار أعلاه
2️⃣ وزع الملفات على المحامين
3️⃣ بعد عملهم، اجمع الملفات واستوردها بـ "التحديث الذكي"
4️⃣ سيتم دمج جميع التغييرات تلقائياً
لا توجد عمليات
{{fmtT(l.ts)}} — {{l.d}}
إجمالي: {{items.length}} | أرشيف: {{archived.length}} | سجل: {{logs.length}}
وضع التشغيل الموسع

أعمال فنية بانتظار الاعتماد ({{technicalWorks.filter(w=>w.status==='بانتظار الاعتماد').length}})

{{w.type}} {{w.title}}
{{w.assignedToName}} {{w.clientName}} {{w.deadline}} أُرسل للاعتماد: {{w.submittedAt.slice(0,10)}}

طلبات تغيير من المحامين ({{pendingApprovalItems.length}})

{{item.type==='task'?'مهمة':'جلسة'}} {{item.title||item.description}}
{{item.assignedToName}} {{item.client}} {{item.deadline||item.date}}
{{item.changeRequest.action==='postpone'?'طلب تأجيل':item.changeRequest.action==='archive'?'طلب أرشفة':'طلب تغيير الحالة'}}
التاريخ الجديد: {{item.changeRequest.newDate}}
الحالة الجديدة: {{item.changeRequest.newStatus}}
{{item.changeRequest.reason}}
طلبه: {{item.changeRequest.requestedByName||item.changeRequest.requestedByUid}}

بنود بانتظار مراجعتك ({{pendingManagerItems.length}})

{{item.type==='task'?'مهمة':'جلسة'}} {{item.title||item.description}}
{{item.assignedToName}} {{item.client}} {{item.deadline||item.date}}
{{items.filter(i=>i.wfStatus==='pending_manager').length}}
بانتظار المراجع
{{pendingAdminItems.length}}
بانتظار اعتمادك
{{items.filter(i=>i.wfStatus==='approved').length}}
معتمد
{{items.filter(i=>i.wfStatus==='rejected').length}}
مرفوض

بنود بانتظار مراجعة المراجع ({{items.filter(i=>i.wfStatus==='pending_manager').length}})

{{item.type==='task'?'مهمة':'جلسة'}} {{item.title||item.description}} {{item.assignedToName}} {{item.client}}

بنود بانتظار اعتمادك ({{pendingAdminItems.length}})


لا توجد بنود بانتظار الاعتماد
{{item.type==='task'?'مهمة':'جلسة'}} {{item.title||item.description}}
{{item.deadline||item.date}} {{item.client}} {{item.category||item.court}} المحامي: {{item.assignedToName||item.assigned||item.lawyerAssigned}} ⚠️ بدون uid {{item.court||item.category}} راجعه: {{getActorName(item.managerReviewedBy)}}
{{item.notes}}

طلباتي المعلقة ({{items.filter(i=>i.changeRequest).length}})

لا توجد طلبات معلقة
{{item.title||item.description}}
{{item.changeRequest.action==='postpone'?'طلب تأجيل إلى '+item.changeRequest.newDate: item.changeRequest.action==='archive'?'طلب أرشفة': 'طلب تغيير الحالة إلى '+item.changeRequest.newStatus}}
{{item.changeRequest.reason}}
{{item.wfStatus==='pending_approval'?'بانتظار الموافقة':item.wfStatus==='approved'?'تمت الموافقة':'مرفوض'}}

إرسال طلب تغيير

اختر بنداً من القائمة وانقر زر بجانبه لإرسال طلب تغيير للمدير.

طلب تغيير

{{crItem.title||crItem.description}}
الحالة الحالية: {{crItem.status}}
مطلوب قبل إرسال طلب الإنجاز

تحديث ملاحظات

{{lawyerNotesItem.title||lawyerNotesItem.description}}

سجل التعديلات — {{diffItem&&(diffItem.title||diffItem.description)}}


جارٍ التحميل...
لا توجد نسخ مسجلة بعد

قبل وبعد آخر تعديل

قبل التعديل {{diffVersions[1].actorName||diffVersions[1].actorRole}} — {{fmtTs(diffVersions[1].createdAt)}}
{{fieldLabel(key)}} {{val.before||'(فارغ)'}}
لا تغييرات مسجلة في diffFromPrev
بعد التعديل {{diffVersions[0].actorName||diffVersions[0].actorRole}} — {{fmtTs(diffVersions[0].createdAt)}}
{{fieldLabel(key)}} {{val.after||'(فارغ)'}}
الحقل قبل بعد
{{fieldLabel(key)}} {{val.before||'—'}} {{val.after||'—'}}

كامل التاريخ ({{diffVersions.length}} نسخ)

v{{v.versionNo}} {{actionLabel(v.action)}} {{v.actorName||v.actorUid}} ({{v.actorRole}}) {{fmtTs(v.createdAt)}}
{{v.note}}
{{fieldLabel(key)}}: {{val.before||'—'}}{{val.after||'—'}}

طلبات الاستشارة من الموقع {{consultNotifCount}} جديد

خط الأعمال:
{{stage}} {{consultations.filter(x=>( x.pipeline||'جديد')===stage).length}}
لا توجد طلبات استشارة بعد
{{c.name||'—'}} AI Chat {{c.status==='new'?'جديد':c.status==='read'?'مقروء':c.status==='done'?'مكتمل':'مؤرشف'}} {{c.pipeline||'جديد'}}
{{c.phone||'—'}} {{new Date(c.createdAt.seconds?c.createdAt.seconds*1000:c.createdAt).toLocaleDateString('ar-SA',{day:'2-digit',month:'2-digit',year:'numeric',hour:'2-digit',minute:'2-digit'})}}
{{c.subject||'—'}}
{{c.trackingCode}}
{{m.role==='assistant'?'🤖 المساعد الذكي':'👤 العميل'}}
{{m.content}}
{{c.message}}
جاري التحميل...
لا توجد رسائل بعد
جديد آخر رد: {{c.clientReply}}
رد واتساب

سجل التدقيق


لا توجد سجلات
{{auditActionLabel(log.action)}} {{log.userName||log.userUid}} ({{log.userRole}}) ID: {{log.itemId.slice(-6)}} {{fmtTs(log.at)}}
حالة: {{log.newValue.wfStatus}}

السجل التاريخي

{{filteredHistoricalRecords.length}} سجل
{{histSelectedIds.length}} سجل محدد
لا توجد بيانات — قم بتشغيل سكريبت الاستيراد أولاً
السنة التاريخ النوع البيان الجهة الموكل صفته الخصم ما تم الكود إجراءات
{{r.year}} {{r.date}} {{r.title}} {{r.matterTitle||'ملف'}} {{r.court||'—'}} {{r.client||'—'}} {{r.clientRole||'—'}} {{r.opponent||'—'}} {{r.result||r.notes||'—'}} {{r.legacyCode||'—'}}
{{filteredWakala.length}} توكيل
لا توجد توكيلات — قم بتشغيل سكريبت الاستيراد أولاً
رقم التوكيل حرف سنة مكتب التوثيق الموكل عهدة الزميل تاريخ الاستلام تاريخ العودة الوكيل
{{w.number}} {{w.letter||'—'}} {{w.year||'—'}} {{w.office||'—'}} {{w.clientName||'—'}} {{w.assignedTo||'—'}} {{w.receivedDate||'—'}} {{w.returnDate||'—'}} {{w.lawyerName||'—'}}

تفاصيل السجل

{{auditActionLabel(auditDetailItem.action)}} {{auditDetailItem.userName}} {{fmtTs(auditDetailItem.at)}}
قبل التغيير
{{auditDetailItem.oldValue?JSON.stringify(auditDetailItem.oldValue,null,2):'—'}}
بعد التغيير
{{auditDetailItem.newValue?JSON.stringify(auditDetailItem.newValue,null,2):'—'}}

الإشعارات {{unreadNotifCount}} جديد


لا توجد إشعارات
{{notifTypeIcon(n.type)}}
{{n.title}}
{{n.message}}
{{fmtTs(n.createdAt)}}

مرفقات — {{attachItem.title||attachItem.description}}

اسحب الملف أو انقر للاختيار
PDF، Word، صور، أرشيف — حتى 200MB
جاري الرفع... {{attachProgress}}%
بدون حد للحجم
جاري التحميل...

لا توجد مرفقات بعد
{{attachTypeIcon(att.fileType||att.type)}}
{{att.fileName||att.name}}
{{att.uploadedByName}} · {{fmtTs(att.uploadedAt||att.addedAt)}}
{{att.fileName||att.name}}
معاينة هذا النوع غير متاحة في المتصفح مباشرة
تحميل الملف

صلاحيات — {{permUser.name}}

الدور: {{permUser.role}} | البريد: {{permUser.email||'—'}} isManager=true
ضع علامة على التبويبات التي تريد إخفاءها عن هذا المستخدم. التبويبات المُقيَّدة بالدور تبقى محمية بصرف النظر.
اتركه فارغاً ليرى جميع الموكلين، أو أدخل أسماء موكلين (سطر لكل موكل) لتقييد رؤيته على هؤلاء فقط.
قائمة الموكلين المسموح بهم:
الموكلون الحاليون: {{permClients.split('\n').filter(s=>s.trim()).length}} — صلاحية كاملة — مقيَّد بالقائمة
بيانات التواصل للإشعارات الخارجية

{{fId?'تعديل':'إضافة'}} {{fType==='task'?'مهمة':'جلسة'}}

يمكنك تحديث الملاحظات فقط. للتغييرات الأخرى استخدم زر طلب تغيير.

{{ltId?'تعديل مهمة محامي':'إسناد مهمة لمحامي'}}

يمكن نقل هذه المهمة للقسم الرئيسي لاحقاً عبر زر "نقل للقسم" في الجدول.

تأجيل

تسجيل نتيجة المهمة

{{taskResultItem.title||taskResultItem.description||'المهمة'}} · {{taskResultItem.client}}
مهمة متابعة (اختياري)

تأكيد الإنجاز

سيتم نقل العنصر إلى الأرشيف تلقائياً. يمكن استرداده لاحقاً.

استرداد مع تحديث البيانات

يمكنك تحديث أي حقل قبل إعادة العنصر للقائمة.

نقل للقسم الرئيسي

اختر الفئة والنوع المناسب لنقل هذه المهمة.

إدارة الفئات ({{cats.length}})

{{c}}

إدارة المحامين ({{laws.length}})

الاسمالهاتفالدرجةرقم القيدإجراءات
{{l.name}}{{l.phone||'—'}}{{l.degree||'—'}}{{l.licenseNumber||'—'}}
{{edLawI>=0?'تعديل: '+laws[edLawI].name:'إضافة محامي جديد'}}

سجل العمليات ({{logs.length}})

{{logs.length}} حدث مسجل
لا توجد عمليات
{{l.d}}
{{fmtT(l.ts)}} {{l.u}}

دمج الفئات

📌 كيفية الدمج:
1. اختر الفئات المراد دمجها
2. حدد الاسم الجديد الموحد (من الفئات الموجودة أو اسم جديد)
3. جميع العناصر ستُنقل للفئة الجديدة
سيتم دمج {{mergeCats.length}} فئة → {{mergeNewName||'(حدد الاسم)'}}

{{custodyForm.editMode?'تعديل بيان عملية':(custodyForm.type==='debit'?'منح عهدة جديدة':'تسجيل مصروف')}}

💡 بيان حر - اكتب ما تشاء (لا يحتاج ربط بقضية)
💡 سيتم خصم المبلغ من {{custodyForm.treasurySource}} تلقائياً

نقل العناصر بين الفئات

📌 كيفية النقل:
1. اختر الفئة المصدر (التي تريد النقل منها)
2. اختر الفئة الهدف (التي تريد النقل إليها)
3. جميع العناصر ستُنقل تلقائياً
سيتم نقل {{catCount(moveFrom)}} عنصر من {{moveFrom}}{{moveTo}}

إسناد مهام للمحامي

لا يوجد محامون مسجّلون بعد — اطلب منهم تسجيل الدخول أولاً
{{assignFm.lawyerName}}
العناصر المحددة للإسناد ({{assignItems.length}}):
{{item.type==='task'?'مهمة':'جلسة'}}
{{item.title||item.description}}
{{item.category||item.court||''}} {{item.deadline||item.date?'· '+item.deadline||item.date:''}}
لم يتم اختيار عناصر

تصدير البيانات

نطاق التصدير:
يشمل التصدير:
سيتم تصدير {{expPreviewCount}} عنصر (من أصل {{items.length+archived.length}} عنصر)

تصدير مهام المحامي

اختر المحامي للتصدير:
يمكنك تصدير مهام محامي محدد أو جميع مهام المحامين المعروضة
سيتم تصدير {{items.filter(i=>(i.assigned||i.lawyerAssigned)===exportLawyerFilter).length}} مهمة للمحامي {{exportLawyerFilter}}
سيتم تصدير {{flt.length}} مهمة لجميع المحامين المعروضين

استيراد / تحديث البيانات

اختر طريقة الاستيراد:
يمكنك استيراد ملف JSON كاملاً أو دمج البيانات مع الموجود
نصيحة: استخدم "التحديث الذكي" عند دمج بيانات من نسخ المحامين

{{treasuryForm.editMode?'تعديل عملية':(treasuryForm.type==='income'?'تسجيل إيراد':'تسجيل مصروف')}}

كشف المكررات

لا توجد مكررات في النظام
وُجد {{dupGroups.length}} مجموعة — إجمالي {{dupGroups.reduce((s,g)=>s+g.items.length-1,0)}} عنصر زائد
{{grp.title||'—'}} {{grp.items.length}} نسخ
{{grp.client||'بدون موكل'}} {{grp.date}}
{{item.id.slice(0,8)}} {{item.status||'—'}} أرشيف ✓ الأصلي

طباعة الموكلون

اختر نطاق الطباعة:
اختر الموكلين للطباعة:
{{clientPrintSel.length}} موكل محدد

طباعة التقويم

اختر الأسابيع للطباعة:
{{lawyerName||'محامي'}} — ترى فقط البنود المُسندة إليك {{items.filter(i=>i.changeRequest).length}} طلب معلق
إجمالي: {{items.length}} | أرشيف: {{archived.length}} شورى للاستشارات والمحاماة · v15.0 ٣٢ صبري ابو علم، وسط البلد

إدارة فئات الخزينة

فئات الإيرادات {{incomeCategories.length}}

{{cat}}
لا توجد فئات

فئات المصروفات {{expenseCategories.length}}

{{cat}}
لا توجد فئات
{{timerDisplay}}
تتبع الساعات القابلة للفوترة