320 lines
12 KiB
PHP
Executable File
320 lines
12 KiB
PHP
Executable File
<!-- DataTables -->
|
||
<link rel="stylesheet"
|
||
href="<?= base_url('bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css') ?>">
|
||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css"/>
|
||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.2/css/buttons.dataTables.min.css">
|
||
<link rel="stylesheet" href="<?= base_url('bower_components/toastr/toastr.css') ?>">
|
||
<div class="content-wrapper">
|
||
<?php
|
||
|
||
use Brick\Money\Context\AutoContext;
|
||
use Brick\Money\CurrencyConverter;
|
||
use Brick\Money\ExchangeRateProvider\BaseCurrencyProvider;
|
||
use Brick\Money\ExchangeRateProvider\PDOProvider;
|
||
use Brick\Money\ExchangeRateProvider\PDOProviderConfiguration;
|
||
use Brick\Money\Money;
|
||
|
||
?>
|
||
<!-- Content Header (Page header) -->
|
||
<section class="content-header">
|
||
|
||
<h1>
|
||
<?= isset($category) ? 'Nano credit' : $this->lang->line('nano_credit_management');
|
||
echo ' ' . $network . ' - ' . $country
|
||
. ' :: ' . $this->lang->line('nano_credit_history'); ?>
|
||
<!-- <input type="button" class="btn btn-primary pull-right" id="Bactiver"-->
|
||
<!-- value="Activer/Désactiver le(s) réseau(x)" />-->
|
||
</h1>
|
||
<?php
|
||
|
||
|
||
if ($alert == "ok") {
|
||
|
||
if (!$success == "ok") {
|
||
?>
|
||
<div class='alert alert-danger alert-dismissible col-xs-6'>
|
||
<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button>
|
||
<h4><i class='icon fa fa-ban'></i> Erreur!</h4>
|
||
<?= $message; ?>
|
||
</div>
|
||
|
||
<?php
|
||
} else {
|
||
?>
|
||
<div class="alert alert-success alert-dismissible col-xs-6">
|
||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||
<h4><i class="icon fa fa-check"></i> Success!</h4>
|
||
<?= $message; ?>
|
||
</div>
|
||
|
||
<?php
|
||
}
|
||
}
|
||
// set to whatever your rates are relative to
|
||
$baseCurrency = 'USD';
|
||
|
||
// use your own credentials, or re-use your existing PDO connection
|
||
$pdo = new PDO('mysql:host=' . $this->db->hostname . ';dbname=' . $this->db->database, $this->db->username, $this->db->password);
|
||
|
||
$configuration = new PDOProviderConfiguration();
|
||
|
||
$configuration->tableName = 'exchange_rate';
|
||
$configuration->exchangeRateColumnName = 'exchange_rate';
|
||
$configuration->targetCurrencyColumnName = 'target_currency';
|
||
$configuration->sourceCurrencyCode = $baseCurrency;
|
||
|
||
// this provider loads exchange rates from your database
|
||
$provider = new PDOProvider($pdo, $configuration);
|
||
|
||
// this provider calculates exchange rates relative to the base currency
|
||
$provider = new BaseCurrencyProvider($provider, $baseCurrency);
|
||
|
||
// this currency converter can now handle any currency pair
|
||
$converter = new CurrencyConverter($provider);
|
||
$context = new AutoContext();
|
||
?>
|
||
</section>
|
||
<section class="content">
|
||
<div class="row">
|
||
<div class="col-md-4 col-sm-6 col-xs-12">
|
||
<div class="info-box">
|
||
<span class="info-box-icon bg-aqua"><i class="ion ion-android-time"></i></span>
|
||
<div class="info-box-content">
|
||
<span class="info-box-text"><?= $this->lang->line('Période') ?> </span>
|
||
<span class="info-box-number">
|
||
<input id="picker"
|
||
style="background: #fff; cursor: pointer; padding: 1px 1px; border: 1px solid #ccc; width: 100%"
|
||
data-category="<?= isset($category) ? $category : null ?>"
|
||
type="text" name="daterange"
|
||
data-lang="<?= $this->session->userdata('site_lang') ?>"
|
||
value="<?= ($startDate != null & $endDate != null) ? $startDate . ' - ' . $endDate : '' ?>"/>
|
||
|
||
</span>
|
||
<span> Format : <?= $this->session->userdata('site_lang') === 'french' ? 'Jour - Mois - Année ' : 'Year - Month - Day' ?> </span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="row">
|
||
<div class="col-xs-12">
|
||
<div class="box">
|
||
<div class="box-header">
|
||
<h3 class="box-title"><?= $this->lang->line('export_nano_credit_demands_history') ?></h3>
|
||
</div>
|
||
<div class="box-body" style="overflow-x:auto;">
|
||
<?php
|
||
if ($transactions){
|
||
$numrows = $transactions->num_rows();
|
||
$num = 0;
|
||
if ($numrows > 0) {
|
||
$fmt = new NumberFormatter('fr_FR', NumberFormatter::DECIMAL);
|
||
?>
|
||
|
||
<table id="transactions" class="table table-bordered table-striped">
|
||
<thead>
|
||
<tr>
|
||
<th align='center'>ID</th>
|
||
<th align='center'><?= $this->lang->line('state') ?></th>
|
||
<th align='center'><?= $this->lang->line('caution_type') ?></th>
|
||
<th align='center'><?= $this->lang->line('duration') ?></th>
|
||
<th><?= $this->lang->line('refunded_amount') ?></th>
|
||
<th><?= $this->lang->line('remains_to_be_reimbursed') ?></th>
|
||
<th><?= $this->lang->line('interest') ?></th>
|
||
<th><?= $this->lang->line('tax') ?></th>
|
||
<th><?= $this->lang->line('agent_name') ?></th>
|
||
<th><?= $this->lang->line('issuer_id') ?></th>
|
||
<th><?= $this->lang->line('cash_withdrawal') ?></th>
|
||
<th><?= $this->lang->line('validation_date') ?></th>
|
||
<th><?= $this->lang->line('repayment_date') ?></th>
|
||
<th align='center'><?= $this->lang->line('created_date') ?></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<?php
|
||
|
||
foreach ($transactions->result() as $row) {
|
||
$num++;
|
||
if ($row->user_phone) {
|
||
$emetteur = $row->user_phone . ' | ' . $row->user;
|
||
} else {
|
||
$emetteur = ($row->nom_emetteur ? $row->nom_emetteur : '') . (' ' . $row->prenom_emetteur ? $row->prenom_emetteur : '');
|
||
}
|
||
$moneyNet = Money::of(round($row->montant, 2), $currency_code, $context);
|
||
if ($row->type_caution == 'individuel')
|
||
$retrait = $this->lang->line($row->retrait_cash ? 'Oui' : 'Non');
|
||
else
|
||
$retrait = "";
|
||
echo "<tr>
|
||
<td align='center' >$row->id_demande</td>
|
||
<td>" . $this->lang->line($row->etat) . "</td>
|
||
<td>" . $this->lang->line($row->type_caution) . "</td>
|
||
<td>" . mb_strtoupper($row->duree_mois,'UTF-8') . "</td>
|
||
<td>" . Money::of(round($row->montant_rembourse, 2), $currency_code, $context)->formatTo('fr_FR') . "</td>
|
||
<td>" . $moneyNet->formatTo('fr_FR') . "</td>
|
||
<td>" . Money::of(round($row->interet, 2), $currency_code, $context)->formatTo('fr_FR') . "</td>
|
||
<td>" . Money::of(round($row->taxe, 2), $currency_code, $context)->formatTo('fr_FR') . "</td>
|
||
<td>" . $row->agent . "</td>
|
||
<td>" . $emetteur . "</td>
|
||
<td>" . $retrait . "</td>
|
||
<td>" . $row->date_validation . "</td>
|
||
<td>" . $row->date_remboursement . "</td>
|
||
<td>" . $row->date_creation . "</td>";
|
||
?>
|
||
</tr>
|
||
|
||
<?php
|
||
}
|
||
?>
|
||
</tbody>
|
||
|
||
<?php
|
||
} else {
|
||
echo $this->lang->line('Aucune demande');
|
||
}
|
||
} else {
|
||
echo $this->lang->line('Aucune demande');
|
||
}
|
||
?>
|
||
|
||
</table>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
<!-- jQuery 3 -->
|
||
<script src="<?= base_url('bower_components/jquery/dist/jquery.min.js') ?>"></script>
|
||
<!-- Bootstrap 3.3.7 -->
|
||
<script src="<?= base_url('bower_components/bootstrap/dist/js/bootstrap.min.js') ?>"></script>
|
||
<!-- DataTables -->
|
||
<script src="<?= base_url('bower_components/datatables.net/js/jquery.dataTables.min.js') ?>"></script>
|
||
<script src="<?= base_url('bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js') ?>"></script>
|
||
<!-- SlimScroll -->
|
||
<script src="<?= base_url('bower_components/jquery-slimscroll/jquery.slimscroll.min.js') ?>"></script>
|
||
<!-- FastClick -->
|
||
<script src="<?= base_url('bower_components/fastclick/lib/fastclick.js') ?>"></script>
|
||
<!-- AdminLTE App -->
|
||
<script src="<?= base_url('dist/js/adminlte.min.js') ?>"></script>
|
||
<!-- AdminLTE for demo purposes -->
|
||
<script src="<?= base_url('dist/js/demo.js') ?>"></script>
|
||
|
||
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment-with-locales.min.js"></script>
|
||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
|
||
<script type="text/javascript" src="https://cdn.datatables.net/plug-ins/1.10.19/sorting/datetime-moment.js"></script>
|
||
<script type="text/javascript" src="https://cdn.datatables.net/plug-ins/1.10.20/dataRender/datetime.js"></script>
|
||
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.2/js/dataTables.buttons.min.js"></script>
|
||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
|
||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
|
||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
|
||
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.html5.min.js"></script>
|
||
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.print.min.js"></script>
|
||
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.colVis.min.js"></script>
|
||
<script src="<?= base_url('dist/js/sweetalert2.js') ?>"></script>
|
||
<script src="<?= base_url('bower_components/toastr/toastr.js') ?>"></script>
|
||
|
||
|
||
<script>
|
||
$(function () {
|
||
const lang = $('#picker').data('lang');
|
||
const format = lang === 'french' ? 'fr' : 'en';
|
||
moment.updateLocale(moment.locale(format), {invalidDate: ""}); // Blank text when is invalid date
|
||
var table = $('#transactions').DataTable({
|
||
"aaSorting": [[13, "desc"]],
|
||
"columnDefs": [{
|
||
targets: [11, 12, 13],
|
||
render: $.fn.dataTable.render.moment('YYYY-MM-DD HH:mm:ss', 'D MMMM YYYY HH:mm:ss', format)
|
||
}],
|
||
dom: 'Bfrtip',
|
||
"buttons": [
|
||
'pageLength',
|
||
{
|
||
extend: 'excelHtml5',
|
||
title: "<?= $this->lang->line('nano_credit_history') ?>",
|
||
customizeData: function (data) {
|
||
for (var i = 0; i < data.body.length; i++) {
|
||
for (var j = 0; j < data.body[i].length; j++) {
|
||
// data.body[i][j] = '\u200C' + data.body[i][j];
|
||
if ([4, 5, 6, 7].includes(j)) {
|
||
// Get the value and strip the non numeric characters
|
||
// var value = $(this).text();
|
||
value = data.body[i][j].replace(',', ".")
|
||
data.body[i][j] = Number(value.replace(/[^0-9\.-]+/g, ""));
|
||
}
|
||
}
|
||
}
|
||
},
|
||
trim: false
|
||
},
|
||
{
|
||
extend: 'csvHtml5',
|
||
title: "<?= $this->lang->line('nano_credit_history') ?>",
|
||
trim: false
|
||
},
|
||
{
|
||
extend: 'pdfHtml5',
|
||
orientation: 'landscape',
|
||
pageSize: 'LEGAL',
|
||
title: "<?= $this->lang->line('nano_credit_history') ?>",
|
||
trim: false
|
||
},
|
||
// 'colvis'
|
||
]
|
||
});
|
||
|
||
table.buttons().container()
|
||
.appendTo('#example_wrapper .col-sm-6:eq(0)');
|
||
});
|
||
</script>
|
||
|
||
<script type="text/javascript">
|
||
var startDate;
|
||
var endDate;
|
||
|
||
$(function () {
|
||
const lang = $('#picker').data('lang');
|
||
const category = $('#picker').data('category');
|
||
const id_network = "<?= $id_network?>";
|
||
$('input[name="daterange"]').daterangepicker({
|
||
opens: 'left',
|
||
autoUpdateInput: false,
|
||
locale: {
|
||
format: lang === 'french' ? 'DD-MM-YYYY' : 'YYYY-MM-DD',
|
||
cancelLabel: 'Clear'
|
||
}
|
||
}, function (start, end, label) {
|
||
const debut = start.format('YYYY-MM-DD');
|
||
const fin = end.format('YYYY-MM-DD');
|
||
if (category){
|
||
if(category == 'super')
|
||
window.location = "<?= current_url()?>" + "?d=" + debut + "&f=" + fin;
|
||
else
|
||
window.location = "<?= current_url()?>" + "?history=nano_credit" + "&d=" + debut + "&f=" + fin;
|
||
|
||
}
|
||
else
|
||
window.location = "<?= current_url()?>" + "?id="+id_network+"&history=nano_credit" + "&d=" + debut + "&f=" + fin;
|
||
|
||
});
|
||
|
||
$('input[name="daterange"]').on('cancel.daterangepicker', function (ev, picker) {
|
||
//do something, like clearing an input
|
||
$('#daterange').val('');
|
||
if (category){
|
||
if(category == 'super')
|
||
window.location = "<?= current_url()?>";
|
||
else
|
||
window.location = "<?= current_url()?>" + "?history=nano_credit";
|
||
}
|
||
else
|
||
window.location = "<?= current_url()?>" + "?id="+id_network+"&history=nano_credit";
|
||
});
|
||
});
|
||
|
||
</script>
|