diff --git a/README.md b/README.md index 9716b23c..1aeb0ac9 100644 --- a/README.md +++ b/README.md @@ -39,9 +39,16 @@ [![ITFlow][product-screenshot]]() -ITFlow is a free & open-source solution for IT service management, documentation, and accounting & invoicing. -- ITFlow consolidates common MSP requirements (ticketing, wiki/docs, CMDB and accounting) into one tool. -- ITFlow is primarily targeted towards Managed Service Providers but may also be suitable for internal IT departments. +ITFlow is a free & open-source solution for IT service management, documentation, and accounting. + +### The Problem +- You're a busy MSP with 101 things to do. +- Information about your clients is unorganised and unstructured: scattered in random tickets or folders - when you do eventually find it, it's out of date. +- For some tickets, you spend longer looking for the relevant documentation than actually working the ticket. +- On top of the technical day to day, you also have to take care of the financial side of the business - consistent pricing, quotes/invoicing, and accounting. + +### The Solution: ITFlow +- ITFlow consolidates common MSP needs (ticketing, wiki/docs, CMDB and accounting) into one system to help you do what you do best - IT. ### In Beta * This project is still in early beta and is considered a **work in progress**. Many changes are being performed and may cause breakage upon updates. diff --git a/client_services.php b/client_services.php index afd6e7a0..677ac40d 100644 --- a/client_services.php +++ b/client_services.php @@ -58,6 +58,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); $service_description = $row['service_description']; $service_category = $row['service_category']; $service_importance = $row['service_importance']; + $service_backup = $row['service_backup']; $service_notes = $row['service_notes']; $service_updated_at = $row['service_updated_at']; $service_review_due = $row['service_review_due']; diff --git a/db.sql b/db.sql index a81b30be..2b28281a 100644 --- a/db.sql +++ b/db.sql @@ -939,6 +939,7 @@ CREATE TABLE IF NOT EXISTS `services` ( `service_description` varchar(200) CHARACTER SET latin1 NOT NULL, `service_category` varchar(20) CHARACTER SET latin1 NOT NULL, `service_importance` varchar(10) CHARACTER SET latin1 NOT NULL, + `service_backup` varchar(200) CHARACTER SET latin1 DEFAULT NULL, `service_notes` text CHARACTER SET latin1 NOT NULL, `service_created_at` datetime NOT NULL, `service_updated_at` datetime DEFAULT NULL, diff --git a/post.php b/post.php index e337c00e..01f33f30 100644 --- a/post.php +++ b/post.php @@ -5595,10 +5595,11 @@ if(isset($_POST['add_service'])){ $service_description = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['description']))); $service_category = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['category']))); //TODO: Needs integration with company categories $service_importance = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['importance']))); + $service_backup = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['backup']))); $service_notes = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['note']))); // Create Service - $service_sql = mysqli_query($mysqli, "INSERT INTO services SET service_name = '$service_name', service_description = '$service_description', service_category = '$service_category', service_importance = '$service_importance', service_notes = '$service_notes', service_created_at = NOW(), service_client_id = '$client_id', company_id = '$session_company_id'"); + $service_sql = mysqli_query($mysqli, "INSERT INTO services SET service_name = '$service_name', service_description = '$service_description', service_category = '$service_category', service_importance = '$service_importance', service_backup = '$service_backup', service_notes = '$service_notes', service_created_at = NOW(), service_client_id = '$client_id', company_id = '$session_company_id'"); // TODO: Support for URLs @@ -5680,10 +5681,11 @@ if(isset($_POST['edit_service'])){ $service_description = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['description']))); $service_category = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['category']))); //TODO: Needs integration with company categories $service_importance = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['importance']))); + $service_backup = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['backup']))); $service_notes = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['note']))); // Update main service details - mysqli_query($mysqli, "UPDATE services SET service_name = '$service_name', service_description = '$service_description', service_category = '$service_category', service_importance = '$service_importance', service_notes = '$service_notes', service_updated_at = NOW() WHERE service_id = '$service_id' AND company_id = '$session_company_id'"); + mysqli_query($mysqli, "UPDATE services SET service_name = '$service_name', service_description = '$service_description', service_category = '$service_category', service_importance = '$service_importance', service_backup = '$service_backup', service_notes = '$service_notes', service_updated_at = NOW() WHERE service_id = '$service_id' AND company_id = '$session_company_id'"); // Unlink existing relations/assets mysqli_query($mysqli, "DELETE FROM service_contacts WHERE service_id = '$service_id'"); diff --git a/service_add_modal.php b/service_add_modal.php index 02d20a83..cd6b35f5 100644 --- a/service_add_modal.php +++ b/service_add_modal.php @@ -78,6 +78,16 @@ +
+ +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file