Updated DB Structure, Added Seperate From Name and From Email to Invoices / Quotes and Tickets, seperated Quote and Invoice to their own settings pane

This commit is contained in:
johnnyq 2022-02-18 15:26:16 -05:00
parent 16968e0b97
commit f95a228141
10 changed files with 219 additions and 52 deletions

View File

@ -24,6 +24,8 @@ while($row = mysqli_fetch_array($sql_companies)){
$config_enable_cron = $row['config_enable_cron'];
$config_invoice_overdue_reminders = $row['config_invoice_overdue_reminders'];
$config_invoice_prefix = $row['config_invoice_prefix'];
$config_invoice_from_email = $row['config_invoice_from_email'];
$config_invoice_from_name = $row['config_invoice_from_name'];
$config_smtp_host = $row['config_smtp_host'];
$config_smtp_username = $row['config_smtp_username'];
$config_smtp_password = $row['config_smtp_password'];
@ -211,7 +213,7 @@ while($row = mysqli_fetch_array($sql_companies)){
$mail->Port = $config_smtp_port; // TCP port to connect to
//Recipients
$mail->setFrom($config_mail_from_email, $config_mail_from_name);
$mail->setFrom($config_invoice_from_email, $config_invoice_from_name);
$mail->addAddress("$contact_email", "$contact_name"); // Add a recipient
// Content
@ -335,7 +337,7 @@ while($row = mysqli_fetch_array($sql_companies)){
$mail->Port = $config_smtp_port; // TCP port to connect to
//Recipients
$mail->setFrom($config_mail_from_email, $config_mail_from_name);
$mail->setFrom($config_invoice_from_email, $config_invoice_from_name);
$mail->addAddress("$contact_email", "$contact_name"); // Add a recipient
// Content

8
db.sql
View File

@ -1094,13 +1094,19 @@ CREATE TABLE `settings` (
`config_invoice_prefix` varchar(200) DEFAULT NULL,
`config_invoice_next_number` int(11) DEFAULT NULL,
`config_invoice_footer` text DEFAULT NULL,
`config_invoice_from_name` varchar(200) DEFAULT NULL,
`config_invoice_from_email` varchar(200) DEFAULT NULL,
`config_recurring_prefix` varchar(200) DEFAULT NULL,
`config_recurring_next_number` int(11) NOT NULL,
`config_quote_prefix` varchar(200) DEFAULT NULL,
`config_quote_next_number` int(11) DEFAULT NULL,
`config_quote_footer` text DEFAULT NULL,
`config_quote_from_name` varchar(200) DEFAULT NULL,
`config_quote_from_email` varchar(200) DEFAULT NULL,
`config_ticket_prefix` varchar(200) DEFAULT NULL,
`config_ticket_next_number` int(11) DEFAULT NULL,
`config_ticket_from_name` varchar(200) DEFAULT NULL,
`config_ticket_from_email` varchar(200) DEFAULT NULL,
`config_enable_cron` tinyint(1) DEFAULT NULL,
`config_recurring_auto_send_invoice` tinyint(1) DEFAULT NULL,
`config_enable_alert_domain_expire` tinyint(1) DEFAULT NULL,
@ -1421,4 +1427,4 @@ CREATE TABLE `vendors` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2022-02-18 11:13:32
-- Dump completed on 2022-02-18 15:24:49

View File

@ -29,4 +29,14 @@
<script src="dist/js/adminlte.min.js"></script>
<script src="js/app.js"></script>
</body>
</html>
</html>
<?php
// Calculate Execution time Uncomment for test
//$time_end = microtime(true);
//$execution_time = ($time_end - $time_start);
//echo 'Total Execution Time: '.number_format((float) $execution_time, 10) .' seconds';
?>

View File

@ -1,13 +1,13 @@
<?php
//Query Settings
// Query Settings
$sql_settings = mysqli_query($mysqli,"SELECT * FROM settings WHERE company_id = $session_company_id");
$row = mysqli_fetch_array($sql_settings);
//General
// General
$config_base_url = $row['config_base_url'];
//Mail
// Mail
$config_smtp_host = $row['config_smtp_host'];
$config_smtp_port = $row['config_smtp_port'];
$config_smtp_username = $row['config_smtp_username'];
@ -15,7 +15,7 @@ $config_smtp_password = $row['config_smtp_password'];
$config_mail_from_email = $row['config_mail_from_email'];
$config_mail_from_name = $row['config_mail_from_name'];
//Defaults
// Defaults
$config_default_transfer_from_account = $row['config_default_transfer_from_account'];
$config_default_transfer_to_account = $row['config_default_transfer_to_account'];
$config_default_payment_account = $row['config_default_payment_account'];
@ -25,21 +25,29 @@ $config_default_expense_payment_method = $row['config_default_expense_payment_me
$config_default_calendar = $row['config_default_calendar'];
$config_default_net_terms = $row['config_default_net_terms'];
//Invoice/Quote
// Invoice
$config_invoice_prefix = $row['config_invoice_prefix'];
$config_invoice_next_number = $row['config_invoice_next_number'];
$config_invoice_footer = $row['config_invoice_footer'];
$config_invoice_from_name = $row['config_invoice_from_name'];
$config_invoice_from_email = $row['config_invoice_from_email'];
// Recurring
$config_recurring_prefix = $row['config_recurring_prefix'];
$config_recurring_next_number = $row['config_recurring_next_number'];
// Quotes
$config_quote_prefix = $row['config_quote_prefix'];
$config_quote_next_number = $row['config_quote_next_number'];
$config_quote_footer = $row['config_quote_footer'];
$config_quote_from_name = $row['config_quote_from_name'];
$config_quote_from_email = $row['config_quote_from_email'];
//Tickets
// Tickets
$config_ticket_prefix = $row['config_ticket_prefix'];
$config_ticket_next_number = $row['config_ticket_next_number'];
$config_ticket_from_name = $row['config_ticket_from_name'];
$config_ticket_from_email = $row['config_ticket_from_email'];
//Alerts
$config_enable_cron = $row['config_enable_cron'];

View File

@ -1,5 +1,9 @@
<?php
// Calculate Execution time start
// uncomment for test
//$time_start = microtime(true);
include("config.php");
include_once("functions.php");
include("check_login.php");

View File

@ -738,6 +738,32 @@ if(isset($_POST['edit_mail_settings'])){
mysqli_query($mysqli,"UPDATE settings SET config_smtp_host = '$config_smtp_host', config_smtp_port = $config_smtp_port, config_smtp_username = '$config_smtp_username', config_smtp_password = '$config_smtp_password', config_mail_from_email = '$config_mail_from_email', config_mail_from_name = '$config_mail_from_name' WHERE company_id = $session_company_id");
//Update From Email and From Name if Invoice/Quote or Ticket fields are blank
if(empty($config_invoice_from_name)){
mysqli_query($mysqli,"UPDATE settings SET config_invoice_from_name = '$config_mail_from_name' WHERE company_id = $session_company_id");
}
if(empty($config_invoice_from_email)){
mysqli_query($mysqli,"UPDATE settings SET config_invoice_from_email = '$config_mail_from_email' WHERE company_id = $session_company_id");
}
if(empty($config_quote_from_name)){
mysqli_query($mysqli,"UPDATE settings SET config_quote_from_name = '$config_mail_from_name' WHERE company_id = $session_company_id");
}
if(empty($config_quote_from_email)){
mysqli_query($mysqli,"UPDATE settings SET config_quote_from_email = '$config_mail_from_email' WHERE company_id = $session_company_id");
}
if(empty($config_ticket_from_name)){
mysqli_query($mysqli,"UPDATE settings SET config_ticket_from_name = '$config_mail_from_name' WHERE company_id = $session_company_id");
}
if(empty($config_ticket_from_email)){
mysqli_query($mysqli,"UPDATE settings SET config_ticket_from_email = '$config_mail_from_email' WHERE company_id = $session_company_id");
}
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Settings', log_action = 'Modify', log_description = '$session_name modified mail settings', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_created_at = NOW(), log_user_id = $session_user_id, company_id = $session_company_id");
@ -783,23 +809,42 @@ if(isset($_POST['test_email'])){
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
if(isset($_POST['edit_invoice_quote_settings'])){
if(isset($_POST['edit_invoice_settings'])){
$config_invoice_prefix = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_invoice_prefix'])));
$config_invoice_next_number = intval($_POST['config_invoice_next_number']);
$config_invoice_footer = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_invoice_footer'])));
$config_invoice_from_email = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_invoice_from_email'])));
$config_invoice_from_name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_invoice_from_name'])));
$config_recurring_prefix = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_recurring_prefix'])));
$config_recurring_next_number = intval($_POST['config_recurring_next_number']);
mysqli_query($mysqli,"UPDATE settings SET config_invoice_prefix = '$config_invoice_prefix', config_invoice_next_number = $config_invoice_next_number, config_invoice_footer = '$config_invoice_footer', config_invoice_from_email = '$config_invoice_from_email', config_invoice_from_name = '$config_invoice_from_name', config_recurring_prefix = '$config_recurring_prefix', config_recurring_next_number = $config_recurring_next_number WHERE company_id = $session_company_id");
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Settings', log_action = 'Modify', log_description = 'Invoice settings', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_created_at = NOW(), log_user_id = $session_user_id, company_id = $session_company_id");
$_SESSION['alert_message'] = "Invoice Settings updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
if(isset($_POST['edit_quote_settings'])){
$config_quote_prefix = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_quote_prefix'])));
$config_quote_next_number = intval($_POST['config_quote_next_number']);
$config_quote_footer = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_quote_footer'])));
$config_quote_from_email = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_quote_from_email'])));
$config_quote_from_name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_quote_from_name'])));
mysqli_query($mysqli,"UPDATE settings SET config_invoice_prefix = '$config_invoice_prefix', config_invoice_next_number = $config_invoice_next_number, config_invoice_footer = '$config_invoice_footer', config_recurring_prefix = '$config_recurring_prefix', config_recurring_next_number = $config_recurring_next_number, config_quote_prefix = '$config_quote_prefix', config_quote_next_number = $config_quote_next_number, config_quote_footer = '$config_quote_footer' WHERE company_id = $session_company_id");
mysqli_query($mysqli,"UPDATE settings SET config_quote_prefix = '$config_quote_prefix', config_quote_next_number = $config_quote_next_number, config_quote_footer = '$config_quote_footer', config_quote_from_email = '$config_quote_from_email', config_quote_from_name = '$config_quote_from_name' WHERE company_id = $session_company_id");
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Settings', log_action = 'Modify', log_description = '$session_name modified invoice / quote settings', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_created_at = NOW(), log_user_id = $session_user_id, company_id = $session_company_id");
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Settings', log_action = 'Modify', log_description = 'Quote settings', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_created_at = NOW(), log_user_id = $session_user_id, company_id = $session_company_id");
$_SESSION['alert_message'] = "Invoice / Quote Settings updated";
$_SESSION['alert_message'] = "Quote Settings updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
@ -809,11 +854,13 @@ if(isset($_POST['edit_ticket_settings'])){
$config_ticket_prefix = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_ticket_prefix'])));
$config_ticket_next_number = intval($_POST['config_ticket_next_number']);
$config_ticket_from_email = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_ticket_from_email'])));
$config_ticket_from_name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['config_ticket_from_name'])));
mysqli_query($mysqli,"UPDATE settings SET config_ticket_prefix = '$config_ticket_prefix', config_ticket_next_number = $config_ticket_next_number WHERE company_id = $session_company_id");
mysqli_query($mysqli,"UPDATE settings SET config_ticket_prefix = '$config_ticket_prefix', config_ticket_next_number = $config_ticket_next_number, config_ticket_from_email = '$config_ticket_from_email', config_ticket_from_name = '$config_ticket_from_name' WHERE company_id = $session_company_id");
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Settings', log_action = 'Modify', log_description = '$session_name modified ticket settings', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_created_at = NOW(), log_user_id = $session_user_id, company_id = $session_company_id");
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Settings', log_action = 'Modify', log_description = 'Ticket settings', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_created_at = NOW(), log_user_id = $session_user_id, company_id = $session_company_id");
$_SESSION['alert_message'] = "Ticket Settings updated";
@ -3085,7 +3132,7 @@ if(isset($_GET['email_quote'])){
$mail->Port = $config_smtp_port; // TCP port to connect to
//Recipients
$mail->setFrom($config_mail_from_email, $config_mail_from_name);
$mail->setFrom($config_quote_from_email, $config_quote_from_name);
$mail->addAddress("$contact_email", "$contact_name"); // Add a recipient
// Attachments
@ -3578,7 +3625,7 @@ if(isset($_POST['add_payment'])){
$mail->Port = $config_smtp_port; // TCP port to connect to
//Recipients
$mail->setFrom($config_mail_from_email, $config_mail_from_name);
$mail->setFrom($config_invoice_from_email, $config_invoice_from_name);
$mail->addAddress("$contact_email", "$contact_name"); // Add a recipient
// Content
@ -3614,7 +3661,7 @@ if(isset($_POST['add_payment'])){
$mail->Port = $config_smtp_port; // TCP port to connect to
//Recipients
$mail->setFrom($config_mail_from_email, $config_mail_from_name);
$mail->setFrom($config_invoice_from_email, $config_invoice_from_name);
$mail->addAddress("$contact_email", "$contact_name"); // Add a recipient
// Content
@ -3761,7 +3808,7 @@ if(isset($_GET['email_invoice'])){
$mail->Port = $config_smtp_port; // TCP port to connect to
//Recipients
$mail->setFrom($config_mail_from_email, $config_mail_from_name);
$mail->setFrom($config_invoice_from_email, $config_invoice_from_name);
$mail->addAddress("$contact_email", "$contact_name"); // Add a recipient
// Content
@ -5450,7 +5497,7 @@ if(isset($_POST['add_ticket_reply'])){
$mail->Port = $config_smtp_port; // TCP port to connect to
//Recipients
$mail->setFrom($config_mail_from_email, $config_mail_from_name);
$mail->setFrom($config_ticket_from_email, $config_ticket_from_name);
$mail->addAddress("$contact_email", "$contact_name"); // Add a recipient
// Content
@ -6151,7 +6198,7 @@ if(isset($_GET['force_recurring'])){
$mail->Port = $config_smtp_port; // TCP port to connect to
//Recipients
$mail->setFrom($config_mail_from_email, $config_mail_from_name);
$mail->setFrom($config_invoice_from_email, $config_invoice_from_name);
$mail->addAddress("$contact_email", "$contact_name"); // Add a recipient
// Content

View File

@ -36,6 +36,26 @@
<textarea class="form-control" rows="4" name="config_invoice_footer"><?php echo $config_invoice_footer; ?></textarea>
</div>
<div class="form-group">
<label>From Email</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-envelope"></i></span>
</div>
<input type="email" class="form-control" name="config_invoice_from_email" placeholder="From Email" value="<?php echo $config_invoice_from_email; ?>">
</div>
</div>
<div class="form-group">
<label>From Name</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-tag"></i></span>
</div>
<input type="text" class="form-control" name="config_invoice_from_name" placeholder="From Name" value="<?php echo $config_invoice_from_name; ?>">
</div>
</div>
<legend>Recurring Invoice</legend>
<div class="form-group">
@ -58,36 +78,11 @@
</div>
</div>
<legend>Quote</legend>
<div class="form-group">
<label>Quote Prefix</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-barcode"></i></span>
</div>
<input type="text" class="form-control" name="config_quote_prefix" placeholder="Quote Prefix" value="<?php echo $config_quote_prefix; ?>" required>
</div>
</div>
<div class="form-group">
<label>Next Number</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-barcode"></i></span>
</div>
<input type="number" min="0" class="form-control" name="config_quote_next_number" placeholder="Next Quote Number" value="<?php echo $config_quote_next_number; ?>" required>
</div>
</div>
<div class="form-group">
<label>Quote Footer</label>
<textarea class="form-control" rows="4" name="config_quote_footer"><?php echo $config_quote_footer; ?></textarea>
</div>
<hr>
<button type="submit" name="edit_invoice_quote_settings" class="btn btn-primary">Save</button>
<button type="submit" name="edit_invoice_settings" class="btn btn-primary">Save</button>
</form>
</div>

View File

@ -25,10 +25,18 @@
</li>
<li class="nav-item">
<a class="nav-link <?php if(basename($_SERVER["REQUEST_URI"]) == "settings-invoice-quotes.php") { echo "active"; } ?>"
href="settings-invoice-quotes.php">
<a class="nav-link <?php if(basename($_SERVER["REQUEST_URI"]) == "settings-invoice.php") { echo "active"; } ?>"
href="settings-invoice.php">
<i class="fa fa-fw fa-2x fa-file"></i><br>
Invoice / Quote
Invoice
</a>
</li>
<li class="nav-item">
<a class="nav-link <?php if(basename($_SERVER["REQUEST_URI"]) == "settings-quote.php") { echo "active"; } ?>"
href="settings-quote.php">
<i class="fa fa-fw fa-2x fa-file"></i><br>
Quote
</a>
</li>

67
settings-quote.php Normal file
View File

@ -0,0 +1,67 @@
<?php include("header.php"); ?>
<?php include("settings-nav.php"); ?>
<div class="card card-dark">
<div class="card-header">
<h3 class="card-title"><i class="fa fa-fw fa-file"></i> Invoice/Quote Settings</h3>
</div>
<div class="card-body">
<form action="post.php" method="post" autocomplete="off">
<legend>Quote</legend>
<div class="form-group">
<label>Quote Prefix</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-barcode"></i></span>
</div>
<input type="text" class="form-control" name="config_quote_prefix" placeholder="Quote Prefix" value="<?php echo $config_quote_prefix; ?>" required>
</div>
</div>
<div class="form-group">
<label>Next Number</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-barcode"></i></span>
</div>
<input type="number" min="0" class="form-control" name="config_quote_next_number" placeholder="Next Quote Number" value="<?php echo $config_quote_next_number; ?>" required>
</div>
</div>
<div class="form-group">
<label>Quote Footer</label>
<textarea class="form-control" rows="4" name="config_quote_footer"><?php echo $config_quote_footer; ?></textarea>
</div>
<div class="form-group">
<label>From Email</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-envelope"></i></span>
</div>
<input type="email" class="form-control" name="config_quote_from_email" placeholder="From Email" value="<?php echo $config_quote_from_email; ?>">
</div>
</div>
<div class="form-group">
<label>From Name</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-tag"></i></span>
</div>
<input type="text" class="form-control" name="config_quote_from_name" placeholder="Name" value="<?php echo $config_quote_from_name; ?>">
</div>
</div>
<hr>
<button type="submit" name="edit_quote_settings" class="btn btn-primary">Save</button>
</form>
</div>
</div>
<?php include("footer.php");

View File

@ -28,6 +28,26 @@
<input type="number" min="0" class="form-control" name="config_ticket_next_number" placeholder="Next Ticket Number" value="<?php echo $config_ticket_next_number; ?>" required>
</div>
</div>
<div class="form-group">
<label>From Email</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-envelope"></i></span>
</div>
<input type="email" class="form-control" name="config_ticket_from_email" placeholder="From Email" value="<?php echo $config_ticket_from_email; ?>">
</div>
</div>
<div class="form-group">
<label>From Name</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-tag"></i></span>
</div>
<input type="text" class="form-control" name="config_ticket_from_name" placeholder="Name" value="<?php echo $config_ticket_from_name; ?>">
</div>
</div>
<hr>