diff --git a/client_recurring.php b/client_recurring.php index b69acdfc..bf4a4b82 100644 --- a/client_recurring.php +++ b/client_recurring.php @@ -42,7 +42,7 @@ $url_query_strings_sb = http_build_query(array_merge($_GET,array('sb' => $sb, 'o $sql = mysqli_query($mysqli,"SELECT * FROM recurring, categories WHERE recurring.client_id = $client_id AND recurring.category_id = categories.category_id - AND (recurring_frequency LIKE '%$q%' OR recurring_scope LIKE '%$q%' OR category_name LIKE '%$q%') + AND (CONCAT(recurring_prefix,recurring_number) LIKE '%$q%' OR recurring_frequency LIKE '%$q%' OR recurring_scope LIKE '%$q%' OR category_name LIKE '%$q%') ORDER BY $sb $o LIMIT $record_from, $record_to"); $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); @@ -72,6 +72,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); "> + @@ -87,6 +88,8 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); while($row = mysqli_fetch_array($sql)){ $recurring_id = $row['recurring_id']; + $recurring_prefix = $row['recurring_prefix']; + $recurring_number = $row['recurring_number']; $recurring_scope = $row['recurring_scope']; $recurring_frequency = $row['recurring_frequency']; $recurring_status = $row['recurring_status']; @@ -110,6 +113,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); ?> + diff --git a/cron.php b/cron.php index 7089ffc2..cfbab3a6 100644 --- a/cron.php +++ b/cron.php @@ -197,7 +197,7 @@ while($row = mysqli_fetch_array($sql_companies)){ //Generate a unique URL key for clients to access $url_key = keygen(); - mysqli_query($mysqli,"INSERT INTO invoices SET invoice_prefix = '$config_invoice_prefix', invoice_number = '$new_invoice_number', invoice_scope = '$recurring_scope', invoice_date = CURDATE(), invoice_due = DATE_ADD(CURDATE(), INTERVAL $client_net_terms day), invoice_amount = '$recurring_amount', invoice_note = '$recurring_note', category_id = $category_id, invoice_status = 'Sent', invoice_url_key = '$url_key', invoice_created_at = NOW(), client_id = $client_id, company_id = $company_id"); + mysqli_query($mysqli,"INSERT INTO invoices SET invoice_prefix = '$config_invoice_prefix', invoice_number = $new_invoice_number, invoice_scope = '$recurring_scope', invoice_date = CURDATE(), invoice_due = DATE_ADD(CURDATE(), INTERVAL $client_net_terms day), invoice_amount = '$recurring_amount', invoice_note = '$recurring_note', category_id = $category_id, invoice_status = 'Sent', invoice_url_key = '$url_key', invoice_created_at = NOW(), client_id = $client_id, company_id = $company_id"); $new_invoice_id = mysqli_insert_id($mysqli); diff --git a/db.sql b/db.sql index 9d9f4c07..8f2faf67 100644 --- a/db.sql +++ b/db.sql @@ -659,6 +659,8 @@ DROP TABLE IF EXISTS `recurring`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `recurring` ( `recurring_id` int(11) NOT NULL AUTO_INCREMENT, + `recurring_prefix` varchar(200) DEFAULT NULL, + `recurring_number` int(11) NOT NULL, `recurring_scope` varchar(255) DEFAULT NULL, `recurring_frequency` varchar(200) NOT NULL, `recurring_last_sent` date DEFAULT NULL, @@ -710,43 +712,44 @@ DROP TABLE IF EXISTS `settings`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `settings` ( `company_id` int(11) NOT NULL, - `config_default_expense_account` int(11) DEFAULT NULL, - `config_default_payment_account` int(11) DEFAULT NULL, - `config_default_payment_method` varchar(200) DEFAULT NULL, - `config_default_expense_payment_method` varchar(200) DEFAULT NULL, + `config_api_key` varchar(200) DEFAULT NULL, + `config_aes_key` varchar(250) DEFAULT NULL, + `config_base_url` varchar(200) DEFAULT NULL, + `config_smtp_host` varchar(200) DEFAULT NULL, + `config_smtp_port` int(5) DEFAULT NULL, + `config_smtp_username` varchar(200) DEFAULT NULL, + `config_smtp_password` varchar(200) DEFAULT NULL, + `config_mail_from_email` varchar(200) DEFAULT NULL, + `config_mail_from_name` varchar(200) DEFAULT NULL, `config_default_transfer_from_account` int(11) DEFAULT NULL, `config_default_transfer_to_account` int(11) DEFAULT NULL, + `config_default_payment_account` int(11) DEFAULT NULL, + `config_default_expense_account` int(11) DEFAULT NULL, + `config_default_payment_method` varchar(200) DEFAULT NULL, + `config_default_expense_payment_method` varchar(200) DEFAULT NULL, `config_default_calendar` int(11) DEFAULT NULL, `config_default_net_terms` int(11) DEFAULT NULL, `config_records_per_page` int(10) NOT NULL, - `config_smtp_host` varchar(200) DEFAULT NULL, - `config_smtp_username` varchar(200) DEFAULT NULL, - `config_smtp_password` varchar(200) DEFAULT NULL, - `config_smtp_port` int(5) DEFAULT NULL, - `config_mail_from_email` varchar(200) DEFAULT NULL, - `config_mail_from_name` varchar(200) DEFAULT NULL, - `config_account_balance_threshold` varchar(200) DEFAULT NULL, - `config_invoice_logo` varchar(200) DEFAULT NULL, - `config_invoice_footer` text DEFAULT NULL, - `config_quote_footer` text DEFAULT NULL, - `config_invoice_next_number` int(11) DEFAULT NULL, - `config_recurring_auto_send_invoice` tinyint(1) DEFAULT NULL, - `config_api_key` varchar(200) DEFAULT NULL, - `config_aes_key` varchar(250) DEFAULT NULL, `config_invoice_prefix` varchar(200) DEFAULT NULL, - `config_send_invoice_reminders` tinyint(1) DEFAULT NULL, - `config_invoice_overdue_reminders` varchar(200) DEFAULT NULL, - `config_quote_next_number` int(11) DEFAULT NULL, + `config_invoice_next_number` int(11) DEFAULT NULL, + `config_invoice_footer` text 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_ticket_prefix` varchar(200) DEFAULT NULL, `config_ticket_next_number` int(11) DEFAULT NULL, `config_enable_cron` tinyint(1) DEFAULT NULL, - `config_enable_alert_domain_expire` tinyint(1) DEFAULT NULL, `config_enable_alert_low_balance` tinyint(1) DEFAULT NULL, + `config_account_balance_threshold` varchar(200) DEFAULT NULL, + `config_recurring_auto_send_invoice` tinyint(1) DEFAULT NULL, + `config_enable_alert_domain_expire` tinyint(1) DEFAULT NULL, + `config_send_invoice_reminders` tinyint(1) DEFAULT NULL, + `config_invoice_overdue_reminders` varchar(200) DEFAULT NULL, `config_stripe_enable` tinyint(1) DEFAULT NULL, `config_stripe_publishable` varchar(255) DEFAULT NULL, `config_stripe_secret` varchar(255) DEFAULT NULL, - `config_base_url` varchar(200) DEFAULT NULL, PRIMARY KEY (`company_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -967,4 +970,4 @@ CREATE TABLE `vendors` ( /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2021-02-08 16:56:33 +-- Dump completed on 2021-02-08 20:00:18 diff --git a/edit_recurring_modal.php b/edit_recurring_modal.php index b9e5d484..b4507508 100644 --- a/edit_recurring_modal.php +++ b/edit_recurring_modal.php @@ -2,7 +2,7 @@
Number Scope Frequency Amount
ly $
"> + @@ -120,6 +121,8 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); while($row = mysqli_fetch_array($sql)){ $recurring_id = $row['recurring_id']; + $recurring_prefix = $row['recurring_prefix']; + $recurring_number = $row['recurring_number']; $recurring_scope = $row['recurring_scope']; $recurring_frequency = $row['recurring_frequency']; $recurring_status = $row['recurring_status']; @@ -145,7 +148,8 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); ?> - + + diff --git a/recurring_invoice.php b/recurring_invoice.php index 510325d4..9b6d6efc 100644 --- a/recurring_invoice.php +++ b/recurring_invoice.php @@ -14,6 +14,8 @@ if(isset($_GET['recurring_id'])){ $row = mysqli_fetch_array($sql); $recurring_id = $row['recurring_id']; + $recurring_prefix = $row['recurring_prefix']; + $recurring_number = $row['recurring_number']; $recurring_scope = $row['recurring_scope']; $recurring_frequency = $row['recurring_frequency']; $recurring_status = $row['recurring_status']; @@ -78,7 +80,7 @@ if(isset($_GET['recurring_id'])){ - + diff --git a/settings-invoice-quotes.php b/settings-invoice-quotes.php index bb7df3ed..a5b3c596 100644 --- a/settings-invoice-quotes.php +++ b/settings-invoice-quotes.php @@ -36,6 +36,28 @@ + Recurring Invoice + +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ Quote
diff --git a/settings-nav.php b/settings-nav.php index 4f74952b..0523d309 100644 --- a/settings-nav.php +++ b/settings-nav.php @@ -28,7 +28,7 @@ " href="settings-invoice-quotes.php">
- Invoices / Quotes + Invoice / Quote
diff --git a/settings-online-payment.php b/settings-online-payment.php index d105a16f..2f53ec62 100644 --- a/settings-online-payment.php +++ b/settings-online-payment.php @@ -14,6 +14,8 @@
+ +
@@ -33,6 +35,8 @@
+ +
diff --git a/setup.php b/setup.php index 3c6356b0..bd6563c0 100644 --- a/setup.php +++ b/setup.php @@ -209,7 +209,7 @@ if(isset($_POST['add_company_settings'])){ //Create Permissions mysqli_query($mysqli,"INSERT INTO permissions SET permission_level = 5, permission_default_company = $company_id, permission_companies = $company_id, user_id = $user_id"); - mysqli_query($mysqli,"INSERT INTO settings SET company_id = $company_id, config_invoice_prefix = 'INV-', config_invoice_next_number = 1, config_invoice_overdue_reminders = '1,3,7', config_quote_prefix = 'QUO-', config_quote_next_number = 1, config_api_key = '$config_api_key', config_recurring_auto_send_invoice = 1, config_default_net_terms = 7, config_records_per_page = 10, config_send_invoice_reminders = 0, config_enable_cron = 0, config_ticket_next_number = 1, config_base_url = '$config_base_url'"); + mysqli_query($mysqli,"INSERT INTO settings SET company_id = $company_id, config_invoice_prefix = 'INV-', config_invoice_next_number = 1, config_recurring_prefix = 'REC-', config_recurring_next_number = 1, config_invoice_overdue_reminders = '1,3,7', config_quote_prefix = 'QUO-', config_quote_next_number = 1, config_api_key = '$config_api_key', config_recurring_auto_send_invoice = 1, config_default_net_terms = 7, config_records_per_page = 10, config_send_invoice_reminders = 0, config_enable_cron = 0, config_ticket_next_number = 1, config_base_url = '$config_base_url'"); //Create Some Data
Number Next Date Scope Frequency
ly