diff --git a/client/recurring_invoices.php b/client/recurring_invoices.php index a5403e95..fd362f92 100644 --- a/client/recurring_invoices.php +++ b/client/recurring_invoices.php @@ -55,23 +55,6 @@ $recurring_invoices_sql = mysqli_query($mysqli, "SELECT * FROM recurring_invoice $recurring_payment_id = intval($row['recurring_payment_id']); $recurring_payment_recurring_invoice_id = intval($row['recurring_payment_recurring_invoice_id']); $recurring_payment_saved_payment_id = intval($row['recurring_payment_saved_payment_id']); - if ($config_stripe_enable) { - if ($recurring_payment_recurring_invoice_id) { - $auto_pay_display = " - Yes - - - - "; - } else { - $auto_pay_display = " - - Create - - "; - //require "recurring_payment_add_modal.php"; - } - } if (empty($recurring_invoice_scope)) { $recurring_invoice_scope_display = "-"; diff --git a/modals/account_add_modal.php b/modals/account_add_modal.php index f9afec38..f7ac138a 100644 --- a/modals/account_add_modal.php +++ b/modals/account_add_modal.php @@ -29,6 +29,7 @@ +
diff --git a/post/user/invoice.php b/post/user/invoice.php index 5a7dbc3c..4cad3f3f 100644 --- a/post/user/invoice.php +++ b/post/user/invoice.php @@ -1607,6 +1607,59 @@ if (isset($_GET['force_recurring'])) { } +if (isset($_POST['set_recurring_payment'])) { + + $recurring_invoice_id = intval($_POST['recurring_invoice_id']); + $saved_payment_id = intval($_POST['saved_payment_id']); + + // Get Recurring Invoice Info for logging and alerting + $sql = mysqli_query($mysqli, "SELECT * FROM recurring_invoices WHERE recurring_invoice_id = $recurring_invoice_id"); + $row = mysqli_fetch_array($sql); + $client_id = intval($row['recurring_invoice_client_id']); + $recurring_invoice_prefix = sanitizeInput($row['recurring_invoice_prefix']); + $recurring_invoice_number = intval($row['recurring_invoice_number']); + $recurring_invoice_currency_code = sanitizeInput($row['recurring_invoice_currency_code']); + $recurring_invoice_amount = floatval($row['recurring_invoice_amount']); + + if ($saved_payment_id) { + + // Get Payment provider and method + $sql = mysqli_query($mysqli, " + SELECT * FROM payment_providers + LEFT JOIN client_saved_payment_methods ON saved_payment_provider_id = payment_provider_id + WHERE saved_payment_id = $saved_payment_id + "); + + $row = mysqli_fetch_array($sql); + + $provider_id = intval($row['payment_provider_id']); + $provider_name = sanitizeInput($row['payment_provider_name']); + $account_id = intval($row['payment_provider_account']); + $saved_payment_description = sanitizeInput($row['saved_payment_description']); + + mysqli_query($mysqli, "DELETE FROM recurring_payments WHERE recurring_payment_recurring_invoice_id = $recurring_invoice_id"); + mysqli_query($mysqli,"INSERT INTO recurring_payments SET recurring_payment_currency_code = '$recurring_invoice_currency_code', recurring_payment_account_id = $account_id, recurring_payment_method = 'Credit Card', recurring_payment_recurring_invoice_id = $recurring_invoice_id, recurring_payment_saved_payment_id = $saved_payment_id"); + // Get Payment ID for reference + $recurring_payment_id = mysqli_insert_id($mysqli); + + // Logging + logAction("Recurring Invoice", "Auto Payment", "$session_name created Auto Pay for Recurring Invoice $recurring_invoice_prefix$recurring_invoice_number in the amount of " . numfmt_format_currency($currency_format, $recurring_invoice_amount, $recurring_invoice_currency_code), $client_id, $recurring_invoice_id); + + $_SESSION['alert_message'] = "Automatic Payment $saved_payment_description enabled for Recurring Invoice $recurring_invoice_prefix$recurring_invoice_number"; + } else { + // Delete + mysqli_query($mysqli, "DELETE FROM recurring_payments WHERE recurring_payment_recurring_invoice_id = $recurring_invoice_id"); + + // Logging + logAction("Recurring Invoice", "Auto Payment", "$session_name removed Auto Pay for Recurring Invoice $recurring_invoice_prefix$recurring_invoice_number in the amount of " . numfmt_format_currency($currency_format, $recurring_invoice_amount, $recurring_invoice_currency_code), $client_id, $recurring_invoice_id); + + $_SESSION['alert_type'] = "error"; + $_SESSION['alert_message'] = "Automatic Payment Disabled for Recurring Invoice $recurring_invoice_prefix$recurring_invoice_number"; + } + + header("Location: " . $_SERVER["HTTP_REFERER"]); +} + if (isset($_POST['export_invoices_csv'])) { if (isset($_POST['client_id'])) { $client_id = intval($_POST['client_id']); diff --git a/recurring_invoice.php b/recurring_invoice.php index 260c2d9d..1dca858b 100644 --- a/recurring_invoice.php +++ b/recurring_invoice.php @@ -78,6 +78,7 @@ if (isset($_GET['recurring_invoice_id'])) { $recurring_payment_id = intval($row['recurring_payment_id']); $recurring_payment_recurring_invoice_id = intval($row['recurring_payment_recurring_invoice_id']); $recurring_payment_method = nullable_htmlentities($row['recurring_payment_method']); + $recurring_payment_saved_payment_id = intval($row['recurring_payment_saved_payment_id']); // Override Tab Title // No Sanitizing needed as this var will only be used in the tab title $tab_title = $row['client_name']; @@ -137,7 +138,7 @@ if (isset($_GET['recurring_invoice_id'])) {
-
+
Email Notify @@ -158,6 +159,33 @@ if (isset($_GET['recurring_invoice_id'])) {
+
+ 0) { ?> +
+ + +
+
+ +
+ +
+
+ + Add a Payment Method + +