prepare("UPDATE sales_orders SET payment_status = 'paid', status = 'completed' WHERE id = ?")->execute([$id]); set_flash('success', tr('تم استلام المبلغ بنجاح.', 'Payment received successfully.')); } catch (Throwable $e) { set_flash('danger', tr('خطأ أثناء التحديث.', 'Error updating.')); } redirect_to('debts.php'); } // Fetch all unpaid sales $sqlUnpaid = "SELECT s.*, c.name as c_name, c.phone as c_phone FROM sales_orders s LEFT JOIN customers c ON s.customer_id = c.id WHERE s.payment_status = 'unpaid' ORDER BY s.sale_date DESC"; $stmtUnpaid = $pdo->query($sqlUnpaid); $unpaidSales = $stmtUnpaid->fetchAll(PDO::FETCH_ASSOC); // Aggregate by customer $debtsByCustomer = []; foreach ($unpaidSales as $sale) { $cId = $sale['customer_id'] ?? 'unknown'; if (!isset($debtsByCustomer[$cId])) { $debtsByCustomer[$cId] = [ 'name' => $sale['c_name'] ?: $sale['customer_name'] ?: tr('عميل غير معروف', 'Unknown Customer'), 'phone' => $sale['c_phone'] ?: '', 'total' => 0.0, 'count' => 0 ]; } $debtsByCustomer[$cId]['total'] += (float)$sale['total_amount']; $debtsByCustomer[$cId]['count'] += 1; } // Sort by highest debt uasort($debtsByCustomer, fn($a, $b) => $b['total'] <=> $a['total']); ?>