الدليل التشغيلي والتدريبي الشامل
لمنظومة AqariOS Enterprise
المرجع الرسمي الكامل لاستخدام وإدارة منظومة AqariOS Enterprise — مبني كلياً على الكود المصدري الفعلي.
يُغطي جميع الوحدات من الدخول الأول حتى المحاسبة المتقدمة والتكاملات الحكومية.
AqariOS Enterprise هو نظام ERP سحابي متكامل مصمم خصيصاً لشركات إدارة الأملاك والعقارات في المملكة العربية السعودية. يجمع النظام في منصة واحدة جميع عمليات الشركة — من التأجير والصيانة وحتى المحاسبة والتقارير التنفيذية والتكاملات الحكومية.
المشكلة التي يحلها النظام
تعتمد شركات إدارة العقارات تقليدياً على أدوات متفرقة: جداول Excel للعقود، برامج محاسبة منفصلة، ورسائل WhatsApp لأوامر الصيانة. هذا يُسبب:
- تكرار البيانات وعدم اتساقها — نفس المعلومة في أماكن متعددة بنسخ مختلفة
- عدم الامتثال لـ ZATCA وإيجار — الفواتير اليدوية لا تستوفي متطلبات الفاتورة الإلكترونية
- ضعف الرؤية التنفيذية — لا توجد لوحة قيادة موحدة تُظهر الصورة الكاملة
- بطء معالجة المدفوعات — التحصيل اليدوي يُسبب تأخيرات وخسائر
ما الذي يقدمه AqariOS؟
الشرائح المستهدفة
| الشريحة | الحجم | الخطة المناسبة | أبرز الاحتياجات |
|---|---|---|---|
| شركة إدارة أملاك متوسطة | 5–50 عقار | Growth / Enterprise | التأجير، الصيانة، التقارير |
| شركة عقارية كبرى | 50+ عقار | Enterprise | ZATCA، Moyasar، AI، محاسبة كاملة |
| صناديق الاستثمار العقاري REITs | مئات العقارات | Custom REITs | IFRS16، بوابة المستثمرين، Private Cloud |
مبادئ التصميم الجوهرية
- ثنائي اللغة بالكامل — كل واجهة وكل حقل وكل تقرير يظهر بالعربية والإنجليزية في آنٍ واحد
- الامتثال أولاً — ZATCA Phase 2، EJAR، Nafath، Wathq مدمجة في صميم النظام
- عزل بيانات متعدد المستأجرين — كل شركة بيئة بيانات معزولة تماماً
- بنية قائمة على الأدلة — لا شيء في الواجهة إلا ما تؤكده قاعدة البيانات الفعلية
مكدس التقنيات (Tech Stack)
| الطبقة | التقنية | الغرض |
|---|---|---|
| Frontend | React 18 + TypeScript + Vite | واجهة المستخدم التفاعلية |
| Animation | Framer Motion | الحركات والانتقالات السلسة |
| Icons | Lucide React | أيقونات موحدة عبر النظام |
| Database | Firebase Firestore (NoSQL) | قاعدة البيانات الرئيسية السحابية |
| Authentication | Firebase Auth | تسجيل الدخول والمصادقة |
| File Storage | Firebase Storage | رفع الصور والوثائق |
| AI Engine | Google Gemini 2.5 Pro | المساعد الذكي وتحليل البيانات |
| Payments | Moyasar API | بوابة الدفع السعودية |
| E-Invoicing | ZATCA UBL 2.1 | الفاتورة الإلكترونية الحكومية |
| Styling | Tailwind CSS | تنسيق متسق عبر المنظومة |
هيكل قاعدة Firestore
يُنظّم النظام بياناته تحت مسار /companies/{companyId}/ لضمان العزل التام بين المستأجرين:
نموذج عزل المستأجرين (Multi-Tenant Isolation)
دالة verifyCompanyDatasetIsolation() في saasSubscriptionEngine.ts تضمن أن كل مستخدم لا يرى إلا بيانات شركته:
نموذج البيانات: الكيانات الجوهرية
| الكيان (Type) | الحقول الجوهرية | الحقول المحسوبة |
|---|---|---|
| User | id، name، nameAr، email، role، platformRole، avatar، branchId، companyId، phone، permissions، status | — |
| Company | id، name، nameAr، crNumber، taxNumber، logo، status، totalBranches، currency، subscriptionPlanId | — |
| Branch | id، name، nameAr، city، cityAr، branchManager، phone، status، activePropertiesCount | — |
| Property | id، name، nameAr، type، location، totalUnits، valuationSAR، annualExpectedRevenueSAR، image | occupancyRate، occupiedUnits |
| Unit | id، propertyId، unitNumber، type، floor، areaSqm، rentSAR، status، features | isOccupied |
| LeaseContract | id، propertyId، unitId، tenantId، startDate، endDate، annualRent، status، contractNumber، ejarNumber | remainingDays، totalRent |
| WorkOrder | id، code، propertyId، unitId، title، titleAr، type، priority، status، assignedTo، cost، createdAt | — |
| AuditLog | id، timestamp، userName، userRole، module، action، details، detailsAr، ipAddress | — |
| الميزة | Growth | Enterprise | Custom REITs |
|---|---|---|---|
| السعر الشهري (ريال) | 499 | 1,299 | 2,999 |
| السعر السنوي/شهر | 399 | 999 | 2,499 |
| الفترة التجريبية | 14 يوم | 14 يوم | 30 يوم |
| الحد الأقصى للعقارات | 5 | غير محدود | غير محدود |
| الحد الأقصى للوحدات | 100 | غير محدود | غير محدود |
| الحد الأقصى للموظفين | 5 | 50 | غير محدود |
| طلبات الذكاء الاصطناعي/شهر | 50 | 1,000 | غير محدود |
| مساحة التخزين | 10 GB | 100 GB | 1,000 GB |
| EJAR الأساسي | ✅ | ✅ | ✅ |
| EJAR الكامل | ❌ | ✅ | ✅ |
| ZATCA Phase 2 | ❌ | ✅ | ✅ |
| وكلاء Gemini AI | ❌ | ✅ | ✅ |
| تقييم Taqeem | ❌ | ✅ | ✅ |
| CAFM / IoT للصيانة | ❌ | ✅ | ✅ |
| السحابة الخاصة Private Cloud | ❌ | ❌ | ✅ |
| IFRS16 محاسبة | ❌ | ❌ | ✅ |
| بوابة المستثمرين | ❌ | ❌ | ✅ |
| مستوى الدعم | 24/7 ذو أولوية | مدير حساب مخصص |
آلية تطبيق الحصص (Quota Enforcement)
يتحقق النظام تلقائياً قبل إضافة أي سجل جديد:
حالات الاشتراك الممكنة
| الحالة | المعنى | ما يستطيع المستخدم فعله |
|---|---|---|
| TRIAL | الفترة التجريبية نشطة | جميع العمليات (قراءة وكتابة) |
| ACTIVE | اشتراك مدفوع نشط | جميع العمليات |
| SUSPENDED | موقوف (عادةً لعدم الدفع) | القراءة فقط — لا كتابة |
| EXPIRED | منتهي الصلاحية | القراءة فقط — لا كتابة |
| CANCELLED | ملغى | القراءة فقط |
طرق تسجيل الدخول المتاحة (4 طرق)
الطريقة 1: البريد الإلكتروني وكلمة المرور
buildUserFromFirebase() تُحدد دورك: إذا كان بريدك يطابق SuperAdmin → دور مشرف أعلى. إذا كنت مدعواً → الدور من الدعوة. وإلا → CompanyOwner تلقائياً.الطريقة 2: Google Sign-In
الطريقة 3: رقم الجوال بـ OTP
+966501234567 — يجب أن يبدأ بعلامة +auth/invalid-phone-number: تأكد أن الرقم يبدأ بـ + وأنه رقم دولي صحيح. رمز auth/too-many-requests: انتظر دقيقة وأعد المحاولة.الطريقة 4: حساب تجريبي Demo
اختر دوراً من القائمة المنسدلة واضغط "ادخل كـ [الدور]". يُمنح وصولاً فورياً ببيانات نموذجية للتعرف على النظام. لا يصلح للعمل الإنتاجي.
إنشاء حساب شركة جديدة (Register)
كيف يُحدد النظام دورك تلقائياً؟
| الحالة | الدور المُعطى | شركة المستخدم |
|---|---|---|
| البريد يطابق قائمة SuperAdmins | SuperAdmin | comp-aqarios |
توجد دعوة في localStorage بمفتاح aqar_invite_{email} | الدور من الدعوة | الشركة من الدعوة |
| تسجيل جديد — لا دعوة | CompanyOwner | comp_{uid} (تلقائي) |
يعتمد AqariOS نظام Role-Based Access Control متدرجاً يضم 10 أدوار موثّقة. كل دور يُتيح الوصول لمجموعة محددة من التبويبات والعمليات.
| الدور | الوصف | التبويبات المتاحة الرئيسية |
|---|---|---|
| SuperAdmin | المشرف الأعلى للمنصة — AqariOS فقط | جميع التبويبات بلا استثناء + تبويبات الوثائق الهندسية |
| CompanyOwner | مالك الشركة / مدير مؤسسي | جميع التبويبات بلا استثناء |
| PropertyManager | مدير الأملاك | Dashboard، العقارات، العقود، CRM، الصيانة، الوثائق، المشتريات، التقارير، AI |
| BranchManager | مدير الفرع | نفس PropertyManager |
| LeasingOfficer | موظف التأجير | نفس PropertyManager |
| SalesOfficer | موظف المبيعات | نفس PropertyManager |
| Accountant | المحاسب | Dashboard، المالية، العقود، المشتريات، التقارير، التدقيق، الوثائق، AI |
| FinanceManager | مدير المالية | نفس Accountant |
| Auditor | مدقق الحسابات | Dashboard، سجلات التدقيق، التقارير، المالية، الوثائق، Property 360 |
| HRManager | مدير الموارد البشرية | Dashboard، HR، Admin، الوثائق، التقارير، AI |
| Technician | فني الصيانة | الصيانة فقط، الوثائق، AI |
| Tenant | المستأجر | بوابة المستأجر فقط، الوثائق، AI |
| Investor | المستثمر / مالك العقار | Dashboard، المستثمرون، التقييم، التقارير، الوثائق |
| PropertyOwner | مالك العقار | نفس Investor |
| CustomerService | خدمة العملاء | Dashboard، CRM، الصيانة، بوابة المستأجر، الوثائق |
الشريط الجانبي (Sidebar) عرضه 288px ثابت على سطح المكتب. على الجوال، يتحول لدرج (drawer) منزلق يُفتح بزر القائمة.
أقسام الشريط الجانبي الثلاثة
القسم 1: MAIN — الرئيسي
| التبويب | الرمز | الوصف | للدور |
|---|---|---|---|
| مركز القيادة التشغيلية | P25 جديد | لوحة القيادة المتكاملة | معظم الأدوار |
| لوحة القيادة (Dashboard) | 📊 | KPIs والمؤشرات التنفيذية | معظم الأدوار |
| SDA | SDA 70+ | وثائق البنية المعمارية | SuperAdmin / CompanyOwner |
القسم 2: ENTERPRISE DOCS — الوثائق الهندسية (مطوية افتراضياً)
يحتوي على 20 وثيقة هندسية (BRD، SRS، API، DevOps، QA، Security...). مقيّد على SuperAdmin وCompanyOwner فقط.
القسم 3: ERP MODULES — وحدات النظام
| التبويب | Badge | الفصل |
|---|---|---|
| 👑 Governance & Admin Portal | ROOT | الفصل 26 |
| 🌐 SaaS Landing & Pricing | SAAS | الفصل 3 |
| إعدادات الشركة | — | الفصل 25 |
| العقارات | عداد | الفصل 8 |
| عقود الإيجار | عداد | الفصل 9 |
| CRM | عداد | الفصل 10 |
| المالية والمحاسبة | — | الفصلان 12-15 |
| التقييم العقاري DCF | DCF | الفصل 18 |
| بوابة المستأجر | PORTAL | الفصل 17 |
| المشتريات | PO | الفصل 16 |
| ESG وتحليلات الطاقة | ESG | الفصل 28 |
| التقارير التنفيذية | الفصل 19 | |
| المستثمرون | — | الفصل 19 |
| الصيانة | عداد | الفصل 11 |
| الموارد البشرية | — | الفصل 20 |
| الوثائق | — | الفصل 21 |
| المساعد الذكي | ✨ | الفصل 22 |
| سجلات التدقيق | — | الفصل 24 |
ملاحظات واجهة الشريط الجانبي
- مؤشر التبويب النشط: شريط أخضر متحرك (Framer Motion) على يمين التبويب المحدد
- عدادات الشارات: تُعرض بيانات حقيقية (عدد العقارات، العقود، أوامر الصيانة)
- ملف المستخدم: في أعلى الشريط — النقر عليه ينتقل لـ
admin - حالة الأنظمة: في أسفل الشريط — "جميع الأنظمة تعمل" (قيمة ثابتة حالياً)
لوحة القيادة هي الشاشة الافتراضية بعد تسجيل الدخول. تُعرض البيانات مباشرة من props مُحسوبة — لا توجد استدعاءات Firestore مباشرة من هذه الشاشة.
بطاقات المؤشرات الستة (KPI Cards)
| # | المؤشر | المؤشر بالعربية | الصيغة الحسابية (من الكود) | اللون |
|---|---|---|---|---|
| 1 | Total Asset Valuation | إجمالي قيمة الأصول | properties.reduce((acc,p) => acc + p.valuationSAR, 0) |
🟢 زمردي |
| 2 | Annual Expected Revenue | الإيرادات السنوية المتوقعة | properties.reduce((acc,p) => acc + p.annualExpectedRevenueSAR, 0) |
🔵 مخضر |
| 3 | Occupancy Rate | معدل الإشغال | Math.round((totalOccupied / totalUnits) * 100) — الوحدات بحالة Leased أو Occupied |
🔵 سماوي (حلقة دائرية متحركة) |
| 4 | Active Contracts | العقود النشطة | contracts.filter(c => c.status === 'Active' || c.status === 'InRenewal').length |
🔵 أزرق |
| 5 | Open Work Orders | أوامر الصيانة المفتوحة | workOrders.filter(w => w.status !== 'Closed' && w.status !== 'Completed').length |
🟡 عنبري |
| 6 | Vacant Units | الوحدات الشاغرة | derivedUnits.filter(u => u.status !== 'Leased' && u.status !== 'Occupied').length |
🔴 وردي |
useMemo للأداء — لا تُعاد حسابها إلا عند تغيير العقارات أو العقود أو الوحدات. ساعة الداشبورد DashboardClock معزولة في مكوّن خاص لمنع إعادة الرسم الثانوية.الرسوم البيانية
| الرسم البياني | النوع | البيانات | الحالة |
|---|---|---|---|
| توزيع أنواع العقارات | Donut Chart (SVG) | عدد كل نوع (CommercialTower / ResidentialComplex / ShoppingMall / Land / MixedUse) | ✅ حي — بيانات فعلية |
| التدفق النقدي (Cashflow) | Bar Chart | — | ⚠️ معطّل — رسالة "لا توجد بيانات تدفق نقدي" (قرار Phase 25) |
| حلقة معدل الإشغال | SVG Ring (animated) | نسبة مئوية محسوبة | ✅ حي — متحرك |
ألوان أنواع العقارات في الرسم البياني
| النوع | اللون | رمز اللون |
|---|---|---|
| CommercialTower (برج تجاري) | 🟢 | #10b981 Emerald |
| ResidentialComplex (مجمع سكني) | 🔵 | #3b82f6 Blue |
| ShoppingMall (مركز تجاري) | 🟣 | #a855f7 Purple |
| Land (أرض) | 🟡 | #f59e0b Amber |
| MixedUse (مختلط) | 🔴 | #f43f5e Rose |
لوحات القسم السفلي (3 أعمدة)
| اللوحة | ما تُعرضه | التفاصيل |
|---|---|---|
| آخر العقود | أحدث 5 عقود | مرتبة تنازلياً حسب تاريخ الإنشاء. يُعرض: اسم المستأجر، حالة العقد، اسم العقار، تاريخ الانتهاء، الإيجار السنوي. زر "عرض الكل" يفتح تبويب العقود. |
| أولويات الصيانة | أحدث 5 أوامر صيانة | تُعرض: عنوان الأمر (ثنائي اللغة)، شارة الأولوية (Emergency/High/Medium/Low)، اسم العقار ورقم الوحدة. أوامر "InProgress" تظهر شريط تقدم أزرق. |
| لوحة الذكاء الاصطناعي | 3 بطاقات تحليلية | 1) تنبيه المخاطر — عدد العقود النشطة. 2) الفرصة — معدل الإشغال + عدد العقارات. 3) التنبؤ المالي — مجموع إيجارات العقود. زر "تحليل AI" يفتح المساعد الذكي. |
صف العقارات الأعلى أداءً
جدول يعرض أفضل 5 عقارات مرتبة حسب الوحدات المشغولة والإيرادات المتوقعة. يُعرض لكل عقار: الصورة والاسم، النوع، معدل الإشغال (شريط متحرك)، الإيراد.
أزرار رأس لوحة القيادة
| الزر | الإجراء |
|---|---|
| إضافة عقار | ينتقل لتبويب العقارات |
| عقد جديد | ينتقل لتبويب عقود الإيجار |
| تحليل AI | ينتقل للمساعد الذكي |
| إنشاء تقرير | ⚠️ بدون إجراء حالياً — زر مرئي فقط |
أنواع العقارات المدعومة
- CommercialTower — برج تجاري
- ResidentialComplex — مجمع سكني
- ShoppingMall — مركز تجاري
- Land — أرض
- MixedUse — مختلط (تجاري + سكني)
كيفية إضافة عقار جديد
حالات الوحدة
| الحالة | المعنى | تُحسب كـ |
|---|---|---|
| Leased | مؤجرة بعقد نشط | وحدة مشغولة ✅ |
| Occupied | مشغولة | وحدة مشغولة ✅ |
| Vacant | شاغرة — متاحة للإيجار | وحدة شاغرة |
| UnderMaintenance | تحت الصيانة | وحدة شاغرة |
| Reserved | محجوزة | وحدة شاغرة |
إحصائيات رأس صفحة العقارات
- إجمالي قيمة الأصول = مجموع
valuationSARلكل العقارات - الإيرادات السنوية المتوقعة = مجموع
annualExpectedRevenueSAR - معدل الإشغال = (عدد الوحدات المشغولة ÷ إجمالي الوحدات) × 100
حالات عقد الإيجار (Lease Status)
| الحالة | المعنى | تُعدّ في KPI؟ |
|---|---|---|
| Active | نشط — العقد ساري | ✅ يُحسب في "العقود النشطة" |
| InRenewal | في مرحلة التجديد | ✅ يُحسب في "العقود النشطة" |
| Pending | بانتظار الموافقة أو الدفع | ❌ |
| Expired | منتهي الصلاحية | ❌ |
| Terminated | مُنهى قبل الموعد | ❌ |
إنشاء عقد إيجار جديد
حساب معدل الإشغال (من leaseContractModel)
متطلبات عقد إيجار EJAR
- رقم عقد إيجار: يُدخل يدوياً من منصة إيجار الحكومية
- رقم هوية المستأجر: هوية وطنية أو إقامة
- التكامل الكامل مع EJAR API متاح في خطة Enterprise فأعلى
أنواع جهات الاتصال
- Tenant — مستأجر
- Prospect — عميل محتمل
- Owner — مالك عقار
- Vendor — مورّد / مقاول
بيانات جهة الاتصال
اسم (عربي/إنجليزي)، رقم الهوية الوطنية، البريد الإلكتروني، رقم الجوال، النوع، العقارات المرتبطة، تاريخ التفاعلات.
تسجيل تفاعل جديد
حقول أمر الصيانة الكاملة
| الحقل | النوع | الملاحظة |
|---|---|---|
| id | string | معرّف فريد |
| code | string | رمز الأمر (WO-XXXXXX) |
| propertyId / propertyName | string | العقار المعني (ثنائي) |
| unitNumber / unitId | string | رقم الوحدة ومعرّفها |
| previousUnitStatus | enum | حالة الوحدة قبل الصيانة |
| title / titleAr | string | وصف المشكلة (ثنائي) |
| type | enum | Corrective / Preventive / Emergency |
| priority | enum | Low / Medium / High / Emergency |
| status | enum | Open / InProgress / Completed / Closed |
| assignedTo | string | الفني المكلّف |
| cost | number | تكلفة الإصلاح (SAR) |
| createdAt | ISO date | تاريخ الإنشاء |
دورة حياة أمر الصيانة
حساب أوامر الصيانة في لوحة القيادة
شجرة الحسابات الكاملة (Chart of Accounts)
| رقم الحساب | الاسم بالعربية | الفئة |
|---|---|---|
| الأصول (1000-1999) | ||
| 1010 | النقدية والبنك | Asset |
| 1020 | ذمم مستأجرين مدنية — إيجار | Asset |
| 1029 | مخصص الديون المشكوك فيها | Asset (contra) |
| 1050 | إيرادات إيجار مؤجلة | Asset |
| 1200 | الممتلكات والمعدات (صافي) | Asset |
| الالتزامات (2000-2999) | ||
| 2010 | الدائنون والمستحقات | Liability |
| 2030 | ضريبة القيمة المضافة المستحقة | Liability |
| 2050 | الودائع والتأمينات المستردة | Liability |
| حقوق الملكية (3000-3999) | ||
| 3010 | رأس المال المدفوع | Equity |
| 3020 | الأرباح المبقاة | Equity |
| الإيرادات (4000-4999) | ||
| 4010 | إيرادات الإيجار السكني | Revenue |
| 4020 | إيرادات الإيجار التجاري | Revenue |
| 4030 | رسوم الخدمات والصيانة | Revenue |
| 4040 | إيرادات الغرامات والتأخير | Revenue |
| المصروفات (5000-5999) | ||
| 5010 | تكاليف الصيانة والتشغيل | Expense |
| 5020 | رواتب الموظفين | Expense |
| 5030 | التأمين والتراخيص | Expense |
| 5040 | الإهلاك والاستهلاك | Expense |
| 5050 | مصاريف التسويق والإعلان | Expense |
| 5060 | مصاريف الفائدة البنكية | Expense |
| 5099 | مصاريف عامة وإدارية | Expense |
القيود المحاسبية التلقائية (Auto Journal Entries)
عند تسجيل أي معاملة، يُنشئ النظام تلقائياً قيود اليومية المزدوجة:
| الحدث | الحساب المدين | الحساب الدائن |
|---|---|---|
| استلام دفعة إيجار | 1010 النقدية | 4010/4020 إيرادات الإيجار |
| إصدار فاتورة إيجار | 1020 ذمم مستأجرين | 4010/4020 إيرادات الإيجار |
| ضريبة القيمة المضافة | 1020 ذمم مستأجرين | 2030 VAT مستحق |
| تكلفة صيانة | 5010 تكاليف الصيانة | 1010 النقدية / 2010 دائنون |
| استلام وديعة ضمان | 1010 النقدية | 2050 الودائع المستردة |
| إعادة وديعة ضمان | 2050 الودائع المستردة | 1010 النقدية |
/companies/{companyId}/journalEntries/ مع الوقت ومعرّف المستخدم لضمان المراجعة الكاملة (audit trail).بوابة Moyasar للدفع
يتكامل النظام مع Moyasar — بوابة الدفع السعودية المعتمدة. تُتيح:
- الدفع بالبطاقات البنكية (Visa, Mastercard, Mada)
- Apple Pay
- التحويل البنكي (SADAD)
- تحصيل الإيجار إلكترونياً من المستأجر مباشرة
تسجيل دفعة يدوية
محرك التنسيق (paymentOrchestrator)
يُنسّق بين:
- Moyasar API للدفع الإلكتروني
- قاعدة Firestore لحفظ سجلات الدفع
- GL Engine لإنشاء القيود المحاسبية
- ZATCA Engine لإصدار الفاتورة الإلكترونية
نظرة عامة على ZATCA Phase 2
ZATCA (هيئة الزكاة والضريبة والجمارك) تُلزم الشركات بإصدار فواتير إلكترونية بصيغة UBL 2.1 مع QR Code مُشفّر. AqariOS يدعم المرحلة الثانية بالكامل في خطة Enterprise فأعلى.
مكونات الفاتورة الإلكترونية
| الحقل | المصدر في النظام |
|---|---|
| رقم الفاتورة | يُولّد تلقائياً (INV-YYYYMMDD-XXXXX) |
| رقم السجل التجاري | من ملف الشركة (crNumber) |
| الرقم الضريبي | من ملف الشركة (taxNumber) |
| اسم المستأجر ورقم هويته | من ملف العميل في CRM |
| الخدمة (الإيجار) | من بيانات العقد |
| المبلغ قبل الضريبة | قيمة الإيجار |
| نسبة VAT | 15% (ثابتة وفق النظام السعودي) |
| إجمالي شامل الضريبة | مُحسوب تلقائياً |
| QR Code | مُنشأ وفق معيار ZATCA (TLV مُشفّر) |
كيفية إصدار فاتورة ZATCA
كشف حساب المالك
كشف دوري (شهري/ربعي/سنوي) يُلخّص:
- إيرادات الإيجار المحصّلة
- مصاريف الصيانة والتشغيل
- رسوم الإدارة
- صافي الإيراد التشغيلي (NOI)
- توزيع الأرباح للمالك
إنشاء كشف حساب مالك
أرشفة كشف الحساب
عند الحفظ، يستدعي النظام archiveOwnerStatementDocument() لحفظ نسخة مؤرشفة في Firestore مع تجميد بيانات هوية الشركة (CR، VAT، IBAN) وقت الإصدار.
دورة أمر الشراء (PO)
ما يستطيع المستأجر فعله
- عرض عقد إيجاره وتفاصيله
- عرض سجل المدفوعات والإيصالات
- تقديم طلبات صيانة جديدة
- متابعة حالة طلبات الصيانة
- تحميل الوثائق المتعلقة به
- التواصل مع الإدارة
- دفع الإيجار إلكترونياً (Moyasar)
تفعيل حساب المستأجر
وحدة التقييم العقاري تستخدم نموذج DCF (Discounted Cash Flow) لتقدير القيمة العادلة للعقارات بناءً على:
- التدفقات النقدية المستقبلية المتوقعة (الإيجارات)
- معدل الخصم (WACC / Cap Rate)
- القيمة النهائية (Terminal Value)
- معدل النمو السنوي للإيجارات
استخدام نموذج DCF
بوابة المستثمرين
مخصصة لأدوار Investor وPropertyOwner. تُعرض:
- لوحة قيادة الأداء الاستثماري
- ROI لكل عقار
- معدل الإشغال وتطوره عبر الزمن
- توزيعات الأرباح والتدفقات النقدية
- قرارات الاستثمار والتوصيات
التقارير التنفيذية المتاحة
| التقرير | المحتوى | تنسيق التصدير |
|---|---|---|
| تقرير المحفظة الاستثمارية | جميع العقارات، الإشغال، الإيرادات، NOI | PDF، Excel |
| تقرير التدفق النقدي | الإيرادات مقابل المصروفات شهرياً | PDF، Excel |
| تقرير المستأجرين | قائمة المستأجرين، حالة العقود، التأخيرات | PDF، Excel |
| تقرير الصيانة | الأعطال، التكاليف، أوقات الإغلاق | PDF، Excel |
| تقرير ضريبة القيمة المضافة | المبيعات والمشتريات، الضريبة المستحقة | PDF (ZATCA متوافق) |
ما تحتويه وحدة HR
- قائمة الموظفين وملفاتهم
- الأدوار والصلاحيات المعيّنة
- طلبات الإجازات والغياب
- كشف الرواتب الأساسي
- تقارير الحضور والأداء
إضافة موظف جديد
راجع الفصل 27 "دعوة الفريق وإدارة المستخدمين" للتفاصيل الكاملة حول دعوة الموظفين وتعيين الأدوار.
فئات الوثائق
| الفئة | الاسم بالعربية | اللون | مثال |
|---|---|---|---|
| Contract | عقد | 🔵 أزرق | عقد إيجار، عقد صيانة |
| TitleDeed | صك الملكية | 🟡 عنبري | صك عقار مسجّل |
| CRCertificate | شهادة السجل التجاري | 🟢 زمردي | CR للشركة |
| TaxReceipt | إيصال ضريبي | 🟣 بنفسجي | شهادة الزكاة |
| MaintenanceReport | تقرير صيانة | 🟠 برتقالي | تقرير فحص المصعد |
| IDCopy | نسخة هوية | ⬜ رمادي | هوية وطنية للمستأجر |
رفع وثيقة جديدة
بطاقات المؤشرات في رأس صفحة الوثائق
| المؤشر | الصيغة | ملاحظة |
|---|---|---|
| إجمالي الوثائق | documents.length | ✅ بيانات حقيقية |
| المضافة حديثاً | وثائق هذا الشهر | ✅ بيانات حقيقية |
| الوثائق المنتهية | — | ⚠️ قيمة ثابتة (2) — ليست بيانات حقيقية |
إجراءات كل وثيقة
- تصدير PDF رسمي مُعتمد: يُولّد PDF مع شعار الشركة وبياناتها
- تصدير Excel: يُصدّر بيانات الوثيقة كجدول
- عرض: يفتح الصور مباشرة أو يُوفّر رابط تحميل لـ PDF
- تحميل: تحميل الملف مباشرة
- حذف: يطلب تأكيد ثم يُزيل من القائمة المحلية (لا حذف من Firestore حالياً)
نظام أرشفة الوثائق (documentArchiveOrchestrator)
كل وثيقة تُكتب بنمط Atomic Idempotent — أي أن إعادة رفع نفس الوثيقة لن تُنشئ نسخة مكررة. معرّف الوثيقة محدد مسبقاً:
بيانات هوية الشركة تُجمّد Object.freeze() وقت الحفظ — حتى لو غيّرت الشركة بياناتها لاحقاً، تظل الوثيقة تحمل البيانات الأصلية وقت إصدارها.
يُدمج AqariOS محرك Google Gemini 2.5 Pro مع 5 وكلاء ذكاء اصطناعي متخصصين. متاح في خطة Enterprise فأعلى (حد 1,000 طلب/شهر).
وكلاء الذكاء الاصطناعي الخمسة
| الوكيل | التخصص | مثال على استخدامه |
|---|---|---|
| 🔍 وكيل التحليل | تحليل بيانات المحفظة | "ما العقارات الأقل أداءً هذا الربع؟" |
| 📋 وكيل العقود | مراجعة وصياغة العقود | "هل هذا العقد يتوافق مع الأنظمة؟" |
| 💰 وكيل المالية | التحليل المالي والتوقعات | "ما توقع الإيرادات للعام القادم؟" |
| 🔧 وكيل الصيانة | جدولة وتحسين الصيانة | "رتّب أوامر الصيانة حسب الأولوية" |
| ⚖️ وكيل الامتثال | التحقق من الامتثال التنظيمي | "هل عقودنا متوافقة مع لوائح RERA؟" |
كيفية استخدام المساعد الذكي
إعداد Gemini API
مفتاح Gemini API يُخزّن في:
يُضاف من تبويب التكاملات → منصة التكامل الموحد → قسم Gemini AI.
التكاملات المدعومة
| المنصة | الغرض | بيانات التكامل | الخطة المطلوبة |
|---|---|---|---|
| EJAR (إيجار) | تسجيل عقود الإيجار الحكومية | API Key من منصة إيجار | Growth: أساسي | Enterprise: كامل |
| ZATCA | الفاتورة الإلكترونية Phase 2 | شهادة ZATCA، Private Key | Enterprise فأعلى |
| Nafath | التحقق من الهوية الوطنية | Client ID، Secret | Enterprise فأعلى |
| Yakeen | استعلام بيانات الهوية | API Credentials | Enterprise فأعلى |
| Wathq | استعلام السجل التجاري | API Credentials | Enterprise فأعلى |
| Gemini AI | المساعد الذكي | Gemini API Key | Enterprise فأعلى |
| Moyasar | بوابة الدفع | API Key، Secret | جميع الخطط |
كيفية إضافة تكامل
companyId. لا تُشارك هذا الجهاز مع أشخاص غير مخوّلين.أنواع الأحداث المسجّلة
| نوع الحدث | المعنى | مثال |
|---|---|---|
| LOGIN | تسجيل دخول | دخول المستخدم أحمد من IP 192.168.x.x |
| CREATE | إنشاء سجل جديد | إنشاء عقار "برج الرياض" |
| UPDATE | تعديل سجل | تحديث إيجار عقد رقم LC-1234 |
| DELETE | حذف سجل | حذف وثيقة "صورة هوية" |
| APPROVE | موافقة / اعتماد | اعتماد أمر شراء PO-567 |
| EXPORT | تصدير بيانات | تصدير تقرير المستأجرين PDF |
| AI_RUN | تشغيل وكيل AI | تحليل المحفظة بـ Gemini |
بيانات كل سجل تدقيق
- الوقت والتاريخ (ISO timestamp)
- اسم المستخدم الذي نفّذ الإجراء
- دوره في النظام
- الوحدة (العقارات / المالية / الصيانة...)
- نوع الحدث (LOGIN / CREATE / DELETE...)
- التفاصيل بالعربية والإنجليزية
- عنوان IP
الأدوار المخوّلة بقراءة سجلات التدقيق
Auditor Accountant FinanceManager CompanyOwner SuperAdmin
تصفية السجلات
- البحث النصي: يبحث في اسم المستخدم، التفاصيل، عنوان IP
- فلتر الوحدة: يُستخرج تلقائياً من السجلات الفعلية
- فلتر النوع: All / LOGIN / CREATE / UPDATE / DELETE / APPROVE / EXPORT / AI_RUN
- الترقيم: 15 سجلاً في كل صفحة
تصدير السجلات
تصدير CSV يشمل: Timestamp، User، Role، Module، Action، Details، IP Address. اسم الملف: audit_logs_YYYY-MM-DD.csv
تبويب "إعدادات الشركة" يحتوي على 3 أقسام رئيسية.
القسم 1: الهوية المؤسسية والشعار
| الحقل | قابل للتعديل؟ | يُحفظ في Firestore؟ |
|---|---|---|
| اسم الشركة (عربي) | ✅ | ✅ |
| اسم الشركة (إنجليزي) | ✅ | ✅ |
| رقم السجل التجاري (CR) | ✅ | ✅ |
| الرقم الضريبي (VAT) | ✅ | ✅ |
| العملة الافتراضية | ✅ | ✅ |
| الشعار (رفع ملف أو URL) | ✅ | ✅ |
| الدولة | ✅ (واجهة) | ⚠️ لا يُحفظ حالياً |
| الهاتف / البريد / الموقع | ✅ (واجهة) | ⚠️ لا تُحفظ حالياً |
| العنوان الوطني | ✅ (واجهة) | ⚠️ لا يُحفظ حالياً |
رفع شعار الشركة
القسم 2: إدارة الفروع
يُمكّنك من إنشاء وإدارة فروع الشركة الإقليمية. بيانات إنشاء فرع جديد:
- اسم الفرع (عربي) — إلزامي
- اسم الفرع (إنجليزي) — إلزامي
- المدينة (عربي/إنجليزي)
- مدير الفرع — اسم المسؤول
لا يمكن حذف الفرع الأخير (يجب وجود فرع واحد على الأقل).
القسم 3: إعدادات SaaS والنظام
يعرض حالة التكاملات المُفعّلة على مستوى الخطة. جميع الحالات المعروضة ثابتة في الكود ولا تعكس اتصالاً حياً بالمنصات.
العملات المدعومة
SAR (ريال سعودي) — AED (درهم) — KWD (دينار كويتي) — QAR (ريال قطري) — BHD (دينار بحريني) — OMR (ريال عُماني) — EGP (جنيه مصري) — USD (دولار) — EUR (يورو)
لوحة قيادة منصة SaaS
متاحة للـ SuperAdmin فقط. تُعرض مقاييس المنصة بالكامل عبر دالة calculateSaaSPlatformMetrics():
| المقياس | المعنى |
|---|---|
| totalRegisteredCompanies | إجمالي الشركات المسجّلة |
| activeSubscriptionsCount | الاشتراكات النشطة حالياً |
| trialSubscriptionsCount | الشركات في فترة تجريبية |
| suspendedSubscriptionsCount | الاشتراكات الموقوفة |
| mrrSAR | الإيراد الشهري المتكرر (SAR) |
| arrSAR | الإيراد السنوي المتكرر = MRR × 12 |
| growthPlanCount | عدد شركات Growth |
| enterprisePlanCount | عدد شركات Enterprise |
| reitsPlanCount | عدد شركات REITs |
تشغيل الاشتراك (Subscription Engine)
دالة enforceSubscriptionActiveGate() تمنع العمليات إذا كان الاشتراك منتهياً أو موقوفاً:
إدارة الشركات (SuperAdmin)
الـ SuperAdmin يستطيع:
- عرض جميع الشركات المسجّلة وحالاتها
- تعليق أو إلغاء اشتراك شركة
- ترقية خطة شركة يدوياً
- الوصول لبيانات أي شركة للدعم التقني
- عرض لوحة قيادة MRR/ARR
من يستطيع دعوة مستخدمين جدد؟
الأدوار المخوّلة بإرسال الدعوات: SuperAdmin CompanyOwner Admin
كيفية دعوة موظف
aqar_invite_{email} مع الدور وشركةID.وحدة ESG (Environmental, Social, Governance) تُتيح تتبع مؤشرات الاستدامة لمحفظتك العقارية:
- استهلاك الطاقة لكل عقار (kWh)
- استهلاك المياه (م³)
- انبعاثات الكربون (طن CO₂)
- مؤشر كفاءة الطاقة
- تقارير ESG للمستثمرين والمساهمين
مشكلات تسجيل الدخول
| المشكلة | السبب | الحل |
|---|---|---|
| رسالة "auth/invalid-credential" | كلمة مرور خاطئة | تحقق من الكلمة أو أنشئ حساباً جديداً |
| رسالة "auth/invalid-phone-number" | الرقم بدون + أو غير صحيح | أدخل الرقم بالصيغة: +966xxxxxxxxx |
| رسالة "auth/too-many-requests" | محاولات متكررة | انتظر دقيقة ثم أعد المحاولة |
| الدور خاطئ بعد الدخول | لم تُقرأ الدعوة | تأكد من تسجيل الدخول بنفس البريد الموجود في الدعوة |
| لا أستطيع تغيير كلمة المرور | الزر غير مفعّل | تواصل مع مسؤول النظام لإعادة تعيينها عبر Firebase |
مشكلات العقارات والوحدات
| المشكلة | السبب | الحل |
|---|---|---|
| "وصلت للحد الأقصى للعقارات" | تجاوز حصة الخطة | ترقية من Growth (5) لـ Enterprise (غير محدود) |
| الوحدة تظهر "Vacant" رغم وجود عقد | العقد بحالة Pending وليس Active | فعّل العقد وغيّر حالته لـ Active |
| معدل الإشغال غير صحيح | وحدات بحالة غير متوقعة | راجع حالات الوحدات — Leased و Occupied فقط تُحسب مشغولة |
مشكلات الفواتير وZATCA
| المشكلة | السبب | الحل |
|---|---|---|
| خيار ZATCA غير متاح | الخطة Growth لا تدعمه | ترقية لـ Enterprise |
| الفاتورة بدون بيانات الشركة | CR أو VAT غير محفوظ | أكمل بيانات الشركة في إعدادات الشركة |
| رفض ZATCA للفاتورة | بيانات شهادة ZATCA منتهية | جدّد شهادة ZATCA من قسم التكاملات |
مشكلات الأداء العام
| المشكلة | الحل |
|---|---|
| النظام بطيء | امسح cache المتصفح. النظام PWA — قد تكون نسخة قديمة مُخزّنة. |
| البيانات لا تتحدث | اضغط F5 أو أغلق المتصفح وأعد فتحه لمزامنة Firestore. |
| الوكيل الذكي لا يستجيب | تحقق من مفتاح Gemini API في التكاملات وعدد الطلبات المتبقية. |
مصطلحات النظام
| المصطلح | الاختصار | التعريف |
|---|---|---|
| Enterprise Resource Planning | ERP | نظام تخطيط موارد المؤسسة — يدمج جميع عمليات الشركة |
| Role-Based Access Control | RBAC | التحكم بالوصول بناءً على الأدوار |
| Software as a Service | SaaS | البرمجيات كخدمة سحابية مشتركة |
| Discounted Cash Flow | DCF | التدفق النقدي المخصوم — نموذج تقييم الأصول |
| Net Operating Income | NOI | صافي الإيراد التشغيلي = إيرادات ناقص مصروفات التشغيل |
| Return on Investment | ROI | العائد على الاستثمار = صافي الربح ÷ تكلفة الاستثمار × 100 |
| Monthly Recurring Revenue | MRR | الإيراد الشهري المتكرر من الاشتراكات |
| Annual Recurring Revenue | ARR | الإيراد السنوي المتكرر = MRR × 12 |
| Universal Business Language | UBL 2.1 | معيار XML للفاتورة الإلكترونية المعتمد من ZATCA |
| General Ledger | GL | الأستاذ العام — دفتر الحسابات الرئيسي |
| Progressive Web App | PWA | تطبيق ويب تقدمي — يعمل بدون إنترنت ويمكن تثبيته |
| Environmental Social Governance | ESG | معايير الاستدامة البيئية والاجتماعية والحوكمة |
| Computer-Aided Facility Management | CAFM | إدارة المنشآت بمساعدة الحاسوب |
| International Financial Reporting Standards | IFRS16 | المعيار المحاسبي الدولي للعقود الإيجارية |
| Real Estate Investment Trust | REIT | صندوق الاستثمار العقاري |
| One-Time Password | OTP | كلمة المرور لمرة واحدة (رمز التحقق SMS) |
الأوضاع والحالات في النظام
| الوضع | أين يظهر | المعنى |
|---|---|---|
| Active / نشط | العقارات، العقود، المستخدمون | نشط وقيد الاستخدام |
| Inactive / غير نشط | العقارات، المستخدمون | معطّل مؤقتاً |
| Pending / معلّق | العقود، المدفوعات | بانتظار الموافقة أو الاستلام |
| Expired / منتهي | العقود، الاشتراكات | انتهت صلاحيته |
| Terminated / مُنهى | العقود | أُنهي قبل موعده |
| InProgress / جارٍ | أوامر الصيانة | قيد التنفيذ |
| Completed / مكتمل | أوامر الصيانة | تم الإنجاز |
| Closed / مغلق | أوامر الصيانة، PO | مغلق ومؤرشف |
مسارات Firestore المرجعية
اتصل بالدعم
الدعم حسب الخطة:
- Growth: دعم عبر البريد الإلكتروني
- Enterprise: دعم 24/7 ذو أولوية
- Custom REITs: مدير حساب مخصص