if($filters['q']!==''){$where.=' AND (m.full_name_ar LIKE ? OR m.national_id LIKE ? OR m.membership_number LIKE ? OR m.phone_mobile LIKE ? OR m.form_number LIKE ?)';$s='%'.$filters['q'].'%';$params=array_merge($params,[$s,$s,$s,$s,$s]);}
if($filters['q']!==''){
if($filters['status']!==''){$where.=' AND m.status = ?';$params[]=$filters['status'];}
$where.=' AND (m.full_name_ar LIKE ? OR m.national_id LIKE ? OR m.membership_number LIKE ? OR m.phone_mobile LIKE ? OR m.form_number LIKE ?)';
if($filters['branch_id']!==''){$where.=' AND m.branch_id = ?';$params[]=(int)$filters['branch_id'];}
$s='%'.$filters['q'].'%';
if($filters['date_from']!==''){$where.=' AND m.created_at >= ?';$params[]=$filters['date_from'].' 00:00:00';}
$params=array_merge($params,[$s,$s,$s,$s,$s]);
if($filters['date_to']!==''){$where.=' AND m.created_at <= ?';$params[]=$filters['date_to'].' 23:59:59';}
}
if($filters['status']!==''){
$where.=' AND m.status = ?';
$params[]=$filters['status'];
}
if($filters['branch_id']!==''){
$where.=' AND m.branch_id = ?';
$params[]=(int)$filters['branch_id'];
}
if($filters['date_from']!==''){
$where.=' AND m.created_at >= ?';
$params[]=$filters['date_from'].' 00:00:00';
}
if($filters['date_to']!==''){
$where.=' AND m.created_at <= ?';
$params[]=$filters['date_to'].' 23:59:59';
}
$countRow=$db->selectOne("SELECT COUNT(*) as cnt FROM members m WHERE {$where}",$params);
$countRow=$db->selectOne("SELECT COUNT(*) as cnt FROM members m WHERE {$where}",$params);
$total=(int)($countRow['cnt']??0);
$total=(int)($countRow['cnt']??0);
$offset=($page-1)*$perPage;
$offset=($page-1)*$perPage;
$members=$db->select("SELECT m.*, b.name_ar as branch_name FROM members m LEFT JOIN branches b ON b.id = m.branch_id WHERE {$where} ORDER BY m.id DESC LIMIT {$perPage} OFFSET {$offset}",$params);
// Calculate membership value based on branch + qualification
if(!empty($update['qualification_id'])){
if(!empty($update['qualification_id'])){
try{
$pricing=$db->selectOne("SELECT price FROM pricing_configs WHERE branch_id = ? AND qualification_id = ? AND membership_type = 'working' AND is_active = 1 AND effective_from <= CURDATE() AND (effective_to IS NULL OR effective_to >= CURDATE()) ORDER BY effective_from DESC LIMIT 1",[(int)$member->branch_id,(int)$update['qualification_id']]);
if(!$member)return$this->redirect('/members')->withError('العضو غير موجود');
return$this->redirect('/members')->withError('العضو غير موجود');
return$this->view('Members.Views.edit',['member'=>$member,'branches'=>$db->select("SELECT id, name_ar FROM branches WHERE is_active = 1"),'qualifications'=>$db->select("SELECT id, name_ar FROM qualifications WHERE is_active = 1 ORDER BY sort_order"),'governorates'=>$db->select("SELECT code, name_ar FROM governorates WHERE is_active = 1"),'countries'=>$db->select("SELECT nationality_ar FROM countries WHERE is_active = 1 ORDER BY name_ar")]);
}
$branches=$db->select("SELECT id, name_ar FROM branches WHERE is_active = 1 ORDER BY name_ar");
$qualifications=$db->select("SELECT id, name_ar FROM qualifications WHERE is_active = 1 ORDER BY sort_order");
$governorates=$db->select("SELECT code, name_ar FROM governorates WHERE is_active = 1 ORDER BY name_ar");
$countries=$db->select("SELECT nationality_ar FROM countries WHERE is_active = 1 ORDER BY name_ar");
<buttontype="submit"class="btn btn-primary"style="width:100%;padding:15px;font-size:18px;background:#059669;border-color:#059669;"onclick="return confirm('تأكيد دفع رسوم الاستمارة <?=e(money($formFee))?>؟')">
<buttontype="submit"class="btn btn-primary"style="width:100%;padding:15px;font-size:18px;background:#059669;border-color:#059669;"onclick="return confirm('تأكيد دفع <?=money($formFee)?>؟')">💰 دفع رسوم الاستمارة</button>