# 🔧 دليل استكشاف الأخطاء - POS Module

## ✅ المشكلة: HTTP 500 Error

### السبب الشائع
```
PHP Fatal error: Call to undefined function db_prefix()
```

### الحل
✅ **تم الإصلاح في الإصدار 1.0.1**

الملف المُصلح: `install.php`
- استبدال `db_prefix()` بـ `$CI->db->dbprefix`
- إضافة `$CI = &get_instance()` في البداية

---

## 📝 خطوات التحقق السريع

### 1. تحقق من رفع الملفات بشكل صحيح
```bash
ls -la modules/pos/
```

يجب أن ترى:
```
drwxr-xr-x  pos.php
drwxr-xr-x  install.php
drwxr-xr-x  controllers/
drwxr-xr-x  models/
drwxr-xr-x  views/
drwxr-xr-x  language/
drwxr-xr-x  assets/
```

### 2. تحقق من صلاحيات الملفات
```bash
chmod -R 755 modules/pos/
chown -R www-data:www-data modules/pos/
```

### 3. تحقق من error_log
```bash
# في cPanel
tail -f ~/public_html/system/application/logs/error_log.php

# في SSH
tail -f /home/username/public_html/system/application/logs/error_log.php
```

---

## 🐛 الأخطاء الشائعة والحلول

### خطأ: "Call to undefined function db_prefix()"
**الحل:** ✅ تم إصلاحه - حمّل الإصدار 1.0.1

### خطأ: "Table doesn't exist"
**السبب:** لم يتم إنشاء الجداول تلقائياً

**الحل:**
1. افتح phpMyAdmin
2. افتح ملف `database_manual_install.sql`
3. استبدل `tbl` ببادئة قاعدة البيانات لديك
4. نفذ الأوامر SQL

### خطأ: "Access Denied"
**السبب:** عدم وجود صلاحيات للمستخدم

**الحل:**
1. اذهب إلى `الإعدادات > الصلاحيات`
2. اختر دور المستخدم
3. فعّل جميع صلاحيات POS:
   - ☑️ View
   - ☑️ Create
   - ☑️ Edit
   - ☑️ Delete

### خطأ: "Module not found"
**السبب:** الموديول غير مفعّل

**الحل:**
1. `الإعدادات > الموديولات`
2. ابحث عن "POS"
3. اضغط "تفعيل"

---

## 🔍 التحقق من نجاح التثبيت

### تحقق من الجداول
```sql
SHOW TABLES LIKE '%pos_%';
```

يجب أن ترى 6 جداول:
1. ✅ `tblpos_branches`
2. ✅ `tblpos_registers`
3. ✅ `tblpos_sessions`
4. ✅ `tblpos_sales`
5. ✅ `tblpos_sale_items`
6. ✅ `tblpos_cash_movements`

### تحقق من القوائم
افتح `/admin/pos/dashboard`

يجب أن ترى:
- ✅ إحصائيات اليوم
- ✅ أزرار الإجراءات السريعة
- ✅ قائمة POS في السايدبار

---

## 💡 نصائح إضافية

### إذا لم يعمل التفعيل التلقائي:
1. حمّل ملف `database_manual_install.sql`
2. افتح phpMyAdmin
3. نفذ الأوامر يدوياً
4. تحقق من إنشاء الجداول
5. أعد تحميل الصفحة

### إذا ظهرت صفحة بيضاء:
1. فعّل عرض الأخطاء في PHP:
```php
ini_set('display_errors', 1);
error_reporting(E_ALL);
```

2. افتح `application/config/config.php`
3. تأكد من:
```php
$config['log_threshold'] = 4;
```

### للتحقق من إصدار PHP:
```bash
php -v
```
يجب أن يكون **PHP 7.4** أو أحدث

---

## 📞 الدعم السريع

### إذا استمرت المشكلة:

1. **اجمع المعلومات:**
   - رسالة الخطأ من error_log
   - إصدار PHP
   - اسم السيرفر
   - لقطة شاشة للخطأ

2. **تحقق من:**
   - ✅ رفع جميع الملفات
   - ✅ الصلاحيات صحيحة (755)
   - ✅ PHP 7.4+
   - ✅ mysqli extension مفعّل

3. **جرّب الحل اليدوي:**
   - استخدم ملف `database_manual_install.sql`
   - نفذ الأوامر SQL مباشرة
   - أعد تحميل الصفحة

---

## ✅ قائمة التحقق النهائية

قبل التواصل للدعم، تأكد من:

- [ ] تم رفع جميع ملفات الموديول
- [ ] الصلاحيات 755 للمجلدات و644 للملفات
- [ ] PHP 7.4 أو أحدث
- [ ] mysqli extension مفعّل
- [ ] تم تفعيل الموديول من لوحة التحكم
- [ ] تم إنشاء الجداول في قاعدة البيانات
- [ ] تم منح الصلاحيات للمستخدم
- [ ] لا توجد أخطاء في error_log
- [ ] تم تنظيف الكاش

---

**آخر تحديث:** 24 نوفمبر 2025
**الإصدار:** 1.0.1
