Update: 2026-08-07 02:32:14
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
# سياسة الإلغاء والتعويض — سيرو
|
||||
|
||||
> **الغرض:** مرجع واحد لخدمة العملاء، وأساس صفحة ويب عامة تُشرح للمستخدمين.
|
||||
> **آخر تحديث:** 2026-08-07
|
||||
> **الحالة:** مبنية في الكود، **معطّلة افتراضياً** حتى تضبط الإدارة السقوف.
|
||||
|
||||
---
|
||||
|
||||
## المبدأ الحاكم
|
||||
|
||||
**من ضيّع وقت الآخر يعوّضه، والمال يذهب للطرف المتضرر لا للشركة.**
|
||||
|
||||
هذا يفرّق سيرو عن نموذج "غرامة تذهب للمنصة". السائق الذي انتظر يُعوَّض، والراكب الذي انتظر سائقاً متأخراً لا يُغرَّم.
|
||||
|
||||
---
|
||||
|
||||
## أولاً: إلغاء الراكب بعد قبول السائق
|
||||
|
||||
### متى يكون الإلغاء مجانياً؟
|
||||
|
||||
| الحالة | الشرح للمستخدم |
|
||||
|---|---|
|
||||
| **لم يقبل أي سائق بعد** | لم يتحرك أحد نحوك، فلا أحد يستحق تعويضاً. وهذه أغلب حالات الإلغاء. |
|
||||
| **خلال أول دقيقتين من قبول السائق** | مهلة لتصحيح خطأ في الوجهة أو تغيير الرأي. |
|
||||
| **مرّت 10 دقائق ولم يصل السائق** | التأخير من السائق لا منك — الإلغاء مجاني. |
|
||||
| **الرسم معطّل في بلدك** | الإدارة لم تفعّل السياسة بعد. |
|
||||
|
||||
### متى يُحتسب رسم؟
|
||||
|
||||
عندما يكون السائق قد **قَبِل الرحلة وتحرّك نحوك**، ومضت مهلة الدقيقتين، ولم يتأخر عليك.
|
||||
|
||||
### كيف يُحسب؟
|
||||
|
||||
```
|
||||
الرسم = المسافة التي قطعها السائق نحوك × سعر الكيلومتر لنوع السيارة
|
||||
+ الدقائق منذ قبوله × سعر الدقيقة حسب وقت اليوم
|
||||
```
|
||||
|
||||
- الأسعار هي **نفسها** المستخدمة في تسعير الرحلات (جدول `kazan` لكل دولة).
|
||||
- **العملة:** بعملة بلد التشغيل — ليرة سورية (SYP)، دينار أردني (JOD)، جنيه مصري (EGP)…
|
||||
- **حد أقصى للدقائق المحتسبة: 20 دقيقة.** سائق قَبِل ونسي الرحلة ساعة لا يتحول نسيانه إلى فاتورة عليك.
|
||||
- **سقف أعلى** يحدده كل بلد (`passengerCancelCap`)، وفوقه سقف صلب في الكود يمنع أي خطأ إداري من خصم كارثي.
|
||||
|
||||
### ماذا يحدث بعد الإلغاء؟
|
||||
|
||||
1. يُخصم المبلغ من محفظتك كدَين.
|
||||
2. **يُضاف نفس المبلغ لمحفظة السائق** — ليس إيراداً للشركة.
|
||||
3. يزيد عدّاد "عدم الحضور" في حسابك (للمراجعة الإدارية فقط، لا عقوبة آلية).
|
||||
|
||||
### التحذير المسبق
|
||||
|
||||
التطبيق **يعرض المبلغ ويطلب تأكيدك قبل الإلغاء**. لا خصم صامت. إن تعذّر الاتصال بالخادم لحظتها، يمضي الإلغاء بلا تحذير — لأن حبسك في رحلة بسبب عطل تقني أسوأ.
|
||||
|
||||
---
|
||||
|
||||
## ثانياً: تعويض السائق عند عدم حضور الراكب
|
||||
|
||||
### متى يستحق السائق تعويضاً؟
|
||||
|
||||
عندما يصل نقطة الالتقاط، **ينتظر 5 دقائق على الأقل**، ولا يحضر الراكب، فيلغي الرحلة.
|
||||
|
||||
### كيف يُحسب؟
|
||||
|
||||
```
|
||||
التعويض = مسافة الاقتراب إلى الراكب × سعر الكيلومتر
|
||||
+ دقائق الانتظار × سعر الدقيقة
|
||||
```
|
||||
|
||||
نفس المعادلة والأسعار. الحد الأقصى للدقائق المحتسبة 20 دقيقة أيضاً.
|
||||
|
||||
### شروط مهمة
|
||||
|
||||
- **الوصول يتحقق منه الخادم** من موقع السائق الفعلي (ضمن 300 متر من نقطة الالتقاط). لا يكفي أن يضغط السائق "وصلت".
|
||||
- **إن تعذّر إثبات الوصول** (خدمة الموقع معطّلة مثلاً) فلا تعويض — لا يُصرف مال لا يمكن إثبات استحقاقه.
|
||||
- إلغاء السائق **قبل** الوصول: لا تعويض إطلاقاً.
|
||||
|
||||
---
|
||||
|
||||
## ثالثاً: عقوبة السائق كثير الإلغاء
|
||||
|
||||
منفصلة تماماً عن المال. **لا غرامة على السائق أبداً.**
|
||||
|
||||
| الشرط | العقوبة |
|
||||
|---|---|
|
||||
| 3 إلغاءات بعد القبول خلال 24 ساعة | إيقاف استقبال الطلبات **4 ساعات** |
|
||||
|
||||
الإيقاف مطبَّق على الخادم: السائق الموقوف لا يستطيع قبول أي رحلة حتى لو أعاد تثبيت التطبيق.
|
||||
|
||||
---
|
||||
|
||||
## رابعاً: التسرب خارج المنصة
|
||||
|
||||
سلوك يتكرر فيه: قَبِل السائق ← أُلغيت الرحلة ← ولم تبدأ قط، مع **نفس الراكب مراراً**.
|
||||
|
||||
| التكرار | درجة الاشتباه |
|
||||
|---|---|
|
||||
| مرة واحدة | منخفضة (للإلغاء أسباب مشروعة كثيرة) |
|
||||
| مرتان | متوسطة |
|
||||
| ثلاث فأكثر | مرتفعة → **مراجعة بشرية** |
|
||||
|
||||
**العقوبة:** خفض أولوية السائق في توزيع الرحلات — يخسر الطلبات الخاصة والقريبة تدريجياً. **لا حظر ولا خصم مالي.** وتزول العقوبة تلقائياً حين ينظف سجله خلال 30 يوماً.
|
||||
|
||||
---
|
||||
|
||||
## المعاملات القابلة للضبط (لكل دولة، جدول `kazan`)
|
||||
|
||||
| المعامل | الافتراضي | المعنى |
|
||||
|---|---|---|
|
||||
| `passengerCancelCap` | `0` (معطّل) | سقف رسم إلغاء الراكب |
|
||||
| `passengerCancelFreeMinutes` | `2` | دقائق الإلغاء المجاني بعد القبول |
|
||||
| `driverLateExemptMinutes` | `10` | بعدها يصير الإلغاء مجانياً لتأخر السائق |
|
||||
| `cancelCompensationCap` | `0` (معطّل) | سقف تعويض عدم حضور الراكب |
|
||||
| `cancelMinWaitMinutes` | `5` | أقل انتظار يستحق السائق بعده تعويضاً |
|
||||
|
||||
> ⚠️ القيمة `0` في السقوف تعني **تعطيلاً كاملاً**. لا يُخصم ولا يُصرف شيء حتى تضبطها الإدارة صراحةً.
|
||||
|
||||
---
|
||||
|
||||
## أسئلة متوقعة من العملاء
|
||||
|
||||
**«ألغيت لأن السائق لم يتحرك من مكانه — لماذا خُصم مني؟»**
|
||||
إن مرّت 10 دقائق ولم يصل، الإلغاء مجاني تلقائياً. إن خُصم رغم ذلك فالرحلة تحتاج مراجعة — ارفعها للفريق التقني بمعرّف الرحلة.
|
||||
|
||||
**«لماذا الرسم مختلف كل مرة؟»**
|
||||
لأنه ليس رقماً ثابتاً — يعتمد على المسافة التي قطعها السائق فعلاً وعلى الوقت المنقضي. رحلة ألغيت بعد 3 دقائق تختلف عن أخرى بعد 12.
|
||||
|
||||
**«هل تأخذ الشركة هذا المبلغ؟»**
|
||||
لا. يذهب كاملاً لمحفظة السائق.
|
||||
|
||||
**«ألغى السائق عليّ — هل أُعوَّض؟»**
|
||||
لا يوجد تعويض للراكب حالياً عند إلغاء السائق. لكن السائق كثير الإلغاء يُوقَف 4 ساعات آلياً.
|
||||
|
||||
---
|
||||
|
||||
## مراجع تقنية
|
||||
|
||||
| الموضوع | الملف |
|
||||
|---|---|
|
||||
| رسم إلغاء الراكب | `backend/ride/rides/cancel_fee_helper.php` |
|
||||
| معاينة الرسم قبل الإلغاء | `backend/ride/rides/preview_cancel_fee.php` |
|
||||
| تعويض عدم الحضور + الإيقاف | `backend/ride/rides/cancel_ride_by_driver.php` |
|
||||
| إثبات الوصول | `backend/ride/rides/arrive_ride.php` |
|
||||
| كشف التسرب | `backend/bot/cron_leak_detection.php` |
|
||||
| الأسعار المشتركة | `backend/ride/pricing/pricing_helper.php` |
|
||||
| الترحيلات | `backend/migrations/2026_08_07_*.sql` |
|
||||
Reference in New Issue
Block a user