backoffice/application/views/gestion_wallet_ilink_hyp.php

714 lines
25 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<link rel="stylesheet" href="<?= base_url('bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css') ?>">
<link rel="stylesheet" href="<?= base_url('bower_components/bootstrap-daterangepicker/daterangepicker.css') ?>">
<link rel="stylesheet" href="<?= base_url('bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css') ?>">
<link rel="stylesheet" href="<?= base_url('bower_components/toastr/toastr.css') ?>">
<link rel="stylesheet" href="<?= base_url('bower_components/google-material-icons/google-material-icons.min.css') ?>">
<style type="text/css">
.table-wrapper {
width: 700px;
margin: 30px auto;
background: #fff;
padding: 20px;
box-shadow: 0 1px 1px rgba(0,0,0,.05);
}
.table-title {
padding-bottom: 10px;
margin: 0 0 10px;
}
.table-title h2 {
margin: 6px 0 0;
font-size: 22px;
}
.table-title .add-new {
float: right;
height: 30px;
font-weight: bold;
font-size: 12px;
text-shadow: none;
min-width: 100px;
border-radius: 50px;
line-height: 13px;
}
.table-title .add-new i {
margin-right: 4px;
}
table.table {
table-layout: fixed;
}
table.table tr th, table.table tr td {
border-color: #e9e9e9;
}
table.table th i {
font-size: 13px;
margin: 0 5px;
cursor: pointer;
}
table.table th:last-child {
width: 100px;
}
table.table td a {
cursor: pointer;
display: inline-block;
margin: 0 5px;
min-width: 24px;
}
table.table td a.add {
color: #27C46B;
}
table.table td a.edit {
color: #FFC107;
}
table.table td a.delete {
color: #E34724;
}
table.table td i {
font-size: 19px;
}
table.table td a.add i {
font-size: 24px;
margin-right: -1px;
position: relative;
top: 3px;
}
table.table .form-control {
height: 32px;
line-height: 32px;
box-shadow: none;
border-radius: 2px;
}
/*table.table .form-control.error {*/
/* border-color: #f50000;*/
/*}*/
.error {
border-color: #f50000;
}
table.table td .add {
display: none;
}
</style>
<?php
use Brick\Money\Money;
$context = new \Brick\Money\Context\AutoContext();
$month = time();
$months[]=convertDate(date("M"));
$label_months [] = date("M")." ".date("Y");
$years[]= date("Y");
for ($i = 1; $i <= 11; $i++) {
$month = strtotime('last month', $month);
$months [] = convertDate(date("M", $month));
$years[] = date("Y", $month);
$label_months [] = date("M", $month)." ".date("Y", $month);
}
/**
** Retraits
**/
$date = date("Y");
$retraits_data[] = '';
$retraits_data =array();
for ($i = 1; $i <= 12; $i++) {
$retraits_query_mounth = array_filter($transactions, function ($trans) use ($i, $months ,$years){
$month = date("m",strtotime($trans->date));
$year = date("Y",strtotime($trans->date));
return $month == $months[$i-1] && $year == $years[$i-1] && $trans->type_transaction == 'retrait' ;
});
$retraits_data[] = sizeof($retraits_query_mounth);
}
$startDate = (new DateTime('01-'.$months[11].'-'.$years[11]))-> format('Y-m-d H:i:s');
$endDate = date_create_from_format ('m/Y',$months[0].'/'.$years[0])-> format('Y-m-d H:i:s');
$retraits = array_filter($transactions, function ($trans) use ($i, $endDate ,$startDate){
$date = strtotime($trans->date);
// return $date >= strtotime($startDate) && $date <= strtotime($endDate) && $trans->type == 'debit' ;
return $trans->type_transaction == 'retrait' ;
});
/**
** Dépots
**/
$date = date("Y");
$depots_data[] = '';
$depots_data =array();
for ($i = 1; $i <= 12; $i++) {
$depots_query_mounth= array_filter($transactions, function ($trans) use ($i, $months ,$years){
$month = date("m",strtotime($trans->date));
$year = date("Y",strtotime($trans->date));
return $month == $months[$i-1] && $year == $years[$i-1] && $trans->type_transaction == 'depot' ;
});
$depots_data[] = sizeof($depots_query_mounth);
}
$depots = array_filter($transactions, function ($trans) use ($i, $endDate ,$startDate){
$date = strtotime($trans->date);
// return $date >= strtotime($startDate) && $date <= strtotime($endDate) && $trans->type == 'credit' ;
return $trans->type_transaction == 'depot' ;
});
if($transactions!=false){
$transac=sizeof($transactions);
$array_transac = array();
$num = 0;
if ($transac > 0) {
foreach($transactions as $row) {
$num++;
$array_transac[] = $row->type_transaction;
}
$vals_transac = array_count_values($array_transac);
$pieChart = array();
foreach(array_keys($vals_transac) as $paramName) {
$color = dechex(rand(0x000000, 0xFFFFFF));
$trash = array("value" => $vals_transac[$paramName],
"color" => "#".$color,
"highlight" => "#".$color,
"label" => $paramName);
$pieChart[]= $trash;
}
}
}else{
$pieChart = array();
}
$fmt = new NumberFormatter( 'fr_FR', NumberFormatter::DECIMAL );
?>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
Wallet <?= $network . ' - ' .$country; ?>
</h1>
<?php
$site_url = base_url();
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">&times;</button>
<h4><i class="icon fa fa-check"></i> Success!</h4>
<?= $message; ?>
</div>
<?php
}
}
?>
</section>
<section class="content">
<div class="row">
<div class="col-lg-4 col-xs-6">
<div class="small-box bg-aqua">
<div class="inner">
<h3><?= $principal ?></h3>
<p><?= $this->lang->line('Solde Principal') ?></p>
</div>
<div class="icon">
<i class="ion ion-cash"></i>
</div>
</div>
</div>
<div class="col-lg-4 col-xs-6">
<div class="small-box bg-green">
<div class="inner">
<h3><?= $commission; ?></h3>
<p><?= $this->lang->line('Solde Commission') ?></p>
</div>
<div class="icon">
<i class="ion ion-cash"></i>
</div>
</div>
</div>
<div class="col-lg-4 col-xs-6">
<div class="small-box bg-yellow">
<div class="inner">
<h3><?= $totalCommissionBanque; ?></h3>
<p><?= $this->lang->line('Total commission de la banque') ?></p>
</div>
<div class="icon">
<i class="ion ion-cash"></i>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-4">
<div class="margin">
<button type="button" class="btn btn-primary btn-block" data-toggle="modal" data-target="#rechargeAccount"><?= $this->lang->line('recharge_hypervisor_account') ?> </button>
</div>
</div>
<div class="col-lg-4">
<div class="margin">
<a class="btn btn-info" href="<?= current_url().($network_id ? '?config=taxes' : '')?>"
style="width: 100%"><?= $this->lang->line('edit_tax') ?></a>
</div>
</div>
<div class="col-lg-4">
<div class="margin">
<a href="<?= current_url().($network_id ? '?config=paying_networks' : '')?>" class="btn btn-success"
style="width: 100%"><?= $this->lang->line('edit_paying_and_transmitting_networks') ?></a>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-3 col-xs-6">
<a class="small-box bg-yellow-active"
href="<?= current_url() . ($network_id ? '?config=user_wallet_wallet' : '') ?>">
<div class="inner">
<h5><?= $this->lang->line('config_user')?></h5>
<h4><?= $this->lang->line('config_ilink_user_wallet_wallet') ?></h4>
</div>
</a>
</div>
<div class="col-lg-3 col-xs-6">
<a class="small-box bg-yellow-active"
href="<?= current_url() . ($network_id ? '?config=user_wallet_carte' : '') ?>">
<div class="inner">
<h5><?= $this->lang->line('config_user')?></h5>
<h4><?= $this->lang->line('config_ilink_user_wallet_carte') ?></h4>
</div>
</a>
</div>
<div class="col-lg-3 col-xs-6">
<a class="small-box bg-yellow-active"
href="<?= current_url() . ($network_id ? '?config=user_wallet_cash' : '') ?>">
<div class="inner">
<h5><?= $this->lang->line('config_user')?></h5>
<h4><?= $this->lang->line('config_ilink_user_wallet_cash') ?></h4>
</div>
</a>
</div>
<div class="col-lg-3 col-xs-6">
<a class="small-box bg-yellow-active"
href="<?= current_url() . ($network_id ? '?config=user_carte_wallet' : '') ?>">
<div class="inner">
<h5><?= $this->lang->line('config_user')?></h5>
<h4><?= $this->lang->line('config_ilink_user_carte_wallet') ?></h4>
</div>
</a>
</div>
</div>
<div class="row">
<div class="col-lg-3 col-xs-6">
<a class="small-box bg-blue-active"
href="<?= current_url() . ($network_id ? '?config=agent_remove_cash' : '') ?>">
<div class="inner">
<h5><?= $this->lang->line('config_agent')?></h5>
<h4><?= $this->lang->line('config_ilink_agent_remove_cash') ?></h4>
</div>
</a>
</div>
<div class="col-lg-3 col-xs-6">
<a class="small-box bg-blue-active"
href="<?= current_url() . ($network_id ? '?config=agent_remove_carte_cash' : '') ?>">
<div class="inner">
<h5><?= $this->lang->line('config_agent')?></h5>
<h4><?= $this->lang->line('config_ilink_agent_remove_carte_cash') ?></h4>
</div>
</a>
</div>
<div class="col-lg-3 col-xs-6">
<a class="small-box bg-blue-active"
href="<?= current_url() . ($network_id ? '?config=agent_send_cash_canal' : '') ?>">
<div class="inner">
<h5><?= $this->lang->line('config_agent')?></h5>
<h4><?= $this->lang->line('config_ilink_agent_send_cash_canal') ?></h4>
</div>
</a>
</div>
<div class="col-lg-3 col-xs-6">
<a class="small-box bg-blue-active"
href="<?= current_url() . ($network_id ? '?config=agent_send_cash_carte' : '') ?>">
<div class="inner">
<h5><?= $this->lang->line('config_agent')?></h5>
<h4><?= $this->lang->line('config_ilink_agent_send_cash_carte') ?></h4>
</div>
</a>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="box box-success">
<div class="box-header with-border">
<h3 class="box-title"><?= $this->lang->line('Historique des 12 derniers mois'); ?></h3>
<div class="box-tools">
<a class="btn btn-success" href="<?= current_url().($network_id ? '?show=paying_networks' : '')?>">
<?= $this->lang->line('paying_and_transmitting_networks_accounts'); ?>
</a>
<a class="btn btn-primary" href="<?= current_url().($network_id ? '?history=transaction_ilink' : '')?>">
<?= $this->lang->line('transactions_historic'); ?>
</a>
<a class="btn btn-info" href="<?= current_url().($network_id ? '?history=recharge' : '')?>">
<?= $this->lang->line('recharge_historic'); ?>
</a>
</div>
</div>
<div class="box-body">
<div class="chart" id="chart">
<canvas id="barChart" style="height:230px"></canvas>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<div class="box box-danger">
<div class="box-header with-border">
<h3 class="box-title"><?= $this->lang->line("Parts dépots & retraits"); ?></h3>
</div>
<div class="box-body" id="chart2">
<canvas id="pieChart" style="height:250px"></canvas>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="box">
<div class="box-header">
<h3 class="box-title"><?= $this->lang->line('Commissions Superviseurs') ?></h3>
<div class="box-tools">
<a class="btn btn-primary" href="<?= current_url().($network_id ? '?history=commission_transfer' : '')?>">
<?= $this->lang->line('commission_transfer_historic'); ?>
</a>
<a class="btn btn-success" href="<?= current_url().($network_id ? '?history=balance_statement' : '')?>">
<?= $this->lang->line('balance_statement'); ?>
</a>
</div>
</div>
<div class="box-body" style="overflow-x:auto;">
<table id="example1" class="table table-bordered table-hover">
<thead>
<tr>
<?php
echo "<th>".$this->lang->line('Nom')."</th>
<th>".$this->lang->line('Solde Principal')."</th>
<th>".$this->lang->line('Solde Commission')."</th>
<th>".$this->lang->line('Commission banque')."</th>
<th>".$this->lang->line('DEPOT'). 's'."</th>
<th>".$this->lang->line('RETRAIT').'s'."</th>";
?>
</tr>
</thead>
<tbody>
<?php
if($superviseurs!=false){
foreach($superviseurs->result() as $row) {
$wallet = null;
foreach ($agentWalletInfos->result() as $value) {
if ($value->agent_id == $row->agent_id) {
$wallet = $value;
break;
}
}
$com = 0;
$princ = 0;
if($wallet) {
$com = $wallet->balance_com;
$princ = $wallet->balance_princ;
}
echo "<tr>
<td>".$row->lastname."</td>
<td>".Money::of(round($princ,2), $this->session->userdata('currency_code'),$context)->formatTo('fr_FR')."</td>
<td>".Money::of(round($com,2), $this->session->userdata('currency_code'),$context)->formatTo('fr_FR')."</td>";
$nb_depots = 0;
$nb_retraits = 0;
$commission_banque = 0;
foreach($depots as $depot){
if($depot->code_parrain == $row->member_code) {
$nb_depots ++;
$commission_banque+= $depot->commission_banque;
}
}
foreach($retraits as $retrait){
if($retrait->code_parrain == $row->member_code) {
$nb_retraits ++;
$commission_banque+= $retrait->commission_banque;
}
}
echo "<td>".Money::of(round($commission_banque,2), $this->session->userdata('currency_code'),$context)->formatTo('fr_FR')."</td>
<td>".$nb_depots."</td>
<td>".$nb_retraits."</td>
</tr>";
}
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="modal fade" id="rechargeAccount" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title"><?= $this->lang->line('recharge_hypervisor_account'); ?></h3>
</div>
<div class="modal-body">
<?php if ($walletPassword != null) { ?>
<form id="rechargeAccountForm">
<div class="form-group">
<label for="montant" class="col-form-label"><?= $this->lang->line('Montant') ?></label>
<input type="text" required class="form-control" id="montant" name="montant" >
</div>
<!-- <div class="form-group">-->
<!-- <label for="password" class="col-form-label">--><?php //echo $this->lang->line('mot de passe') ?><!--</label>-->
<!-- <input type="password" required class="form-control" name="password" id="password">-->
<!-- </div>-->
<div class="form-group">
<label><?= $this->lang->line('mot de passe') ?></label>
<div class="input-group" id="show_hide_password">
<input class="form-control" name="password" id="password" type="password">
<div class="input-group-addon">
<a href=""><i class="fa fa-eye-slash" aria-hidden="true"></i></a>
</div>
</div>
</div>
<div class="clearfix">
<a href="#" id="resetPassword" class="pull-right forgot-password" data-wallet_password_id="<?= $walletPassword->id ?>" data-network="<?= $network ?>" data-country="<?= $country ?>"
data-email="<?= $walletPassword->email ?>">
<?= $this->lang->line('i_forgot_password') ?>
</a>
</div>
</form>
<?php }else{ ?>
<div class="text-center">
<h4> <?= $this->lang->line('no_wallet_password') ?></h4>
<a href="<?= base_url('Hyperviseur_dash/walletPassword') ?>" alt="" class="btn btn-primary"><?= $this->lang->line('click_here') ?></a>
</div>
<?php } ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal"><?= $this->lang->line('Fermer'); ?></button>
<?php if ($walletPassword != null) { ?>
<button type="button" class="btn btn-primary" data-wallet_id="<?= $wallet_id ?>" data-salt="<?= $walletPassword->salt ?>" data-encrypted_password="<?= $walletPassword->encrypted_password ?>" id="rechargeWallet" >
<?= $this->lang->line('recharge'); ?>
</button>
<?php }?>
</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 src="<?= base_url('bower_components/moment/min/moment.min.js') ?>"></script>
<script src="<?= base_url('bower_components/bootstrap-daterangepicker/daterangepicker.js') ?>"></script>
<script src="<?= base_url('bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js') ?>"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>
<!-- ChartJS -->
<script src="<?= base_url('bower_components/chart.js/Chart.js') ?>"></script>
<script src="<?= base_url('bower_components/toastr/toastr.js') ?>"></script>
<script src="<?= base_url('dist/js/sweetalert2.js') ?>"></script>
<script src="https://cdn.jsdelivr.net/npm/autonumeric@4.5.4"></script>
<script>
$(function () {
$('#example1').DataTable();
anElement = new AutoNumeric('#montant', '', {digitGroupSeparator: ' ', decimalPlaces:'0', minimumValue : '1' , maximumValue: '99999999999999999999999999'});
$("#show_hide_password a").on('click', function(event) {
event.preventDefault();
if($('#show_hide_password input').attr("type") == "text"){
$('#show_hide_password input').attr('type', 'password');
$('#show_hide_password i').addClass( "fa-eye-slash" );
$('#show_hide_password i').removeClass( "fa-eye" );
}else if($('#show_hide_password input').attr("type") == "password"){
$('#show_hide_password input').attr('type', 'text');
$('#show_hide_password i').removeClass( "fa-eye-slash" );
$('#show_hide_password i').addClass( "fa-eye" );
}
});
// $('#example1').DataTable({
// "aLengthMenu": [[5, 10, 15, -1], [5, 10, 5, "All"]],
// "iDisplayLength": 5
// });
// $('#example2').DataTable({
// 'paging' : true,
// 'lengthChange': false,
// 'searching' : false,
// 'ordering' : true,
// 'info' : true,
// 'autoWidth' : false
// })
})
</script>
<script>
var areaChartData = {
labels : <?= json_encode($label_months) ?>,
datasets: [
{
label : 'Electronics',
fillColor : 'rgba(255, 162, 0, 1)',
strokeColor : 'rgba(255, 162, 0, 1)',
pointColor : 'rgba(255, 162, 0, 1)',
pointStrokeColor : '#ffa200',
pointHighlightFill : '#fff',
pointHighlightStroke: 'rgba(220,220,220,1)',
data: <?= json_encode($depots_data) ?>
},
{
label : 'Digital Goods',
fillColor : 'rgba(0, 187, 255, 1)',
strokeColor : 'rgba(0, 187, 255, 1)',
pointColor : '#00bbff',
pointStrokeColor : 'rgba(0, 187, 255, 1)',
pointHighlightFill : '#fff',
pointHighlightStroke: 'rgba(0, 187, 255, 1)',
data : <?= json_encode($retraits_data) ?>
}
]
};
var Pie = '<?= json_encode($pieChart) ?>';
if(Pie==='[]'){
var select = document.getElementById('chart2');
$(select.children).hide();
$(select).append("<p>Aucune transaction</p>");
}else{
Pie = JSON.parse(Pie);
}
</script>
<script>
toastr.options.closeButton = true;
toastr.options.closeMethod = 'fadeOut';
toastr.options.closeDuration = 5000;
toastr.options.closeEasing = 'swing';
$('#resetPassword').click(function () {
const wallet_password_id = $(this).data('wallet_password_id');
const network = $(this).data('network');
const country = $(this).data('country');
const email = $(this).data('email');
$.ajax({
url: '<?= base_url('Hyperviseur_dash/resetWalletPassword')?>',
type: 'POST',
dataType: 'json',
data: {
"wallet_password_id": wallet_password_id,
"email": email,
"network" : network ,
"country" : country
},
success: function (data) {
if(data=='200'){
Swal.fire({
icon: 'success',
title: "<?= $this->lang->line('password_has_been_reset')?>",
text:"<?= $this->lang->line('informations_updated')?>",
timer: 3000
}).then(()=>{
location.reload();
});
// alert("Les informations ont été mises à jour.") ? "" :
}else{
toastr.error("<?= $this->lang->line('error_message')?>" , "<?= $this->lang->line('request_error')?>");
}
},
error: function (resultat, statut, error) {
console.log(resultat + " " + error);
toastr.error("<?= $this->lang->line('error_message')?>" , "<?= $this->lang->line('request_error')?>");
}
});
});
$('#rechargeWallet').click(function () {
const wallet_id = $(this).data('wallet_id');
const salt = $(this).data('salt');
const encrypted_password = $(this).data('encrypted_password');
if ($('#rechargeAccountForm')[0].checkValidity()) {
const montant = anElement.getNumber(); //parseFloat($('#montant').val());
const password = $('#password').val();
$.ajax({
url: '<?= base_url('Hyperviseur_dash/recharge_wallet')?>',
type: 'POST',
dataType: 'json',
data: {
"wallet_id": wallet_id,
"montant": montant ,
"password": password,
"salt" : salt,
"encrypted_password" : encrypted_password
},
success: function (data) {
if(data=='200'){
Swal.fire({
icon: 'success',
title: "<?= $this->lang->line('account_recharged')?>",
text: "<?= $this->lang->line('informations_updated')?>",
timer: 3000
}).then(()=>{
location.reload();
});
// alert("Les informations ont été mises à jour.") ? "" :
}else if(data == '400'){
toastr.error("<?= $this->lang->line('incorrect_password')?>" , "<?= $this->lang->line('request_error')?>");
}else{
toastr.error("<?= $this->lang->line('error_message')?>" , "<?= $this->lang->line('request_error')?>");
}
},
error: function (resultat, statut, error) {
console.log(resultat + " " + error);
toastr.error("<?= $this->lang->line('error_message')?>" , "<?= $this->lang->line('request_error')?>");
}
});
} else {
$('#rechargeAccountForm')[0].reportValidity();
}
});
</script>
<!-- Page script -->
<script src="<?= base_url('dist/js/custom.js') ?>"></script>