UI: Update Invoices Listing Top Header to include Drafts, Unpaid and Overdue instead of Drafts, Sent, Viewed and Partial

This commit is contained in:
johnnyq 2024-03-05 16:23:05 -05:00
parent a91352229e
commit 8719919639
1 changed files with 23 additions and 35 deletions

View File

@ -24,7 +24,7 @@ $draft_count = $row['num'];
$row = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT COUNT('invoice_id') AS num FROM invoices WHERE invoice_status = 'Cancelled'"));
$cancelled_count = $row['num'];
$row = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT COUNT('invoice_id') AS num FROM invoices WHERE invoice_due > CURDATE()"));
$row = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT COUNT('invoice_id') AS num FROM invoices WHERE invoice_status NOT LIKE 'Draft' AND invoice_status NOT LIKE 'Paid' AND invoice_due < CURDATE()"));
$overdue_count = $row['num'];
$sql_total_draft = mysqli_query($mysqli, "SELECT SUM(invoice_amount) AS total_draft FROM invoices WHERE invoice_status = 'Draft'");
@ -57,18 +57,19 @@ $row = mysqli_fetch_array($sql_total_overdue);
$total_overdue = floatval($row['total_overdue']);
$real_overdue_amount = $total_overdue - $total_overdue_partial;
$total_unpaid = $total_sent + $total_viewed + $total_partial;
$unpaid_count = $sent_count + $viewed_count + $partial_count;
//Invoice status from GET
if (isset($_GET['status']) && ($_GET['status']) == 'Draft') {
$status_query = 'Draft';
} elseif (isset($_GET['status']) && ($_GET['status']) == 'Sent') {
$status_query = 'Sent';
} elseif (isset($_GET['status']) && ($_GET['status']) == 'Viewed') {
$status_query = 'Viewed';
} elseif (isset($_GET['status']) && ($_GET['status']) == 'Partial') {
$status_query = 'Partial';
$status_query = "invoice_status = 'Draft'";
} elseif (isset($_GET['status']) && ($_GET['status']) == 'Unpaid') {
$status_query = "invoice_status = 'Sent' OR invoice_status = 'Viewed' OR invoice_status = 'Partial'";
} elseif (isset($_GET['status']) && ($_GET['status']) == 'Overdue') {
$status_query = "invoice_status = 'Sent' OR invoice_status = 'Viewed' OR invoice_status = 'Partial'";
$overdue_query = "AND (invoice_due < CURDATE())";
} else {
$status_query = '%';
$status_query = "invoice_status LIKE '%'";
}
//Rebuild URL
@ -79,7 +80,8 @@ $sql = mysqli_query(
"SELECT SQL_CALC_FOUND_ROWS * FROM invoices
LEFT JOIN clients ON invoice_client_id = client_id
LEFT JOIN categories ON invoice_category_id = category_id
WHERE (invoice_status LIKE '$status_query')
WHERE ($status_query)
$overdue_query
AND DATE(invoice_date) BETWEEN '$dtf' AND '$dtt'
AND (CONCAT(invoice_prefix,invoice_number) LIKE '%$q%' OR invoice_scope LIKE '%$q%' OR client_name LIKE '%$q%' OR invoice_status LIKE '%$q%' OR invoice_amount LIKE '%$q%' OR category_name LIKE '%$q%')
ORDER BY $sort $order LIMIT $record_from, $record_to"
@ -90,7 +92,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
?>
<div class="row">
<div class="col-lg-3">
<div class="col-lg-4">
<!-- small box -->
<a href="?<?php echo $url_query_strings_sort; ?>&status=Draft" class="small-box bg-secondary">
<div class="inner">
@ -104,43 +106,29 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
</div>
<!-- ./col -->
<div class="col-lg-3">
<div class="col-lg-4">
<!-- small box -->
<a href="?<?php echo $url_query_strings_sort; ?>&status=Sent" class="small-box bg-warning">
<a href="?<?php echo $url_query_strings_sort; ?>&status=Unpaid" class="small-box bg-info">
<div class="inner text-white">
<h3><?php echo numfmt_format_currency($currency_format, $total_sent, $session_company_currency); ?></h3>
<p><?php echo $sent_count; ?> Sent</p>
<h3><?php echo numfmt_format_currency($currency_format, $total_unpaid, $session_company_currency); ?></h3>
<p><?php echo $unpaid_count; ?> Unpaid</p>
</div>
<div class="icon">
<i class="fa fa-paper-plane"></i>
<i class="fa fa-hand-holding-usd"></i>
</div>
</a>
</div>
<!-- ./col -->
<div class="col-lg-3">
<div class="col-lg-4">
<!-- small box -->
<a href="?<?php echo $url_query_strings_sort; ?>&status=Viewed" class="small-box bg-info">
<a href="?<?php echo $url_query_strings_sort; ?>&status=Overdue" class="small-box bg-danger">
<div class="inner">
<h3><?php echo numfmt_format_currency($currency_format, $total_viewed, $session_company_currency); ?></h3>
<p><?php echo $viewed_count; ?> Viewed</p>
<h3><?php echo numfmt_format_currency($currency_format, $total_overdue, $session_company_currency); ?></h3>
<p><?php echo $overdue_count; ?> Overdue</p>
</div>
<div class="icon">
<i class="fa fa-eye"></i>
</div>
</a>
</div>
<!-- ./col -->
<div class="col-lg-3">
<!-- small box -->
<a href="?<?php echo $url_query_strings_sort; ?>&status=Partial" class="small-box bg-primary">
<div class="inner">
<h3><?php echo numfmt_format_currency($currency_format, $total_partial, $session_company_currency); ?></h3>
<p><?php echo $partial_count; ?> Partial</p>
</div>
<div class="icon">
<i class="fa fa-wine-glass-alt"></i>
<i class="fa fa-exclamation-triangle"></i>
</div>
</a>
</div>