Added Invoice and Quote Prefix field to fix sorting issues

This commit is contained in:
johnny@pittpc.com
2021-02-08 16:57:29 -05:00
parent 53d986e0bd
commit 7d9352c63d
18 changed files with 84 additions and 62 deletions

View File

@@ -2,7 +2,7 @@
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content bg-dark"> <div class="modal-content bg-dark">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title"><i class="fa fa-fw fa-copy"></i> Copying <?php echo $invoice_number; ?></h5> <h5 class="modal-title"><i class="fa fa-fw fa-copy"></i> Copying <?php echo "$invoice_prefix$invoice_number"; ?></h5>
<button type="button" class="close text-white" data-dismiss="modal"> <button type="button" class="close text-white" data-dismiss="modal">
<span>&times;</span> <span>&times;</span>
</button> </button>

View File

@@ -2,7 +2,7 @@
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content bg-dark"> <div class="modal-content bg-dark">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title"><i class="fa fa-fw fa-credit-card"></i> <?php echo $invoice_number; ?>: Add Payment</h5> <h5 class="modal-title"><i class="fa fa-fw fa-credit-card"></i> <?php echo "$invoice_prefix$invoice_number"; ?>: Add Payment</h5>
<button type="button" class="close text-white" data-dismiss="modal"> <button type="button" class="close text-white" data-dismiss="modal">
<span>&times;</span> <span>&times;</span>
</button> </button>

View File

@@ -2,7 +2,7 @@
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content bg-dark"> <div class="modal-content bg-dark">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title"><i class="fa fa-fw fa-copy"></i> Copying <?php echo $quote_number; ?></h5> <h5 class="modal-title"><i class="fa fa-fw fa-copy"></i> Copying <?php echo "$quote_prefix$quote_number"; ?></h5>
<button type="button" class="close text-white" data-dismiss="modal"> <button type="button" class="close text-white" data-dismiss="modal">
<span>&times;</span> <span>&times;</span>
</button> </button>

View File

@@ -87,6 +87,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
while($row = mysqli_fetch_array($sql)){ while($row = mysqli_fetch_array($sql)){
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_scope = $row['invoice_scope']; $invoice_scope = $row['invoice_scope'];
$invoice_status = $row['invoice_status']; $invoice_status = $row['invoice_status'];
@@ -122,7 +123,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
?> ?>
<tr> <tr>
<td><a href="invoice.php?invoice_id=<?php echo $invoice_id; ?>"><?php echo $invoice_number; ?></a></td> <td><a href="invoice.php?invoice_id=<?php echo $invoice_id; ?>"><?php echo "$invoice_prefix$invoice_number"; ?></a></td>
<td><?php echo $invoice_scope; ?></td> <td><?php echo $invoice_scope; ?></td>
<td class="text-right">$<?php echo number_format($invoice_amount,2); ?></td> <td class="text-right">$<?php echo number_format($invoice_amount,2); ?></td>
<td><?php echo $invoice_date; ?></td> <td><?php echo $invoice_date; ?></td>

View File

@@ -86,6 +86,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
while($row = mysqli_fetch_array($sql)){ while($row = mysqli_fetch_array($sql)){
$quote_id = $row['quote_id']; $quote_id = $row['quote_id'];
$quote_prefix = $row['quote_prefix'];
$quote_number = $row['quote_number']; $quote_number = $row['quote_number'];
$quote_scope = $row['quote_scope']; $quote_scope = $row['quote_scope'];
$quote_status = $row['quote_status']; $quote_status = $row['quote_status'];
@@ -113,7 +114,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
?> ?>
<tr> <tr>
<td><a href="quote.php?quote_id=<?php echo $quote_id; ?>"><?php echo $quote_number; ?></a></td> <td><a href="quote.php?quote_id=<?php echo $quote_id; ?>"><?php echo "$quote_prefix$quote_number"; ?></a></td>
<td><?php echo $quote_scope; ?></td> <td><?php echo $quote_scope; ?></td>
<td class="text-right">$<?php echo number_format($quote_amount,2); ?></td> <td class="text-right">$<?php echo number_format($quote_amount,2); ?></td>
<td><?php echo $quote_date; ?></td> <td><?php echo $quote_date; ?></td>

View File

@@ -84,6 +84,7 @@ while($row = mysqli_fetch_array($sql_companies)){
while($row = mysqli_fetch_array($sql)){ while($row = mysqli_fetch_array($sql)){
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_status = $row['invoice_status']; $invoice_status = $row['invoice_status'];
$invoice_date = $row['invoice_date']; $invoice_date = $row['invoice_date'];
@@ -95,7 +96,7 @@ while($row = mysqli_fetch_array($sql_companies)){
$client_email = $row['client_email']; $client_email = $row['client_email'];
mysqli_query($mysqli,"INSERT INTO alerts SET alert_type = 'Invoice', alert_message = 'Invoice $invoice_number for $client_name in the amount of $invoice_amount is overdue by $day days', alert_date = NOW(), company_id = $company_id"); mysqli_query($mysqli,"INSERT INTO alerts SET alert_type = 'Invoice', alert_message = 'Invoice $invoice_prefix$invoice_number for $client_name in the amount of $invoice_amount is overdue by $day days', alert_date = NOW(), company_id = $company_id");
$mail = new PHPMailer(true); $mail = new PHPMailer(true);
@@ -119,10 +120,10 @@ while($row = mysqli_fetch_array($sql_companies)){
// Content // Content
$mail->isHTML(true); // Set email format to HTML $mail->isHTML(true); // Set email format to HTML
$mail->Subject = "Overdue Invoice $invoice_number"; $mail->Subject = "Overdue Invoice $invoice_prefix$invoice_number";
$mail->Body = "Hello $client_name,<br><br>According to our records, we have not received payment for invoice $invoice_number. Please submit your payment as soon as possible. If you have any questions please contact us at $company_phone. $mail->Body = "Hello $client_name,<br><br>According to our records, we have not received payment for invoice $invoice_prefix$invoice_number. Please submit your payment as soon as possible. If you have any questions please contact us at $company_phone.
<br><br> <br><br>
Please view the details of the invoice below.<br><br>Invoice: $invoice_number<br>Issue Date: $invoice_date<br>Total: $$invoice_amount<br>Due Date: $invoice_due<br><br><br>To view your invoice online click <a href='https://$config_base_url/guest_view_invoice.php?invoice_id=$invoice_id&url_key=$invoice_url_key'>here</a><br><br><br>~<br>$company_name<br>$company_phone"; Please view the details of the invoice below.<br><br>Invoice: $invoice_prefix$invoice_number<br>Issue Date: $invoice_date<br>Total: $$invoice_amount<br>Due Date: $invoice_due<br><br><br>To view your invoice online click <a href='https://$config_base_url/guest_view_invoice.php?invoice_id=$invoice_id&url_key=$invoice_url_key'>here</a><br><br><br>~<br>$company_name<br>$company_phone";
$mail->send(); $mail->send();
@@ -189,14 +190,14 @@ while($row = mysqli_fetch_array($sql_companies)){
$row = mysqli_fetch_array($sql_invoice_number); $row = mysqli_fetch_array($sql_invoice_number);
$config_invoice_next_number = $row['config_invoice_next_number']; $config_invoice_next_number = $row['config_invoice_next_number'];
$new_invoice_number = "$config_invoice_prefix$config_invoice_next_number"; $new_invoice_number = $config_invoice_next_number;
$new_config_invoice_next_number = $config_invoice_next_number + 1; $new_config_invoice_next_number = $config_invoice_next_number + 1;
mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = $company_id"); mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = $company_id");
//Generate a unique URL key for clients to access //Generate a unique URL key for clients to access
$url_key = keygen(); $url_key = keygen();
mysqli_query($mysqli,"INSERT INTO invoices SET 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); $new_invoice_id = mysqli_insert_id($mysqli);
@@ -252,6 +253,7 @@ while($row = mysqli_fetch_array($sql_companies)){
); );
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_date = $row['invoice_date']; $invoice_date = $row['invoice_date'];
$invoice_due = $row['invoice_due']; $invoice_due = $row['invoice_due'];
@@ -291,8 +293,8 @@ while($row = mysqli_fetch_array($sql_companies)){
// Content // Content
$mail->isHTML(true); // Set email format to HTML $mail->isHTML(true); // Set email format to HTML
$mail->Subject = "Invoice $invoice_number"; $mail->Subject = "Invoice $invoice_prefix$invoice_number";
$mail->Body = "Hello $client_name,<br><br>Please view the details of the invoice below.<br><br>Invoice: $invoice_number<br>Issue Date: $invoice_date<br>Total: $$invoice_amount<br>Due Date: $invoice_due<br><br><br>To view your invoice online click <a href='https://$config_base_url/guest_view_invoice.php?invoice_id=$new_invoice_id&url_key=$invoice_url_key'>here</a><br><br><br>~<br>$company_name<br>$company_phone"; $mail->Body = "Hello $client_name,<br><br>Please view the details of the invoice below.<br><br>Invoice: $invoice_prefix$invoice_number<br>Issue Date: $invoice_date<br>Total: $$invoice_amount<br>Due Date: $invoice_due<br><br><br>To view your invoice online click <a href='https://$config_base_url/guest_view_invoice.php?invoice_id=$new_invoice_id&url_key=$invoice_url_key'>here</a><br><br><br>~<br>$company_name<br>$company_phone";
$mail->send(); $mail->send();

View File

@@ -362,13 +362,14 @@ $total_recurring_invoice_amount = $row['total_recurring_invoice_amount'];
while($row = mysqli_fetch_array($sql_latest_invoice_payments)){ while($row = mysqli_fetch_array($sql_latest_invoice_payments)){
$payment_date = $row['payment_date']; $payment_date = $row['payment_date'];
$payment_amount = $row['payment_amount']; $payment_amount = $row['payment_amount'];
$invoice_number = $row['invoice_number']; $invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number'];
$client_name = $row['client_name']; $client_name = $row['client_name'];
?> ?>
<tr> <tr>
<td><?php echo $payment_date; ?></td> <td><?php echo $payment_date; ?></td>
<td><?php echo $client_name; ?></td> <td><?php echo $client_name; ?></td>
<td><?php echo $invoice_number; ?></td> <td><?php echo "$invoice_prefix$invoice_number"; ?></td>
<td class="text-right">$<?php echo number_format($payment_amount,2); ?></td> <td class="text-right">$<?php echo number_format($payment_amount,2); ?></td>
</tr> </tr>
<?php <?php

8
db.sql
View File

@@ -412,7 +412,8 @@ DROP TABLE IF EXISTS `invoices`;
/*!40101 SET character_set_client = utf8 */; /*!40101 SET character_set_client = utf8 */;
CREATE TABLE `invoices` ( CREATE TABLE `invoices` (
`invoice_id` int(11) NOT NULL AUTO_INCREMENT, `invoice_id` int(11) NOT NULL AUTO_INCREMENT,
`invoice_number` varchar(20) NOT NULL, `invoice_prefix` varchar(200) DEFAULT NULL,
`invoice_number` int(11) NOT NULL,
`invoice_scope` varchar(255) DEFAULT NULL, `invoice_scope` varchar(255) DEFAULT NULL,
`invoice_status` varchar(200) NOT NULL, `invoice_status` varchar(200) NOT NULL,
`invoice_date` date NOT NULL, `invoice_date` date NOT NULL,
@@ -609,7 +610,8 @@ DROP TABLE IF EXISTS `quotes`;
/*!40101 SET character_set_client = utf8 */; /*!40101 SET character_set_client = utf8 */;
CREATE TABLE `quotes` ( CREATE TABLE `quotes` (
`quote_id` int(11) NOT NULL AUTO_INCREMENT, `quote_id` int(11) NOT NULL AUTO_INCREMENT,
`quote_number` varchar(200) NOT NULL, `quote_prefix` varchar(200) DEFAULT NULL,
`quote_number` int(11) NOT NULL,
`quote_scope` varchar(255) DEFAULT NULL, `quote_scope` varchar(255) DEFAULT NULL,
`quote_status` varchar(200) NOT NULL, `quote_status` varchar(200) NOT NULL,
`quote_date` date NOT NULL, `quote_date` date NOT NULL,
@@ -965,4 +967,4 @@ CREATE TABLE `vendors` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2021-02-06 16:02:57 -- Dump completed on 2021-02-08 16:56:33

View File

@@ -2,7 +2,7 @@
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content bg-dark"> <div class="modal-content bg-dark">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title"><i class="fa fa-fw fa-file"></i> <?php echo $invoice_number; ?></h5> <h5 class="modal-title"><i class="fa fa-fw fa-file"></i> <?php echo "$invoice_prefix$invoice_number"; ?></h5>
<button type="button" class="close text-white" data-dismiss="modal"> <button type="button" class="close text-white" data-dismiss="modal">
<span>&times;</span> <span>&times;</span>
</button> </button>

View File

@@ -2,7 +2,7 @@
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content bg-dark"> <div class="modal-content bg-dark">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title text-white"><i class="fa fa-fw fa-file"></i> <?php echo $quote_number; ?></h5> <h5 class="modal-title text-white"><i class="fa fa-fw fa-file"></i> <?php echo "$quote_prefix$quote_number"; ?></h5>
<button type="button" class="close text-white" data-dismiss="modal"> <button type="button" class="close text-white" data-dismiss="modal">
<span>&times;</span> <span>&times;</span>
</button> </button>

View File

@@ -24,6 +24,7 @@ if(isset($_GET['pdf_invoice'], $_GET['url_key'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_status = $row['invoice_status']; $invoice_status = $row['invoice_status'];
$invoice_date = $row['invoice_date']; $invoice_date = $row['invoice_date'];
@@ -140,7 +141,7 @@ if(isset($_GET['pdf_invoice'], $_GET['url_key'])){
<table width="100%"><tr> <table width="100%"><tr>
<td width="15%"><img width="75" height="75" src=" /'.$company_logo.' "></img></td> <td width="15%"><img width="75" height="75" src=" /'.$company_logo.' "></img></td>
<td width="50%"><span style="font-weight: bold; font-size: 14pt;"> '.$company_name.' </span><br />' .$company_address.' <br /> '.$company_city.' '.$company_state.' '.$company_zip.'<br /> '.$company_phone.' </td> <td width="50%"><span style="font-weight: bold; font-size: 14pt;"> '.$company_name.' </span><br />' .$company_address.' <br /> '.$company_city.' '.$company_state.' '.$company_zip.'<br /> '.$company_phone.' </td>
<td width="35%" style="text-align: right;">Invoice No.<br /><span style="font-weight: bold; font-size: 12pt;"> '.$invoice_number.' </span></td> <td width="35%" style="text-align: right;">Invoice No.<br /><span style="font-weight: bold; font-size: 12pt;"> '."$invoice_prefix$invoice_number".' </span></td>
</tr></table> </tr></table>
</htmlpageheader> </htmlpageheader>
<htmlpagefooter name="myfooter"> <htmlpagefooter name="myfooter">
@@ -244,6 +245,7 @@ if(isset($_GET['pdf_quote'], $_GET['url_key'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$quote_id = $row['quote_id']; $quote_id = $row['quote_id'];
$quote_prefix = $row['quote_prefix'];
$quote_number = $row['quote_number']; $quote_number = $row['quote_number'];
$quote_status = $row['quote_status']; $quote_status = $row['quote_status'];
$quote_date = $row['quote_date']; $quote_date = $row['quote_date'];
@@ -348,7 +350,7 @@ if(isset($_GET['pdf_quote'], $_GET['url_key'])){
<table width="100%"><tr> <table width="100%"><tr>
<td width="15%"><img width="75" height="75" src=" /'.$company_logo.' "></img></td> <td width="15%"><img width="75" height="75" src=" /'.$company_logo.' "></img></td>
<td width="50%"><span style="font-weight: bold; font-size: 14pt;"> '.$company_name.' </span><br />' .$company_address.' <br /> '.$company_city.' '.$company_state.' '.$company_zip.'<br /> '.$company_phone.' </td> <td width="50%"><span style="font-weight: bold; font-size: 14pt;"> '.$company_name.' </span><br />' .$company_address.' <br /> '.$company_city.' '.$company_state.' '.$company_zip.'<br /> '.$company_phone.' </td>
<td width="35%" style="text-align: right;">Quote No.<br /><span style="font-weight: bold; font-size: 12pt;"> '.$quote_number.' </span></td> <td width="35%" style="text-align: right;">Quote No.<br /><span style="font-weight: bold; font-size: 12pt;"> '."$quote_prefix$quote_number".' </span></td>
</tr></table> </tr></table>
</htmlpageheader> </htmlpageheader>
<htmlpagefooter name="myfooter"> <htmlpagefooter name="myfooter">

View File

@@ -19,6 +19,7 @@ if(isset($_GET['invoice_id'], $_GET['url_key'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_status = $row['invoice_status']; $invoice_status = $row['invoice_status'];
$invoice_date = $row['invoice_date']; $invoice_date = $row['invoice_date'];
@@ -139,7 +140,7 @@ if(isset($_GET['invoice_id'], $_GET['url_key'])){
</div> </div>
</div> </div>
<?php } ?> <?php } ?>
<h3 class="text-right mt-5"><strong>Invoice</strong><br><small class="text-secondary"><?php echo $invoice_number; ?></small></h3> <h3 class="text-right mt-5"><strong>Invoice</strong><br><small class="text-secondary"><?php echo "$invoice_prefix$invoice_number"; ?></small></h3>
</div> </div>
</div> </div>
<div class="row mb-4"> <div class="row mb-4">
@@ -252,23 +253,23 @@ if(isset($_GET['invoice_id'], $_GET['url_key'])){
<tbody> <tbody>
<tr class="border-bottom"> <tr class="border-bottom">
<td>Subtotal</td> <td>Subtotal</td>
<td class="text-right text-monospace">$<?php echo number_format($sub_total,2); ?></td> <td class="text-right">$<?php echo number_format($sub_total,2); ?></td>
</tr> </tr>
<?php if($total_tax > 0){ ?> <?php if($total_tax > 0){ ?>
<tr class="border-bottom"> <tr class="border-bottom">
<td>Tax</td> <td>Tax</td>
<td class="text-right text-monospace">$<?php echo number_format($total_tax,2); ?></td> <td class="text-right">$<?php echo number_format($total_tax,2); ?></td>
</tr> </tr>
<?php } ?> <?php } ?>
<?php if($amount_paid > 0){ ?> <?php if($amount_paid > 0){ ?>
<tr class="border-bottom"> <tr class="border-bottom">
<td><div class="text-success">Paid to Date</div></td> <td><div class="text-success">Paid to Date</div></td>
<td class="text-right text-monospace text-success">$<?php echo number_format($amount_paid,2); ?></td> <td class="text-right text-success">$<?php echo number_format($amount_paid,2); ?></td>
</tr> </tr>
<?php } ?> <?php } ?>
<tr class="border-bottom"> <tr class="border-bottom">
<td><strong>Balance Due</strong></td> <td><strong>Balance Due</strong></td>
<td class="text-right text-monospace"><strong>$<?php echo number_format($balance,2); ?></strong></td> <td class="text-right"><strong>$<?php echo number_format($balance,2); ?></strong></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -309,6 +310,7 @@ if(isset($_GET['invoice_id'], $_GET['url_key'])){
while($row = mysqli_fetch_array($sql)){ while($row = mysqli_fetch_array($sql)){
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_date = $row['invoice_date']; $invoice_date = $row['invoice_date'];
$invoice_due = $row['invoice_due']; $invoice_due = $row['invoice_due'];
@@ -321,10 +323,10 @@ if(isset($_GET['invoice_id'], $_GET['url_key'])){
?> ?>
<tr> <tr>
<th class="text-center"><a href="guest_view_invoice.php?invoice_id=<?php echo $invoice_id; ?>&url_key=<?php echo $invoice_url_key; ?>"><?php echo $invoice_number; ?></a></th> <th class="text-center"><a href="guest_view_invoice.php?invoice_id=<?php echo $invoice_id; ?>&url_key=<?php echo $invoice_url_key; ?>"><?php echo "$invoice_prefix$invoice_number"; ?></a></th>
<td><?php echo $invoice_date; ?></td> <td><?php echo $invoice_date; ?></td>
<td class="text-danger text-bold"><?php echo $invoice_due; ?> (<?php echo $days; ?> Days Late)</td> <td class="text-danger text-bold"><?php echo $invoice_due; ?> (<?php echo $days; ?> Days Late)</td>
<td class="text-right text-monospace">$<?php echo $invoice_amount; ?></td> <td class="text-right">$<?php echo $invoice_amount; ?></td>
</tr> </tr>
<?php <?php
@@ -367,6 +369,7 @@ if(isset($_GET['invoice_id'], $_GET['url_key'])){
while($row = mysqli_fetch_array($sql)){ while($row = mysqli_fetch_array($sql)){
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_date = $row['invoice_date']; $invoice_date = $row['invoice_date'];
$invoice_due = $row['invoice_due']; $invoice_due = $row['invoice_due'];
@@ -379,7 +382,7 @@ if(isset($_GET['invoice_id'], $_GET['url_key'])){
?> ?>
<tr> <tr>
<th class="text-center"><a href="guest_view_invoice.php?invoice_id=<?php echo $invoice_id; ?>&url_key=<?php echo $invoice_url_key; ?>"><?php echo $invoice_number; ?></a></th> <th class="text-center"><a href="guest_view_invoice.php?invoice_id=<?php echo $invoice_id; ?>&url_key=<?php echo $invoice_url_key; ?>"><?php echo "$invoice_prefix$invoice_number"; ?></a></th>
<td><?php echo $invoice_date; ?></td> <td><?php echo $invoice_date; ?></td>
<td><?php echo $invoice_due; ?> (Due in <?php echo $days; ?> Days)</td> <td><?php echo $invoice_due; ?> (Due in <?php echo $days; ?> Days)</td>
<td class="text-right">$<?php echo $invoice_amount; ?></td> <td class="text-right">$<?php echo $invoice_amount; ?></td>
@@ -426,6 +429,7 @@ if(isset($_GET['invoice_id'], $_GET['url_key'])){
while($row = mysqli_fetch_array($sql)){ while($row = mysqli_fetch_array($sql)){
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_date = $row['invoice_date']; $invoice_date = $row['invoice_date'];
$invoice_due = $row['invoice_due']; $invoice_due = $row['invoice_due'];
@@ -436,10 +440,10 @@ if(isset($_GET['invoice_id'], $_GET['url_key'])){
?> ?>
<tr class="bg-light"> <tr class="bg-light">
<th class="text-center"><a href="guest_view_invoice.php?invoice_id=<?php echo $invoice_id; ?>&url_key=<?php echo $invoice_url_key; ?>"><?php echo $invoice_number; ?></a></th> <th class="text-center"><a href="guest_view_invoice.php?invoice_id=<?php echo $invoice_id; ?>&url_key=<?php echo $invoice_url_key; ?>"><?php echo "$invoice_prefix$invoice_number"; ?></a></th>
<td><?php echo $invoice_date; ?></td> <td><?php echo $invoice_date; ?></td>
<td><?php echo $invoice_due; ?></td> <td><?php echo $invoice_due; ?></td>
<td class="text-right text-monospace">$<?php echo $invoice_amount; ?></td> <td class="text-right">$<?php echo $invoice_amount; ?></td>
</tr> </tr>
<tr> <tr>

View File

@@ -20,6 +20,7 @@ if(isset($_GET['quote_id'], $_GET['url_key'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$quote_id = $row['quote_id']; $quote_id = $row['quote_id'];
$quote_prefix = $row['quote_prefix'];
$quote_number = $row['quote_number']; $quote_number = $row['quote_number'];
$quote_status = $row['quote_status']; $quote_status = $row['quote_status'];
$quote_date = $row['quote_date']; $quote_date = $row['quote_date'];
@@ -102,7 +103,7 @@ if(isset($_GET['quote_id'], $_GET['url_key'])){
<img class="img-fluid" src="<?php echo $company_logo; ?>"> <img class="img-fluid" src="<?php echo $company_logo; ?>">
</div> </div>
<div class="col-sm-10"> <div class="col-sm-10">
<h3 class="text-right"><strong>Quote</strong><br><small class="text-secondary"><?php echo $quote_number; ?></small></h3> <h3 class="text-right"><strong>Quote</strong><br><small class="text-secondary"><?php echo "$quote_prefix$quote_number"; ?></small></h3>
</div> </div>
</div> </div>

View File

@@ -18,6 +18,7 @@ if(isset($_GET['invoice_id'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_scope = $row['invoice_scope']; $invoice_scope = $row['invoice_scope'];
$invoice_status = $row['invoice_status']; $invoice_status = $row['invoice_status'];
@@ -106,7 +107,7 @@ if(isset($_GET['invoice_id'])){
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a href="client.php?client_id=<?php echo $client_id; ?>&tab=invoices"><?php echo $client_name; ?></a> <a href="client.php?client_id=<?php echo $client_id; ?>&tab=invoices"><?php echo $client_name; ?></a>
</li> </li>
<li class="breadcrumb-item active"><?php echo $invoice_number; ?></li> <li class="breadcrumb-item active"><?php echo "$invoice_prefix$invoice_number"; ?></li>
<?php if(isset($invoice_overdue)){ ?> <?php if(isset($invoice_overdue)){ ?>
<span class="p-2 ml-2 badge badge-danger"><?php echo $invoice_overdue; ?></span> <span class="p-2 ml-2 badge badge-danger"><?php echo $invoice_overdue; ?></span>
<?php } ?> <?php } ?>
@@ -175,7 +176,7 @@ if(isset($_GET['invoice_id'])){
<?php echo $invoice_status; ?> <?php echo $invoice_status; ?>
</div> </div>
</div> </div>
<h3 class="text-right mt-5"><strong>Invoice</strong><br><small class="text-secondary"><?php echo $invoice_number; ?></small></h3> <h3 class="text-right mt-5"><strong>Invoice</strong><br><small class="text-secondary"><?php echo "$invoice_prefix$invoice_number"; ?></small></h3>
</div> </div>

View File

@@ -69,7 +69,7 @@
} }
if(!empty($_GET['sb'])){ if(!empty($_GET['sb'])){
$sb = mysqli_real_escape_string($mysqli,$_GET['sb']); $sb = $_GET['sb'];
}else{ }else{
$sb = "invoice_number"; $sb = "invoice_number";
} }
@@ -229,6 +229,7 @@
while($row = mysqli_fetch_array($sql)){ while($row = mysqli_fetch_array($sql)){
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_scope = $row['invoice_scope']; $invoice_scope = $row['invoice_scope'];
$invoice_status = $row['invoice_status']; $invoice_status = $row['invoice_status'];
@@ -270,7 +271,7 @@
?> ?>
<tr> <tr>
<td><a href="invoice.php?invoice_id=<?php echo $invoice_id; ?>"><?php echo $invoice_number; ?></a></td> <td><a href="invoice.php?invoice_id=<?php echo $invoice_id; ?>"><?php echo "$invoice_prefix$invoice_number"; ?></a></td>
<td><?php echo $invoice_scope; ?></td> <td><?php echo $invoice_scope; ?></td>
<td><a href="client.php?client_id=<?php echo $client_id; ?>&tab=invoices"><?php echo $client_name; ?></a></td> <td><a href="client.php?client_id=<?php echo $client_id; ?>&tab=invoices"><?php echo $client_name; ?></a></td>
<td class="text-right">$<?php echo number_format($invoice_amount,2); ?></td> <td class="text-right">$<?php echo number_format($invoice_amount,2); ?></td>

View File

@@ -1530,20 +1530,20 @@ if(isset($_POST['add_invoice'])){
$client_net_terms = $row['client_net_terms']; $client_net_terms = $row['client_net_terms'];
//Get the last Invoice Number and add 1 for the new invoice number //Get the last Invoice Number and add 1 for the new invoice number
$invoice_number = "$config_invoice_prefix$config_invoice_next_number"; $invoice_number = $config_invoice_next_number;
$new_config_invoice_next_number = $config_invoice_next_number + 1; $new_config_invoice_next_number = $config_invoice_next_number + 1;
mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = $session_company_id"); mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = $session_company_id");
//Generate a unique URL key for clients to access //Generate a unique URL key for clients to access
$url_key = keygen(); $url_key = keygen();
mysqli_query($mysqli,"INSERT INTO invoices SET invoice_number = '$invoice_number', invoice_scope = '$scope', invoice_date = '$date', invoice_due = DATE_ADD('$date', INTERVAL $client_net_terms day), category_id = $category, invoice_status = 'Draft', invoice_url_key = '$url_key', invoice_created_at = NOW(), client_id = $client, company_id = $session_company_id"); mysqli_query($mysqli,"INSERT INTO invoices SET invoice_prefix = '$config_invoice_prefix', invoice_number = $invoice_number, invoice_scope = '$scope', invoice_date = '$date', invoice_due = DATE_ADD('$date', INTERVAL $client_net_terms day), category_id = $category, invoice_status = 'Draft', invoice_url_key = '$url_key', invoice_created_at = NOW(), client_id = $client, company_id = $session_company_id");
$invoice_id = mysqli_insert_id($mysqli); $invoice_id = mysqli_insert_id($mysqli);
mysqli_query($mysqli,"INSERT INTO history SET history_date = CURDATE(), history_status = 'Draft', history_description = 'INVOICE added!', history_created_at = NOW(), invoice_id = $invoice_id, company_id = $session_company_id"); mysqli_query($mysqli,"INSERT INTO history SET history_date = CURDATE(), history_status = 'Draft', history_description = 'INVOICE added!', history_created_at = NOW(), invoice_id = $invoice_id, company_id = $session_company_id");
//Logging //Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Invoice', log_action = 'Created', log_description = '$invoice_number', log_created_at = NOW(), company_id = $session_company_id, user_id = $session_user_id"); mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Invoice', log_action = 'Created', log_description = '$config_invoice_prefix$invoice_number', log_created_at = NOW(), company_id = $session_company_id, user_id = $session_user_id");
$_SESSION['alert_message'] = "Invoice added"; $_SESSION['alert_message'] = "Invoice added";
@@ -1579,7 +1579,7 @@ if(isset($_POST['add_invoice_copy'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$client_net_terms = $row['client_net_terms']; $client_net_terms = $row['client_net_terms'];
$invoice_number = "$config_invoice_prefix$config_invoice_next_number"; $invoice_number = $config_invoice_next_number;
$new_config_invoice_next_number = $config_invoice_next_number + 1; $new_config_invoice_next_number = $config_invoice_next_number + 1;
mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = $session_company_id"); mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = $session_company_id");
@@ -1594,7 +1594,7 @@ if(isset($_POST['add_invoice_copy'])){
//Generate a unique URL key for clients to access //Generate a unique URL key for clients to access
$url_key = keygen(); $url_key = keygen();
mysqli_query($mysqli,"INSERT INTO invoices SET invoice_number = '$invoice_number', invoice_scope = '$invoice_scope', invoice_date = '$date', invoice_due = DATE_ADD('$date', INTERVAL $client_net_terms day), category_id = $category_id, invoice_status = 'Draft', invoice_amount = '$invoice_amount', invoice_note = '$invoice_note', invoice_url_key = '$url_key', invoice_created_at = NOW(), client_id = $client_id, company_id = $session_company_id") or die(mysql_error()); mysqli_query($mysqli,"INSERT INTO invoices SET invoice_prefix = '$config_invoice_prefix', invoice_number = $invoice_number, invoice_scope = '$invoice_scope', invoice_date = '$date', invoice_due = DATE_ADD('$date', INTERVAL $client_net_terms day), category_id = $category_id, invoice_status = 'Draft', invoice_amount = '$invoice_amount', invoice_note = '$invoice_note', invoice_url_key = '$url_key', invoice_created_at = NOW(), client_id = $client_id, company_id = $session_company_id") or die(mysql_error());
$new_invoice_id = mysqli_insert_id($mysqli); $new_invoice_id = mysqli_insert_id($mysqli);
@@ -1675,22 +1675,22 @@ if(isset($_POST['add_quote'])){
$category = intval($_POST['category']); $category = intval($_POST['category']);
$scope = strip_tags(mysqli_real_escape_string($mysqli,$_POST['scope'])); $scope = strip_tags(mysqli_real_escape_string($mysqli,$_POST['scope']));
//Get the last Invoice Number and add 1 for the new invoice number //Get the last Quote Number and add 1 for the new Quote number
$quote_number = "$config_quote_prefix$config_quote_next_number"; $quote_number = $config_quote_next_number;
$new_config_quote_next_number = $config_quote_next_number + 1; $new_config_quote_next_number = $config_quote_next_number + 1;
mysqli_query($mysqli,"UPDATE settings SET config_quote_next_number = $new_config_quote_next_number WHERE company_id = $session_company_id"); mysqli_query($mysqli,"UPDATE settings SET config_quote_next_number = $new_config_quote_next_number WHERE company_id = $session_company_id");
//Generate a unique URL key for clients to access //Generate a unique URL key for clients to access
$quote_url_key = keygen(); $quote_url_key = keygen();
mysqli_query($mysqli,"INSERT INTO quotes SET quote_number = '$quote_number', quote_scope = '$scope', quote_date = '$date', category_id = $category, quote_status = 'Draft', quote_url_key = '$quote_url_key', quote_created_at = NOW(), client_id = $client, company_id = $session_company_id"); mysqli_query($mysqli,"INSERT INTO quotes SET quote_prefix = '$config_quote_prefix', quote_number = $quote_number, quote_scope = '$scope', quote_date = '$date', category_id = $category, quote_status = 'Draft', quote_url_key = '$quote_url_key', quote_created_at = NOW(), client_id = $client, company_id = $session_company_id");
$quote_id = mysqli_insert_id($mysqli); $quote_id = mysqli_insert_id($mysqli);
mysqli_query($mysqli,"INSERT INTO history SET history_date = CURDATE(), history_status = 'Draft', history_description = 'Quote created!', history_created_at = NOW(), quote_id = $quote_id, company_id = $session_company_id"); mysqli_query($mysqli,"INSERT INTO history SET history_date = CURDATE(), history_status = 'Draft', history_description = 'Quote created!', history_created_at = NOW(), quote_id = $quote_id, company_id = $session_company_id");
//Logging //Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Quote', log_action = 'Created', log_description = '$quote_number', log_created_at = NOW(), company_id = $session_company_id, user_id = $session_user_id"); mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Quote', log_action = 'Created', log_description = '$quote_prefix$quote_number', log_created_at = NOW(), company_id = $session_company_id, user_id = $session_user_id");
$_SESSION['alert_message'] = "Quote added"; $_SESSION['alert_message'] = "Quote added";
@@ -1704,7 +1704,7 @@ if(isset($_POST['add_quote_copy'])){
$date = strip_tags(mysqli_real_escape_string($mysqli,$_POST['date'])); $date = strip_tags(mysqli_real_escape_string($mysqli,$_POST['date']));
//Get the last Invoice Number and add 1 for the new invoice number //Get the last Invoice Number and add 1 for the new invoice number
$quote_number = "$config_quote_prefix$config_quote_next_number"; $quote_number = $config_quote_next_number;
$new_config_quote_next_number = $config_quote_next_number + 1; $new_config_quote_next_number = $config_quote_next_number + 1;
mysqli_query($mysqli,"UPDATE settings SET config_quote_next_number = $new_config_quote_next_number WHERE company_id = $session_company_id"); mysqli_query($mysqli,"UPDATE settings SET config_quote_next_number = $new_config_quote_next_number WHERE company_id = $session_company_id");
@@ -1716,7 +1716,7 @@ if(isset($_POST['add_quote_copy'])){
$client_id = $row['client_id']; $client_id = $row['client_id'];
$category_id = $row['category_id']; $category_id = $row['category_id'];
mysqli_query($mysqli,"INSERT INTO quotes SET quote_number = '$quote_number', quote_scope = '$quote_scope', quote_date = '$date', category_id = $category_id, quote_status = 'Draft', quote_amount = '$quote_amount', quote_note = '$quote_note', quote_created_at = NOW(), client_id = $client_id, company_id = $session_company_id"); mysqli_query($mysqli,"INSERT INTO quotes SET quote_prefix = '$config_quote_prefix', quote_number = $quote_number, quote_scope = '$quote_scope', quote_date = '$date', category_id = $category_id, quote_status = 'Draft', quote_amount = '$quote_amount', quote_note = '$quote_note', quote_created_at = NOW(), client_id = $client_id, company_id = $session_company_id");
$new_quote_id = mysqli_insert_id($mysqli); $new_quote_id = mysqli_insert_id($mysqli);
@@ -1752,7 +1752,7 @@ if(isset($_POST['add_quote_to_invoice'])){
$date = strip_tags(mysqli_real_escape_string($mysqli,$_POST['date'])); $date = strip_tags(mysqli_real_escape_string($mysqli,$_POST['date']));
$client_net_terms = intval($_POST['client_net_terms']); $client_net_terms = intval($_POST['client_net_terms']);
$invoice_number = "$config_invoice_prefix$config_invoice_next_number"; $invoice_number = $config_invoice_next_number;
$new_config_invoice_next_number = $config_invoice_next_number + 1; $new_config_invoice_next_number = $config_invoice_next_number + 1;
mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = $session_company_id"); mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = $session_company_id");
@@ -1768,7 +1768,7 @@ if(isset($_POST['add_quote_to_invoice'])){
//Generate a unique URL key for clients to access //Generate a unique URL key for clients to access
$url_key = keygen(); $url_key = keygen();
mysqli_query($mysqli,"INSERT INTO invoices SET invoice_number = '$invoice_number', invoice_scope = '$quote_scope', invoice_date = '$date', invoice_due = DATE_ADD(CURDATE(), INTERVAL $client_net_terms day), category_id = $category_id, invoice_status = 'Draft', invoice_amount = '$quote_amount', invoice_note = '$quote_note', invoice_url_key = '$url_key', invoice_created_at = NOW(), client_id = $client_id, company_id = $session_company_id"); mysqli_query($mysqli,"INSERT INTO invoices SET invoice_prefix = '$config_invoice_prefix', invoice_number = $invoice_number, invoice_scope = '$quote_scope', invoice_date = '$date', invoice_due = DATE_ADD(CURDATE(), INTERVAL $client_net_terms day), category_id = $category_id, invoice_status = 'Draft', invoice_amount = '$quote_amount', invoice_note = '$quote_note', invoice_url_key = '$url_key', invoice_created_at = NOW(), client_id = $client_id, company_id = $session_company_id");
$new_invoice_id = mysqli_insert_id($mysqli); $new_invoice_id = mysqli_insert_id($mysqli);
@@ -1991,6 +1991,7 @@ if(isset($_GET['pdf_quote'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$quote_id = $row['quote_id']; $quote_id = $row['quote_id'];
$quote_prefix = $row['quote_prefix'];
$quote_number = $row['quote_number']; $quote_number = $row['quote_number'];
$quote_status = $row['quote_status']; $quote_status = $row['quote_status'];
$quote_date = $row['quote_date']; $quote_date = $row['quote_date'];
@@ -2100,7 +2101,7 @@ if(isset($_GET['pdf_quote'])){
<table width="100%"><tr> <table width="100%"><tr>
<td width="15%"><img width="75" height="75" src=" /'.$company_logo.' "></img></td> <td width="15%"><img width="75" height="75" src=" /'.$company_logo.' "></img></td>
<td width="50%"><span style="font-weight: bold; font-size: 14pt;"> '.$company_name.' </span><br />' .$company_address.' <br /> '.$company_city.' '.$company_state.' '.$company_zip.'<br /> '.$company_phone.' </td> <td width="50%"><span style="font-weight: bold; font-size: 14pt;"> '.$company_name.' </span><br />' .$company_address.' <br /> '.$company_city.' '.$company_state.' '.$company_zip.'<br /> '.$company_phone.' </td>
<td width="35%" style="text-align: right;">Quote No.<br /><span style="font-weight: bold; font-size: 12pt;"> '.$quote_number.' </span></td> <td width="35%" style="text-align: right;">Quote No.<br /><span style="font-weight: bold; font-size: 12pt;"> '."quote_prefix$quote_number".' </span></td>
</tr></table> </tr></table>
</htmlpageheader> </htmlpageheader>
<htmlpagefooter name="myfooter"> <htmlpagefooter name="myfooter">
@@ -2187,6 +2188,7 @@ if(isset($_GET['email_quote'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$quote_id = $row['quote_id']; $quote_id = $row['quote_id'];
$quote_prefix = $row['quote_prefix'];
$quote_number = $row['quote_number']; $quote_number = $row['quote_number'];
$quote_status = $row['quote_status']; $quote_status = $row['quote_status'];
$quote_date = $row['quote_date']; $quote_date = $row['quote_date'];
@@ -2873,6 +2875,7 @@ if(isset($_GET['email_invoice'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_status = $row['invoice_status']; $invoice_status = $row['invoice_status'];
$invoice_date = $row['invoice_date']; $invoice_date = $row['invoice_date'];
@@ -2939,20 +2942,20 @@ if(isset($_GET['email_invoice'])){
if($invoice_status == 'Paid'){ if($invoice_status == 'Paid'){
$mail->Subject = "Invoice $invoice_number Copy"; $mail->Subject = "Invoice $invoice_prefix$invoice_number Copy";
$mail->Body = "Hello $client_name,<br><br>Please click on the link below to see your invoice marked <b>paid</b>.<br><br><a href='https://$base_url/guest_view_invoice.php?invoice_id=$invoice_id&url_key=$invoice_url_key'>Invoice Link</a><br><br><br>~<br>$company_name<br>Automated Billing Department<br>$company_phone"; $mail->Body = "Hello $client_name,<br><br>Please click on the link below to see your invoice marked <b>paid</b>.<br><br><a href='https://$base_url/guest_view_invoice.php?invoice_id=$invoice_id&url_key=$invoice_url_key'>Invoice Link</a><br><br><br>~<br>$company_name<br>Automated Billing Department<br>$company_phone";
}else{ }else{
$mail->Subject = "Invoice $invoice_number"; $mail->Subject = "Invoice $invoice_prefix$invoice_number";
$mail->Body = "Hello $client_name,<br><br>Please view the details of the invoice below.<br><br>Invoice: $invoice_number<br>Issue Date: $invoice_date<br>Total: $$invoice_amount<br>Balance Due: $$balance<br>Due Date: $invoice_due<br><br><br>To view your invoice online click <a href='https://$base_url/guest_view_invoice.php?invoice_id=$invoice_id&url_key=$invoice_url_key'>here</a><br><br><br>~<br>$company_name<br>$company_phone"; $mail->Body = "Hello $client_name,<br><br>Please view the details of the invoice below.<br><br>Invoice: $invoice_prefix$invoice_number<br>Issue Date: $invoice_date<br>Total: $$invoice_amount<br>Balance Due: $$balance<br>Due Date: $invoice_due<br><br><br>To view your invoice online click <a href='https://$base_url/guest_view_invoice.php?invoice_id=$invoice_id&url_key=$invoice_url_key'>here</a><br><br><br>~<br>$company_name<br>$company_phone";
//$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
} }
$mail->send(); $mail->send();
echo 'Message has been sent'; echo 'Message has been sent';
mysqli_query($mysqli,"INSERT INTO history SET history_date = CURDATE(), history_status = 'Sent', history_description = 'Emailed Invoice!', history_created_at = NOW(), invoice_id = $invoice_id, company_id = $session_company_id"); mysqli_query($mysqli,"INSERT INTO history SET history_date = CURDATE(), history_status = 'Sent', history_description = 'Emailed invoice', history_created_at = NOW(), invoice_id = $invoice_id, company_id = $session_company_id");
//Don't chnage the status to sent if the status is anything but draf //Don't chnage the status to sent if the status is anything but draf
if($invoice_status == 'Draft'){ if($invoice_status == 'Draft'){
@@ -2962,7 +2965,7 @@ if(isset($_GET['email_invoice'])){
} }
//Logging //Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Invoice', log_action = 'Emailed', log_description = 'Invoice $invoice_number emailed to $client_email', log_created_at = NOW(), company_id = $session_company_id, user_id = $session_user_id"); mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Invoice', log_action = 'Emailed', log_description = 'Invoice $invoice_prefix$invoice_number emailed to $client_email', log_created_at = NOW(), company_id = $session_company_id, user_id = $session_user_id");
$_SESSION['alert_message'] = "Invoice has been sent"; $_SESSION['alert_message'] = "Invoice has been sent";
@@ -3044,6 +3047,7 @@ if(isset($_GET['pdf_invoice'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$invoice_id = $row['invoice_id']; $invoice_id = $row['invoice_id'];
$invoice_prefix = $row['invoice_prefix'];
$invoice_number = $row['invoice_number']; $invoice_number = $row['invoice_number'];
$invoice_status = $row['invoice_status']; $invoice_status = $row['invoice_status'];
$invoice_date = $row['invoice_date']; $invoice_date = $row['invoice_date'];
@@ -3157,7 +3161,7 @@ if(isset($_GET['pdf_invoice'])){
<table width="100%"><tr> <table width="100%"><tr>
<td width="15%"><img width="75" height="75" src=" /'.$company_logo.' "></img></td> <td width="15%"><img width="75" height="75" src=" /'.$company_logo.' "></img></td>
<td width="50%"><span style="font-weight: bold; font-size: 14pt;"> '.$company_name.' </span><br />' .$company_address.' <br /> '.$company_city.' '.$company_state.' '.$company_zip.'<br /> '.$company_phone.' </td> <td width="50%"><span style="font-weight: bold; font-size: 14pt;"> '.$company_name.' </span><br />' .$company_address.' <br /> '.$company_city.' '.$company_state.' '.$company_zip.'<br /> '.$company_phone.' </td>
<td width="35%" style="text-align: right;">Invoice No.<br /><span style="font-weight: bold; font-size: 12pt;"> '.$invoice_number.' </span></td> <td width="35%" style="text-align: right;">Invoice No.<br /><span style="font-weight: bold; font-size: 12pt;"> '."$invoice_prefix$invoice_number".' </span></td>
</tr></table> </tr></table>
</htmlpageheader> </htmlpageheader>
<htmlpagefooter name="myfooter"> <htmlpagefooter name="myfooter">
@@ -3964,14 +3968,14 @@ if(isset($_GET['force_recurring'])){
$client_net_terms = $row['client_net_terms']; $client_net_terms = $row['client_net_terms'];
//Get the last Invoice Number and add 1 for the new invoice number //Get the last Invoice Number and add 1 for the new invoice number
$new_invoice_number = "$config_invoice_prefix$config_invoice_next_number"; $new_invoice_number = $config_invoice_next_number;
$new_config_invoice_next_number = $config_invoice_next_number + 1; $new_config_invoice_next_number = $config_invoice_next_number + 1;
mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = $session_company_id"); mysqli_query($mysqli,"UPDATE settings SET config_invoice_next_number = $new_config_invoice_next_number WHERE company_id = $session_company_id");
//Generate a unique URL key for clients to access //Generate a unique URL key for clients to access
$url_key = keygen(); $url_key = keygen();
mysqli_query($mysqli,"INSERT INTO invoices SET 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 = $session_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 = $session_company_id");
$new_invoice_id = mysqli_insert_id($mysqli); $new_invoice_id = mysqli_insert_id($mysqli);

View File

@@ -14,6 +14,7 @@ if(isset($_GET['quote_id'])){
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$quote_id = $row['quote_id']; $quote_id = $row['quote_id'];
$quote_prefix = $row['quote_prefix'];
$quote_number = $row['quote_number']; $quote_number = $row['quote_number'];
$quote_scope = $row['quote_scope']; $quote_scope = $row['quote_scope'];
$quote_status = $row['quote_status']; $quote_status = $row['quote_status'];
@@ -84,7 +85,7 @@ if(isset($_GET['quote_id'])){
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a href="client.php?client_id=<?php echo $client_id; ?>&tab=quotes"><?php echo $client_name; ?></a> <a href="client.php?client_id=<?php echo $client_id; ?>&tab=quotes"><?php echo $client_name; ?></a>
</li> </li>
<li class="breadcrumb-item active"><?php echo $quote_number; ?></li> <li class="breadcrumb-item active"><?php echo "$quote_prefix$quote_number"; ?></li>
<span class="ml-3 p-2 badge badge-<?php echo $quote_badge_color; ?>"><?php echo $quote_status; ?></span> <span class="ml-3 p-2 badge badge-<?php echo $quote_badge_color; ?>"><?php echo $quote_status; ?></span>
</ol> </ol>
@@ -145,7 +146,7 @@ if(isset($_GET['quote_id'])){
<img class="img-fluid" src="<?php echo $company_logo; ?>"> <img class="img-fluid" src="<?php echo $company_logo; ?>">
</div> </div>
<div class="col-sm-10"> <div class="col-sm-10">
<h3 class="text-right"><strong>Quote</strong><br><small class="text-secondary"><?php echo $quote_number; ?></small></h3> <h3 class="text-right"><strong>Quote</strong><br><small class="text-secondary"><?php echo "$quote_prefix$quote_number"; ?></small></h3>
</div> </div>
</div> </div>
<div class="row mb-4"> <div class="row mb-4">

View File

@@ -120,6 +120,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
while($row = mysqli_fetch_array($sql)){ while($row = mysqli_fetch_array($sql)){
$quote_id = $row['quote_id']; $quote_id = $row['quote_id'];
$quote_prefix = $row['quote_prefix'];
$quote_number = $row['quote_number']; $quote_number = $row['quote_number'];
$quote_scope = $row['quote_scope']; $quote_scope = $row['quote_scope'];
$quote_status = $row['quote_status']; $quote_status = $row['quote_status'];
@@ -152,7 +153,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
?> ?>
<tr> <tr>
<td><a href="quote.php?quote_id=<?php echo $quote_id; ?>"><?php echo $quote_number; ?></a></td> <td><a href="quote.php?quote_id=<?php echo $quote_id; ?>"><?php echo "$quote_prefix$quote_number"; ?></a></td>
<td><?php echo $quote_scope; ?></td> <td><?php echo $quote_scope; ?></td>
<td><a href="client.php?client_id=<?php echo $client_id; ?>&tab=quotes"><?php echo $client_name; ?></a></td> <td><a href="client.php?client_id=<?php echo $client_id; ?>&tab=quotes"><?php echo $client_name; ?></a></td>
<td class="text-right">$<?php echo number_format($quote_amount,2); ?></td> <td class="text-right">$<?php echo number_format($quote_amount,2); ?></td>