When archiving a client, cancel recurring invoices

This commit is contained in:
wrongecho 2025-10-15 09:18:53 +01:00
parent 61d15cbf9e
commit db7f8501d0
1 changed files with 11 additions and 2 deletions

View File

@ -171,11 +171,20 @@ if (isset($_GET['archive_client'])) {
$client_id = intval($_GET['archive_client']); $client_id = intval($_GET['archive_client']);
// Archive client
mysqli_query($mysqli, "UPDATE clients SET client_archived_at = NOW() WHERE client_id = $client_id");
// Stop recurring invoices
$sql_recurring_invoices = mysqli_query($mysqli, "SELECT * FROM recurring_invoices WHERE recurring_invoice_client_id = $client_id AND recurring_invoice_status = 1");
while ($row = mysqli_fetch_array($sql_recurring_invoices)) {
$recurring_invoice_id = intval($row['recurring_invoice_id']);
mysqli_query($mysqli,"UPDATE recurring_invoices SET recurring_invoice_status = 0 WHERE recurring_invoice_id = $recurring_invoice_id AND recurring_invoice_client_id = $client_id");
mysqli_query($mysqli,"INSERT INTO history SET history_status = '$status', history_description = 'Recurring Invoice inactive as client archived', history_recurring_invoice_id = $recurring_invoice_id");
}
// Get Client Name // Get Client Name
$client_name = sanitizeInput(getFieldById('clients', $client_id, 'client_name')); $client_name = sanitizeInput(getFieldById('clients', $client_id, 'client_name'));
mysqli_query($mysqli, "UPDATE clients SET client_archived_at = NOW() WHERE client_id = $client_id");
logAction("Client", "Archive", "$session_name archived client $client_name", $client_id, $client_id); logAction("Client", "Archive", "$session_name archived client $client_name", $client_id, $client_id);
flash_alert("Client <strong>$client_name</strong> archived", 'error'); flash_alert("Client <strong>$client_name</strong> archived", 'error');