mirror of https://github.com/itflow-org/itflow
rewrite the Recurring Incpome by Client report into 1 Query instead of multiple
This commit is contained in:
parent
94c020f689
commit
47dbd46bf3
|
|
@ -3,7 +3,18 @@
|
|||
require_once("inc_all_reports.php");
|
||||
validateAccountantRole();
|
||||
|
||||
$sql_clients = mysqli_query($mysqli, "SELECT * FROM clients WHERE company_id = $session_company_id");
|
||||
$sql = mysqli_query($mysqli, "
|
||||
SELECT clients.client_name,
|
||||
SUM(CASE WHEN recurring.recurring_frequency = 'month' THEN recurring.recurring_amount
|
||||
WHEN recurring.recurring_frequency = 'year' THEN recurring.recurring_amount / 12 END) AS recurring_monthly_total
|
||||
FROM clients
|
||||
LEFT JOIN recurring ON clients.client_id = recurring.recurring_client_id
|
||||
WHERE clients.company_id = $session_company_id
|
||||
AND recurring.recurring_status = 1
|
||||
GROUP BY clients.client_id
|
||||
HAVING recurring_monthly_total > 0
|
||||
ORDER BY recurring_monthly_total DESC
|
||||
");
|
||||
|
||||
?>
|
||||
|
||||
|
|
@ -26,41 +37,26 @@ $sql_clients = mysqli_query($mysqli, "SELECT * FROM clients WHERE company_id = $
|
|||
<tbody>
|
||||
<?php
|
||||
|
||||
while ($row = mysqli_fetch_array($sql_clients)) {
|
||||
$client_id = intval($row['client_id']);
|
||||
while ($row = mysqli_fetch_array($sql)) {
|
||||
$client_id = intval($_row['client_id']);
|
||||
$client_name = htmlentities($row['client_name']);
|
||||
|
||||
//Get Monthly Recurring Total
|
||||
$sql_recurring_monthly_total = mysqli_query($mysqli, "SELECT SUM(recurring_amount) AS recurring_monthly_total FROM recurring WHERE recurring_status = 1 AND recurring_frequency = 'month' AND recurring_client_id = $client_id AND company_id = $session_company_id");
|
||||
$row = mysqli_fetch_array($sql_recurring_monthly_total);
|
||||
|
||||
$recurring_monthly_total = floatval($row['recurring_monthly_total']);
|
||||
|
||||
//Get Yearly Recurring Total
|
||||
$sql_recurring_yearly_total = mysqli_query($mysqli, "SELECT SUM(recurring_amount) AS recurring_yearly_total FROM recurring WHERE recurring_status = 1 AND recurring_frequency = 'year' AND recurring_client_id = $client_id AND company_id = $session_company_id");
|
||||
$row = mysqli_fetch_array($sql_recurring_yearly_total);
|
||||
|
||||
$recurring_yearly_total = floatval($row['recurring_yearly_total']) / 12;
|
||||
|
||||
$recurring_monthly = $recurring_monthly_total + $recurring_yearly_total;
|
||||
$recurring_total = $recurring_total + $recurring_monthly;
|
||||
|
||||
if ($recurring_monthly > 0) {
|
||||
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<td><?php echo $client_name; ?></td>
|
||||
<td class="text-right"><?php echo numfmt_format_currency($currency_format, $recurring_monthly, $session_company_currency); ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
$recurring_total = $recurring_total + $recurring_monthly_total;
|
||||
?>
|
||||
<tr>
|
||||
<th>Total</th>
|
||||
<th class="text-right"><?php echo numfmt_format_currency($currency_format, $recurring_total, $session_company_currency); ?></th>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><?php echo $client_name; ?></td>
|
||||
<td class="text-right"><?php echo numfmt_format_currency($currency_format, $recurring_monthly_total, $session_company_currency); ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
|
||||
?>
|
||||
<tr>
|
||||
<th>Total</th>
|
||||
<th class="text-right"><?php echo numfmt_format_currency($currency_format, $recurring_total, $session_company_currency); ?></th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue