paystack/views/admin/dashboard.php
2025-01-19 12:18:55 +00:00

178 lines
8.7 KiB
PHP

<?php defined('BASEPATH') or exit('No direct script access allowed'); ?>
<?php init_head(); ?>
<div id="wrapper">
<div class="content">
<div class="row">
<div class="col-md-12">
<div class="panel_s">
<div class="panel-body">
<h4 class="no-margin"><?php echo _l('paystack_dashboard'); ?></h4>
<hr class="hr-panel-heading" />
<!-- Stats Widgets -->
<div class="row">
<div class="col-md-3">
<div class="widget-box">
<div class="widget-header">
<h3><?php echo _l('total_transactions'); ?></h3>
</div>
<div class="widget-content">
<h3 class="bold"><?php echo $stats['total_transactions']; ?></h3>
</div>
</div>
</div>
<div class="col-md-3">
<div class="widget-box success-bg">
<div class="widget-header">
<h3><?php echo _l('successful_transactions'); ?></h3>
</div>
<div class="widget-content">
<h3 class="bold"><?php echo $stats['successful_transactions']; ?></h3>
</div>
</div>
</div>
<div class="col-md-3">
<div class="widget-box warning-bg">
<div class="widget-header">
<h3><?php echo _l('failed_transactions'); ?></h3>
</div>
<div class="widget-content">
<h3 class="bold"><?php echo $stats['failed_transactions']; ?></h3>
</div>
</div>
</div>
<div class="col-md-3">
<div class="widget-box info-bg">
<div class="widget-header">
<h3><?php echo _l('total_amount'); ?></h3>
</div>
<div class="widget-content">
<h3 class="bold"><?php echo app_format_money($stats['total_amount'], get_base_currency()); ?></h3>
</div>
</div>
</div>
</div>
<div class="row mtop20">
<!-- Monthly Chart -->
<div class="col-md-8">
<div class="panel_s">
<div class="panel-body">
<h4 class="no-margin"><?php echo _l('monthly_transactions'); ?></h4>
<hr class="hr-panel-heading" />
<canvas id="monthly-chart" height="300"></canvas>
</div>
</div>
</div>
<!-- Success Rate -->
<div class="col-md-4">
<div class="panel_s">
<div class="panel-body">
<h4 class="no-margin"><?php echo _l('success_rate'); ?></h4>
<hr class="hr-panel-heading" />
<canvas id="success-rate-chart" height="300"></canvas>
</div>
</div>
</div>
</div>
<!-- Recent Transactions -->
<div class="panel_s mtop20">
<div class="panel-body">
<h4 class="no-margin"><?php echo _l('recent_transactions'); ?></h4>
<hr class="hr-panel-heading" />
<table class="table dt-table table-recent-transactions">
<thead>
<tr>
<th><?php echo _l('date'); ?></th>
<th><?php echo _l('reference'); ?></th>
<th><?php echo _l('invoice_number'); ?></th>
<th><?php echo _l('amount'); ?></th>
<th><?php echo _l('status'); ?></th>
</tr>
</thead>
<tbody>
<?php foreach($recent_transactions as $transaction) { ?>
<tr>
<td><?php echo _dt($transaction['date']); ?></td>
<td><?php echo $transaction['reference']; ?></td>
<td>
<a href="<?php echo admin_url('invoices/list_invoices/'.$transaction['invoice_id']); ?>">
<?php echo format_invoice_number($transaction['invoice_number']); ?>
</a>
</td>
<td><?php echo app_format_money($transaction['amount'], get_base_currency()); ?></td>
<td>
<span class="label label-<?php echo $transaction['status'] == 'success' ? 'success' : 'danger'; ?>">
<?php echo _l($transaction['status']); ?>
</span>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php init_tail(); ?>
<script>
// Monthly Chart
var ctx = document.getElementById('monthly-chart').getContext('2d');
var monthlyChart = new Chart(ctx, {
type: 'bar',
data: {
labels: <?php echo json_encode(array_keys($monthly_chart)); ?>,
datasets: [{
label: '<?php echo _l("successful_transactions"); ?>',
data: <?php echo json_encode(array_column($monthly_chart, 'successful')); ?>,
backgroundColor: 'rgba(75, 192, 192, 0.2)',
borderColor: 'rgba(75, 192, 192, 1)',
borderWidth: 1
},
{
label: '<?php echo _l("failed_transactions"); ?>',
data: <?php echo json_encode(array_column($monthly_chart, 'failed')); ?>,
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgba(255, 99, 132, 1)',
borderWidth: 1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
// Success Rate Chart
var ctx2 = document.getElementById('success-rate-chart').getContext('2d');
var successRateChart = new Chart(ctx2, {
type: 'doughnut',
data: {
labels: ['<?php echo _l("successful"); ?>', '<?php echo _l("failed"); ?>'],
datasets: [{
data: [
<?php echo $stats['successful_transactions']; ?>,
<?php echo $stats['failed_transactions']; ?>
],
backgroundColor: [
'rgba(75, 192, 192, 0.2)',
'rgba(255, 99, 132, 0.2)'
],
borderColor: [
'rgba(75, 192, 192, 1)',
'rgba(255, 99, 132, 1)'
],
borderWidth: 1
}]
}
});
</script>