"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",
}catch(\Throwable$e){}
// ── Unpaid Subscriptions ──
$unpaidSubscriptions='0.00';
$unpaidSubsCount=0;
try{
$row=$db->selectOne(
"SELECT COUNT(*) as cnt, COALESCE(SUM(total_amount - paid_amount + fine_amount), 0) as total
FROM subscriptions WHERE member_id = ? AND status IN ('pending', 'overdue')",
[$memberId]
);
$unpaidSubscriptions=$row['total']??'0.00';
$unpaidSubsCount=(int)($row['cnt']??0);
}catch(\Throwable$e){}
// ── Unpaid Fines ──
$unpaidFines='0.00';
try{
$row=$db->selectOne(
"SELECT COALESCE(SUM(amount - paid_amount), 0) as total FROM fines WHERE member_id = ? AND status IN ('imposed', 'appeal_upheld')",
$blocks[]='اشتراكات غير مدفوعة: '.money($summary['unpaid_subscriptions']);
}
// 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;?>
<?phpif(empty($payments)):?>
<tr><tdcolspan="6"style="text-align:center;padding:40px;color:#6B7280;">لا توجد دفعات في هذا التاريخ</td></tr>