backoffice/application/views/nano_health/hyper/gestion_wallet.php

1293 lines
47 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/datatables.net-bs/css/dataTables.bootstrap.min.css') ?>">
<link rel="stylesheet" href="<?php echo base_url('bower_components/toastr/toastr.css') ?>">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto|Varela+Round|Open+Sans">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="<?= base_url('dist/css/custom/levels-table.css') ?>">
<?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 = $this->db->query("SELECT id FROM infos_transaction
WHERE network_id='" . $network_id . "'
AND MONTH(date_created) = '" . $months[$i - 1] . "'
AND YEAR(date_created) = '" . $years[$i - 1] . "'
AND type_transac='debit'");
$retraits_data[] = $retraits_query_mounth->num_rows();
}
$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 = $this->db->query("SELECT * FROM infos_transaction
WHERE network_id='" . $network_id . "'
AND date_created BETWEEN '" . $startDate . "' AND '" . $endDate . "'
AND type_transac='debit'");
/**
** Dépots
**/
$date = date("Y");
$depots_data[] = '';
$depots_data = array();
for ($i = 1; $i <= 12; $i++) {
$depots_query_mounth = $this->db->query("SELECT id FROM infos_transaction
WHERE network_id='" . $network_id . "'
AND MONTH(date_created) = '" . $months[$i - 1] . "'
AND YEAR(date_created) = '" . $years[$i - 1] . "'
AND type_transac='credit'");
$depots_data[] = $depots_query_mounth->num_rows();
}
$depots = $this->db->query("SELECT * FROM infos_transaction
WHERE network_id='" . $network_id . "'
AND date_created BETWEEN '" . $startDate . "' AND '" . $endDate . "'
AND type_transac='credit'");
//if ($transactions != false) {
// $transac = $transactions->num_rows();
// $array_transac = array();
// $num = 0;
// if ($transac > 0) {
// foreach ($transactions->result() as $row) {
// $num++;
// $array_transac[] = $row->type_transac;
// }
// $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();
//}
?>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
<?= $this->lang->line('Gestion des wallets'). ' '. $network .' - '.$country; ?>
</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">&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>
<div class="row">
<div class="margin">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal-update"
style="width: 100%"><?= $this->lang->line('Modifier la configuration') ?></button>
</div>
</div>
<div class="row centered">
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-red-active">
<div class="inner">
<h3><?= $this->lang->line($nh_config->provider_billing_period ?? ''); ?></h3>
<p><?= $this->lang->line('provider_billing_period') ?></p>
</div>
<div class="icon">
<i class="ion ion-ios-timer"></i>
</div>
</div>
</div>
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-aqua-active">
<div class="inner">
<h3><?= $nh_config->max_number_of_beneficiaries ?? ''; ?></h3>
<p><?= $this->lang->line('max_number_of_beneficiaries') ?> </p>
</div>
<div class="icon">
<i class="fa fa-sort-numeric-desc"></i>
</div>
</div>
</div>
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-aqua-active">
<div class="inner">
<h3><?= $nh_config->age_limit_of_child_beneficiary ?? ''; ?></h3>
<p><?= $this->lang->line('age_limit_of_child_beneficiary') ?> </p>
</div>
<div class="icon">
<i class="ion ion-android-calendar"></i>
</div>
</div>
</div>
<div class="col-lg-3 col-xs-6">
<div class="small-box bg-orange">
<div class="inner">
<h3><?= Money::of(round($nh_config->coverage_limit_per_insured_per_year ?? 0, 2), $curreny_code, $context)->formatTo('fr_FR'); ?></h3>
<p><?= $this->lang->line('coverage_limit_per_insured_per_year') ?> </p>
</div>
<div class="icon">
<i class="ion ion-cash"></i>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-2 col-xs-6">
<div class="small-box bg-green-active">
<div class="inner">
<h3><?= $nh_config->current_affection_percentage_insurer ?? ''; ?><sup style="font-size: 20px">%</sup></h3>
<p><?= $this->lang->line('current_affection').' : '.$this->lang->line('percentage_insurer') ?></p>
</div>
<div class="icon">
<i class="ion ion-pie-graph"></i>
</div>
</div>
</div>
<div class="col-lg-2 col-xs-6">
<div class="small-box bg-green-active">
<div class="inner">
<h3><?= $nh_config->current_affection_percentage_insured ?? ''; ?><sup style="font-size: 20px">%</sup></h3>
<p><?= $this->lang->line('current_affection').' : '.$this->lang->line('percentage_insured') ?></p>
</div>
<div class="icon">
<i class="ion ion-pie-graph"></i>
</div>
</div>
</div>
<div class="col-lg-2 col-xs-6">
<div class="small-box bg-light-blue-active">
<div class="inner">
<h3><?= $nh_config->long_term_affection_percentage_insurer ?? ''; ?><sup style="font-size: 20px">%</sup></h3>
<p><?= $this->lang->line('long_term_affection').' : '.$this->lang->line('percentage_insurer') ?></p>
</div>
<div class="icon">
<i class="ion ion-pie-graph"></i>
</div>
</div>
</div>
<div class="col-lg-2 col-xs-6">
<div class="small-box bg-light-blue-active">
<div class="inner">
<h3><?= $nh_config->long_term_affection_percentage_insured ?? ''; ?><sup style="font-size: 20px">%</sup></h3>
<p><?= $this->lang->line('long_term_affection').' : '.$this->lang->line('percentage_insured') ?></p>
</div>
<div class="icon">
<i class="ion ion-pie-graph"></i>
</div>
</div>
</div>
<div class="col-lg-2 col-xs-6">
<div class="small-box bg-aqua">
<div class="inner">
<h3><?= $nh_config->exoneration_percentage_insurer ?? ''; ?><sup style="font-size: 20px">%</sup></h3>
<p><?= $this->lang->line('exoneration').' : '.$this->lang->line('percentage_insurer') ?></p>
</div>
<div class="icon">
<i class="ion ion-pie-graph"></i>
</div>
</div>
</div>
<div class="col-lg-2 col-xs-6">
<div class="small-box bg-aqua">
<div class="inner">
<h3><?= $nh_config->exoneration_percentage_insured ?? ''; ?><sup style="font-size: 20px">%</sup></h3>
<p><?= $this->lang->line('exoneration').' : '.$this->lang->line('percentage_insured') ?></p>
</div>
<div class="icon">
<i class="ion ion-pie-graph"></i>
</div>
</div>
</div>
</div>
<div class="row centered">
<div class="col-lg-6 col-xs-12">
<div class="box">
<div class="box-header">
<h3 class="box-title"><?= $this->lang->line('years_price_grid') ?></h3>
</div>
<div class="box-body" style="overflow-x:auto;">
<table class="table table-bordered" >
<thead>
<tr>
<th width="20"><?= $this->lang->line('min_age')?></th>
<th width="20"><?= $this->lang->line('max_age') ?> </th>
<th><?= $this->lang->line('markup_percentage') ; ?></th>
</tr>
</thead>
<tbody>
<?php
if(isset($years_prices_grid)){
foreach($years_prices_grid->result() as $i => $row) { ?>
<tr>
<td><?= $row->min_age ?></td>
<td><?= $row->max_age ?></td>
<td><?= $row->markup_percentage.'%' ?></td>
</tr>
<?php
}
}
?>
</tbody>
</table>
<button type="button" class="btn btn-primary btn-block" style="margin-top: 15px" data-toggle="modal" data-target="#modal-years-grid" >
<b><?= $this->lang->line('edit_years_prices_grid'); ?></b>
</button>
</div>
</div>
</div>
<div class="col-lg-6 col-xs-12">
<div class="box">
<div class="box-header">
<h3 class="box-title"><?= $this->lang->line('months_price_grid') ?></h3>
</div>
<div class="box-body" style="overflow-x:auto;">
<table class="table table-bordered" >
<thead>
<tr>
<th width="50"><?= $this->lang->line('number_of_months') ?> </th>
<th><?= $this->lang->line('min_amount') ?> </th>
</tr>
</thead>
<tbody>
<?php
if(isset($months_prices_grid)){
foreach($months_prices_grid->result() as $i => $row) { ?>
<tr>
<td><?= $row->number_of_months ?></td>
<td><?= Money::of(round($row->min_amount, 2), $curreny_code, $context)->formatTo('fr_FR'); ?></td>
</tr>
<?php
}
}
?>
</tbody>
</table>
<button type="button" class="btn btn-primary btn-block" style="margin-top: 15px" data-toggle="modal" data-target="#modal-months-grid" >
<b><?= $this->lang->line('edit_months_prices_grid'); ?></b>
</button>
</div>
</div>
</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('subscriptions_of_the_last_12_months'); ?></h3>
<div class="box-tools">
<a class="btn btn-primary" href="<?= current_url().($network_id ? '?id='.$network_id . '&history=subscriptions' : '')?>">
<?= $this->lang->line('subscriptions_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-lg-7">
<div class="box">
<div class="box-header">
<h3 class="box-title"><?= $this->lang->line('list_of_acts') ?></h3>
<div class="box-tools">
<button class="btn btn-success" id="addAct">
<?= $this->lang->line('add_act'); ?>
</button>
</div>
</div>
<div class="box-body" style="overflow-x:auto;">
<table id="example1" class="table table-bordered table-hover">
<thead>
<tr>
<?php
echo "<th width='5'>#</th>
<th>".$this->lang->line('Nom')."</th>
<th>".$this->lang->line('billing_type')."</th>
<th>".$this->lang->line('authorization_type')."</th>
<th>Action</th>";
?>
</tr>
</thead>
<tbody>
<?php
if(isset($acts)){
foreach($acts->result() as $i => $row) { ?>
<tr>
<td><?= $i+1 ?></td>
<td><?= $row->name ?></td>
<td><?= $this->lang->line($row->billing_type); ?></td>
<td><?= $this->lang->line($row->authorization_type); ?></td>
<td>
<button class='btn btn-success editAct' data-id="<?=$row->id?>" data-name="<?=$row->name?>" data-billing_type="<?=$row->billing_type?>"
data-authorization_type="<?=$row->authorization_type?>" >
<i class='fa fa-edit'></i>
</button>
<button data-toggle='modal' class='btn btn-danger deleteAct' data-id="<?=$row->id?>" >
<i class='fa fa-trash'></i>
</button>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-lg-5">
<div class="box">
<div class="box-header">
<h3 class="box-title"><?= $this->lang->line('provider_classes') ?></h3>
<div class="box-tools">
<button class="btn btn-success" id="add-class">
<?= $this->lang->line('add_provider_class'); ?>
</button>
</div>
</div>
<div class="box-body" style="overflow-x:auto;">
<table id="provider_classes" class="table table-bordered table-hover">
<thead>
<tr>
<?php
echo "<th width='5'>#</th>
<th>".$this->lang->line('Nom')."</th>
<th>Action</th>";
?>
</tr>
</thead>
<tbody>
<?php
if(isset($provider_classes)){
foreach($provider_classes->result() as $i => $row) { ?>
<tr>
<td><?= $i+1 ?></td>
<td><?= $row->name ?></td>
<td>
<button class='btn btn-success edit-class' data-id="<?=$row->id?>" data-name="<?=$row->name?>">
<i class='fa fa-edit'></i>
</button>
<button data-toggle='modal' class='btn btn-danger delete-class' data-id="<?=$row->id?>" >
<i class='fa fa-trash'></i>
</button>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-update">
<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>
<h3 class="modal-title"><?= $this->lang->line('Configuration du wallet'); ?></h3>
</div>
<div class="modal-body">
<form id="walletForm">
<div class="form-group">
<label for="nom"
class="col-form-label"><?= $this->lang->line('provider_billing_period'); ?></label>
<select class="form-control" name="provider_billing_period" required>
<?php $array = array_values($provider_billing_periods);
foreach ($array as $value) { ?>
<option value="<?=$value?>" <?= $value === ($nh_config->provider_billing_period ?? '') ? 'selected' : '' ?> > <?=$this->lang->line($value)?> </option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('max_number_of_beneficiaries'); ?></label>
<input type="number" min="0" max="9" required class="form-control"
name="max_number_of_beneficiaries" value="<?= $nh_config->max_number_of_beneficiaries ?? 0 ?>">
</div>
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('age_limit_of_child_beneficiary'); ?></label>
<input type="number" min="0" max="99" required class="form-control"
name="age_limit_of_child_beneficiary" value="<?= $nh_config->age_limit_of_child_beneficiary ?? 0 ?>">
</div>
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('coverage_limit_per_insured_per_year'); ?></label>
<input type="number" min="0" step="0.01" required class="form-control"
name="coverage_limit_per_insured_per_year" value="<?= $nh_config->coverage_limit_per_insured_per_year ?? 0 ?>">
</div>
<div class="form-group" style="margin-top: 40px">
<label class="col-form-label"><?= $this->lang->line('current_affection').' : '.$this->lang->line('percentage_insurer') . ' (%)'; ?></label>
<input type="number" min="0" step=".01" required class="form-control"
name="current_affection_percentage_insurer" value="<?= $nh_config->current_affection_percentage_insurer ?? 0 ?>">
</div>
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('current_affection').' : '.$this->lang->line('percentage_insured') . ' (%)'; ?></label>
<input type="number" min="0" step=".01" required class="form-control"
name="current_affection_percentage_insured" value="<?= $nh_config->current_affection_percentage_insured ?? 0 ?>">
</div>
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('long_term_affection').' : '.$this->lang->line('percentage_insurer') . ' (%)'; ?></label>
<input type="number" min="0" step=".01" required class="form-control"
name="long_term_affection_percentage_insurer" value="<?= $nh_config->long_term_affection_percentage_insurer ?? 0 ?>">
</div>
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('long_term_affection').' : '.$this->lang->line('percentage_insured') . ' (%)'; ?></label>
<input type="number" min="0" step=".01" required class="form-control"
name="long_term_affection_percentage_insured" value="<?= $nh_config->long_term_affection_percentage_insured ?? 0 ?>">
</div>
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('exoneration').' : '.$this->lang->line('percentage_insurer') . ' (%)'; ?></label>
<input type="number" min="0" step=".01" required class="form-control"
name="exoneration_percentage_insurer" value="<?= $nh_config->exoneration_percentage_insurer ?? 0 ?>">
</div>
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('exoneration').' : '.$this->lang->line('percentage_insured') . ' (%)'; ?></label>
<input type="number" min="0" step=".01" required class="form-control"
name="exoneration_percentage_insured" value="<?= $nh_config->exoneration_percentage_insured ?? 0 ?>">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left"
data-dismiss="modal"><?= $this->lang->line('Fermer'); ?></button>
<button type="button" id="updateWallet" class="btn btn-primary"><?= $this->lang->line('save'); ?></button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-years-grid">
<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>
<h3 class="modal-title"><?php echo $this->lang->line('edit_years_prices_grid'); ?></h3>
</div>
<div class="modal-body">
<form id="yearsGridForm">
<div class="form-group" style="overflow-x:auto;">
<div class="table-title">
<div class="row">
<div class="col-sm-8">
</div>
<div class="col-sm-4">
<button type="button" class="btn btn-info add-new new1"><i
class="fa fa-plus"></i> <?php echo $this->lang->line('new_level'); ?>
</button>
</div>
</div>
</div>
<table id="years_prices_grid" class="table table-bordered">
<thead>
<tr>
<th><?= $this->lang->line('min_age')?></th>
<th><?= $this->lang->line('max_age') ?> </th>
<th><?= $this->lang->line('markup_percentage') ; ?> (%) </th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php
if (isset($years_prices_grid)) {
foreach ($years_prices_grid->result() as $row) { ?>
<tr>
<td><?= $row->min_age ?></td>
<td><?= $row->max_age ?></td>
<td><?= $row->markup_percentage?></td>
<td>
<a class="add add1" title="Add" data-toggle="tooltip"><i class="material-icons">&#xE03B;</i></a>
<a class="edit edit1" title="Edit" data-toggle="tooltip"><i class="material-icons">&#xE254;</i></a>
<a class="delete delete1" title="Delete" data-toggle="tooltip"><i class="material-icons">&#xE872;</i></a>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left"
data-dismiss="modal"><?php echo $this->lang->line('Fermer'); ?></button>
<button type="button" id="updateYearsGrid"
class="btn btn-primary"><?php echo $this->lang->line('save'); ?></button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-months-grid">
<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>
<h3 class="modal-title"><?php echo $this->lang->line('edit_months_prices_grid'); ?></h3>
</div>
<div class="modal-body">
<form id="monthsGridForm">
<div class="form-group" style="overflow-x:auto;">
<div class="table-title">
<div class="row">
<div class="col-sm-8">
</div>
<div class="col-sm-4">
<button type="button" class="btn btn-info add-new new2"><i
class="fa fa-plus"></i> <?php echo $this->lang->line('new_level'); ?>
</button>
</div>
</div>
</div>
<table id="months_prices_grid" class="table table-bordered">
<thead>
<tr>
<th><?= $this->lang->line('number_of_months') ?> </th>
<th><?= $this->lang->line('min_amount') ?> </th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php
if (isset($months_prices_grid)) {
foreach ($months_prices_grid->result() as $row) { ?>
<tr>
<td><?= $row->number_of_months ?></td>
<td><?= $row->min_amount ?></td>
<td>
<a class="add add2" title="Add" data-toggle="tooltip"><i class="material-icons">&#xE03B;</i></a>
<a class="edit edit2" title="Edit" data-toggle="tooltip"><i class="material-icons">&#xE254;</i></a>
<a class="delete delete2" title="Delete" data-toggle="tooltip"><i class="material-icons">&#xE872;</i></a>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left"
data-dismiss="modal"><?php echo $this->lang->line('Fermer'); ?></button>
<button type="button" id="updateMonthsGrid"
class="btn btn-primary"><?php echo $this->lang->line('save'); ?></button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal-act">
<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>
<h3 class="modal-title"><?= $this->lang->line('add_act'); ?></h3>
</div>
<form id="actForm">
<div class="modal-body">
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('Nom'); ?></label>
<input type="text" required class="form-control input-lg" name="name">
</div>
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('billing_type'); ?></label>
<select class="form-control input-lg" name="billing_type" required>
<?php $array = array_values($billing_types);
foreach ($array as $value) { ?>
<option value="<?=$value?>" > <?=$this->lang->line($value)?> </option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('authorization_type'); ?></label>
<select class="form-control input-lg" name="authorization_type" required>
<?php $array = array_values($authorization_types);
foreach ($array as $value) { ?>
<option value="<?=$value?>" > <?=$this->lang->line($value)?> </option>
<?php } ?>
</select>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left"
data-dismiss="modal"><?= $this->lang->line('Fermer'); ?></button>
<button type="submit" id="updateWallet" class="btn btn-primary"><?= $this->lang->line('save'); ?></button>
</div>
</form>
</div>
</div>
</div>
<div class="modal fade" id="modal-class">
<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>
<h3 class="modal-title"><?= $this->lang->line('add_provider_class'); ?></h3>
</div>
<form id="class-form">
<div class="modal-body">
<div class="form-group">
<label class="col-form-label"><?= $this->lang->line('Nom'); ?></label>
<input type="text" required class="form-control input-lg" name="name">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left"
data-dismiss="modal"><?= $this->lang->line('Fermer'); ?></button>
<button type="submit" id="updateWallet" class="btn btn-primary"><?= $this->lang->line('save'); ?></button>
</div>
</form>
</div>
</div>
</div>
<?php $this->load->view('include/delete_modal',['title' => $this->lang->line('delete_of_act')]) ?>
<?php $this->load->view('include/delete_modal',['title' => $this->lang->line('delete_provider_class'), 'id' => 'class']) ?>
<?php $this->load->view('include/loader') ?>
</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>
<scriptf
src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></scriptf>
<!-- 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>
$(function () {
$('#example1').DataTable();
$('#provider_classes').DataTable();
})
</script>
<script>
toastr.options.closeButton = true;
toastr.options.closeMethod = 'fadeOut';
toastr.options.closeDuration = 5000;
toastr.options.closeEasing = 'swing';
let config_id = "<?=$config_id?>";
var selectedActId = null;
var selectedClassId = null;
$('#updateWallet').click(function () {
var network_id = $(this).data('network-id');
if ($('#walletForm')[0].checkValidity()) {
var current_affection_percentage_insurer = parseFloat($('input[name=current_affection_percentage_insurer]').val());
var current_affection_percentage_insured = parseFloat($('input[name=current_affection_percentage_insured]').val());
var long_term_affection_percentage_insurer = parseFloat($('input[name=long_term_affection_percentage_insurer]').val());
var long_term_affection_percentage_insured = parseFloat($('input[name=long_term_affection_percentage_insured]').val());
var exoneration_percentage_insurer = parseFloat($('input[name=exoneration_percentage_insurer]').val());
var exoneration_percentage_insured = parseFloat($('input[name=exoneration_percentage_insured]').val());
if( (current_affection_percentage_insurer + current_affection_percentage_insured) !== 100){
toastr.error("<?= $this->lang->line('current_affection_rule')?>", "<?= $this->lang->line('management_rule')?>");
}else if( (long_term_affection_percentage_insurer + long_term_affection_percentage_insured) !== 100){
toastr.error("<?= $this->lang->line('long_term_affection_rule')?>", "<?= $this->lang->line('management_rule')?>");
}else if( (exoneration_percentage_insurer + exoneration_percentage_insured) !== 100){
toastr.error("<?= $this->lang->line('exoneration_rule')?>", "<?= $this->lang->line('management_rule')?>");
}else{
$.ajax({
url: '<?= base_url('Gestion/config_wallet/update')?>',
type: 'POST',
dataType: 'json',
data: {
"id_config": config_id,
"provider_billing_period": $("select[name=provider_billing_period]").val(),
"max_number_of_beneficiaries": $("input[name=max_number_of_beneficiaries]").val(),
"age_limit_of_child_beneficiary": $("input[name=age_limit_of_child_beneficiary]").val(),
"coverage_limit_per_insured_per_year": $("input[name=coverage_limit_per_insured_per_year]").val(),
"current_affection_percentage_insurer": current_affection_percentage_insurer,
"current_affection_percentage_insured": current_affection_percentage_insured,
"long_term_affection_percentage_insurer": long_term_affection_percentage_insurer,
"long_term_affection_percentage_insured": long_term_affection_percentage_insured,
"exoneration_percentage_insurer": exoneration_percentage_insurer,
"exoneration_percentage_insured": exoneration_percentage_insured,
"type" : "ilink_sante"
},
success: function (data) {
if(data==='200'){
Swal.fire({
icon: 'success',
title: "<?= $this->lang->line('wallet_update')?>",
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')?>");
}
});
}
} else {
$('#walletForm')[0].reportValidity();
}
});
$('#updateYearsGrid').click(function () {
if ($('#yearsGridForm')[0].checkValidity()) {
// Paliers de tarifs
var grid = [];
$('#years_prices_grid tr').has('td').each(function (i, el) {
var arrayItem = {};
var row = [];
$('td', $(this)).each(function (index, item) {
row.push(parseFloat($(item).html()));
});
arrayItem.nh_network_config_id = config_id
arrayItem.min_age = row[0]
arrayItem.max_age = row[1];
arrayItem.markup_percentage = row[2];
grid.push(arrayItem);
});
$.ajax({
url: '<?php echo base_url('NanoHealthController/updateConfigYearsPricesGrid')?>',
type: 'POST',
dataType: 'json',
data: {
"config_id": config_id,
"grid": grid,
},
success: function (data) {
if (data === '200') {
Swal.fire({
icon: 'success',
title: "<?php echo $this->lang->line('wallet_update')?>",
text: "<?php echo $this->lang->line('informations_updated')?>",
timer: 3000
}).then(() => {
location.reload();
});
} else {
toastr.error("<?php echo $this->lang->line('error_message')?>", "<?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 {
$('#yearsGridForm')[0].reportValidity();
}
});
$('#updateMonthsGrid').click(function () {
if ($('#monthsGridForm')[0].checkValidity()) {
// Paliers de tarifs
var grid = [];
//
$('#months_prices_grid tr').has('td').each(function (i, el) {
var arrayItem = {};
var row = [];
$('td', $(this)).each(function (index, item) {
row.push(parseFloat($(item).html()));
});
arrayItem.nh_network_config_id = config_id
arrayItem.number_of_months = row[0];
arrayItem.min_amount = row[1];
grid.push(arrayItem);
});
$.ajax({
url: '<?php echo base_url('NanoHealthController/updateConfigMonthsPricesGrid')?>',
type: 'POST',
dataType: 'json',
data: {
"config_id": config_id,
"grid": grid,
},
success: function (data) {
if (data === '200') {
Swal.fire({
icon: 'success',
title: "<?php echo $this->lang->line('wallet_update')?>",
text: "<?php echo $this->lang->line('informations_updated')?>",
timer: 3000
}).then(() => {
location.reload();
});
} else {
toastr.error("<?php echo $this->lang->line('error_message')?>", "<?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 {
$('#monthsGridForm')[0].reportValidity();
}
});
$("#actForm").submit(function( event ) {
$.ajax({
url: '<?php echo base_url('NanoHealthController/storeAct')?>',
type: 'POST',
dataType: 'json',
data: {
"config_id": config_id,
"id" : selectedActId,
"name": $("input[name='name']",this).val(),
"billing_type": $("select[name='billing_type'] :selected",this).val(),
"authorization_type": $("select[name='authorization_type'] :selected",this).val(),
},
success: function (data) {
if (data === '200') {
Swal.fire({
icon: 'success',
title: "<?php echo $this->lang->line('wallet_update')?>",
text: "<?php echo $this->lang->line('informations_updated')?>",
timer: 3000
}).then(() => {
location.reload();
});
} else {
toastr.error("<?php echo $this->lang->line('error_message')?>", "<?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')?>");
}
});
event.preventDefault();
});
$('.editAct').click(function (){
selectedActId = $(this).data('id');
$("#modal-act h3").html("<?=$this->lang->line('edit_act')?>");
$("#actForm input[name='name']").val($(this).data('name'));
$("#actForm select[name='billing_type']").val($(this).data('billing_type'));
$("#actForm select[name='authorization_type']").val($(this).data('authorization_type'));
$('#modal-act').modal('show');
});
$('#addAct').click(function (){
selectedActId = null;
$("#modal-act h3").html("<?=$this->lang->line('add_act')?>");
$("#actForm input[name='name']").val(null);
$("#actForm select[name='billing_type']").prop('selectedIndex',0);
$("#actForm select[name='authorization_type']").prop('selectedIndex',0);
$('#modal-act').modal('show');
});
$('.deleteAct').click(function () {
selectedActId = $(this).data('id');
$('#delete-modal').modal('show');
});
$("#delete-btn").click(function () {
$.ajax({
url: '<?php echo base_url('NanoHealthController/deleteAct')?>',
type: 'post',
data: {id: selectedActId},
dataType: 'json',
success: function (data) {
if(data.code === 200){
Swal.fire({
icon: 'success',
title: "<?= $this->lang->line('act_deleted')?>",
text:"<?= $this->lang->line('informations_updated')?>",
timer: 3000
}).then(()=>{
location.reload();
});
}else{
toastr.error(data.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')?>");
}
});
event.preventDefault();
});
// Classes de prestataires
$('#add-class').click(function (){
selectedClassId = null;
$("#modal-class h3").html("<?=$this->lang->line('add_provider_class')?>");
$("#class-form input[name='name']").val(null);
$('#modal-class').modal('show');
});
$('.edit-class').click(function (){
selectedClassId = $(this).data('id');
$("#modal-act h3").html("<?=$this->lang->line('edit_provider_class')?>");
$("#class-form input[name='name']").val($(this).data('name'));
$('#modal-class').modal('show');
});
$('.delete-class').click(function () {
selectedClassId = $(this).data('id');
$('#class-delete-modal').modal('show');
});
$("#class-form").submit(function( event ) {
$.ajax({
url: '<?php echo base_url('NanoHealthController/storeProviderClass')?>',
type: 'POST',
dataType: 'json',
data: {
"config_id": config_id,
"id" : selectedClassId,
"name": $("input[name='name']",this).val(),
},
success: function (data) {
if (data.code == 200) {
Swal.fire({
icon: 'success',
title: "<?php echo $this->lang->line('wallet_update')?>",
text: "<?php echo $this->lang->line('informations_updated')?>",
timer: 3000
}).then(() => {
location.reload();
});
} else {
toastr.error("<?php echo $this->lang->line('error_message')?>", "<?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')?>");
}
});
event.preventDefault();
});
$("#class-delete-btn").click(function () {
$.ajax({
url: '<?php echo base_url('NanoHealthController/deleteProviderClass')?>',
type: 'post',
data: {id: selectedClassId},
dataType: 'json',
success: function (data) {
if(data.code === 200){
Swal.fire({
icon: 'success',
title: "<?= $this->lang->line('provider_class_deleted')?>",
text:"<?= $this->lang->line('informations_updated')?>",
timer: 3000
}).then(()=>{
location.reload();
});
}else{
toastr.error(data.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')?>");
}
});
event.preventDefault();
});
</script>
<script type="text/javascript">
$(document).ready(function () {
$('[data-toggle="tooltip"]').tooltip();
// Years Grid
var actions1 = $("#years_prices_grid td:last-child").html();
// Append table with add row form on add new button click
$(".new1").click(function () {
if (!actions1) {
actions1 = '<a class="add add1" title="Add" data-toggle="tooltip"><i class="material-icons">&#xE03B;</i></a>\n' +
' <a class="edit edit1" title="Edit" data-toggle="tooltip"><i class="material-icons">&#xE254;</i></a>\n' +
' <a class="delete delete1" title="Delete" data-toggle="tooltip"><i class="material-icons">&#xE872;</i></a>';
}
$(this).attr("disabled", "disabled");
var index = $("#years_prices_grid tbody tr:last-child").index();
var row = '<tr>' +
'<td><input type="number" required min="0" max="99" class="form-control" name="min_age"></td>' +
'<td><input type="number" required min="0" max="99" class="form-control" name="max_age" ></td>' +
'<td><input type="number" required class="form-control" min="0" max="100" name="markup_percentage"></td>' +
'<td> ' + actions1 + '</td>' +
'</tr>';
$("#years_prices_grid").append(row);
$("#years_prices_grid tbody tr").eq(index + 1).find(".add, .edit").toggle();
$('[data-toggle="tooltip"]').tooltip();
});
// Add row on add button click
$(document).on("click", ".add1", function () {
var empty = false;
var input = $(this).parents("tr").find('input[type="number"]');
var min = parseFloat($(this).parents("tr").find('input[name="min_age"]').first().val());
var max = parseFloat($(this).parents("tr").find('input[name="max_age"]').first().val());
let maxAge = <?= $nh_config->age_limit_of_child_beneficiary ?? 0 ?>;
input.each(function () {
if ($(this).attr('name') == 'min_age') {
if (min > maxAge || min >= max) {
$(this).addClass("error");
$(this)[0].reportValidity();
empty = true;
if(min > maxAge){
toastr.error("<?= $this->lang->line('first_rule_years_price_grid')?>", "<?php echo $this->lang->line('request_error')?>");
}
} else {
$(this).removeClass("error");
}
} else if ($(this).attr('name') == 'max_age') {
if (max > maxAge || max <= min) {
$(this).addClass("error");
$(this)[0].reportValidity();
empty = true;
if(max > maxAge){
toastr.error("<?= $this->lang->line('second_rule_years_price_grid')?>", "<?php echo $this->lang->line('request_error')?>");
}
} else {
$(this).removeClass("error");
}
} else {
if (!$(this)[0].checkValidity()) {
$(this).addClass("error");
$(this)[0].reportValidity();
empty = true;
} else {
$(this).removeClass("error");
}
}
});
$(this).parents("tr").find(".error").first().focus();
if (!empty) {
input.each(function () {
$(this).parent("td").html($(this).val());
});
$(this).parents("tr").find(".add, .edit").toggle();
$(".new1").removeAttr("disabled");
}
});
// Edit row on edit button click
$(document).on("click", ".edit1", function () {
$(this).parents("tr").find("td:not(:last-child)").each(function (index) {
if (index == 0)
$(this).html('<input type="number" required class="form-control" min="0" name="min_age" value="' + $(this).text() + '">');
if (index == 1)
$(this).html('<input type="number" required class="form-control" name="min_age" value="' + $(this).text() + '">');
if (index == 2)
$(this).html('<input type="number" required class="form-control" min="0" max="100" name="markup_percentage" value="' + $(this).text() + '">');
});
$(this).parents("tr").find(".add, .edit").toggle();
$(".new1").attr("disabled", "disabled");
});
// Delete row on delete button click
$(document).on("click", ".delete1", function () {
$(this).parents("tr").remove();
$(".new1").removeAttr("disabled");
});
//Months Grid
var actions2 = $("#months_prices_grid td:last-child").html();
// Append table with add row form on add new button click
$(".new2").click(function () {
if (!actions2) {
actions2 = '<a class="add add2" title="Add" data-toggle="tooltip"><i class="material-icons">&#xE03B;</i></a>\n' +
' <a class="edit edit2" title="Edit" data-toggle="tooltip"><i class="material-icons">&#xE254;</i></a>\n' +
' <a class="delete delete2" title="Delete" data-toggle="tooltip"><i class="material-icons">&#xE872;</i></a>';
}
$(this).attr("disabled", "disabled");
var index = $("#months_prices_grid tbody tr:last-child").index();
var row = '<tr>' +
'<td><input type="number" required min="0" class="form-control" name="number_of_months"></td>' +
'<td><input type="number" required min="0" step="0.01" class="form-control" name="min_amount" ></td>' +
'<td> ' + actions2 + '</td>' +
'</tr>';
$("#months_prices_grid").append(row);
$("#months_prices_grid tbody tr").eq(index + 1).find(".add, .edit").toggle();
$('[data-toggle="tooltip"]').tooltip();
});
// Add row on add button click
$(document).on("click", ".add2", function () {
var empty = false;
var input = $(this).parents("tr").find('input[type="number"]');
input.each(function () {
if (!$(this)[0].checkValidity()) {
$(this).addClass("error");
$(this)[0].reportValidity();
empty = true;
} else {
$(this).removeClass("error");
}
});
$(this).parents("tr").find(".error").first().focus();
if (!empty) {
input.each(function () {
$(this).parent("td").html($(this).val());
});
$(this).parents("tr").find(".add, .edit").toggle();
$(".new2").removeAttr("disabled");
}
});
// Edit row on edit button click
$(document).on("click", ".edit2", function () {
$(this).parents("tr").find("td:not(:last-child)").each(function (index) {
if (index == 0)
$(this).html('<input type="number" required class="form-control" min="0" name="number_of_months" value="' + $(this).text() + '">');
if (index == 1)
$(this).html('<input type="number" required class="form-control" min="0" step="0.01" name="min_amount" value="' + $(this).text() + '">');
});
$(this).parents("tr").find(".add, .edit").toggle();
$(".new2").attr("disabled", "disabled");
});
// Delete row on delete button click
$(document).on("click", ".delete2", function () {
$(this).parents("tr").remove();
$(".new2").removeAttr("disabled");
});
});
</script>
<!-- Page script -->
<script src="<?= base_url('dist/js/custom.js') ?>"></script>