prepare($sql); $stmt->execute([$invoice_id, $payment_date, $amount, $payment_method]); // Update invoice status if fully paid $sql = "SELECT i.total_amount, SUM(p.amount) as total_paid FROM invoices i LEFT JOIN payments p ON i.id = p.invoice_id WHERE i.id = ? GROUP BY i.id"; $stmt = $pdo->prepare($sql); $stmt->execute([$invoice_id]); $invoice_data = $stmt->fetch(); if ($invoice_data['total_paid'] >= $invoice_data['total_amount']) { $sql = "UPDATE invoices SET status = 'paid' WHERE id = ?"; $stmt = $pdo->prepare($sql); $stmt->execute([$invoice_id]); } header('Location: invoice_details.php?id=' . $invoice_id); exit; } catch (PDOException $e) { die("Database error: " . $e->getMessage()); } } else { header('Location: invoices.php'); exit; } ?>