# التقارير المالية وXBRL — إصدار محلي للمراجعة

تاريخ التحقق: 2026-09-24. ينطبق على المستودعين الأساسيين للمطاعم والتجزئة.

## المنفذ

- صفحة `/account/financial-reporting` بالعربية والإنجليزية: إنشاء التقرير، مراجعة ميزان الأرصدة، مقارنة اختيارية بفترة سابقة، ملخصات الدخل والمركز المالي، مطابقة ملخص التدفقات النقدية والتغيرات في حقوق الملكية، ملاحظات المحاسب، اعتماد نسخة ثابتة وسجل إجراءات.
- مصدران: دفتر القيود للشركة الحالية، أو CSV من المحاسب. الاستيراد ينشئ تقريراً مستقلاً ولا يعدل الحسابات أو المعاملات. لا توجد عملية تحويل عملات؛ عملة تقرير الدفتر يجب أن تطابق عملة الشركة.
- فحوص: توازن الافتتاحي والحركات، تصنيف الحسابات، مراجعة المحاسب، مطابقة النقدية وحقوق الملكية، تواريخ المقارنة، معاملات ومدفوعات وتسويات مخزون غير مرحلة، قيود مسودة، تكرار القيود المصدرية، وحركات الحسابات القديمة غير المسواة.
- اعتماد داخلي بصلاحية `approve_journal_entries` مع `account.access`، عزل الشركات، كشف التعديل المتزامن، SHA-256 للنسخة المعتمدة، منع تعديلها، ومنع تصدير نسخة تغير محتواها بعد الاعتماد.
- ميزان مراجعة يشمل الأرصدة الافتتاحية، وحسابات بلا حركة خلال الفترة. أصل القيد المعكوس وقيد العكس يدخلان الحساب معاً؛ دفتر الأستاذ يعرض الافتتاحي والمدين/الدائن بشكل صحيح. صافي رد المصروف يخفض التكلفة.
- في التجزئة: توصيل أحداث البيع والشراء والمصروف والمدفوعات والمخزون بالقيود، مع الحفاظ على مستمعي رسوم الدفع والخزينة الحاليين. إضافة أحداث المرتجعات والحذف الناقصة في النسختين.
- منع تكرار ترحيل بيع/دفعة/تسوية مخزون دون تغير، ومعاملة استبدال القيد كوحدة واحدة تتراجع عند فشل البديل. عكس التعديلات التشغيلية بتاريخ القيد الأصلي؛ الفترات المغلقة تخضع لضوابط الخدمة الحالية. العكس اليدوي ما زال يسمح بتاريخ مختلف.
- تصحيح تحويل خصم النسبة إلى مبلغ في قيد البيع والشراء. تحسين توليد أرقام القيود في التجزئة عند وجود قيود محذوفة أو طلبات متزامنة.

## ما ليس منجزاً أو معتمداً رسمياً

هذا إصدار أساس محاسبي ومراجعة داخلية، وليس شهادة امتثال لمنصة قيد. إعداد `profiles` فارغ عمداً؛ لذلك يعمل تنزيل حزمة مراجعة JSON بعد الاعتماد، ولا يظهر تنزيل XBRL قبل إضافة ملف تصنيف تمت مراجعته. محرك XBRL يولد XML من إعداد موثوق، والملف مسمى `UNVALIDATED-XBRL`؛ لم يتم اختباره على بوابة حكومية أو التحقق منه باستخدام التصنيف الرسمي أو قواعد أعماله.

يلزم الحصول على حزمة التصنيف الرسمية وإصدارها، قواعد التحقق، دليل المنشأة والقطاعات والفترات والمقارنات، نموذج ملف مقبول وطريقة الرفع. بعد ذلك يُستكمل ملف الربط، وما يتطلبه من أنواع حقائق وأبعاد إضافية، ويُضاف مدقق XBRL والتصنيف وقواعد الأعمال واختبار قبول رسمي. لا توجد خدمة إرسال حكومي أو API مفترضة في هذا الإصدار.

المحرك الحالي يدعم حقائق نقدية ونصية، فترة حالية وسابقة، instant/duration، عملة واحدة، وأبعاد explicit في scenario. لا يدعم حالياً inline XBRL أو typed dimensions أو tuples أو التحويل النقدي أو حسابات وقواعد التصنيف الرسمية.

ملخصا التدفقات وحقوق الملكية يُدخلهما المحاسب وتُختبر مطابقتهما؛ ليسا استنتاجاً آلياً لكل تفاصيل القوائم أو الإيضاحات المطلوبة. يلزم مراجعة سياسات إقفال الإيرادات والمصروفات، التسويات والاهلاك والمخصصات والتمويل، التكاليف والتصنيع والوصفات والهالك والتحويلات والمخزون والمرتجعات، الرسوم البنكية، وفصل الشركات قبل أي تقديم رسمي. لا تثبت الفحوص الحالية وحدها اكتمال أو صحة كل القيود القديمة أو تطابق مبالغها مع مستنداتها. يمكن استخدام ميزان معتمد من المحاسب بعد التسويات.

تقارير التشغيل القديمة التي تستنتج المخزون والتحصيل وحقوق الملكية من المعاملات لا تستخدم كمصدر تصدير XBRL. لم يتم تحويل كل شاشات الحسابات القديمة في التجزئة إلى دفتر القيود؛ تقرير الوحدة الجديدة يعتمد على مصدره المحدد فقط. لا توجد ترحيلات تاريخية تلقائية أو كتابة إلى قاعدة عميل.

## التركيب على بيئة اختبار مستقلة

1. ملفات الإصدار مرتبطة بلقطة المستودع وقت العمل. مستودع المطاعم كان يحتوي تغييرات سابقة كثيرة؛ حزمة ملفات كاملة لا تعني أن استبدال ملفات خادم مختلف آمن. افحص `manifest.json` والبصمات الأصلية، وادمج `changes.patch` انتقائياً عند اختلاف الأساس. احتفظ بنسخة ملفات وقاعدة بيانات البيئة المستهدفة قبل تركيبها.
2. تحقق من وجود أساس المحاسبة الحالي: accounts/categories، journal_entries/lines، accounting_periods، وصلاحية الموافقة، ومن تثبيت migrations المحاسبة اللازمة لهذه النسخة. لا تشغل جميع migrations القديمة عشوائياً.
3. بعد تحديد قاعدة الاختبار، نفّذ migration هذه الوحدة فقط:

```sh
php artisan migrate --path=database/migrations/2026_09_23_000001_create_financial_report_runs.php
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan event:clear
```

4. افتح القائمة «التقارير المالية وXBRL» بحساب يملك `account.access`. الاعتماد يحتاج كذلك `approve_journal_entries`. جرّب CSV النموذجي المرفق أولاً؛ اختر حساب النقدية 1010، وأدخل تشغيل 125.375 وبقية بنود النقدية وحقوق الملكية صفراً، وراجع ثم احفظ واعتمد. بيانات المثال اصطناعية فقط.
5. اختبر دفتر عميل منسوخ ومعزول ومجهول البيانات: بيع/تعديل/حذف، شراء ومرتجعات، مدفوعات ومرتجعاتها، رسوم بوابة الدفع، تكلفة المخزون وتسوياته، فترة مغلقة، شركتان وصلاحيات مختلفة، وطلبات متزامنة. طابق النتيجة مع المحاسب. لم تُختبر خدمات دفع أو طباعة خارجية ضمن هذا العمل.
6. إذا ظهرت حركات قديمة غير مرحلة، أعد مطابقتها بخطة تسويات محددة مع المحاسب. لا تشغّل backfill عاماً بمجرد تركيب الوحدة. أنشئ تقريراً جديداً بعد تغير الدفتر؛ الأرصدة المحفوظة لا تتحدث تلقائياً.

للرجوع: أعد الملفات من النسخة الأصلية المطابقة. لا تسقط جداول التقرير إذا أصبحت بها تقارير أو سجل مراجعة مطلوب الاحتفاظ به. لم يتم تنفيذ أي migration على قاعدة حقيقية أثناء التطوير.

## الاختبارات المنفذة وحدودها

اختبارات PHPUnit مع SQLite في الذاكرة وتحميل vendor/autoload.php فقط، دون تشغيل التطبيق أو قراءة .env. تشمل الدفتر والعكس والحذف والخصومات والمدفوعات والمخزون، فحوص المقارنة والمطابقات، الفصل بين الشركات، الموافقة والبصمة والتعديل المتزامن، وتكوين XML ببيانات تصنيف اصطناعية. ملف نتائج الإصدار يسجل العدد النهائي.

تم توليد صفحات Blade الفعلية في غلاف اختبار محلي مستقل وفحصها في Chromium بالعربية والإنجليزية وعلى 1440 و390 بكسل، مع فحص النماذج وCSRF وحالة القراءة فقط ومنع الاعتماد مع تغييرات غير محفوظة. هذه ليست جلسة تشغيل على خادم كيميت كامل أو اختبار رفع حكومي. بقي اختبار MySQL/MariaDB والواجهة والصلاحيات والتزامن على بيئة اختبار للتطبيق الفعلي.

تشغيل اختبارات المطاعم المعزولة:

```sh
php vendor/phpunit/phpunit/phpunit --no-configuration --bootstrap vendor/autoload.php --do-not-cache-result tests/Unit
```

نفس الأمر صالح لاختبارات Unit الحالية للتجزئة. لا تستخدم إعدادات Feature أو phpunit.xml القديمة قبل التحقق من وجهة قاعدة البيانات. PHP 8.4 ينتج تحذيرات deprecation من بعض مكتبات vendor القديمة؛ الاختبارات النهائية حجبت هذه التحذيرات فقط ولم تغير vendor.
