162 lines
5.4 KiB
Smarty
162 lines
5.4 KiB
Smarty
{include file="sections/header.tpl"}
|
||
<style>
|
||
/* Styles for overall layout and responsiveness */
|
||
body {
|
||
background-color: #f8f9fa;
|
||
font-family: 'Arial', sans-serif;
|
||
}
|
||
|
||
.container {
|
||
margin-top: 20px;
|
||
background-color: #d8dfe5;
|
||
border-radius: 8px;
|
||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||
padding: 20px;
|
||
max-width: 98%;
|
||
flex-wrap: wrap;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
|
||
/* Styles for table and pagination */
|
||
.table {
|
||
width: 100%;
|
||
margin-bottom: 1rem;
|
||
background-color: #fff;
|
||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||
}
|
||
|
||
.table th {
|
||
vertical-align: middle;
|
||
border-color: #dee2e6;
|
||
background-color: #343a40;
|
||
color: #fff;
|
||
}
|
||
|
||
.table td {
|
||
vertical-align: middle;
|
||
border-color: #dee2e6;
|
||
}
|
||
|
||
.table-striped tbody tr:nth-of-type(odd) {
|
||
background-color: rgba(0, 0, 0, 0.05);
|
||
}
|
||
|
||
.table-hover tbody tr:hover {
|
||
background-color: rgba(0, 0, 0, 0.075);
|
||
color: #333;
|
||
font-weight: bold;
|
||
transition: background-color 0.3s, color 0.3s;
|
||
}
|
||
|
||
.pagination .page-item .page-link {
|
||
color: #007bff;
|
||
background-color: #fff;
|
||
border: 1px solid #dee2e6;
|
||
margin: 0 2px;
|
||
padding: 6px 12px;
|
||
transition: background-color 0.3s, color 0.3s;
|
||
}
|
||
|
||
.pagination .page-item .page-link:hover {
|
||
background-color: #e9ecef;
|
||
color: #0056b3;
|
||
}
|
||
|
||
.pagination .page-item.active .page-link {
|
||
z-index: 1;
|
||
color: #fff;
|
||
background-color: #007bff;
|
||
border-color: #007bff;
|
||
}
|
||
|
||
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
||
display: inline-block;
|
||
padding: 5px 10px;
|
||
margin-right: 5px;
|
||
border: 1px solid #ccc;
|
||
background-color: #fff;
|
||
color: #333;
|
||
cursor: pointer;
|
||
}
|
||
</style>
|
||
|
||
{if isset($message)}
|
||
<div class="alert alert-{if $notify_t == 's'}success{else}danger{/if}">
|
||
<button type="button" class="close" data-dismiss="alert">
|
||
<span aria-hidden="true">×</span>
|
||
</button>
|
||
<div>{$message}</div>
|
||
</div>
|
||
{/if}
|
||
|
||
<div class="col-md-14">
|
||
<!-- LINE CHART -->
|
||
<div class="box box-info">
|
||
<div class="box-header with-border">
|
||
<h3 class="box-title">{Lang::T('Payment History')}</h3>
|
||
|
||
<div class="box-tools pull-right">
|
||
<button type="button" class="btn bg-teal btn-sm" data-widget="collapse"><i class="fa fa-refresh"></i>
|
||
</button>
|
||
<a href="{$app_url}/pages/mpesa-webhook.html" class="btn bg-teal btn-sm"><i class="fa fa-file"></i>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="box-body">
|
||
<div class="container">
|
||
<div class="table-responsive">
|
||
<table class="table table-bordered table-striped" id="payments-table">
|
||
<thead>
|
||
<tr>
|
||
<th>{Lang::T('Customer Name')}</th>
|
||
<th>{Lang::T('Transaction Type')}</th>
|
||
<th>{Lang::T('Transaction Time')}</th>
|
||
<th>{Lang::T('Amount Paid')}</th>
|
||
<th>{Lang::T('Package Name')}</th>
|
||
<th>{Lang::T('Package Price')}</th>
|
||
<th>{Lang::T('Status')}</th>
|
||
<th>{Lang::T('Bill Ref Number')}</th>
|
||
<th>{Lang::T('Company Balance')}</th>
|
||
<th>{Lang::T('Date')}</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{foreach $payments as $payment}
|
||
<tr>
|
||
<td><a href="{$app_url}/index.php?_route=customers/view/{$payment.CustomerID}">{$payment.FirstName}</a></td>
|
||
<td>{$payment.TransactionType}</td>
|
||
<td>{$payment.TransTime}</td>
|
||
<td>{$payment.TransAmount}</td>
|
||
<td>{$payment.PackageName}</td>
|
||
<td>{$payment.PackagePrice}</td>
|
||
<td><span
|
||
class="label {if $payment.TransactionStatus == Completed}label-success {elseif $payment.TransactionStatus == Pending}label-warning {/if}">{$payment.TransactionStatus}</span>
|
||
</td>
|
||
<td>{$payment.BillRefNumber}</td>
|
||
<td>{$payment.OrgAccountBalance}</td>
|
||
<td>{$payment.CreatedAt}</td>
|
||
</tr>
|
||
{/foreach}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- /.box-body -->
|
||
</div>
|
||
<!-- /.box -->
|
||
</div>
|
||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||
<script src="https://cdn.datatables.net/1.11.3/js/jquery.dataTables.min.js"></script>
|
||
<script>
|
||
var $j = jQuery.noConflict();
|
||
|
||
$j(document).ready(function () {
|
||
$j('#payments-table').DataTable({
|
||
"pagingType": "full_numbers"
|
||
});
|
||
});
|
||
</script>
|
||
|
||
{include file="sections/footer.tpl"} |