DB update The long awaited Client Tag support is finally complete along with icon support and color badges this has replaced the user maintenance field to allow further customization, fixed tickets as it was using the old permission system.

This commit is contained in:
johnnyq 2021-12-27 11:42:13 -05:00
parent a9fb11e3ef
commit d23d455cd9
11 changed files with 71 additions and 88 deletions

View File

@ -215,19 +215,6 @@
<div class="tab-pane fade" id="pills-additional">
<div class="form-group">
<label>Support</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-handshake"></i></span>
</div>
<select class="form-control select2" name="support">
<option>Non-Maintenance</option>
<option>Maintenance</option>
</select>
</div>
</div>
<div class="form-group">
<label>Currency <strong class="text-danger">*</strong></label>
<div class="input-group">
@ -269,7 +256,7 @@
<ul class="list-group">
<?php
$sql_tags_select = mysqli_query($mysqli,"SELECT * FROM tags WHERE tag_archived_at IS NULL AND company_id = $session_company_id ORDER BY tag_name ASC");
$sql_tags_select = mysqli_query($mysqli,"SELECT * FROM tags WHERE company_id = $session_company_id ORDER BY tag_name ASC");
while($row = mysqli_fetch_array($sql_tags_select)){
$tag_id_select = $row['tag_id'];
@ -281,7 +268,7 @@
<li class="list-group-item">
<div class="form-check">
<input type="checkbox" class="form-check-input" name="tags[]" value="<?php echo $tag_id_select; ?>">
<label class="form-check-label ml-2" style="color:<?php echo $tag_color_select ?>;"><?php echo "<i class='fa fw fa-$tag_icon_select'></i>"; ?> <?php echo $tag_name_select; ?></label>
<label class="form-check-label ml-2 badge bg-<?php echo $tag_color_select; ?>"><?php echo "<i class='fa fw fa-$tag_icon_select'></i>"; ?> <?php echo $tag_name_select; ?></label>
</div>
</li>

View File

@ -70,7 +70,7 @@
<option value="">Not Assigned</option>
<?php
$sql = mysqli_query($mysqli,"SELECT * FROM users, permissions WHERE users.user_id = permissions.user_id AND $session_company_id IN($session_permission_companies) ORDER BY user_name ASC");
$sql = mysqli_query($mysqli,"SELECT * FROM users, user_companies WHERE users.user_id = user_companies.user_id AND user_companies.company_id = $session_company_id ORDER BY user_name ASC");
while($row = mysqli_fetch_array($sql)){
$user_id = $row['user_id'];
$user_name = $row['user_name'];

View File

@ -30,7 +30,6 @@ if(isset($_GET['client_id'])){
if($client_net_terms == 0){
$client_net_terms = $config_default_net_terms;
}
$client_support = $row['client_support'];
$client_notes = $row['client_notes'];
$client_created_at = $row['client_created_at'];
$primary_contact = $row['primary_contact'];
@ -51,6 +50,26 @@ if(isset($_GET['client_id'])){
$location_country = $row['location_country'];
$location_phone = $row['location_phone'];
//Client Tags
$client_tag_name_display_array = array();
$client_tag_id_array = array();
$sql_client_tags = mysqli_query($mysqli,"SELECT * FROM client_tags LEFT JOIN tags ON client_tags.tag_id = tags.tag_id WHERE client_tags.client_id = $client_id");
while($row = mysqli_fetch_array($sql_client_tags)){
$client_tag_id = $row['tag_id'];
$client_tag_name = $row['tag_name'];
$client_tag_color = $row['tag_color'];
$client_tag_icon = $row['tag_icon'];
if(empty($client_tag_icon)){
$client_tag_icon = "tag";
}
$client_tag_id_array[] = $client_tag_id;
$client_tag_name_display_array[] = "<span class='badge bg-$client_tag_color'><i class='fa fa-fw fa-$client_tag_icon'></i> $client_tag_name</span>";
}
$client_tags_display = implode('', $client_tag_name_display_array);
//Add up all the payments for the invoice and get the total amount paid to the invoice
$sql_invoice_amounts = mysqli_query($mysqli,"SELECT SUM(invoice_amount) AS invoice_amounts FROM invoices WHERE invoice_client_id = $client_id AND invoice_status NOT LIKE 'Draft' AND invoice_status NOT LIKE 'Cancelled'");
$row = mysqli_fetch_array($sql_invoice_amounts);

View File

@ -14,7 +14,7 @@
<p><strong><?php echo $client_name; ?></strong></p>
</a>
<center>
<small class="text-secondary"><i class="fas fa-handshake"></i> <strong>SUPPORT: </strong><span style="color:<?php echo ($client_support=="Maintenance"?"green":"red");?>;"><?php echo $client_support;?></span></small>
<?php echo $client_tags_display; ?>
</center>
</li>
<li class="nav-header mt-3">CLIENT</li>

View File

@ -82,8 +82,10 @@ if($_GET['canned_date'] == "custom" AND !empty($_GET['date_from'])){
//Rebuild URL
$url_query_strings_sortby = http_build_query(array_merge($_GET,array('sortby' => $sortby, 'order' => $order)));
$sql = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS * FROM clients LEFT JOIN contacts ON clients.primary_contact = contacts.contact_id AND contact_archived_at IS NULL LEFT JOIN locations ON clients.primary_location = locations.location_id AND location_archived_at IS NULL
WHERE (client_name LIKE '%$query%' OR client_type LIKE '%$query%' OR client_support LIKE '%$query%' OR contact_email LIKE '%$query%' OR contact_name LIKE '%$query%' OR contact_phone LIKE '%$query%'
$sql = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS * FROM clients
LEFT JOIN contacts ON clients.primary_contact = contacts.contact_id AND contact_archived_at IS NULL
LEFT JOIN locations ON clients.primary_location = locations.location_id AND location_archived_at IS NULL
WHERE (client_name LIKE '%$query%' OR client_type LIKE '%$query%' OR contact_email LIKE '%$query%' OR contact_name LIKE '%$query%' OR contact_phone LIKE '%$query%'
OR contact_mobile LIKE '%$query%' OR location_address LIKE '%$query%' OR location_city LIKE '%$query%' OR location_state LIKE '%$query%' OR location_zip LIKE '%$query%')
AND DATE(client_created_at) BETWEEN '$date_from' AND '$date_to'
AND clients.company_id = $session_company_id $permission_sql
@ -189,26 +191,31 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
$client_currency_code = $row['client_currency_code'];
$client_net_terms = $row['client_net_terms'];
$client_referral = $row['client_referral'];
$client_support = $row['client_support'];
$client_notes = $row['client_notes'];
$client_created_at = $row['client_created_at'];
$client_updated_at = $row['client_updated_at'];
//Get Tags WIP
//Client Tags
$sql_client_tags = mysqli_query($mysqli,"SELECT * FROM client_tags, tags WHERE client_tags.client_id = $client_id AND client_tags.tag_id = tags.tag_id");
$row = mysqli_fetch_array($sql_client_tags);
$client_tag_name_display_array = array();
$client_tag_id_array = array();
$sql_client_tags = mysqli_query($mysqli,"SELECT * FROM client_tags LEFT JOIN tags ON client_tags.tag_id = tags.tag_id WHERE client_tags.client_id = $client_id");
while($row = mysqli_fetch_array($sql_client_tags)){
$client_tag_id = $row['tag_id'];
$client_tag_name = $row['tag_name'];
$client_tag_color = $row['tag_color'];
$client_tag_icon = $row['tag_icon'];
if(empty($client_tag_icon)){
$client_tag_icon = "tag";
}
//$client_tag_id_array = array($client_tag_id);
//$client_tag_name_array = array($client_tag_name);
$client_tag_id_array[] = $client_tag_id;
$client_tag_name_display_array[] = "<span class='badge bg-$client_tag_color'><i class='fa fa-fw fa-$client_tag_icon'></i> $client_tag_name</span>";
}
$client_tags_display = implode('', $client_tag_name_display_array);
//Add up all the payments for the invoice and get the total amount paid to the invoice
$sql_invoice_amounts = mysqli_query($mysqli,"SELECT SUM(invoice_amount) AS invoice_amounts FROM invoices WHERE invoice_client_id = $client_id AND invoice_status NOT LIKE 'Draft' AND invoice_status NOT LIKE 'Cancelled' ");
$row = mysqli_fetch_array($sql_invoice_amounts);
@ -231,12 +238,18 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
?>
<tr>
<td>
<i class="fas fa-fw fa-handshake <?php if($client_support == 'Maintenance'){ echo "text-success"; }else{ echo "text-danger"; } ?> fa-fw"></i> <strong><a href="client.php?client_id=<?php echo $client_id; ?>&tab=contacts"><?php echo $client_name; ?></a></strong>
<strong><a href="client.php?client_id=<?php echo $client_id; ?>&tab=contacts"><?php echo $client_name; ?></a></strong>
<?php
if(!empty($client_type)){
?>
<br>
<small class="text-secondary"><?php echo $client_type; ?> - <?php explode(',', $client_tag_name_array); ?></small>
<small class="text-secondary"><?php echo $client_type; ?></small>
<?php } ?>
<?php
if(!empty($client_tags_display)){
?>
<br>
<?php echo $client_tags_display; ?>
<?php } ?>
<br>
<small class="text-secondary"><b>Added:</b> <?php echo $client_created_at; ?></small>

4
db.sql
View File

@ -225,7 +225,6 @@ CREATE TABLE `clients` (
`client_referral` varchar(200) DEFAULT NULL,
`client_currency_code` varchar(200) NOT NULL,
`client_net_terms` int(10) NOT NULL,
`client_support` varchar(100) DEFAULT NULL,
`client_notes` text DEFAULT NULL,
`client_created_at` datetime NOT NULL,
`client_updated_at` datetime DEFAULT NULL,
@ -908,7 +907,6 @@ CREATE TABLE `tags` (
`tag_icon` varchar(200) DEFAULT NULL,
`tag_created_at` datetime NOT NULL,
`tag_updated_at` datetime DEFAULT NULL,
`tag_archived_at` datetime DEFAULT NULL,
`company_id` int(11) NOT NULL,
PRIMARY KEY (`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@ -1154,4 +1152,4 @@ CREATE TABLE `vendors` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2021-12-22 14:33:03
-- Dump completed on 2021-12-27 11:38:55

View File

@ -57,19 +57,6 @@
</div>
</div>
<div class="form-group">
<label>Support</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-fw fa-handshake"></i></span>
</div>
<select class="form-control select2" name="support">
<option <?php if($client_support == "Non-Maintenance"){ echo "selected"; } ?>>Non-Maintenance</option>
<option <?php if($client_support == "Maintenance"){ echo "selected"; } ?>>Maintenance</option>
</select>
</div>
</div>
<div class="form-group">
<label>Referral</label>
<div class="input-group">
@ -272,7 +259,7 @@
<?php
$sql_tags_select = mysqli_query($mysqli,"SELECT * FROM tags WHERE tag_archived_at IS NULL AND company_id = $session_company_id ORDER BY tag_name ASC");
$sql_tags_select = mysqli_query($mysqli,"SELECT * FROM tags WHERE company_id = $session_company_id ORDER BY tag_name ASC");
while($row = mysqli_fetch_array($sql_tags_select)){
$tag_id_select = $row['tag_id'];
@ -283,8 +270,8 @@
?>
<li class="list-group-item">
<div class="form-check">
<input type="checkbox" class="form-check-input" name="tags[]" value="<?php echo $tag_id_select; ?>" <?php if(in_array('$client_tags', $tag_id_select)){ echo "checked"; } ?>>
<label class="form-check-label ml-2" style="color:<?php echo $tag_color_select ?>;"><?php echo "<i class='fa fw fa-$tag_icon_select'></i>"; ?> <?php echo $tag_name_select; ?></label>
<input type="checkbox" class="form-check-input" name="tags[]" value="<?php echo $tag_id_select; ?>" <?php if(in_array($tag_id_select, $client_tag_id_array)){ echo "checked"; } ?>>
<label class="form-check-label ml-2 badge bg-<?php echo $tag_color_select; ?>"><?php echo "<i class='fa fw fa-$tag_icon_select'></i>"; ?> <?php echo $tag_name_select; ?></label>
</div>
</li>

View File

@ -21,7 +21,7 @@
<option value="">Not Assigned</option>
<?php
$sql_assign_to_select = mysqli_query($mysqli,"SELECT * FROM users, permissions WHERE users.user_id = permissions.user_id AND $session_company_id IN($session_permission_companies) ORDER BY user_name ASC");
$sql_assign_to_select = mysqli_query($mysqli,"SELECT * FROM users, user_companies WHERE users.user_id = user_companies.user_id AND user_companies.company_id = $session_company_id ORDER BY user_name ASC");
while($row = mysqli_fetch_array($sql_assign_to_select)){
$user_id = $row['user_id'];
$user_name = $row['user_name'];

View File

@ -872,22 +872,7 @@ if(isset($_GET['update'])){
//exec("git fetch --all");
//exec("git reset --hard origin/master");
//Alter SQL Structure
//Put ID Here
//mysqli_query($mysqli,"ALTER TABLE logs ADD log_ip VARCHAR(200) NULL AFTER log_description");
//mysqli_query($mysqli,"ALTER TABLE logs ADD log_user_agent VARCHAR(250) NULL AFTER log_ip");
//85cdc42d0f15e36de5cab00d7f3c799a056e85ef
//mysqli_query($mysqli,"ALTER TABLE assets ADD asset_install_date DATE NULL AFTER asset_warranty_expire");
//c88e6b851aadfbde173f7cfe7155dd1ed31adece
//mysqli_query($mysqli,"ALTER TABLE settings DROP config_enable_alert_low_balance");
//mysqli_query($mysqli,"ALTER TABLE settings DROP config_account_balance_threshold");
$_SESSION['alert_message'] = "Update Successful!";
header("Location: " . $_SERVER["HTTP_REFERER"]);
header("Location: post.php?update_db");
}
@ -904,9 +889,11 @@ if(isset($_GET['update_db'])){
//c88e6b851aadfbde173f7cfe7155dd1ed31adece
//mysqli_query($mysqli,"ALTER TABLE settings DROP config_enable_alert_low_balance");
//mysqli_query($mysqli,"ALTER TABLE settings DROP config_account_balance_threshold");
//mysqli_query($mysqli,"ALTER TABLE settings DROP config_account_balance_threshold");
mysqli_query($mysqli,"ALTER TABLE clients DROP client_support");
mysqli_query($mysqli,"ALTER TABLE tags DROP tag_archived_at");
$_SESSION['alert_message'] = "Database Structure Update Successful!";
$_SESSION['alert_message'] = "Update Successful Database Structure Update Successful!";
header("Location: " . $_SERVER["HTTP_REFERER"]);
@ -916,7 +903,6 @@ if(isset($_POST['add_client'])){
$name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['name'])));
$type = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['type'])));
$support = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['support'])));
$address = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['address'])));
$city = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['city'])));
$state = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['state'])));
@ -934,7 +920,7 @@ if(isset($_POST['add_client'])){
$net_terms = intval($_POST['net_terms']);
$notes = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['notes'])));
mysqli_query($mysqli,"INSERT INTO clients SET client_name = '$name', client_type = '$type', client_website = '$website', client_referral = '$referral', client_currency_code = '$currency_code', client_net_terms = $net_terms, client_support = '$support', client_notes = '$notes', client_created_at = NOW(), client_accessed_at = NOW(), company_id = $session_company_id");
mysqli_query($mysqli,"INSERT INTO clients SET client_name = '$name', client_type = '$type', client_website = '$website', client_referral = '$referral', client_currency_code = '$currency_code', client_net_terms = $net_terms, client_notes = '$notes', client_created_at = NOW(), client_accessed_at = NOW(), company_id = $session_company_id");
$client_id = mysqli_insert_id($mysqli);
@ -991,7 +977,6 @@ if(isset($_POST['edit_client'])){
$contact_id = intval($_POST['contact_id']);
$name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['name'])));
$type = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['type'])));
$support = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['support'])));
$country = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['country'])));
$address = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['address'])));
$city = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['city'])));
@ -1009,10 +994,10 @@ if(isset($_POST['edit_client'])){
$net_terms = intval($_POST['net_terms']);
$notes = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['notes'])));
mysqli_query($mysqli,"UPDATE clients SET client_name = '$name', client_type = '$type', client_website = '$website', client_referral = '$referral', client_currency_code = '$currency_code', client_net_terms = $net_terms, client_support = '$support', client_notes = '$notes', client_updated_at = NOW() WHERE client_id = $client_id AND company_id = $session_company_id");
mysqli_query($mysqli,"UPDATE clients SET client_name = '$name', client_type = '$type', client_website = '$website', client_referral = '$referral', client_currency_code = '$currency_code', client_net_terms = $net_terms, client_notes = '$notes', client_updated_at = NOW() WHERE client_id = $client_id AND company_id = $session_company_id");
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Client', log_action = 'Modified', log_description = '$name', log_created_at = NOW(), client_id = $client_id, company_id = $session_company_id, log_user_id = $session_user_id");
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Client', log_action = 'Modified', log_description = '$name', log_created_at = NOW(), log_client_id = $client_id, company_id = $session_company_id, log_user_id = $session_user_id");
//Edit Primary Location
if($location_id > 0){
@ -1031,6 +1016,14 @@ if(isset($_POST['edit_client'])){
}
//Tags
mysqli_query($mysqli,"DELETE FROM client_tags WHERE client_id = $client_id");
foreach($_POST['tags'] as $tag){
intval($tag);
mysqli_query($mysqli,"INSERT INTO client_tags SET client_id = $client_id, tag_id = $tag");
}
$_SESSION['alert_message'] = "Client $name updated";
header("Location: " . $_SERVER["HTTP_REFERER"]);
@ -1839,24 +1832,11 @@ if(isset($_POST['edit_tag'])){
}
if(isset($_GET['archive_tag'])){
$tag_id = intval($_GET['archive_tag']);
mysqli_query($mysqli,"UPDATE tags SET tag_archived_at = NOW() WHERE tag_id = $tag_id");
//logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Tag', log_action = 'Archive', log_description = '$tag_id', log_created_at = NOW()");
$_SESSION['alert_message'] = "Tag Archived";
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
if(isset($_GET['delete_tag'])){
$tag_id = intval($_GET['delete_tag']);
mysqli_query($mysqli,"DELETE FROM tags WHERE tag_id = $tag_id AND company_id = $session_company_id");
mysqli_query($mysqli,"DELETE FROM client_tags WHERE tag_id = $tag_id");
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Tag', log_action = 'Deleted', log_description = '$tag_id', log_created_at = NOW(), company_id = $session_company_id, log_user_id = $session_user_id");

View File

@ -227,7 +227,7 @@
<p>Categories</p>
</a>
</li>
<li class="nav-item d-none">
<li class="nav-item">
<a href="tags.php" class="nav-link <?php if(basename($_SERVER["PHP_SELF"]) == "tags.php") { echo "active"; } ?>">
<i class="far fa-circle nav-icon"></i>
<p>Tags</p>

View File

@ -41,7 +41,6 @@ $url_query_strings_sb = http_build_query(array_merge($_GET,array('sb' => $sb, 'o
$sql = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS * FROM tags
WHERE tag_name LIKE '%$q%'
AND tag_archived_at IS NULL
AND company_id = $session_company_id
ORDER BY $sb $o LIMIT $record_from, $record_to"
);
@ -122,7 +121,7 @@ $colors_diff = array_diff($colors_array,$colors_used_array);
<div class="dropdown-menu">
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#editTagModal<?php echo $tag_id; ?>">Edit</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item text-danger" href="post.php?archive_tag=<?php echo $tag_id; ?>">Archive</a>
<a class="dropdown-item text-danger" href="post.php?delete_tag=<?php echo $tag_id; ?>">Delete</a>
</div>
</div>
</td>