• DevPilot's avatar
    feat(sa): أداة تكرار الرقم القومي للاعبين + منع التكرار من أصله · 5b2dbb02
    DevPilot authored
    المشكلة اللي اتبلّغت: نفس اللاعب متسجّل مرتين بنفس الرقم القومي — مرة
    كعضو ومرة كغير عضو. اتأكدت من الداتا الحية: فعلاً فيه 7 أرقام قومية
    مكررة، واحد منهم متكرر 4 مرات. شاشة تسجيل اللاعبين ما كانش فيها أي فحص
    للتكرار، والـ index على العمود non-unique.
    
    المنع:
    - PlayerController::store() و ::update() بقوا يرفضوا أي رقم قومي مسجّل
      للاعب تاني، ويقولوا اسم اللاعب ورقمه عشان الموظف يفتح ملفه بدل ما
      يسجّله من جديد.
    
    التنضيف (شاشة جديدة /sa/players/duplicates):
    - بتعرض كل مجموعة مكررة وجوّاها اللاعبين، وقدّام كل نسخة عدد السجلات
      المرتبطة بيها (اشتراكات، حضور، بطاقات، مستندات...) عشان الموظف يعرف
      النسخة اللي عليها شغل فعلي.
    - بتفرّق بين «نفس الاسم» و«أسماء مختلفة» وبتحذّر: مش كل تكرار هو نفس
      الشخص — أحياناً حد كتب رقم قومي غلط لشخص تاني.
    - إجراءين: دمج (بينقل كل السجلات للنسخة المختارة ويأرشف الباقي)، أو
      تفريغ الرقم القومي لو اتضح إنهم أشخاص مختلفين.
    - الدمج كله في transaction، ومفيش حذف نهائي — النسخ المدموجة بتتأرشف
      بملاحظة توضّح اتدمجت في مين.
    
    ملاحظة مهمة في التنفيذ: في الداتابيز 45 عمود اسمه player_id، لكن كتير
    منهم بيشاور على جدول players بتاع «شؤون اللاعبين» — جدول تاني خالص.
    فالدمج بيشتغل على قايمة جداول مكتوبة بإيد ومتأكد منها، مش على اسم العمود،
    عشان ما نخربش بيانات موديول تاني.
    
    كمان: مسمّى «إيداع ورقة قبض برسم التحصيل» في قيود الأوراق التجارية اتغيّر
    لـ «تسليم ورقة قبض للبنك للتحصيل» — «برسم التحصيل» مصطلح بنكي معناه
    «عشان يتحصّل»، بس بتتقري كأن فيه رسم اتخصم.
    5b2dbb02
Name
Last commit
Last update
.claude Loading commit data...
.impeccable Loading commit data...
Another ERP that we may want to cheat from Loading commit data...
HR requests Loading commit data...
Proposal Loading commit data...
Server Connection Data Loading commit data...
app Loading commit data...
config Loading commit data...
cron Loading commit data...
database Loading commit data...
docker Loading commit data...
docs Loading commit data...
public Loading commit data...
support_tickets_downloads/support_screenshots Loading commit data...
tests Loading commit data...
tools Loading commit data...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.env Loading commit data...
.env.example Loading commit data...
.gitignore Loading commit data...
.php-cs-fixer.php Loading commit data...
BalanceSheet.html Loading commit data...
CLAUDE.md Loading commit data...
Dockerfile Loading commit data...
Makefile Loading commit data...
SYSTEM_MAP.md Loading commit data...
Sports Module System Design DETAILED.md Loading commit data...
UPGRADE_PLAN.md Loading commit data...
captain-definition Loading commit data...
cli.php Loading commit data...
composer.json Loading commit data...
composer.lock Loading commit data...
interesting_features.md Loading commit data...
phpstan.neon Loading commit data...
phpunit.xml Loading commit data...
sports activity stuff .txt Loading commit data...
sports-activity-alignment-plan.md Loading commit data...
sports-activity-smart-filtering-plan.md Loading commit data...
trial_balance_2026-01-01_to_2026-05-10.csv Loading commit data...