دمج الموكلين
الموكلون المحددون للدمج:
الاسم النهائي بعد الدمج:
-- اختر الاسم النهائي --
{{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}}
التالي
الجدول الزمني
الجلسات
{{matterDetailItem?(items||[]).concat(archived||[]).filter(x=>matterDetailItem.caseKey?(x.client===matterDetailItem.clientName&&(x.title===matterDetailItem.title||x.description===matterDetailItem.title))&&x.type==='session':x.matterId===matterDetailItem.id&&x.type==='session').length+((historicalRecords||[]).filter(r=>r.matterId===matterDetailItem.id&&r.type==='session').length):0}}
المهام
{{matterDetailItem?(items||[]).concat(archived||[]).filter(x=>matterDetailItem.caseKey?(x.client===matterDetailItem.clientName&&(x.title===matterDetailItem.title||x.description===matterDetailItem.title))&&x.type==='task':x.matterId===matterDetailItem.id&&x.type==='task').length+((historicalRecords||[]).filter(r=>r.matterId===matterDetailItem.id&&r.type!=='session').length):0}}
المحضرين
{{matterDetailItem?(processOfficers||[]).filter(x=>matterDetailItem.caseKey?x.client===matterDetailItem.clientName:x.matterId===matterDetailItem.id||x.client===matterDetailItem.clientName).length:0}}
ملفات فرعية
{{matterDetailItem?(matters||[]).filter(m=>m.parentMatterId===matterDetailItem.id).length:0}}
المستندات
{{matterDocs.length}}
المصروفات
{{matterExpenses.length}}
التكرار
{{matterDuplicateGroups.length}}
مرتبطة
{{(matterDetailItem&&matterDetailItem.relatedMatters||[]).length}}
وضع المشاهدة — يمكنك تصفح البيانات وطباعة السجلات والبحث. لا تتوفر صلاحيات التعديل.
{{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||''}}
الصيانة
أوراق المحضرين
المساعد الذكي
{{unreadNotifCount>9?'9+':unreadNotifCount}}
{{(lawyerName||userRole||'م').charAt(0)}}
شكل النظام
تفضيلك الشخصي
قائمة علوية
أدمن
شريط تنقل علوي بقوائم منسدلة
إعادة للافتراضي
تطبيق على الجميع
منح الثيم الحالي لمستخدم
— اختر مستخدم —
{{u.name||u.email||u.uid}} ({{u.role==='admin'?'أدمن':u.role==='employee'?'موظف':u.role==='manager'?'مراجع':u.role==='lawyer'?'محامي':u.role==='viewer'?'مشاهد':u.role||'—'}})
منح
حمّل قائمة المستخدمين أولاً من صفحة المستخدمون
الكل {{items.length}}
المهام {{items.filter(i=>i.type==='task').length}}
الجلسات {{items.filter(i=>i.type==='session').length}}
يومي {{daily.length}}
أسبوعي {{weekly.length}}
مهام المحامين {{ltItems.length}}
التقويم {{items.length+archived.length}}
الداشبورد
الموكلون {{firestoreClients.length||clientsList.length}}
الملفات {{matters.length}}
المرفقات {{globalAttachments.length||''}}
المالية {{treasuryEntries.length+custody.length}}
عهدتي
الساعات الإضافية
الأرشيف {{archived.length}}
المستخدمون {{pendingUsersCount||''}}
الاعتماد
{{pendingAdminItems.length+pendingApprovalItems.length}}
الفئات {{cats.length}}
الأتعاب {{overdueFees||''}}
الأعمال الفنية
{{technicalWorks.filter(w=>w.status==='جاري العمل').length||''}}
{{twNotifCount}}
المساعد الذكي
{document.documentElement.scrollTop=0;document.body.scrollTop=0;window.scrollTo(0,0)})"> أوراق المحضرين {{processOfficers.length||''}}
السجل التاريخي {{historicalRecords.length}}
طلبات الموقع {{consultNotifCount||''}}
الصيانة
سجل التدقيق
طلباتي
{{items.filter(i=>i.wfStatus==='pending_approval'&&i.changeRequest).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}}
متأخر
{{showAdvSearch?'إخفاء':'بحث متقدم'}}
●
مهمة
جلسة
إسناد مهمة
طباعة
أدوات
استيراد
استيراد مهام
استيراد جلسات
استيراد محامين
استيراد / تحديث
تصدير
تصدير البيانات
نسخ
نسخ لليوم
نسخ للأسبوع
إدارة
الفئات
المحامين
السجل
البحث المتقدم
فعّال
{{fi.length}} نتيجة بعد الفلترة
تطبيق
مسح الكل
الملفات القانونية
{{matters.length}}
m.id)"
style="background:var(--navy);color:white;border:none;padding:.35rem .8rem;border-radius:7px;cursor:pointer;font-family:'Cairo',sans-serif;font-size:.82rem">
{{mattersSel.length===filteredMatters.length?'إلغاء الكل':'تحديد الكل'}}
حذف الكل
{{mattersSel.length}} ملف محدد
حذف المحدد
إلغاء
⚖️ قضايا
{{(matters||[]).filter(m=>!m.parentMatterId&&m.matterType==='litigation').length||''}}
📄 عقود
{{(matters||[]).filter(m=>!m.parentMatterId&&m.matterType==='contract').length||''}}
💡 استشارات
{{(matters||[]).filter(m=>!m.parentMatterId&&m.matterType==='consultation').length||''}}
📋 اجراءات
{{(matters||[]).filter(m=>!m.parentMatterId&&(m.matterType==='procedure'||m.matterType==='complaint')).length||''}}
📂 غير مرتبطة
{{casesGrouped.length}}
كل الملفات
مفتوح
مغلق
موقوف
ملف جديد
لا توجد ملفات قانونية — ابدأ بإضافة ملف جديد
{{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}}
القسم المستهدف
اختر القسم...
⚖️ القضايا
📄 العقود
💬 الاستشارات
📋 الإجراءات
إلغاء
{{matterMgmtLoading?'جارٍ النقل...':'نقل الملف'}}
{{matterMgmtTarget.title}}
{{matterMgmtTarget.clientName}}
عنوان النسخة الجديدة
القسم المستهدف
اختر القسم...
⚖️ القضايا
📄 العقود
💬 الاستشارات
📋 الإجراءات
سيتم إنشاء ملف جديد بنفس البيانات — العناصر المرتبطة تبقى في الملف الأصلي
إلغاء
{{matterMgmtLoading?'جارٍ النسخ...':'نسخ الملف'}}
الملف المراد دمجه (سيُحذف بعد الدمج)
{{matterMgmtTarget.title}}
{{matterMgmtTarget.clientName}}
ابحث عن الملف المستهدف (الذي سيستقبل البيانات)
لا توجد نتائج
{{r.title}}
{{r.clientName}} · {{matterTypeLabel(r.matterType)}}
تحذير: سيتم نقل جميع عناصر الملف "{{matterMgmtTarget.title}}" إلى الملف المستهدف ثم حذف الملف الأصلي. لا يمكن التراجع.
إلغاء
{{matterMgmtLoading?'جارٍ الدمج...':'تأكيد الدمج'}}
{{matterMgmtTarget.title}}
{{matterMgmtTarget.clientName}}
نوع العلاقة
ذو صلة
يرجع إليه
مكمّل
متفرع عنه
سابق له
ابحث عن الملف المراد الربط به
لا توجد نتائج
{{r.title}}
{{r.clientName}} · {{matterTypeLabel(r.matterType)}}
الملفات المرتبطة حالياً
{{lm.title}} ({{lm.relation}})
×
إغلاق
{{matterMgmtLoading?'جارٍ الربط...':'ربط الملف'}}
{{matterEditId ? 'تعديل ملف' : 'ملف قانوني جديد'}}
×
عنوان الملف *
الموكل *
صفة الموكل
-- اختر الصفة --
{{r}}
الخصم الرئيسي
أطراف إضافية
موكل إضافي
خصم إضافي
لا توجد أطراف إضافية
تحذير: تعارض مصالح محتمل ({{conflictResults.length}} ملف)
• {{r.title}} — موكل: {{r.clientName}} / خصم: {{r.opponent}}
جاري فحص تعارض المصالح...
نوع الملف
قضية (تقاضي)
شكوى
استشارة
عقد
إجراء إداري
الإدارة
الإدارة القضائية
إدارة الاستشارات
إدارة العقود
الإجراءات الإدارية
المرحلة الحالية
-- اختر المرحلة --
{{s}}
ملف رئيسي (فرعي من)
-- ملف مستقل --
{{m.clientName}} — {{m.title}}
المحامي المكلف
-- غير محدد --
{{u.name}}
الحالة
مفتوح
مغلق
موقوف
بيانات القضية
الدائرة
جهة الإجراء
(للملفات الفرعية: خبير، نيابة...)
-- لا يوجد / غير محدد --
محكمة
خبير
نيابة عامة
طب شرعي
تحكيم
تنفيذ
إدارية
أخرى
موضوع الدعوى
ملف مرتبط (استئناف من / طعن في)
-- لا يوجد --
{{m.clientName}} — {{m.title}}
-- نوع العلاقة --
استئناف من
طعن بالنقض في
تنفيذ حكم
إشكال في التنفيذ
مرتبط بـ
ملاحظات
{{matterEditId ? 'حفظ التعديلات' : 'إنشاء الملف'}}
إلغاء
{{sessionResultItem.title||sessionResultItem.description||'—'}}
{{sessionResultItem.dD||sessionResultItem.date||'—'}}
قرار الجلسة *
-- اختر القرار --
تأجيل
تأجيل لإعادة الإعلان
تأجيل لتقديم مذكرة
تأجيل لاستيفاء مستندات
إحالة للخبراء
إحالة للتحقيق
إحالة للمرافعة
حجز للحكم
صدور حكم لصالحنا
صدور حكم ضدنا
رفض الدعوى
قبول الدعوى
شطب
وقف الدعوى
ترك الخصومة
مد أجل
تاريخ الجلسة القادمة
(سيُنشئ جلسة جديدة تلقائياً)
ملاحظات
حفظ النتيجة
إلغاء
{{activityEditId ? 'تعديل النشاط' : 'نشاط جديد'}} — {{selectedMatter && selectedMatter.title}}
×
عنوان النشاط / الإجراء *
المحامي المكلف
-- غير محدد --
{{u.name}}
الحالة
قيد التنفيذ
منجز
مؤجل
ملغي
الإجراء السابق
ملاحظات
{{activityEditId ? 'حفظ التعديلات' : 'إضافة النشاط'}}
إلغاء
نظرة عامة
الخزينة
العهدة والمصروفات
الأتعاب
تحليل التكاليف
تحليل التكاليف والربحية
طباعة
الإعدادات
المحصّل فعلاً
{{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()}} ج
لا توجد بيانات — أضف قضايا وأتعاباً أولاً
r.id):[]" style="accent-color:#f59e0b">
القضية
الموكل
المحامي
الساعات
المتفق عليه
المحصّل
مباشر
أعباء
الصافي
{{r.title}}
{{r.clientName}}
{{r.lawyer}}
{{r.hours}}س
{{r.tasks}}م {{r.sessions}}ج
{{(r.agreedRevenue||0).toLocaleString()}}
{{(r.revenue||0).toLocaleString()}}
{{r.directCosts.toLocaleString()}}
{{r.allocatedOverhead.toLocaleString()}}
{{r.netProfit.toLocaleString()}}
الأتعاب المتفق عليها
{{(r.agreedRevenue||0).toLocaleString()}} ج
المحصّل فعلاً
{{(r.revenue||0).toLocaleString()}} ج
التكاليف المباشرة
{{r.directCosts.toLocaleString()}} ج
نصيب الأعباء العامة
{{r.allocatedOverhead.toLocaleString()}} ج
{{costSummary.totalHours>0?Math.round(r.hours/costSummary.totalHours*100):0}}% من إجمالي الساعات
المهام والجلسات
{{r.tasks}} مهمة · {{r.sessions}} جلسة
= {{r.hours}} ساعة
صافي الربح / الخسارة
{{r.netProfit.toLocaleString()}} ج
{{r.isLoss?' ⚠ خسارة':' ✓ ربح'}}
{{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}}
ربط بملف
{{treasuryFeeLinkModal.entries.filter(e=>e._matterId).length}} / {{treasuryFeeLinkModal.entries.length}} مرتبط
تم
{{histBulkModal.mode==='link'?'ربط بملف موجود':'إنشاء ملف جديد'}}
— {{histSelectedIds.length}} سجل محدد
×
لا توجد ملفات
{{m.title||'بدون عنوان'}}
{{m.clientName||'—'}}
{{m.status}}
إغلاق
إعدادات تحليل التكاليف
×
معيار الساعات
الافتراضي: مهمة = 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)}} ج
الرصيد المتبقي
منح عهدة جديدة
تسجيل مصروف
📥 استيراد من Excel
تقرير شامل
t.name)" style="font-size:.78rem"> تحديد الكل
حذف المحدد ({{custodyUserSel.length}})
حذف الكل
جميع المحامين
{{l.name}}
{{l.name}}
الكل
عهد جديدة فقط
مصروفات فقط
معلقة (غير موافق عليها)
كل الشهور
يناير فبراير مارس
أبريل مايو يونيو
يوليو أغسطس سبتمبر
أكتوبر نوفمبر ديسمبر
كل السنوات
2024 2025 2026 2027
حذف ({{custodySel.length}})
اعتماد ({{custodySel.length}})
{{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}}
طباعة
حذف ({{myCustodySel.length}})
إجمالي العهد: {{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}}
تسجيل ساعات إضافية
{{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'?'✗ مرفوض':'⏳ بانتظار الاعتماد'}}
سجلاتي
لا توجد سجلات
التاريخ الانصراف الإضافي الحالة
{{o.workDate}}
{{o.departureTime}}
{{o.overtimeDisplay}}
{{o.status==='approved'?'معتمد':o.status==='rejected'?'مرفوض':'معلق'}}
الساعات الإضافية
{{overtime.length}}
الكل
معلق
معتمد
مرفوض
اليوم
هذا الأسبوع
هذا الشهر
الكل
تحديث
اعتماد كل المعلق ({{overtime.filter(o=>o.status==='pending').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}} ورقة
تغيير الأوراق
✕
أولاً: اختر أوراق الملف المحلي
ثانياً: حدد الفترة الزمنية في النظام للمقارنة
السنة
كل السنوات
{{yr}}
من شهر
أول الفترة
يناير فبراير مارس
أبريل مايو يونيو
يوليو أغسطس سبتمبر
أكتوبر نوفمبر ديسمبر
إلى شهر
آخر الفترة
يناير فبراير مارس
أبريل مايو يونيو
يوليو أغسطس سبتمبر
أكتوبر نوفمبر ديسمبر
{{reconcileModal.filterYear||'كل السنوات'}}
· من {{['','يناير','فبراير','مارس','أبريل','مايو','يونيو','يوليو','أغسطس','سبتمبر','أكتوبر','نوفمبر','ديسمبر'][+reconcileModal.filterMonthFrom]||'البداية'}}
إلى {{['','يناير','فبراير','مارس','أبريل','مايو','يونيو','يوليو','أغسطس','سبتمبر','أكتوبر','نوفمبر','ديسمبر'][+reconcileModal.filterMonthTo]||'النهاية'}}
({{reconcileSystemCount}} عملية في النظام)
بدون تحديد = كل النظام ({{treasuryEntries.length}} عملية)
إلغاء
ابدأ المقارنة
جاري قراءة الأوراق والمقارنة...
{{reconcileModal.results.filter(r=>r.status==='match').length}}
متطابق
{{reconcileModal.results.filter(r=>r.status==='missing_system').length}}
ناقص من النظام
{{reconcileModal.results.filter(r=>r.status==='missing_local').length}}
في النظام فقط
{{tb.l}}
{{reconcileModal.results.filter(r=>tb.k==='all'||r.status===tb.k).length}}
أضف {{reconcileSel.length}} للنظام
الملف المحلي: {{reconcileModal.results.filter(r=>r.status!=='missing_local').length}} عملية
النظام: {{reconcileModal.results.filter(r=>r.status!=='missing_system').length}} عملية
الأوراق المقارَنة: {{reconcileModal.selectedSheets.join('، ')}}
محدد للإضافة: {{reconcileSel.length}}
لا توجد نتائج — تحقق من تنسيق الملف
جاري شركاء
استيراد من Excel
مقارنة مع الخزينة
مسح
{{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)}} ج
اضغط لعرض الكل
إيراد
مصروف
استيراد
طباعة
إدارة الفئات
تقرير مفصل
كشف التكرار
توحيد الفئات
تصدير Excel
مقارنة وتسوية
استيراد جاري شركاء
مزامنة العهد بالخزينة
مزامنة الأتعاب بالخزينة
مسح الخزينة
الكل
{{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
e.target.checked?treasurySel=filteredTreasury.map(x=>x.id):treasurySel=[]">
#
التاريخ
النوع
البيان
الفئة
نوع الدفع
إيراد (ج)
مصروف (ج)
الرصيد (ج)
إجراءات
↩
مرحّل
رصيد مرحّل من الفترة السابقة
(لا يُحتسب في الإجمالي)
{{treasuryOpeningBalance.toFixed(2)}} ج
لا توجد عمليات بعد
{{i+1}}
{{e.date}}
{{e.type==='income'?'⬇ إيراد':'⬆ مصروف'}}
{{e.description}}
📝 {{e.notes}}
updateTreasuryCategory(e,ev.target.value)"
style="border:1px solid var(--bdr);border-radius:8px;padding:.2rem .4rem;font-family:'Cairo',sans-serif;font-size:.72rem;background:var(--lb);color:var(--blue);max-width:120px">
-- بلا فئة --
{{cat}}
{{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()}} ج
المتبقي
{{tab.l}}
يستثني {{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}} قسط
⚠ متأخر
كل الأتعاب محصَّلة
{{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||'—'}}
لا توجد عناصر في هذه الفئة
⚠️ {{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?'تعديل':'إضافة'}} موكل
×
{{clientFormLoading?'جاري الحفظ...':'حفظ الموكل'}}
إلغاء
{{powerEditId!==null?'تعديل':'إضافة'}} توكيل
×
{{powerFormLoading?'جاري الحفظ...':'حفظ التوكيل'}}
إلغاء
{{processEditId?'تعديل':'إضافة'}} ورقة محضر
×
نوع الورقة *
إعلان إنذار محضر تسليم محضر استلام
الاتجاه
تسليم استلام
القضية المرتبطة
الحالة
منتظر تم التسليم تم استلام الاعلان مرتجع اجابة
ملاحظات
{{processFormLoading?'جاري الحفظ...':'حفظ'}}
إلغاء
{{feeEditId?'تعديل':'إضافة'}} رسوم
×
الموكل * مرتبط
-- اختر موكلاً من قاعدة البيانات --
{{c.clientName}}
عنوان القضية / الملف
الأعمال / القضايا المرتبطة
(اختياري — حدد ما ينطبق عليه الأتعاب)
جاري التحميل...
{{c.title}}
· {{c.court}}
{{c.type==='session'?'جلسة':c.type==='process'?'محضر':'مهمة'}}
لم يُعثر على قضايا باسم "{{feeFm.clientName}} " — ابحث يدوياً:
💡 يمكنك إنشاء سجل أتعاب منفصل لكل قضية بنفس الموكل بالضغط على "إضافة رسوم" مرة أخرى
تم اختيار {{feeFm.linkedCaseIds.length}} عمل
حالة الدفع
غير مدفوع
مدفوع جزئياً
مدفوع بالكامل
الأقساط
قسط
لا توجد أقساط
مجموع الأقساط: {{feeFm.installments.reduce((s,i)=>s+(i.amount||0),0).toLocaleString()}} ج
— الأتعاب المتفق عليها: {{(feeFm.agreedFee||0).toLocaleString()}} ج ⚠ تعارض
= الأتعاب المتفق عليها ✓
ملاحظات
{{feeFormLoading?'جاري الحفظ...':'حفظ'}}
إلغاء
الأرشيف: المنجز والمستلم والمنفذ. يمكن الاسترداد بنفس البيانات (↩️) أو مع تعديل (✏️) .
طباعة الأرشيف
فلتر الفئة:
الكل ({{base.length}} عنصر)
{{c.name}} ({{c.count}})
إلغاء الفلتر
{{allSel?'إلغاء الكل':'تحديد الكل'}}
🗑️ حذف ({{sel.length}})
📦 أرشفة ({{sel.length}})
👨⚖️ إسناد للمحامي ({{sel.length}})
↩️ استرداد ({{sel.length}})
🗑️ حذف المعروض
{{fi.length}} عنصر · {{catF}}
إرسال للمراجعة ({{sel.length}})
أجندة الجلسات
كل المحامين
{{l.name}}
—
مسح
{{fi.length}} جلسة
موعد جديد: {{row.item.postponedDate}}
— {{row.item.postponeNote}}
{{row.item.title||row.item.description||'—'}}
{{row.item.details||row.item.court||row.item.category}}
{{row.item.deadline||row.item.date||'—'}}
{{row.item.client}}
{{row.item.assigned||row.item.lawyerAssigned}}
{{row.item.opponent}}
{{row.item.doneNote||row.item.notes}}
#{{rNum(ri)}}
🗑️ حذف المحدد ({{dwSel.length}})
👨⚖️ إسناد للمحامي ({{dwSel.length}})
{{ltItems.filter(i=>(i.lawyerAssigned||i.assigned)===l.name).length}}
{{l.name}}
مهام المحامين
كل المحامين
{{l.name}}
{{l.name}}
كل الفترات
اليوم
هذا الأسبوع
طباعة
{{flt.length}} مهمة
إسناد جديد
🗑️ حذف المحدد ({{ltSel.length}})
إلغاء التحديد
{{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}}
أكثر الفئات
لا توجد بيانات
نشاط الإضافة — آخر 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}} محدد
حذف المحدد
إلغاء
لا يوجد موكلون
{{selectedFsClient.clientName||selectedFsClient.name}}
{{selectedFsClient.phone}}
{{selectedFsClient.nationalId}}
{{selectedFsClient.clientType==='individual'?'فرد':'شركة/جهة'}}
تعديل
طباعة
✕
{{selectedFsClient.address}}
{{selectedFsClient.email}}
{{selectedFsClient.notes}}
القضايا والمهام
التوكيلات {{selectedFsClient.powers.length}}
العنوان / البيان
النوع
الحالة
التاريخ
إجراء
لا توجد عمليات
{{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}}
جاري التحميل من قاعدة البيانات...
تعذّر تحميل البيانات
{{processLoadError}}
إعادة المحاولة
لا توجد أوراق محضرين
إجمالي المحمّل: {{processOfficers.length}} — لو أكثر من ٠ تحقق من الفلاتر
إعادة التحميل
إضافة أول ورقة
دمج القضايا
العنوان النهائي بعد الدمج:
-- اختر العنوان النهائي --
{{key.split('|')[1]}}
تأكيد الدمج
إلغاء
{{globalAttachSel.length}} مرفق محدد
حذف المحدد
إلغاء
{{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}}
إدارة المستخدمين
تحديث
مستخدم جديد
حذف المحدد ({{selectedUserUids.length}})
ترحيل UIDs
مستخدم جديد
×
{{newUserLoading?'جاري الإنشاء...':'إنشاء المستخدم'}}
إلغاء
تعديل بيانات المستخدم
×
{{editUserLoading?'جاري الحفظ...':'حفظ التعديلات'}}
إلغاء
جارٍ التحميل...
لا يوجد مستخدمون بعد. اطلب منهم تسجيل الدخول أولاً.
{{pendingUsersCount}} مستخدم بانتظار التفعيل
إجمالي: {{usersList.length}} مستخدم
| محدد: {{selectedUserUids.length}}
{{techWorkStats.total}}
الإجمالي
{{techWorkStats.inProgress}}
جاري العمل
{{techWorkStats.pending}}
بانتظار الاعتماد
{{techWorkStats.approved}}
معتمد
{{techWorkStats.overdue}}
متأخر / منتهي
إضافة عمل فني
الإشعارات
{{twNotifCount}}
{{twSelected.length===filteredTechWorks.length&&filteredTechWorks.length>0?'إلغاء التحديد':'تحديد الكل'}}
حذف المحدد ({{twSelected.length}})
حذف الكل
كل المحامين
{{u.name}}
كل الحالات
جاري العمل
بانتظار الاعتماد
معتمد
لم يتم التنفيذ
كل الأنواع
{{t}}
إشعارات الأعمال الفنية
×
لا توجد تنبيهات حالياً
{{n.title}}
{{n.msg}}
الميعاد: {{n.deadline}}
رفض العمل الفني
{{twRejectWork.title}}
سبب الرفض
إلغاء
رفض
{{twFm.id?'تعديل العمل الفني':'إضافة عمل فني جديد'}}
×
عنوان العمل *
النوع *
اختر النوع
{{t}}
{{t}}
×
ميعاد التنفيذ *
الوصف
ملاحظات
إلغاء
{{twFm.id?'حفظ التعديلات':'إضافة العمل'}}
المساعد الذكي
مدعوم بـ Claude · Anthropic
مفتاح API
يرجى إدخال مفتاح Anthropic API من زر "مفتاح API" أعلاه لتفعيل المساعد الذكي.
لم يتم تفعيل المساعد الذكي بعد. يرجى التواصل مع المسؤول.
{{s.l}}
الوضع:
{{m.l}}
يقرأ ويعدّل النظام
تطوير واكتشاف أخطاء
اسألني أي سؤال قانوني
أخبرني ماذا تريد وسأتصرف في النظام
اسألني عن مشاكل النظام وتحسيناته
مثال: "أضف جلسة لقضية أحمد غداً" أو "أرني القضايا المتأخرة"
مثال: "حلّل النظام واكتشف الأخطاء" أو "اقترح تحسينات على الداشبورد"
{{m.content}}
{{m.content}}
{{aiConfirmAction.description}}
تأكيد
إلغاء
{{aiConversations[aiMode].archive.length}}
أرشيف — {{aiMode==='legal'?'قانوني':aiMode==='agent'?'وكيل ذكي':'مطوّر'}}
✕
لا توجد محادثات محفوظة
{{c.date}}
{{c.title}}
{{c.messages.filter(m=>m.role==='user'||m.role==='assistant').length}} رسالة
تلخيص القضايا والمهام
— اختر قضية أو مهمة —
{{it.title||it.description||it.id}} · {{it.client||''}}
تلخيص
📄 نص
✨ منسق
🃏 بطاقات
{{aiSummaryResult}}
نسخ
صياغة المذكرات القانونية
وقائع القضية وطلباتك
صياغة المذكرة
📄 نص
✨ منسق
🃏 بطاقات
{{aiDraftResult}}
نسخ
تحليل المستندات (PDF)
تحليل المستند
📄 نص
✨ منسق
🃏 بطاقات
{{aiPdfResult}}
نسخ
التنبيهات الذكية
{{aiAlertsLoading?'يتحلل...':'تحليل القضايا'}}
اضغط "تحليل القضايا" وسيراجع المساعد الذكي كل القضايا ويعطيك تنبيهات عاجلة
عرض التنبيهات ({{aiAlertsData.days?aiAlertsData.days.reduce((a,d)=>a+(d.items||[]).length,0):0}} بند)
{{aiAlertsData.summary}}
التنبيهات الذكية
{{aiAlertsData&&aiAlertsData.summary}}
✕
{{day.label}}
{{day.date}}
{{(day.items||[]).length}} بند
{{item.title}}
{{item.client}}
{{item.type}}
{{item.note}}
مساعد ترحيل البيانات
يحوّل الجلسات القديمة للبنية الجديدة (الدرجة · المحكمة · نوع الدعوى · السنة · رقم الدعوى)
{{migrationLoading?'جاري الفحص...':'فحص البيانات'}}
سيعرض الجلسات التي تحتاج تكملة البيانات
{{migrationItems.length}} جلسة تحتاج تحديث
{{migrationDone}} مكتملة بالفعل
إعادة الفحص
{{migrationSaving?'جاري الحفظ...':'حفظ الكل'}}
الصفوف الصفراء = قيم تلقائية اقترحها النظام من اسم المحكمة — راجعها قبل الحفظ
إصلاح البيانات — ربط الأعمال بالملفات
يكتشف الجلسات والمهام غير المرتبطة بأي ملف ويقترح ربطها تلقائياً
{{repairLoading?'جاري الفحص...':'فحص البيانات'}}
سيعرض كل الأعمال غير المرتبطة بملف
كل الأعمال مرتبطة بملفات
لا توجد بيانات تحتاج إصلاح
{{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}} ملف جديد
إعادة الفحص
ربط تلقائي ({{repairScanData.filter(g=>g.autoSuggested&&g.selectedMatterId).length}})
ربط الكل المحدد ({{repairScanData.filter(g=>g.selectedMatterId).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'?'استشارة':'إجراء')}}
هذا العمل لا ينتمي لهذا الملف — أنشئ ملفاً جديداً
-- اختر الملف المناسب --
{{m.title}} ({{m.matterType==='litigation'?'قضية':m.matterType==='complaint'?'شكوى':m.matterType==='contract'?'عقد':m.matterType==='consultation'?'استشارة':'إجراء'}})
— رقم {{m.caseNumber}} / {{m.caseYear}}
هذا العمل لا ينتمي لأي من هذه الملفات — أنشئ ملفاً جديداً
بيانات مستخرجة تلقائياً من العنوان — يمكنك التعديل قبل الإنشاء
تم إنشاء الملف وربط {{group.items.length}} عمل بنجاح
{{group.groupStatus==='creating'?'جاري الإنشاء...':'إنشاء الملف وربط الأعمال'}}
حدث خطأ أثناء الإنشاء
{{(it.title||it.description||'—').substring(0,35)}}
{{it.dD||it.date||''}}
{{repairBrokenLinks.filter(it=>repairBrokenChecked[it.id]).length}} محدد
اختر الملف المستهدف...
{{m.title.substring(0,40)}} — {{m.clientName}}
{{m.title.substring(0,40)}} — {{m.clientName}}
{{m.title.substring(0,40)}} — {{m.clientName}}
{{m.title.substring(0,40)}} — {{m.clientName}}
ربط المحدد
إنشاء ملف من المحدد
$set(repairBrokenChecked,it.id,false));showCreateFromSelected=false"
style="background:white;color:#64748b;border:1px solid #cbd5e1;padding:.35rem .7rem;border-radius:8px;cursor:pointer;font-size:.78rem;font-family:Cairo,sans-serif">
إلغاء التحديد
إنشاء ملف جديد من {{repairBrokenLinks.filter(it=>repairBrokenChecked[it.id]).length}} عنصر محدد
النوع
⚖️ قضية
📄 عقد
💬 استشارة
📋 إجراء
{{repairBrokenApplying?'جارٍ الإنشاء...':'إنشاء وربط'}}
إلغاء
معاينة الملفات التي ستُنشأ
يوجد ملف مشابه للموكل "{{grp.clientName}}" — هل تدمج أم تنشئ ملفاً مستقلاً؟
{{grp.items.length}} عنصر
سيُرتبط
الملفات المشابهة:
{{dm.title.substring(0,25)}}
{{grp.mergeTarget===dm.id?'✓ دمج':'دمج'}}
إنشاء ملف مستقل بدلاً من الدمج
{{(it.title||it.description||'—').substring(0,25)}}
إلغاء
{{repairBrokenApplying?'جارٍ الإنشاء...':'إنشاء وربط الكل'}}
محرك الأرشفة التلقائي (البيانات السابقة)
يقوم بفحص وتأسيس ملفات قضايا أوتوماتيكياً لأي جلسات أو مهام أو أوراق محضرين غير مرتبطة بملف.
تشغيل محرك الأرشفة
أدوات الصيانة
مراقبة التخزين
وضع السحابة (Firestore) — البيانات متزامنة عبر كل الأجهزة
{{storageInfo.itemCount}} عنصر
{{storageInfo.usedMB}} MB
مستخدم من 10 MB
{{storageInfo.percent}}%
نسبة الاستخدام
{{storageInfo.itemCount}}
إجمالي العناصر
أرشفة تلقائية (6+ أشهر)
تحديث
نقل البيانات المحلية للسحابة
تحذير: الذاكرة تقترب من الامتلاء. يُنصح بالأرشفة.
نظام توزيع نسخ المحامين
قم بتصدير نسخة خاصة لكل محامي تحتوي فقط على مهامه، ثم استيراد التحديثات باستخدام "التحديث الذكي"
تصدير نسخة: {{l.name}}
📌 طريقة العمل:
1️⃣ صدّر نسخة لكل محامي من الأزرار أعلاه
2️⃣ وزع الملفات على المحامين
3️⃣ بعد عملهم، اجمع الملفات واستوردها بـ "التحديث الذكي"
4️⃣ سيتم دمج جميع التغييرات تلقائياً
كشف المكررات
إصلاح التواريخ
تنظيف المفاتيح
ربط UIDs بالمهام المُسندة
إعادة تعيين
{{showLg?'إخفاء':'عرض'}} السجل
لا توجد عمليات
{{fmtT(l.ts)}} — {{l.d}}
إجمالي: {{items.length}} | أرشيف: {{archived.length}} | سجل: {{logs.length}}
وضع التشغيل الموسع
{{v2GateEnabled?'تشغيل':'إيقاف'}}
أعمال فنية بانتظار الاعتماد ({{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}}
نوع الطلب *
— اختر نوع الطلب —
تغيير الحالة
طلب تأجيل
طلب أرشفة (منجز / مستلم)
الحالة الجديدة *
— اختر الحالة —
{{o}}
التاريخ الجديد *
سبب الطلب
{{crLoading?'جارٍ الإرسال...':'إرسال الطلب'}}
إلغاء
تحديث ملاحظات
×
{{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}}
{{(threadState[c.id]||{}).showAi ? 'إخفاء' : 'عرض'}} محادثة الذكاء الاصطناعي
{{c.aiHistory.length}}
{{m.role==='assistant'?'🤖 المساعد الذكي':'👤 العميل'}}
{{m.content}}
{{c.message}}
سجل المراسلات
جديد
جاري التحميل...
لا توجد رسائل بعد
{{m.from==='admin'?'🏛️ المكتب':'👤 العميل'}}
{{m.text}}
جديد
آخر رد: {{c.clientReply}}
تعيين مقروء
إرسال
جديد
تم التواصل
مهتم
عميل
غير مهتم
تحويل لعميل
رد واتساب
تعيين مقروء
مكتمل
حذف
لا توجد سجلات
{{auditActionLabel(log.action)}}
{{log.userName||log.userUid}}
({{log.userRole}})
ID: {{log.itemId.slice(-6)}}
{{fmtTs(log.at)}}
حالة: {{log.newValue.wfStatus}}
السجل التاريخي
طباعة
سجل الأعمال
{{historicalRecords.length}}
التوكيلات
{{wakalaRecords.length}}
الكل ({{historicalRecords.length}})
{{yr}}
({{historicalRecords.filter(r=>String(r.year)===yr).length}})
كل الأنواع
جلسات
أعمال
{{filteredHistoricalRecords.length}} سجل
{{histSelectedIds.length}} سجل محدد
ربط بملف موجود
إنشاء ملف جديد
إلغاء التحديد
لا توجد بيانات — قم بتشغيل سكريبت الاستيراد أولاً
تفاصيل السجل
×
{{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}}
×
رفع ملف
رابط خارجي
جاري الرفع... {{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'?'مهمة':'جلسة'}}×
يمكنك تحديث الملاحظات فقط. للتغييرات الأخرى استخدم زر طلب تغيير .
العنوان *
التفاصيل
الموكل / العميل
{{c.name}}
ملف القضية المرتبط
-- بدون ارتباط --
📁 {{m.title}}
المسؤول عن التنفيذ
— اختر أو اتركه فارغاً —
{{l.name}}
— لا يوجد محامون مسجّلون بعد —
{{fm.assignedToName}}
ملاحظات
الدرجة *
اختر
ابتدائي
جزئي
استئناف
نقض
إداري
أسرة
عمالي
دستوري
أخرى
هذا الحقل مطلوب
نوع الدعوى
اختر
مدني
جنحة
جناية
تجاري
عمالي
إداري
أحوال شخصية
عقاري
أخرى
السنة
البيان *
المسؤول عن الحضور
— اختر أو اتركه فارغاً —
{{l.name}}
— سجّل محامين أولاً —
{{fm.assignedToName}}
ملاحظات
{{fmSaving?'جاري الحفظ...':'حفظ'}}
إلغاء
{{ltId?'تعديل مهمة محامي':'إسناد مهمة لمحامي'}}×
المحامي المسؤول *
اختر المحامي
{{l.name}}
— لا يوجد محامون مسجّلون بعد —
النوع مهمة جلسة
الفئة / المحكمة اختر {{c}}
الحالة متابعة مجدولة معلق
العنوان / البيان *
التفاصيل
يمكن نقل هذه المهمة للقسم الرئيسي لاحقاً عبر زر "نقل للقسم" في الجدول.
حفظ
إلغاء
تأجيل×
التاريخ الجديد *
سبب التأجيل
تأكيد التأجيل
إلغاء
تسجيل نتيجة المهمة
×
{{taskResultItem.title||taskResultItem.description||'المهمة'}}
· {{taskResultItem.client}}
ملاحظات
حفظ النتيجة
إلغاء
تأكيد الإنجاز×
سيتم نقل العنصر إلى الأرشيف تلقائياً. يمكن استرداده لاحقاً.
تاريخ الإنجاز *
ملاحظات الإنجاز
تأكيد الإنجاز وأرشفة
إلغاء
استرداد مع تحديث البيانات×
يمكنك تحديث أي حقل قبل إعادة العنصر للقائمة.
الفئة / المحكمة {{c}}
الحالة متابعة مجدولة معلق
العنوان / البيان
ملاحظات
استرداد
إلغاء
نقل للقسم الرئيسي×
اختر الفئة والنوع المناسب لنقل هذه المهمة.
الفئة / المحكمة * اختر {{c}}
نوع العنصر مهمة جلسة
تاريخ الجلسة *
ملاحظات إضافية
نقل للقسم
إلغاء
إدارة الفئات ({{cats.length}})×
{{c}}
إضافة
إدارة المحامين ({{laws.length}})×
الاسم الهاتف الدرجة رقم القيد إجراءات
{{l.name}} {{l.phone||'—'}} {{l.degree||'—'}} {{l.licenseNumber||'—'}}
{{edLawI>=0?'تعديل: '+laws[edLawI].name:'إضافة محامي جديد'}}
{{edLawI>=0?'حفظ التعديل':'إضافة محامي'}}
سجل العمليات ({{logs.length}})×
logQ=e.target.value" style="flex:1;min-width:180px;padding:.45rem .7rem;border:1.5px solid var(--bdr);border-radius:9px;font-family:'Cairo',sans-serif;font-size:.83rem">
{{logs.length}} حدث مسجل
طباعة السجل
مسح السجل
لا توجد عمليات
{{l.d}}
{{fmtT(l.ts)}}
{{l.u}}
دمج الفئات×
📌 كيفية الدمج:
1. اختر الفئات المراد دمجها
2. حدد الاسم الجديد الموحد (من الفئات الموجودة أو اسم جديد)
3. جميع العناصر ستُنقل للفئة الجديدة
الاسم الموحد الجديد *
-- اختر من الفئات الموجودة أو اكتب اسم جديد --
{{c}}
سيتم دمج {{mergeCats.length}} فئة → {{mergeNewName||'(حدد الاسم)'}}
دمج الفئات
إلغاء
{{custodyForm.editMode?'تعديل بيان عملية':(custodyForm.type==='debit'?'منح عهدة جديدة':'تسجيل مصروف')}}
×
التاريخ *
المحامي *
-- اختر المحامي --
{{l.name}}
{{l.name}}
الفئة *
-- اختر الفئة --
{{cat}}
المبلغ (جنيه) *
نوع الدفع *
{{pm}}
الخزينة المصدر *
💵 الخزينة النقدية
🏦 البنك (حساب بنكي)
💡 سيتم خصم المبلغ من {{custodyForm.treasurySource}} تلقائياً
🔗 ربط بمهمة / جلسة (اختياري)
-- بدون ربط --
📋 {{item.title||item.description}} {{item.client?'· '+item.client:''}}
⚖️ {{item.description}} {{item.date?'· '+item.date:''}}
إضافة مهمة جديدة
إضافة جلسة جديدة
📁 الملف المرتبط (اختياري — لتحليل التكاليف)
— بدون ربط —
{{m.title}} {{m.clientName?'· '+m.clientName:''}}
ملاحظات
حفظ
إلغاء
نقل العناصر بين الفئات×
📌 كيفية النقل:
1. اختر الفئة المصدر (التي تريد النقل منها)
2. اختر الفئة الهدف (التي تريد النقل إليها)
3. جميع العناصر ستُنقل تلقائياً
الفئة المصدر (النقل من) *
-- اختر الفئة المصدر --
{{c}} ({{catCount(c)}} عنصر)
الفئة الهدف (النقل إلى) *
-- اختر الفئة الهدف --
{{c}} ({{catCount(c)}} عنصر)
سيتم نقل {{catCount(moveFrom)}} عنصر من {{moveFrom}} → {{moveTo}}
نقل العناصر
إلغاء
إسناد مهام للمحامي×
المحامي المسؤول *
لا يوجد محامون مسجّلون بعد — اطلب منهم تسجيل الدخول أولاً
اختر المحامي
{{l.name}}
{{assignFm.lawyerName}}
الموعد / اليوم
ملاحظات التكليف
العناصر المحددة للإسناد ({{assignItems.length}}):
{{item.type==='task'?'مهمة':'جلسة'}}
{{item.title||item.description}}
{{item.category||item.court||''}} {{item.deadline||item.date?'· '+item.deadline||item.date:''}}
لم يتم اختيار عناصر
إسناد ({{assignItems.length}}) عنصر
إلغاء
تصدير البيانات×
سيتم تصدير {{expPreviewCount}} عنصر
(من أصل {{items.length+archived.length}} عنصر)
تصدير
إلغاء
تصدير مهام المحامي×
اختر المحامي للتصدير:
يمكنك تصدير مهام محامي محدد أو جميع مهام المحامين المعروضة
المحامي
— جميع المحامين المعروضين —
{{l.name}}
{{l.name}}
سيتم تصدير {{items.filter(i=>(i.assigned||i.lawyerAssigned)===exportLawyerFilter).length}} مهمة للمحامي {{exportLawyerFilter}}
سيتم تصدير {{flt.length}} مهمة لجميع المحامين المعروضين
تصدير
إلغاء
استيراد / تحديث البيانات×
اختر طريقة الاستيراد:
يمكنك استيراد ملف JSON كاملاً أو دمج البيانات مع الموجود
استبدال كامل
حذف البيانات الحالية واستيراد الملف الجديد
دمج مع الموجود
إضافة البيانات الجديدة للموجود (بدون حذف)
تحديث ذكي
تحديث العناصر الموجودة + إضافة الجديدة
نصيحة: استخدم "التحديث الذكي" عند دمج بيانات من نسخ المحامين
{{treasuryForm.editMode?'تعديل عملية':(treasuryForm.type==='income'?'تسجيل إيراد':'تسجيل مصروف')}}
×
البيان *
الفئة
— اختر —
{{c}}
نوع الدفع
{{pm}}
المبلغ (جنيه) *
ملاحظات
🔗 الملف المرتبط (اختياري — لتحليل التكاليف)
— بدون ربط (مصروف عام) —
{{m.title}} {{m.clientName?'· '+m.clientName:''}}
حفظ
إلغاء
كشف المكررات
×
لا توجد مكررات في النظام
وُجد {{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||'—'}}
أرشيف
✓ الأصلي
حذف
{{lawyerName||'محامي'}} — ترى فقط البنود المُسندة إليك
{{items.filter(i=>i.changeRequest).length}} طلب معلق
إدارة فئات الخزينة
✕
فئات الإيرادات {{incomeCategories.length}}
فئات المصروفات {{expenseCategories.length}}
{{timerDisplay}}