diff --git a/database_updates.php b/database_updates.php
index cabf8b15..7d6107ca 100644
--- a/database_updates.php
+++ b/database_updates.php
@@ -1559,14 +1559,26 @@ if (LATEST_DATABASE_VERSION > CURRENT_DATABASE_VERSION) {
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.0.2'");
}
+ if (CURRENT_DATABASE_VERSION == '1.0.2') {
+ //Insert queries here required to update to DB version 1.0.3
+ mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_stripe_expense_vendor` INT(11) NOT NULL DEFAULT 0 AFTER `config_stripe_account`");
+ mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_stripe_expense_category` INT(11) NOT NULL DEFAULT 0 AFTER `config_stripe_expense_vendor`");
+ mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_stripe_percentage_fee` DECIMAL(4,4) NOT NULL DEFAULT 0.029 AFTER `config_stripe_expense_category`");
+ mysqli_query($mysqli, "ALTER TABLE `settings` ADD `config_stripe_flat_fee` DECIMAL(15,2) NOT NULL DEFAULT 0.30 AFTER `config_stripe_percentage_fee`");
+ mysqli_query($mysqli, "ALTER TABLE `settings` CHANGE `config_stripe_account` `config_stripe_account` INT(11) NOT NULL DEFAULT 0");
+
+ //Then, update the database to the next sequential version
+ mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.0.3'");
+ }
+
// Be sure to change database_version.php to reflect the version you are updating to here
// Please add this same comment block to the bottom of this file, and update the version number.
// Uncomment Below Lines, to add additional database updates
//
- // if (CURRENT_DATABASE_VERSION == '1.0.2') {
- // // Insert queries here required to update to DB version 1.0.3
+ // if (CURRENT_DATABASE_VERSION == '1.0.3') {
+ // // Insert queries here required to update to DB version 1.0.4
// // Then, update the database to the next sequential version
- // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.0.3'");
+ // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.0.4'");
// }
} else {
diff --git a/database_version.php b/database_version.php
index c3d5aa31..6ede6e49 100644
--- a/database_version.php
+++ b/database_version.php
@@ -5,5 +5,5 @@
* It is used in conjunction with database_updates.php
*/
-DEFINE("LATEST_DATABASE_VERSION", "1.0.2");
+DEFINE("LATEST_DATABASE_VERSION", "1.0.3");
diff --git a/db.sql b/db.sql
index 15d7a5f5..81e80bb1 100644
--- a/db.sql
+++ b/db.sql
@@ -1270,7 +1270,11 @@ CREATE TABLE `settings` (
`config_stripe_enable` tinyint(1) NOT NULL DEFAULT 0,
`config_stripe_publishable` varchar(255) DEFAULT NULL,
`config_stripe_secret` varchar(255) DEFAULT NULL,
- `config_stripe_account` tinyint(1) NOT NULL DEFAULT 0,
+ `config_stripe_account` int(11) NOT NULL DEFAULT 0,
+ `config_stripe_expense_vendor` int(11) NOT NULL DEFAULT 0,
+ `config_stripe_expense_category` int(11) NOT NULL DEFAULT 0,
+ `config_stripe_percentage_fee` decimal(4,4) NOT NULL DEFAULT 0.0290,
+ `config_stripe_flat_fee` decimal(15,2) NOT NULL DEFAULT 0.30,
`config_stripe_client_pays_fees` tinyint(1) NOT NULL DEFAULT 0,
`config_azure_client_id` varchar(200) DEFAULT NULL,
`config_azure_client_secret` varchar(200) DEFAULT NULL,
@@ -1756,4 +1760,4 @@ CREATE TABLE `vendors` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2024-01-15 13:07:46
+-- Dump completed on 2024-01-27 23:58:10
diff --git a/get_settings.php b/get_settings.php
index 2a8cdeaa..51e098f1 100644
--- a/get_settings.php
+++ b/get_settings.php
@@ -79,11 +79,15 @@ $config_enable_alert_domain_expire = intval($row['config_enable_alert_domain_exp
$config_send_invoice_reminders = intval($row['config_send_invoice_reminders']);
$config_invoice_overdue_reminders = intval($row['config_invoice_overdue_reminders']);
-// Online Payment
+// Online Stripe Payment
$config_stripe_enable = intval($row['config_stripe_enable']);
$config_stripe_publishable = $row['config_stripe_publishable'];
$config_stripe_secret = $row['config_stripe_secret'];
-$config_stripe_account = $row['config_stripe_account'];
+$config_stripe_account = intval($row['config_stripe_account']);
+$config_stripe_expense_vendor = intval($row['config_stripe_expense_vendor']);
+$config_stripe_expense_category = intval($row['config_stripe_expense_category']);
+$config_stripe_percentage_fee = floatval($row['config_stripe_percentage_fee']);
+$config_stripe_flat_fee = floatval($row['config_stripe_flat_fee']);
$config_stripe_client_pays_fees = intval($row['config_stripe_client_pays_fees']);
// Modules
diff --git a/guest_pay_invoice_stripe.php b/guest_pay_invoice_stripe.php
index 7793dd02..1bac7e49 100644
--- a/guest_pay_invoice_stripe.php
+++ b/guest_pay_invoice_stripe.php
@@ -15,11 +15,15 @@ function log_to_console($message)
DEFINE("WORDING_PAYMENT_FAILED", "
There was an error verifying your payment. Please contact us for more information.
");
// Setup Stripe
-$stripe_vars = mysqli_fetch_array(mysqli_query($mysqli, "SELECT config_stripe_enable, config_stripe_publishable, config_stripe_secret, config_stripe_account, config_stripe_client_pays_fees FROM settings WHERE company_id = 1"));
+$stripe_vars = mysqli_fetch_array(mysqli_query($mysqli, "SELECT config_stripe_enable, config_stripe_publishable, config_stripe_secret, config_stripe_account, config_stripe_expense_vendor, config_stripe_expense_category, config_stripe_percentage_fee, config_stripe_flat_fee, config_stripe_client_pays_fees FROM settings WHERE company_id = 1"));
$config_stripe_enable = intval($stripe_vars['config_stripe_enable']);
$config_stripe_publishable = nullable_htmlentities($stripe_vars['config_stripe_publishable']);
$config_stripe_secret = nullable_htmlentities($stripe_vars['config_stripe_secret']);
$config_stripe_account = intval($stripe_vars['config_stripe_account']);
+$config_stripe_expense_vendor = intval($row['config_stripe_expense_vendor']);
+$config_stripe_expense_category = intval($row['config_stripe_expense_category']);
+$config_stripe_percentage_fee = floatval($row['config_stripe_percentage_fee']);
+$config_stripe_flat_fee = floatval($row['config_stripe_flat_fee']);
$config_stripe_client_pays_fees = intval($stripe_vars['config_stripe_client_pays_fees']);
// Check Stripe is configured
@@ -85,10 +89,8 @@ if (isset($_GET['invoice_id'], $_GET['url_key']) && !isset($_GET['payment_intent
// Check config to see if client pays fees is enabled
if ($config_stripe_client_pays_fees == 1) {
$balance_before_fees = $balance_to_pay;
- $percentage_fee = 0.029;
- $flat_fee = 0.30;
// Calculate the amount to charge the client
- $balance_to_pay = ($balance_to_pay + $flat_fee) / (1 - $percentage_fee);
+ $balance_to_pay = ($balance_to_pay + $config_stripe_flat_fee) / (1 - $config_stripe_percentage_fee);
// Calculate the fee amount
$gateway_fee = round($balance_to_pay - $balance_before_fees, 2);
@@ -279,10 +281,8 @@ if (isset($_GET['invoice_id'], $_GET['url_key']) && !isset($_GET['payment_intent
// Check config to see if client pays fees is enabled
if ($config_stripe_client_pays_fees == 1) {
- $percentage_fee = 0.029;
- $flat_fee = 0.30;
// Calculate the amount to charge the client
- $balance_to_pay = ($balance_to_pay + $flat_fee) / (1 - $percentage_fee);
+ $balance_to_pay = ($balance_to_pay + $config_stripe_flat_fee) / (1 - $config_stripe_percentage_fee);
}
// Round balance to pay to 2 decimal places
diff --git a/post/setting.php b/post/setting.php
index 62ec9514..631b8af2 100644
--- a/post/setting.php
+++ b/post/setting.php
@@ -373,8 +373,13 @@ if (isset($_POST['edit_online_payment_settings'])) {
$config_stripe_publishable = sanitizeInput($_POST['config_stripe_publishable']);
$config_stripe_secret = sanitizeInput($_POST['config_stripe_secret']);
$config_stripe_account = intval($_POST['config_stripe_account']);
+ $config_stripe_expense_vendor = intval($_POST['config_stripe_expense_vendor']);
+ $config_stripe_expense_category = intval($_POST['config_stripe_expense_category']);
+ $config_stripe_percentage_fee = floatval($_POST['config_stripe_percentage_fee']);
+ $config_stripe_flat_fee = floatval($_POST['config_stripe_flat_fee']);
+ $config_stripe_client_pays_fees = intval($_POST['config_stripe_client_pays_fees']);
- mysqli_query($mysqli,"UPDATE settings SET config_stripe_enable = $config_stripe_enable, config_stripe_publishable = '$config_stripe_publishable', config_stripe_secret = '$config_stripe_secret', config_stripe_account = $config_stripe_account WHERE company_id = 1");
+ mysqli_query($mysqli,"UPDATE settings SET config_stripe_enable = $config_stripe_enable, config_stripe_publishable = '$config_stripe_publishable', config_stripe_secret = '$config_stripe_secret', config_stripe_account = $config_stripe_account, config_stripe_expense_vendor = $config_stripe_expense_vendor, config_stripe_expense_category = $config_stripe_expense_category, config_stripe_percentage_fee = $config_stripe_percentage_fee, config_stripe_flat_fee = $config_stripe_flat_fee, config_stripe_client_pays_fees = $config_stripe_client_pays_fees WHERE company_id = 1");
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Settings', log_action = 'Modify', log_description = '$session_name modified online payment settings', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
@@ -889,19 +894,3 @@ if (isset($_GET['update_db'])) {
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
-
-if (isset($_POST['config_stripe_client_pays_fees'])) {
-
- validateAdminRole();
-
- $config_stripe_client_pays_fees = intval($_POST['config_stripe_client_pays_fees']);
-
- mysqli_query($mysqli,"UPDATE settings SET config_stripe_client_pays_fees = $config_stripe_client_pays_fees WHERE company_id = 1");
-
- //Logging
- mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Settings', log_action = 'Modify', log_description = '$session_name modified stripe client pays fees', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id");
-
- $_SESSION['alert_message'] = "Stripe client pays fees updated";
-
- header("Location: " . $_SERVER["HTTP_REFERER"]);
-}
diff --git a/settings_online_payment.php b/settings_online_payment.php
index 2c301713..fe674b39 100644
--- a/settings_online_payment.php
+++ b/settings_online_payment.php
@@ -21,7 +21,8 @@ require_once "inc_all_settings.php";
-
+ ">
+
@@ -44,7 +45,7 @@ require_once "inc_all_settings.php";