"SELECT p.*, r.receipt_number FROM payments p LEFT JOIN receipts r ON r.id = p.receipt_id WHERE p.member_id = ? AND p.is_voided = 0 ORDER BY p.payment_date DESC, p.id DESC LIMIT 1",
"SELECT COALESCE(SUM(amount), 0) as total FROM payments WHERE member_id = ? AND is_voided = 0 AND payment_type IN ('membership_fee', 'down_payment')",
[$memberId]
);
$mPaid=$membershipPaid['total']??'0.00';
$mRemaining=bcsub($membershipValue,$mPaid,2);
if(bccomp($mRemaining,'0',2)>0){
$items[]=[
'type'=>'membership_fee',
'label'=>'رسوم العضوية',
'total'=>$membershipValue,
'paid'=>$mPaid,
'outstanding'=>$mRemaining,
'entity_type'=>'members',
'entity_id'=>$memberId,
];
}
// Check unpaid spouse addition fees
if($db->tableExists('spouses')){
$unpaidSpouses=$db->select(
"SELECT * FROM spouses WHERE member_id = ? AND is_archived = 0 AND addition_fee > 0 AND (fee_receipt_number IS NULL OR fee_receipt_number = '')",
[$memberId]
);
foreach($unpaidSpousesas$s){
$items[]=[
'type'=>'addition_fee',
'label'=>'رسوم إضافة زوجة: '.$s['full_name_ar'],
'total'=>$s['addition_fee'],
'paid'=>'0.00',
'outstanding'=>$s['addition_fee'],
'entity_type'=>'spouses',
'entity_id'=>(int)$s['id'],
];
}
}
// Check unpaid children addition fees
if($db->tableExists('children')){
$unpaidChildren=$db->select(
"SELECT * FROM children WHERE member_id = ? AND is_archived = 0 AND addition_fee > 0 AND (fee_receipt_number IS NULL OR fee_receipt_number = '')",
[$memberId]
);
foreach($unpaidChildrenas$c){
$items[]=[
'type'=>'addition_fee',
'label'=>'رسوم إضافة ابن/ابنة: '.$c['full_name_ar'],
'total'=>$c['addition_fee'],
'paid'=>'0.00',
'outstanding'=>$c['addition_fee'],
'entity_type'=>'children',
'entity_id'=>(int)$c['id'],
];
}
}
// Check unpaid temporary member fees
if($db->tableExists('temporary_members')){
$unpaidTemp=$db->select(
"SELECT * FROM temporary_members WHERE member_id = ? AND is_archived = 0 AND addition_fee > 0 AND (fee_receipt_number IS NULL OR fee_receipt_number = '')",
<?phpif(empty($report['payments'])):?><tr><tdcolspan="6"style="text-align:center;padding:40px;color:#6B7280;">لا توجد عمليات في هذا اليوم</td></tr><?phpendif;?>
<div><labelclass="form-label"style="font-size:12px;">بحث</label><inputtype="text"name="q"value="<?=e($filters['search']??'')?>"placeholder="اسم، رقم عضوية، إيصال..."class="form-input"style="min-width:200px;"></div>
<?phpif(empty($rows)):?><tr><tdcolspan="<?=empty($memberView)?8:7?>"style="text-align:center;padding:40px;color:#6B7280;">لا توجد مدفوعات</td></tr><?phpendif;?>
"SELECT p.*, r.receipt_number FROM payments p LEFT JOIN receipts r ON r.id = p.receipt_id WHERE p.member_id = ? AND p.is_voided = 0 ORDER BY p.payment_date DESC, p.id DESC LIMIT 50",
<div><labelclass="form-label"style="font-size:12px;">بحث</label><inputtype="text"name="q"value="<?=e($filters['search']??'')?>"placeholder="رقم إيصال، اسم عضو..."class="form-input"style="min-width:200px;"></div>