backoffice/application/views/nano_health/hyper/infos_insurance_subscriptio...

519 lines
19 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/datatables.net-bs/css/dataTables.bootstrap.min.css') ?>">
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/css/bootstrap-multiselect.css">
<link rel="stylesheet" href="https://cdn.datatables.net/select/1.3.1/css/select.dataTables.min.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/jquery-ui/themes/base/jquery-ui.css') ?>">
<link rel="stylesheet" href="<?= base_url('bower_components/toastr/toastr.css') ?>">
<div class="content-wrapper">
<section class="content-header">
<h1 style="margin-bottom: 20px">
<?= $this->lang->line('subscriptions') . ' :: ' . $this->lang->line('subscription_detail') . ' - ' . $insurance_subscription_id; ?>
<div class="pull-right">
<?php if($subscription->state == 'UNDER_VALIDATION') { ?>
<button id="accept-subscription" class="btn btn-success" >
<?= $this->lang->line('accept') ?>
</button>
<button class="btn btn-danger" data-toggle="modal" data-target="#reject-modal">
<?= $this->lang->line('reject') ?>
</button>
<?php } ?>
</div>
</h1>
<?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;
// 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
$this->converter = new CurrencyConverter($provider);
$this->context = new AutoContext();
$fmt = new NumberFormatter('fr_FR', NumberFormatter::DECIMAL);
$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="box box-success">
<div class="box-header with-border">
<h3 class="box-title"><?= $this->lang->line('insured_infos')?></h3>
</div>
<div class="box-body row" style="overflow-x:auto;">
<div class="col-lg-6" style="padding-left: 25px;">
<table style="width: 100%">
<colgroup>
<col span="1" style="width: 30%;">
<col span="1" style="width: 70%;">
</colgroup>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><?= $this->lang->line('Nom'); ?></td>
<td align="center"><strong><?= $user->lastname ?? '' . $user->firstname ?? ''; ?></strong></td>
</tr>
<tr>
<td><?= $this->lang->line('Adresse')?></td>
<td align="center"><strong><?= $user->adresse ?></strong></td>
</tr>
<tr>
<td><?= $this->lang->line('Contact')?></td>
<td align="center"><strong><?= $user->phone." | ".$user->email ?></strong></td>
</tr>
</tbody>
</table>
</div>
<div class="col-lg-6" style="padding-left: 25px;">
<table style="width: 100%">
<colgroup>
<col span="1" style="width: 30%;">
<col span="1" style="width: 70%;">
</colgroup>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-green-active">
<div class="inner">
<h3><?= Money::of(round($subscription->total_bonus_amount, 2), $subscription->currency_code, $this->context)->formatTo('fr_FR') ?></h3>
<p><?= $this->lang->line('bonus_amount') ?></p>
</div>
<div class="icon">
<i class="ion ion-cash"></i>
</div>
</div>
</div>
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-red">
<div class="inner">
<h3><?= Money::of(round($subscription->bonus_amount, 2), $subscription->currency_code, $this->context)->formatTo('fr_FR') ?></h3>
<p><?= $this->lang->line('insured_bonus_amount') ?></p>
</div>
<div class="icon">
<i class="ion ion-cash"></i>
</div>
</div>
</div>
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-light-blue">
<div class="inner">
<h3> <?= $subscription->number_of_months ?> </h3>
<p><?= $this->lang->line('number_of_months') ?></p>
</div>
<div class="icon">
<i class="fa fa-clock-o"></i>
</div>
</div>
</div>
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-blue-active">
<div class="inner">
<h3 style="white-space: pre-wrap; font-size: 1.9em;"><?= $this->lang->line($subscription->state)?> </h3>
<p><?= $this->lang->line('Statut') ?></p>
</div>
<div class="icon">
<i class="fa fa-calendar"></i>
</div>
</div>
</div>
</div>
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title"><?= $this->lang->line('beneficiaries') ?></h3>
</div>
<div class="box-body" style="overflow-x:auto;">
<table id="example1" class="table table-bordered table-hover">
<thead>
<tr>
<th>#</th>
<th><?= $this->lang->line('Nom'); ?></th>
<th><?= $this->lang->line('gender'); ?></th>
<th><?= $this->lang->line('birth_date'); ?></th>
<th>Affiliation</th>
<th><?= $this->lang->line('bonus_amount'); ?></th>
<th>Images</th>
</tr>
</thead>
<tbody>
<?php
if (isset($beneficiaries)) {
foreach ($beneficiaries->result() as $i => $row) {
$bonus_amount = Money::of(round($row->bonus_amount, 2), $subscription->currency_code, $this->context)->formatTo('fr_FR');
echo "<tr>
<td>" . ($i+1) . "</td>
<td>" . $row->lastname.' '.$row->firstname . "</td>
<td>" . $row->gender . "</td>
<td>" . $row->birthdate . "</td>
<td>".$this->lang->line($row->affiliation)."</td>
<td>" . $bonus_amount. "</td>";
?>
<td>
<button class="btn btn-primary" data-target="<?= '#images-modal'.$i ?>" data-toggle="modal">
<?= $this->lang->line('show'); ?>
</button>
</td>
</tr>
<div class="modal fade" id="<?= 'images-modal'.$i ?>">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">Images des documents</h3>
</div>
<div class="modal-body">
<?php if($row->affiliation == 'CHILD') {
$birthdate_proof_doc = NANO_SANTE_SERVICE_URL . '/insurances-subscriptions-docs/'.$row->birthdate_proof_doc;
$birthdate_proof_doc_file = @fopen($birthdate_proof_doc ,'r');
$justice_doc = NANO_SANTE_SERVICE_URL . '/insurances-subscriptions-docs/'.$row->justice_doc;
$justice_doc_file = @fopen($justice_doc ,'r');
?>
<div class="row" style="margin-top: 10px">
<div class="col-sm-6 text-center">
<label><?= $this->lang->line('birthdate_proof_doc') ?></label>
<img src="<?= $birthdate_proof_doc_file ? $birthdate_proof_doc : base_url('images/broken.png') ?>"
alt="document_front" style="width: 100%;"/>
</div>
<div class="col-sm-6 text-center">
<label><?= $this->lang->line('justice_doc') ?></label>
<img src="<?= $justice_doc_file ? $justice_doc : base_url('images/broken.png')?>"
alt="document_back" style="width: 100%;"/>
</div>
</div>
<?php } else {
$marriage_certificate_doc = NANO_SANTE_SERVICE_URL . '/insurances-subscriptions-docs/'.$row->marriage_certificate_doc;
$marriage_certificate_doc_file = @fopen($marriage_certificate_doc,'r');
$id_document_front = NANO_SANTE_SERVICE_URL . '/insurances-subscriptions-docs/'.$row->id_document_front;
$id_document_front_file = @fopen($id_document_front ,'r');
$id_document_back = NANO_SANTE_SERVICE_URL . '/insurances-subscriptions-docs/'.$row->id_document_back;
$id_document_back_file = @fopen($id_document_front ,'r');
?>
<div class="row text-center" style="justify-content: center; display: flex;">
<div class="col-sm-6">
<label><?= $this->lang->line('marriage_certificate_doc') ?></label>
<div>
<img src="<?= $marriage_certificate_doc_file ? $marriage_certificate_doc : base_url('images/broken.png') ?>"
alt="user_image" width="100%"/>
</div>
</div>
</div>
<div class="row" style="margin-top: 10px">
<div class="col-sm-6 text-center">
<label><?= $this->lang->line('id_document_image_front') ?></label>
<img src="<?= $id_document_front_file ? $id_document_front : base_url('images/broken.png') ?>"
alt="document_front" style="width: 100%;"/>
</div>
<div class="col-sm-6 text-center">
<label><?= $this->lang->line('id_document_image_back') ?></label>
<img src="<?= $id_document_back_file ? $id_document_back : base_url('images/broken.png')?>"
alt="document_back" style="width: 100%;"/>
</div>
</div>
<?php } ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal"><?php echo $this->lang->line('Fermer'); ?></button>
</div>
</div>
</div>
</div>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
<div class="modal fade" id="reject-modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title"><?= $this->lang->line('reject_subscription') ?></h4>
</div>
<div class="modal-body">
<form id="reject-form">
<div class="row">
<div class="col-lg-12">
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('reject_reason'); ?></label>
<textarea required class="form-control" rows="5" name="reason"></textarea>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button class="btn btn-danger pull-left"
id="reject-subscription"><?= $this->lang->line('Confirmer'); ?></button>
<button type="button" class="btn btn-default pull-right"
data-dismiss="modal"><?= $this->lang->line('Fermer'); ?></button>
</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/jquery-ui/jquery-ui.js') ?>"></script>
<script src="<?= base_url('bower_components/moment/min/moment.min.js') ?>"></script>
<script src="https://cdn.datatables.net/select/1.3.1/js/dataTables.select.min.js"></script>
<script src="<?= base_url('bower_components/toastr/toastr.js') ?>"></script>
<script src="<?= base_url('dist/js/sweetalert2.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 type="text/javascript">
toastr.options.closeButton = true;
toastr.options.closeMethod = 'fadeOut';
toastr.options.closeDuration = 5000;
toastr.options.closeEasing = 'swing';
$('#download-notice').click(function(e) {
e.preventDefault(); //stop the browser from following
window.open("<?= WALLET_SERVICE_URL.'/subscriptions_docs/'.$insurance_subscription_id.'.pdf'?>", '_blank');
});
const format = "<?=$this->session->userdata('site_lang')?>" === 'french' ? 'fr' : 'en';
moment.updateLocale(moment.locale(format), {invalidDate: ""}); // Blank text when is invalid date
var table = $('#example1').DataTable(
{
order: [[1, 'asc']],
dom: 'Bfrtip',
"buttons": [
'pageLength',
{
"extend": 'excelHtml5',
title: "<?= $this->lang->line('taxes_list') . ' :: ' . $this->lang->line('subscription_detail') . ' - ' . $insurance_subscription_id?>",
// exportOptions: {
// columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
// },
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].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, ""));
}
}
}
},
},
{
extend: 'csvHtml5',
title: "<?= $this->lang->line('taxes_list') . ' :: ' . $this->lang->line('subscription_detail') . ' - ' . $insurance_subscription_id?>",
},
{
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'LEGAL',
title: "<?= $this->lang->line('taxes_list') . ' :: ' . $this->lang->line('subscription_detail') . ' - ' . $insurance_subscription_id?>",
},
// 'colvis'
]
}
);
$('#accept-subscription').click(function() {
$.ajax({
url: '<?= base_url('NanoHealthController/validateSubscription')?>',
type: 'POST',
dataType: 'json',
data: {
"subscription_id": "<?=$subscription->id ?>",
"agent_id": "<?= $this->session->userdata('agent_id') ?>",
},
success: function (data) {
// console.log('data',data);
if(data.status === 200){
Swal.fire({
icon: 'success',
title: "<?= $this->lang->line('subscription_accepted')?>",
text:"<?= $this->lang->line('informations_updated')?>",
timer: 3000
}).then(()=>{
location.reload();
});
// alert("Les informations ont été mises à jour.") ? "" :
}else{
toastr.error(data.error , "<?= $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')?>");
}
});
});
$('#reject-subscription').click(function () {
if ($('#reject-form')[0].checkValidity()) {
let reason = $("textarea[name=reason]").val();
if(reason.length > 500 ){
toastr.warning( "<?= $this->lang->line('reason_rule')?>", "<?= $this->lang->line('management_rule')?>");
}else{
$.ajax({
url: '<?php echo base_url('NanoHealthController/rejectSubscription')?>',
type: 'POST',
dataType: 'json',
data: {
"subscription_id": "<?=$subscription->id ?>",
"agent_id": "<?= $this->session->userdata('agent_id') ?>",
"reason": reason
},
success: function (data) {
if (data.status === 200) {
Swal.fire({
icon: 'success',
title: "<?php echo $this->lang->line('subscription_rejected')?>",
text: "<?php echo $this->lang->line('informations_updated')?>",
timer: 3000
}).then(() => {
location.reload();
});
} else {
toastr.error(data.error, "<?php echo $this->lang->line('request_error')?>");
}
},
error: function (resultat, statut, error) {
console.log(resultat + " " + error);
toastr.error("<?php echo $this->lang->line('error_message')?>", "<?php echo $this->lang->line('request_error')?>");
}
});
}
} else {
$('#reject-form')[0].reportValidity();
}
});
</script>