return$db->select("SELECT * FROM discount_rules WHERE is_active = 1 AND effective_from <= CURDATE() AND (effective_to IS NULL OR effective_to >= CURDATE()) ORDER BY discount_code");
"SELECT ro.*, br.rule_code, br.name_ar FROM rule_overrides ro JOIN business_rules br ON br.id = ro.rule_id WHERE ro.entity_type = ? AND ro.entity_id = ? AND ro.is_active = 1 AND (ro.effective_to IS NULL OR ro.effective_to >= CURDATE()) ORDER BY ro.created_at DESC",
"SELECT * FROM rule_overrides WHERE rule_id = ? AND entity_type = ? AND entity_id = ? AND is_active = 1 AND effective_from <= CURDATE() AND (effective_to IS NULL OR effective_to >= CURDATE())",
"SELECT rv.*, e.full_name_ar as changed_by_name FROM rule_versions rv LEFT JOIN employees e ON e.id = rv.changed_by WHERE rv.rule_id = ? ORDER BY rv.version_number DESC",
"SELECT * FROM business_rules WHERE rule_code = ? AND branch_id = ? AND is_active = 1 AND effective_from <= ? AND (effective_to IS NULL OR effective_to >= ?)",
[$ruleCode,$branchId,$date,$date]
);
}
// Fallback to global
if(!$rule){
$rule=$db->selectOne(
"SELECT * FROM business_rules WHERE rule_code = ? AND branch_id IS NULL AND is_active = 1 AND effective_from <= ? AND (effective_to IS NULL OR effective_to >= ?)",
[$ruleCode,$date,$date]
);
}
if(!$rule){
Logger::warning("Rule not found: {$ruleCode}",['branch_id'=>$branchId,'date'=>$date]);
<pstyle="color:#6B7280;margin-bottom:15px;">محاكاة تأثير تغيير هذه القاعدة على البيانات الحالية. هذه الميزة ستكون متاحة بالكامل بعد إضافة وحدة الأعضاء.</p>
<strongstyle="color:#D97706;">⚠ ملاحظة:</strong> المحاكاة الكاملة ستتوفر عند إنشاء بيانات الأعضاء (المرحلة 8). حالياً يمكنك مراجعة القيمة الحالية والمعاملات المتاحة.
['code'=>'SVC_TEMP_MEMBER','name_ar'=>'رسوم عضو مؤقت','name_en'=>'Temporary Member Fee','price_type'=>'percentage','percentage'=>'10.00'],
['code'=>'SVC_CHILD_4TH','name_ar'=>'رسوم ابن رابع','name_en'=>'4th Child Fee','price_type'=>'percentage','percentage'=>'5.00'],
['code'=>'SVC_CHILD_18','name_ar'=>'رسوم ابن 18 سنة','name_en'=>'Child 18 Fee','price_type'=>'percentage','percentage'=>'10.00'],
['code'=>'SVC_CHILD_19','name_ar'=>'رسوم ابن 19 سنة','name_en'=>'Child 19 Fee','price_type'=>'percentage','percentage'=>'15.00'],
['code'=>'SVC_CHILD_20','name_ar'=>'رسوم ابن 20 سنة','name_en'=>'Child 20 Fee','price_type'=>'percentage','percentage'=>'20.00'],
['code'=>'SVC_CHILD_21','name_ar'=>'رسوم ابن 21 سنة','name_en'=>'Child 21 Fee','price_type'=>'percentage','percentage'=>'15.00'],
['code'=>'SVC_SPOUSE_2ND','name_ar'=>'رسوم زوجة ثانية','name_en'=>'2nd Spouse Fee','price_type'=>'percentage_plus_annual','percentage'=>'10.00','annual_amount'=>'150.00'],
['code'=>'SVC_SPOUSE_3RD','name_ar'=>'رسوم زوجة ثالثة','name_en'=>'3rd Spouse Fee','price_type'=>'percentage_plus_annual','percentage'=>'20.00','annual_amount'=>'200.00'],
['code'=>'SVC_SPOUSE_4TH','name_ar'=>'رسوم زوجة رابعة','name_en'=>'4th Spouse Fee','price_type'=>'percentage_plus_annual','percentage'=>'30.00','annual_amount'=>'300.00'],