add product field in custommer account type
This commit is contained in:
parent
c310cddba8
commit
febaee14a3
|
|
@ -2645,5 +2645,80 @@ class Gestion extends CI_Controller
|
||||||
echo json_encode($data);
|
echo json_encode($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function validate_request_agency() {
|
||||||
|
if ($this->isLogged()) {
|
||||||
|
$id = $this->input->post('id');
|
||||||
|
$doc_front = $this->input->post('doc_front');
|
||||||
|
$doc_back = $this->input->post('doc_back');
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
|
||||||
|
$updateLocal = $this->user_model->updateRequestStatus($id, 'validated');
|
||||||
|
log_message('info', 'Validation de la demande d\'ouverture de compte agence bancaire ID_demande ' . $id);
|
||||||
|
|
||||||
|
if ($updateLocal) {
|
||||||
|
|
||||||
|
$url = WALLET_SERVICE_URL . '/wallets/users/activate_user_bank_account';
|
||||||
|
|
||||||
|
$body = [
|
||||||
|
'id' => $id,
|
||||||
|
'doc_front' => $doc_front,
|
||||||
|
'doc_back' => $doc_back
|
||||||
|
// Vous pouvez ajouter ici l'ID de l'admin qui valide si nécessaire
|
||||||
|
// 'validated_by' => $this->session->userdata('user_id')
|
||||||
|
];
|
||||||
|
|
||||||
|
$payload = json_encode($body);
|
||||||
|
|
||||||
|
$ch = curl_init($url);
|
||||||
|
|
||||||
|
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
|
||||||
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
|
||||||
|
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
|
||||||
|
'Content-Type: application/json',
|
||||||
|
'Content-Length: ' . strlen($payload),
|
||||||
|
'Authorization: ' . WALLET_SERVICE_TOKEN,
|
||||||
|
'X-localization: ' . ($this->session->userdata('site_lang') == 'french' ? 'fr' : 'en')
|
||||||
|
));
|
||||||
|
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
|
||||||
|
// Exécution
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
|
curl_close($ch);
|
||||||
|
|
||||||
|
if ($result && ($httpCode >= 200 && $httpCode < 300)) {
|
||||||
|
|
||||||
|
$this->db->trans_commit();
|
||||||
|
|
||||||
|
echo json_encode([
|
||||||
|
'success' => 'ok',
|
||||||
|
'message' => 'Compte créé avec succès.',
|
||||||
|
'api_response' => json_decode($result)
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
|
||||||
|
echo json_encode([
|
||||||
|
'success' => 'false',
|
||||||
|
'message' => 'Un problème est survenu lors de l\'ouverture du compte (' . $httpCode . ')',
|
||||||
|
'api_error' => $result
|
||||||
|
]);
|
||||||
|
log_message('error', 'Erreur API lors de l\'ouverture du compte agence bancaire ID_demande ' . $id . ' : ' . $result);
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// ECHEC LOCAL : ON ANNULE LA TRANSACTION (ROLLBACK)
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
|
||||||
|
echo json_encode(['alert' => 'error', 'success' => 'false', 'message' => 'Erreur lors de l\'activation du compte']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1102,4 +1102,5 @@ $lang['status_rejected'] = 'Rejected';
|
||||||
$lang['status_validated'] = 'Validated';
|
$lang['status_validated'] = 'Validated';
|
||||||
$lang['subscriptions_history'] = "Subscription history";
|
$lang['subscriptions_history'] = "Subscription history";
|
||||||
$lang["list_of_request_opening_bank_accounts"] = "List of bank account opening requests";
|
$lang["list_of_request_opening_bank_accounts"] = "List of bank account opening requests";
|
||||||
|
$lang["product"] = "Product";
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -1109,5 +1109,5 @@ $lang['status_close'] = 'Fermé';
|
||||||
$lang['status_rejected'] = 'Rejeté';
|
$lang['status_rejected'] = 'Rejeté';
|
||||||
$lang['status_validated'] = 'Validé';
|
$lang['status_validated'] = 'Validé';
|
||||||
$lang['subscriptions_history'] = 'Historique des souscriptions';
|
$lang['subscriptions_history'] = 'Historique des souscriptions';
|
||||||
|
$lang["product"] = "Produit";
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -2324,8 +2324,24 @@ class User_model extends CI_Model
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllRequests(){
|
function getAllRequests(){
|
||||||
$result = $this->db->query("SELECT * FROM user_bank_accounts")->result();
|
$this->db->select('
|
||||||
return $result;
|
user_bank_accounts.*,
|
||||||
|
customer_account_types.name as type,
|
||||||
|
identifications.document_image_front,
|
||||||
|
identifications.document_image_back
|
||||||
|
');
|
||||||
|
|
||||||
|
$this->db->from('user_bank_accounts');
|
||||||
|
|
||||||
|
// Jointure type de compte
|
||||||
|
$this->db->join('customer_account_types', 'user_bank_accounts.customer_account_type_id = customer_account_types.id', 'left');
|
||||||
|
|
||||||
|
// Jointure identifications (Assurez-vous que 'id_user' est bien la clé de liaison dans user_bank_accounts)
|
||||||
|
$this->db->join('identifications', 'identifications.id_user = user_bank_accounts.id_user', 'left');
|
||||||
|
|
||||||
|
$this->db->order_by('user_bank_accounts.id', 'DESC');
|
||||||
|
|
||||||
|
return $this->db->get()->result();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateInfoAgency($id, $data) {
|
public function updateInfoAgency($id, $data) {
|
||||||
|
|
@ -2371,4 +2387,9 @@ class User_model extends CI_Model
|
||||||
$query = $this->db->get();
|
$query = $this->db->get();
|
||||||
return $query->num_rows() > 0 ? $query->result() : []; // Retourne un tableau d'objets
|
return $query->num_rows() > 0 ? $query->result() : []; // Retourne un tableau d'objets
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function updateRequestStatus($id, $status) {
|
||||||
|
$this->db->where("id", $id);
|
||||||
|
return $this->db->update("user_bank_accounts", ['status' => $status, 'reason' => 'En attente d\'activation de compte']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -202,71 +202,12 @@
|
||||||
<td><?= $this->lang->line('birth_country') ?></td>
|
<td><?= $this->lang->line('birth_country') ?></td>
|
||||||
<td align="center"><strong><?= $request->birth_country ?></strong></td>
|
<td align="center"><strong><?= $request->birth_country ?></strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td><?= $this->lang->line('birth_locality'); ?></td>
|
|
||||||
<td align="center"><strong><?= $request->birth_locality ?></strong></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Parent informations -->
|
|
||||||
<div class="box box-success">
|
|
||||||
<div class="box-header with-border">
|
|
||||||
<h3 class="box-title"><?= $this->lang->line('parent_informations') ?></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('father_lastname'); ?></td>
|
|
||||||
<td align="center"><strong><?= $request->father_lastname; ?></strong></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><?= $this->lang->line('father_firstname'); ?></td>
|
|
||||||
<td align="center"><strong><?= $request->father_firstname; ?></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: 60%;">
|
|
||||||
<col span="1" style="width: 40%;">
|
|
||||||
</colgroup>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th></th>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><?= $this->lang->line('mother_birth_lastname'); ?></td>
|
|
||||||
<td align="center"><strong><?= $request->mother_birth_lastname; ?></strong></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><?= $this->lang->line('mother_firstname'); ?></td>
|
|
||||||
<td align="center"><strong><?= $request->mother_firstname; ?></strong></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Marital status -->
|
<!-- Marital status -->
|
||||||
<div class="box box-success">
|
<div class="box box-success">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
|
|
@ -292,11 +233,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?= $this->lang->line('spouse_lastname'); ?></td>
|
<td><?= $this->lang->line('spouse_lastname'); ?></td>
|
||||||
<td align="center"><strong><?= $request->spouse_lastname; ?></strong></td>
|
<td align="center"><strong><?= $request->spouse_name; ?></strong></td>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><?= $this->lang->line('spouse_firstname'); ?></td>
|
|
||||||
<td align="center"><strong><?= $request->spouse_firstname; ?></strong></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th align='center'>#</th>
|
<th align='center'>#</th>
|
||||||
<th><?= $this->lang->line('Nom'); ?></th>
|
<th><?= $this->lang->line('Nom'); ?></th>
|
||||||
|
<th><?= $this->lang->line('product'); ?></th>
|
||||||
<th>Description</th>
|
<th>Description</th>
|
||||||
<th>Parent</th>
|
<th>Parent</th>
|
||||||
<th><?= $this->lang->line('opening_amount'); ?></th>
|
<th><?= $this->lang->line('opening_amount'); ?></th>
|
||||||
|
|
@ -43,12 +44,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td><?=$i+1?></td>
|
<td><?=$i+1?></td>
|
||||||
<td><?=$row->name?></td>
|
<td><?=$row->name?></td>
|
||||||
|
<td><?=$row->product?></td>
|
||||||
<td><?=$row->description?></td>
|
<td><?=$row->description?></td>
|
||||||
<td><?=$row->parent?></td>
|
<td><?=$row->parent?></td>
|
||||||
<td><?= empty($row->opening_amount) ? '' : Money::of(round($row->opening_amount, 2), $currency_code ?? 'XAF', $context)->formatTo('fr_FR')?></td>
|
<td><?= empty($row->opening_amount) ? '' : Money::of(round($row->opening_amount, 2), $currency_code ?? 'XAF', $context)->formatTo('fr_FR')?></td>
|
||||||
<td><?= $row->opening_amount_payment_period_days?></td>
|
<td><?= $row->opening_amount_payment_period_days?></td>
|
||||||
<td>
|
<td>
|
||||||
<button class="btn btn-success edit-doc" data-id="<?=$row->id?>" data-name="<?=$row->name?>" data-description="<?=$row->description?>"
|
<button class="btn btn-success edit-doc" data-id="<?=$row->id?>" data-name="<?=$row->name?>" data-description="<?=$row->description?>"data-product="<?= $row->product ?>"
|
||||||
data-parent_id="<?=$row->parent_id?>" data-opening_amount="<?=$row->opening_amount?>" data-opening_amount_payment_period_days="<?=$row->opening_amount_payment_period_days?>">
|
data-parent_id="<?=$row->parent_id?>" data-opening_amount="<?=$row->opening_amount?>" data-opening_amount_payment_period_days="<?=$row->opening_amount_payment_period_days?>">
|
||||||
<i class="fa fa-edit"></i>
|
<i class="fa fa-edit"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -74,6 +76,10 @@
|
||||||
<label for="name"><?= $this->lang->line('Nom'); ?></label>
|
<label for="name"><?= $this->lang->line('Nom'); ?></label>
|
||||||
<input type="text" class="form-control input-lg" name="name" id="name" required>
|
<input type="text" class="form-control input-lg" name="name" id="name" required>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="product"><?= $this->lang->line('product'); ?></label>
|
||||||
|
<input type="text" class="form-control input-lg" name="product" id="product" required>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="description">Description</label>
|
<label for="description">Description</label>
|
||||||
<textarea class="form-control input-lg" name="description" id="description"></textarea>
|
<textarea class="form-control input-lg" name="description" id="description"></textarea>
|
||||||
|
|
@ -89,9 +95,12 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-form-label">Parent</label>
|
<label class="col-form-label">Parent</label>
|
||||||
<select class="form-control input-lg" name="parent_id" >
|
<select class="form-control input-lg" name="parent_id" >
|
||||||
<option value="0"> <?=$this->lang->line('no_parent')?> </option>
|
<?php if (count($types ?? []) > 1) { ?>
|
||||||
<?php foreach ($types ?? [] as $value) { ?>
|
<?php foreach ($types ?? [] as $value) { ?>
|
||||||
<option value="<?=$value->id?>"> <?=$value->name?> </option>
|
<option value="<?=$value->id?>"> <?=$value->name?> </option>
|
||||||
|
<?php } ?>
|
||||||
|
<?php } else { ?>
|
||||||
|
<option value="0"> <?=$this->lang->line('no_parent')?> </option>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -120,6 +129,10 @@
|
||||||
<label for="name_u"><?= $this->lang->line('Nom'); ?></label>
|
<label for="name_u"><?= $this->lang->line('Nom'); ?></label>
|
||||||
<input type="text" class="form-control input-lg" name="name" id="name_u" required>
|
<input type="text" class="form-control input-lg" name="name" id="name_u" required>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="product_u"><?= $this->lang->line('product'); ?></label>
|
||||||
|
<input type="text" class="form-control input-lg" name="product" id="product_u" required>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="description_u">Description</label>
|
<label for="description_u">Description</label>
|
||||||
<textarea class="form-control input-lg" name="description" id="description_u"></textarea>
|
<textarea class="form-control input-lg" name="description" id="description_u"></textarea>
|
||||||
|
|
@ -285,6 +298,7 @@
|
||||||
$(document).on("click", ".edit-doc", function () {
|
$(document).on("click", ".edit-doc", function () {
|
||||||
selectedId = $(this).data('id');
|
selectedId = $(this).data('id');
|
||||||
$("#update-form input[name='name']").val($(this).data('name'));
|
$("#update-form input[name='name']").val($(this).data('name'));
|
||||||
|
$("#update-form input[name='product']").val($(this).data('product'));
|
||||||
$("#update-form textarea[name='description']").val($(this).data('description'));
|
$("#update-form textarea[name='description']").val($(this).data('description'));
|
||||||
$("#update-form input[name='opening_amount']").val($(this).data('opening_amount'));
|
$("#update-form input[name='opening_amount']").val($(this).data('opening_amount'));
|
||||||
$("#update-form input[name='opening_amount_payment_period_days']").val($(this).data('opening_amount_payment_period_days'));
|
$("#update-form input[name='opening_amount_payment_period_days']").val($(this).data('opening_amount_payment_period_days'));
|
||||||
|
|
@ -347,6 +361,7 @@
|
||||||
id: selectedId,
|
id: selectedId,
|
||||||
network_id : networkId,
|
network_id : networkId,
|
||||||
name: $("input[name=name]",this).val(),
|
name: $("input[name=name]",this).val(),
|
||||||
|
product: $("input[name=product]",this).val(),
|
||||||
description: $("textarea[name=description]",this).val(),
|
description: $("textarea[name=description]",this).val(),
|
||||||
opening_amount: $("input[name=opening_amount]",this).val(),
|
opening_amount: $("input[name=opening_amount]",this).val(),
|
||||||
opening_amount_payment_period_days: $("input[name=opening_amount_payment_period_days]", this).val(),
|
opening_amount_payment_period_days: $("input[name=opening_amount_payment_period_days]", this).val(),
|
||||||
|
|
@ -391,6 +406,7 @@
|
||||||
data: {
|
data: {
|
||||||
network_id: networkId,
|
network_id: networkId,
|
||||||
name: $("input[name=name]", this).val(),
|
name: $("input[name=name]", this).val(),
|
||||||
|
product: $("input[name=product]", this).val(),
|
||||||
description: $("textarea[name=description]", this).val(),
|
description: $("textarea[name=description]", this).val(),
|
||||||
opening_amount: $("input[name=opening_amount]", this).val(),
|
opening_amount: $("input[name=opening_amount]", this).val(),
|
||||||
opening_amount_payment_period_days: $("input[name=opening_amount_payment_period_days]", this).val(),
|
opening_amount_payment_period_days: $("input[name=opening_amount_payment_period_days]", this).val(),
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,12 @@
|
||||||
<th class="text-center"><?= $this->lang->line('account'); ?></th>
|
<th class="text-center"><?= $this->lang->line('account'); ?></th>
|
||||||
<th class="text-center">IBAN</th>
|
<th class="text-center">IBAN</th>
|
||||||
<th class="text-center">Type</th>
|
<th class="text-center">Type</th>
|
||||||
<th class="text-center"><?= $this->lang->line('balance'); ?></th>
|
<th class="text-center"><?= $this->lang->line('nationality'); ?></th>
|
||||||
|
<th class="text-center"><?= $this->lang->line('birth_date'); ?></th>
|
||||||
|
<th class="text-center"><?= $this->lang->line('birth_country'); ?></th>
|
||||||
|
<th class="text-center"><?= $this->lang->line('marital_status'); ?></th>
|
||||||
|
<th class="text-center"><?= $this->lang->line('phone_number'); ?></th>
|
||||||
|
<th class="text-center"><?= $this->lang->line('reason'); ?></th>
|
||||||
<th class="text-center"><?= $this->lang->line('status'); ?></th>
|
<th class="text-center"><?= $this->lang->line('status'); ?></th>
|
||||||
<th class="text-center">Actions</th>
|
<th class="text-center">Actions</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -68,8 +73,13 @@
|
||||||
<td class="text-center"><?= $a->firstname ?></td>
|
<td class="text-center"><?= $a->firstname ?></td>
|
||||||
<td class="text-center"><?= $a->account_number ?></td>
|
<td class="text-center"><?= $a->account_number ?></td>
|
||||||
<td class="text-center"><?= $a->iban ?></td>
|
<td class="text-center"><?= $a->iban ?></td>
|
||||||
<td class="text-center"><?= $a->account_type ?></td>
|
<td class="text-center"><?= $a->type ?></td>
|
||||||
<td class="text-center"><?= number_format($a->balance,0,',',' ') ?></td>
|
<td class="text-center"><?= $a->nationality ?></td>
|
||||||
|
<td class="text-center"><?= $a->birth_date ?></td>
|
||||||
|
<td class="text-center"><?= $a->birth_country ?></td>
|
||||||
|
<td class="text-center"><?= ucfirst($a->marital_status) ?></td>
|
||||||
|
<td class="text-center"><?= $a->phone_number ?></td>
|
||||||
|
<td class="text-center"><?= $a->reason ?></td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<?= getStatusBadge($a->status, $this->lang) ?>
|
<?= getStatusBadge($a->status, $this->lang) ?>
|
||||||
</td>
|
</td>
|
||||||
|
|
@ -85,22 +95,28 @@
|
||||||
data-lastname="<?= $a->lastname ?>"
|
data-lastname="<?= $a->lastname ?>"
|
||||||
data-firstname="<?= $a->firstname ?>"
|
data-firstname="<?= $a->firstname ?>"
|
||||||
data-account_number="<?= $a->account_number ?>"
|
data-account_number="<?= $a->account_number ?>"
|
||||||
|
data-customer_number="<?= $a->customer_number ?>"
|
||||||
data-iban="<?= $a->iban ?>"
|
data-iban="<?= $a->iban ?>"
|
||||||
data-swift_code="<?= $a->swift_code ?>"
|
data-phone_number="<?= $a->phone_number ?>"
|
||||||
data-status="<?= $a->status ?>"
|
data-status="<?= $a->status ?>"
|
||||||
data-reason="<?= $a->reason ?>"
|
data-reason="<?= $a->reason ?>"
|
||||||
data-balance="<?= $a->balance ?>"
|
data-balance="<?= $a->balance ?>"
|
||||||
data-account_type="<?= $a->account_type ?>"
|
data-type="<?= $a->type ?>"
|
||||||
data-birth_date="<?= $a->birth_date ?>"
|
data-birth_date="<?= $a->birth_date ?>"
|
||||||
data-birth_country="<?= $a->birth_country ?>"
|
data-birth_country="<?= $a->birth_country ?>"
|
||||||
data-birth_city="<?= $a->birth_city ?>"
|
data-birth_city="<?= $a->birth_city ?>"
|
||||||
data-nationality="<?= $a->nationality ?>"
|
data-nationality="<?= $a->nationality ?>"
|
||||||
data-marital_status="<?= $a->marital_status ?>"
|
data-marital_status="<?= $a->marital_status ?>"
|
||||||
data-profession="<?= $a->profession ?>"
|
data-profession="<?= $a->profession ?>"
|
||||||
data-sector_activity="<?= $a->sector_activity ?>"
|
data-identification_number="<?= $a->identification_number ?>"
|
||||||
data-tax_number="<?= $a->tax_number ?>"
|
data-niu="<?= $a->niu ?>"
|
||||||
|
data-spouse_name="<?= $a->spouse_name ?>"
|
||||||
|
data-employer_city="<?= $a->employer_city ?>"
|
||||||
data-employer_name="<?= $a->employer_name ?>"
|
data-employer_name="<?= $a->employer_name ?>"
|
||||||
data-employer_address="<?= $a->employer_address ?>"
|
data-employer_address="<?= $a->employer_address ?>"
|
||||||
|
data-doc_front="<?= $a->document_image_front ? $a->document_image_front: '' ?>"
|
||||||
|
data-doc_back="<?= $a->document_image_back ? $a->document_image_back : '' ?>"
|
||||||
|
data-created_at="<?= $a->created_at ?>"
|
||||||
>
|
>
|
||||||
<i class='fa fa-eye'></i>
|
<i class='fa fa-eye'></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -115,28 +131,23 @@
|
||||||
data-lastname="<?= $a->lastname ?>"
|
data-lastname="<?= $a->lastname ?>"
|
||||||
data-firstname="<?= $a->firstname ?>"
|
data-firstname="<?= $a->firstname ?>"
|
||||||
data-account_number="<?= $a->account_number ?>"
|
data-account_number="<?= $a->account_number ?>"
|
||||||
|
data-customer_number="<?= $a->customer_number ?>"
|
||||||
data-iban="<?= $a->iban ?>"
|
data-iban="<?= $a->iban ?>"
|
||||||
data-swift_code="<?= $a->swift_code ?>"
|
|
||||||
data-status="<?= $a->status ?>"
|
data-status="<?= $a->status ?>"
|
||||||
data-reason="<?= $a->reason ?>"
|
data-reason="<?= $a->reason ?>"
|
||||||
data-balance="<?= $a->balance ?>"
|
data-balance="<?= $a->balance ?>"
|
||||||
data-account_type="<?= $a->account_type ?>"
|
data-type="<?= $a->type ?>"
|
||||||
data-birth_date="<?= $a->birth_date ?>"
|
data-birth_date="<?= $a->birth_date ?>"
|
||||||
data-birth_country="<?= $a->birth_country ?>"
|
data-birth_country="<?= $a->birth_country ?>"
|
||||||
data-birth_city="<?= $a->birth_city ?>"
|
data-birth_city="<?= $a->birth_city ?>"
|
||||||
data-father_firstname="<?= $a->father_firstname ?>"
|
|
||||||
data-father_lastname="<?= $a->father_lastname ?>"
|
|
||||||
data-mother_firstname="<?= $a->mother_firstname ?>"
|
|
||||||
data-mother_lastname="<?= $a->mother_lastname ?>"
|
|
||||||
data-marital_name="<?= $a->marital_name ?>"
|
|
||||||
data-nationality="<?= $a->nationality ?>"
|
data-nationality="<?= $a->nationality ?>"
|
||||||
data-marital_status="<?= $a->marital_status ?>"
|
data-marital_status="<?= $a->marital_status ?>"
|
||||||
data-profession="<?= $a->profession ?>"
|
data-profession="<?= $a->profession ?>"
|
||||||
data-sector_activity="<?= $a->sector_activity ?>"
|
data-employer_city="<?= $a->employer_city ?>"
|
||||||
data-subsector_activity="<?= $a->subsector_activity ?>"
|
data-spouse_name="<?= $a->spouse_name ?>"
|
||||||
data-tax_number="<?= $a->tax_number ?>"
|
data-identification_number="<?= $a->identification_number ?>"
|
||||||
data-employee_number="<?= $a->employee_number ?>"
|
data-phone_number="<?= $a->phone_number ?>"
|
||||||
data-position="<?= $a->position ?>"
|
data-niu="<?= $a->niu ?>"
|
||||||
data-employer_name="<?= $a->employer_name ?>"
|
data-employer_name="<?= $a->employer_name ?>"
|
||||||
data-employer_address="<?= $a->employer_address ?>"
|
data-employer_address="<?= $a->employer_address ?>"
|
||||||
data-created_at="<?= $a->created_at ?>"
|
data-created_at="<?= $a->created_at ?>"
|
||||||
|
|
@ -251,6 +262,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<input type="hidden" id="review_id">
|
<input type="hidden" id="review_id">
|
||||||
|
<!-- HIDDEN INPUTS FOR DOCUMENT -->
|
||||||
|
<input type="hidden" id="hidden_doc_front">
|
||||||
|
<input type="hidden" id="hidden_doc_back">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12"><h5 class="section-header">Informations Personnelles</h5></div>
|
<div class="col-md-12"><h5 class="section-header">Informations Personnelles</h5></div>
|
||||||
<div class="col-md-4"><span class="view-label">Nom :</span> <span class="view-value" id="view_lastname"></span></div>
|
<div class="col-md-4"><span class="view-label">Nom :</span> <span class="view-value" id="view_lastname"></span></div>
|
||||||
|
|
@ -258,33 +272,75 @@
|
||||||
<div class="col-md-4"><span class="view-label">Date Nais. :</span> <span class="view-value" id="view_birth_date"></span></div>
|
<div class="col-md-4"><span class="view-label">Date Nais. :</span> <span class="view-value" id="view_birth_date"></span></div>
|
||||||
<div class="col-md-4"><span class="view-label">Nationalité :</span> <span class="view-value" id="view_nationality"></span></div>
|
<div class="col-md-4"><span class="view-label">Nationalité :</span> <span class="view-value" id="view_nationality"></span></div>
|
||||||
<div class="col-md-4"><span class="view-label">Matrimonial :</span> <span class="view-value" id="view_marital_status"></span></div>
|
<div class="col-md-4"><span class="view-label">Matrimonial :</span> <span class="view-value" id="view_marital_status"></span></div>
|
||||||
|
<div class="col-md-4"><span class="view-label">Nom du conjoint :</span> <span class="view-value" id="view_spouse_name"></span></div>
|
||||||
<div class="col-md-4"><span class="view-label">Ville de Naissance :</span> <span class="view-value" id="view_birth_city"></span></div>
|
<div class="col-md-4"><span class="view-label">Ville de Naissance :</span> <span class="view-value" id="view_birth_city"></span></div>
|
||||||
|
<div class="col-md-4"><span class="view-label">Numero de telephone :</span> <span class="view-value" id="view_phone_number"></span></div>
|
||||||
|
<div class="col-md-4"><span class="view-label">NIU:</span> <span class="view-value" id="view_niu"></span></div>
|
||||||
|
<div class="col-md-4"><span class="view-label">Piece d'identité :</span> <span class="view-value" id="view_identification_number"></span></div>
|
||||||
<div class="col-md-4"><span class="view-label">Pays de Naissance :</span> <span class="view-value" id="view_birth_country"></span></div>
|
<div class="col-md-4"><span class="view-label">Pays de Naissance :</span> <span class="view-value" id="view_birth_country"></span></div>
|
||||||
<div class="col-md-4"><span class="view-label">Nom de la mere :</span> <span class="view-value" id="view_mother_lastname"></span></div>
|
|
||||||
<div class="col-md-4"><span class="view-label">Prénom de la mere :</span> <span class="view-value" id="view_mother_firstname"></span></div>
|
<div class="col-md-12" style="margin-top: 20px;">
|
||||||
<div class="col-md-4"><span class="view-label">Nom du père :</span> <span class="view-value" id="view_father_lastname"></span></div>
|
<h5 class="section-header">Pièces Justificatives (Identité)</h5>
|
||||||
<div class="col-md-4"><span class="view-label">Prénom du père :</span> <span class="view-value" id="view_father_firstname"></span></div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<span class="view-label">Recto :</span>
|
||||||
|
<div id="container_doc_front" style="margin-top:5px;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<span class="view-label">Verso :</span>
|
||||||
|
<div id="container_doc_back" style="margin-top:5px;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-md-12"><h5 class="section-header">Détails du Compte</h5></div>
|
<div class="col-md-12"><h5 class="section-header">Détails du Compte</h5></div>
|
||||||
<div class="col-md-4"><span class="view-label">Numéro :</span> <span class="view-value" id="view_account_number"></span></div>
|
<div class="col-md-4"><span class="view-label">Numéro :</span> <span class="view-value" id="view_account_number"></span></div>
|
||||||
<div class="col-md-4"><span class="view-label">Type :</span> <span class="view-value" id="view_account_type"></span></div>
|
<div class="col-md-4"><span class="view-label">Code du client :</span> <span class="view-value" id="view_customer_number"></span></div>
|
||||||
|
<div class="col-md-4"><span class="view-label">Type :</span> <span class="view-value" id="view_type"></span></div>
|
||||||
<div class="col-md-4"><span class="view-label">Solde :</span> <span class="view-value" id="view_balance"></span></div>
|
<div class="col-md-4"><span class="view-label">Solde :</span> <span class="view-value" id="view_balance"></span></div>
|
||||||
<div class="col-md-6"><span class="view-label">IBAN :</span> <span class="view-value" id="view_iban"></span></div>
|
<div class="col-md-6"><span class="view-label">IBAN :</span> <span class="view-value" id="view_iban"></span></div>
|
||||||
<div class="col-md-6"><span class="view-label">Code Swift :</span> <span class="view-value" id="view_swift_code"></span></div>
|
|
||||||
|
|
||||||
<div class="col-md-12"><h5 class="section-header">Informations Professionnelles</h5></div>
|
<div class="col-md-12"><h5 class="section-header">Informations Professionnelles</h5></div>
|
||||||
<div class="col-md-4"><span class="view-label">Profession :</span> <span class="view-value" id="view_profession"></span></div>
|
<div class="col-md-4"><span class="view-label">Profession :</span> <span class="view-value" id="view_profession"></span></div>
|
||||||
<div class="col-md-4"><span class="view-label">Secteur :</span> <span class="view-value" id="view_sector_activity"></span></div>
|
|
||||||
<div class="col-md-4"><span class="view-label">Employeur :</span> <span class="view-value" id="view_employer_name"></span></div>
|
<div class="col-md-4"><span class="view-label">Employeur :</span> <span class="view-value" id="view_employer_name"></span></div>
|
||||||
<div class="col-md-4"><span class="view-label">Adresse employeur:</span> <span class="view-value" id="view_employer_address"></span></div>
|
<div class="col-md-4"><span class="view-label">Adresse employeur:</span> <span class="view-value" id="view_employer_address"></span></div>
|
||||||
|
<div class="col-md-4"><span class="view-label">Ville employeur:</span> <span class="view-value" id="view_employer_city"></span></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer" style="background-color: #f9f9f9; display: flex; justify-content: space-between;">
|
<div class="modal-footer" style="background-color: #f9f9f9;">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">Fermer</button>
|
|
||||||
<div>
|
<!-- BLOC 1 : Boutons par défaut (Fermer, Rejeter, Valider) -->
|
||||||
<button type="button" class="btn btn-danger btn-lg" id="btn-reject-request"><i class="fa fa-times"></i> REJETER</button>
|
<div id="default-actions" style="display: flex; justify-content: space-between;">
|
||||||
<button type="button" class="btn btn-success btn-lg" id="btn-validate-request" style="margin-left: 10px;"><i class="fa fa-check"></i> VALIDER</button>
|
<button type="button" class="btn btn-default" data-dismiss="modal">Fermer</button>
|
||||||
|
<div>
|
||||||
|
<button type="button" class="btn btn-danger btn-lg" id="btn-show-reject-input">
|
||||||
|
<i class="fa fa-times"></i> REJETER
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn btn-success btn-lg" id="btn-validate-request" style="margin-left: 10px;">
|
||||||
|
<i class="fa fa-check"></i> VALIDER
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- BLOC 2 : Zone de saisie du motif (Cachée par défaut) -->
|
||||||
|
<div id="reject-area" style="display: none;">
|
||||||
|
<div class="form-group text-left">
|
||||||
|
<label class="text-danger">Motif du rejet * :</label>
|
||||||
|
<textarea id="reject_reason" class="form-control" rows="3" placeholder="Veuillez expliquer la raison du rejet (Ex: Document illisible, ID incorrect...)"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="text-right">
|
||||||
|
<button type="button" class="btn btn-default" id="btn-cancel-reject">Annuler</button>
|
||||||
|
<button type="button" class="btn btn-danger" id="btn-confirm-reject">
|
||||||
|
Confirmer le rejet
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -351,11 +407,12 @@
|
||||||
<div class="col-md-6"><label>Prénom</label><input id="edit_firstname" name="firstname" class="form-control input-lg" required></div>
|
<div class="col-md-6"><label>Prénom</label><input id="edit_firstname" name="firstname" class="form-control input-lg" required></div>
|
||||||
|
|
||||||
<div class="col-md-6"><label>Numéro de compte</label><input id="edit_account_number" name="account_number" class="form-control input-lg"></div>
|
<div class="col-md-6"><label>Numéro de compte</label><input id="edit_account_number" name="account_number" class="form-control input-lg"></div>
|
||||||
|
<div class="col-md-6"><label>Code client</label><input id="edit_customer_number" name="customer_number" class="form-control input-lg"></div>
|
||||||
|
|
||||||
<div class="col-md-6"><label>IBAN</label><input id="edit_iban" name="iban" class="form-control input-lg"></div>
|
<div class="col-md-6"><label>IBAN</label><input id="edit_iban" name="iban" class="form-control input-lg"></div>
|
||||||
<div class="col-md-6"><label>Swift</label><input id="edit_swift_code" name="swift_code" class="form-control input-lg"></div>
|
|
||||||
|
|
||||||
<div class="col-md-6"><label>Type de compte</label><input id="edit_account_type" name="account_type" class="form-control input-lg"></div>
|
<div class="col-md-6"><label>Type de compte</label><input id="edit_type" name="type" class="form-control input-lg" readonly></div>
|
||||||
<div class="col-md-6"><label>Balance</label><input id="edit_balance" name="balance" class="form-control input-lg" required></div>
|
<div class="col-md-6"><label>Balance</label><input id="edit_balance" name="balance" class="form-control input-lg" disabled></div>
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label>Statut du compte</label>
|
<label>Statut du compte</label>
|
||||||
|
|
@ -375,11 +432,6 @@
|
||||||
<div class="col-md-6"><label>Ville de naissance</label><input id="edit_birth_city" name="birth_city" class="form-control input-lg" required></div>
|
<div class="col-md-6"><label>Ville de naissance</label><input id="edit_birth_city" name="birth_city" class="form-control input-lg" required></div>
|
||||||
<div class="col-md-6"><label>Nationalité</label><input id="edit_nationality" name="nationality" class="form-control input-lg" required></div>
|
<div class="col-md-6"><label>Nationalité</label><input id="edit_nationality" name="nationality" class="form-control input-lg" required></div>
|
||||||
|
|
||||||
<div class="col-md-6"><label>Nom de la mère</label><input id="edit_mother_lastname" name="mother_lastname" class="form-control input-lg" required></div>
|
|
||||||
<div class="col-md-6"><label>Prénom de la mère</label><input id="edit_mother_firstname" name="mother_firstname" class="form-control input-lg" required></div>
|
|
||||||
<div class="col-md-6"><label>Nom du père</label><input id="edit_father_lastname" name="father_lastname" class="form-control input-lg" required></div>
|
|
||||||
<div class="col-md-6"><label>Prénom du père</label><input id="edit_father_firstname" name="father_firstname" class="form-control input-lg" required></div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label>Statut matrimonial</label>
|
<label>Statut matrimonial</label>
|
||||||
<select id="edit_marital_status" name="marital_status" class="form-control input-lg" required>
|
<select id="edit_marital_status" name="marital_status" class="form-control input-lg" required>
|
||||||
|
|
@ -390,13 +442,15 @@
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-6"><label>Numéro fiscal</label><input id="edit_tax_number" name="tax_number" class="form-control input-lg" required></div>
|
<div class="col-md-6"><label>Nom du conjoint</label><input id="edit_spouse_name" name="spouse_name" class="form-control input-lg"></div>
|
||||||
<div class="col-md-6"><label>Secteur d'activité</label><input id="edit_sector_activity" name="sector_activity" class="form-control input-lg"></div>
|
|
||||||
|
<div class="col-md-6"><label>Numéro de téléphone</label><input id="edit_phone_number" name="phone_number" class="form-control input-lg" required></div>
|
||||||
|
<div class="col-md-6"><label>Numéro d'identification</label><input id="edit_identification_number" name="identification_number" class="form-control input-lg" required></div>
|
||||||
<div class="col-md-6"><label>Profession</label><input id="edit_profession" name="profession" class="form-control input-lg" required></div>
|
<div class="col-md-6"><label>Profession</label><input id="edit_profession" name="profession" class="form-control input-lg" required></div>
|
||||||
|
|
||||||
<div class="col-md-6"><label>Nom de l’employeur</label><input id="edit_employer_name" name="employer_name" class="form-control input-lg"></div>
|
<div class="col-md-6"><label>Nom de l’employeur</label><input id="edit_employer_name" name="employer_name" class="form-control input-lg"></div>
|
||||||
<div class="col-md-6"><label>Adresse de l’employeur</label><input id="edit_employer_address" name="employer_address" class="form-control input-lg"></div>
|
<div class="col-md-6"><label>Adresse de l’employeur</label><input id="edit_employer_address" name="employer_address" class="form-control input-lg"></div>
|
||||||
<div class="col-md-6"><label>Matricule de l’employeur</label><input id="edit_employee_number" name="employee_number" class="form-control input-lg"></div>
|
<div class="col-md-6"><label>Ville de l’employeur</label><input id="edit_employer_city" name="employer_city" class="form-control input-lg"></div>
|
||||||
<div class="col-md-6"><label>Date de création</label><input id="edit_created_at" readonly class="form-control input-lg"></div>
|
<div class="col-md-6"><label>Date de création</label><input id="edit_created_at" readonly class="form-control input-lg"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -506,13 +560,12 @@ $(document).ready(function () {
|
||||||
* ===================================================== */
|
* ===================================================== */
|
||||||
$(document).on("click", ".open-edit-modal", function () {
|
$(document).on("click", ".open-edit-modal", function () {
|
||||||
const fields = [
|
const fields = [
|
||||||
"id", "lastname", "firstname", "account_number", "iban", "swift_code",
|
"id", "lastname", "firstname", "account_number", "iban",
|
||||||
"status", "reason", "balance", "birth_date", "birth_country",
|
"status", "reason", "balance", "birth_date", "birth_country",
|
||||||
"birth_city", "father_firstname", "father_lastname",
|
"birth_city", "identification_number", "niu", "phone_number",
|
||||||
"mother_firstname", "mother_lastname", "marital_name", "nationality",
|
"spouse_name", "employer_city", "nationality",
|
||||||
"marital_status", "profession", "sector_activity",
|
"marital_status", "profession","customer_number",
|
||||||
"subsector_activity", "tax_number", "employee_number", "position",
|
"employer_name", "employer_address", "created_at", "type"
|
||||||
"employer_name", "employer_address", "created_at", "account_type"
|
|
||||||
];
|
];
|
||||||
fields.forEach(f => {
|
fields.forEach(f => {
|
||||||
$("#edit_" + f).val($(this).data(f));
|
$("#edit_" + f).val($(this).data(f));
|
||||||
|
|
@ -542,31 +595,148 @@ $(document).ready(function () {
|
||||||
/* =====================================================
|
/* =====================================================
|
||||||
* LOGIQUE MODAL REVIEW (AGENCY & LINK)
|
* LOGIQUE MODAL REVIEW (AGENCY & LINK)
|
||||||
* ===================================================== */
|
* ===================================================== */
|
||||||
$(document).on("click", ".open-review-modal", function () {
|
$(document).on("click", ".open-review-modal", function () {
|
||||||
let id = $(this).data("id");
|
let id = $(this).data("id");
|
||||||
$("#review_id").val(id);
|
$("#review_id").val(id);
|
||||||
const fields = ["lastname", "firstname", "account_number", "iban", "balance", "status", "profession", "employer_name", "sector_activity", "account_type", "birth_date", "birth_country", "birth_city", "nationality", "marital_status"];
|
|
||||||
fields.forEach(f => { $("#view_" + f).text($(this).data(f) || "-"); });
|
// Reset de l'interface (On remet les boutons par défaut et on vide le motif)
|
||||||
|
$("#default-actions").show();
|
||||||
|
$("#reject-area").hide();
|
||||||
|
$("#reject_reason").val("");
|
||||||
|
|
||||||
|
// Remplissage des infos textes
|
||||||
|
const fields = ["lastname", "firstname", "account_number", "customer_number", "iban", "balance", "status", "profession", "employer_name", "type", "birth_date", "birth_country", "birth_city", "nationality", "marital_status", "spouse_name", "phone_number", "identification_number", "niu", "employer_address", "employer_city"];
|
||||||
|
fields.forEach(f => { $("#view_" + f).text($(this).data(f) || "-"); });
|
||||||
|
|
||||||
|
// Gestion des documents
|
||||||
|
let docFront = $(this).data("doc_front");
|
||||||
|
let docBack = $(this).data("doc_back");
|
||||||
|
$("#hidden_doc_front").val(docFront);
|
||||||
|
$("#hidden_doc_back").val(docBack);
|
||||||
|
|
||||||
|
// Affichage Image Front
|
||||||
|
if(docFront && docFront !== "") {
|
||||||
|
$("#container_doc_front").html(`<a href="${docFront}" target="_blank"><img src="${docFront}" class="img-thumbnail" style="max-height: 150px;"></a>`);
|
||||||
|
} else {
|
||||||
|
$("#container_doc_front").html('<span class="text-muted">Aucun document</span>');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Affichage Image Back
|
||||||
|
if(docBack && docBack !== "") {
|
||||||
|
$("#container_doc_back").html(`<a href="${docBack}" target="_blank"><img src="${docBack}" class="img-thumbnail" style="max-height: 150px;"></a>`);
|
||||||
|
} else {
|
||||||
|
$("#container_doc_back").html('<span class="text-muted">Aucun document</span>');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function processAgencyRequest(status) {
|
/* =====================================================
|
||||||
let id = $("#review_id").val();
|
* 2. LOGIQUE UI : BASCULEMENT VERS LA ZONE DE REJET
|
||||||
$.ajax({
|
* ===================================================== */
|
||||||
url: "<?= base_url('Gestion/update_request_agency'); ?>",
|
// Quand on clique sur "REJETER" (le gros bouton rouge)
|
||||||
type: "POST",
|
$("#btn-show-reject-input").click(function() {
|
||||||
data: { id: id, status: status },
|
$("#default-actions").slideUp(); // On cache les boutons
|
||||||
dataType: "json",
|
$("#reject-area").slideDown(); // On affiche le textarea
|
||||||
success: function (res) {
|
});
|
||||||
if (res && res.success === "ok") {
|
|
||||||
$('#reviewModal').modal('hide');
|
// Quand on clique sur "Annuler" (dans la zone de rejet)
|
||||||
toastr.success("Mise à jour effectuée !");
|
$("#btn-cancel-reject").click(function() {
|
||||||
setTimeout(() => location.reload(), 1500);
|
$("#reject-area").slideUp();
|
||||||
} else { toastr.error(res.message || "Erreur"); }
|
$("#default-actions").slideDown();
|
||||||
}
|
$("#reject_reason").val(""); // On nettoie
|
||||||
});
|
});
|
||||||
}
|
|
||||||
$("#btn-validate-request").click(function() { processAgencyRequest('active'); });
|
|
||||||
$("#btn-reject-request").click(function() { processAgencyRequest('rejected'); });
|
/* =====================================================
|
||||||
|
* 3. ACTION : CONFIRMER LE REJET (Update simple)
|
||||||
|
* ===================================================== */
|
||||||
|
$("#btn-confirm-reject").click(function() {
|
||||||
|
let id = $("#review_id").val();
|
||||||
|
let reason = $("#reject_reason").val().trim();
|
||||||
|
|
||||||
|
// Validation : Le motif est obligatoire
|
||||||
|
if(reason === "") {
|
||||||
|
toastr.warning("Veuillez saisir un motif pour le rejet.");
|
||||||
|
$("#reject_reason").focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Désactivation pour éviter double clic
|
||||||
|
$(this).prop('disabled', true).text('Traitement...');
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "<?= base_url('Gestion/update_request_agency'); ?>",
|
||||||
|
type: "POST",
|
||||||
|
data: {
|
||||||
|
id: id,
|
||||||
|
status: 'rejected',
|
||||||
|
reason: reason // On envoie le motif saisi
|
||||||
|
},
|
||||||
|
dataType: "json",
|
||||||
|
success: function (res) {
|
||||||
|
if (res && res.success === "ok") {
|
||||||
|
$('#reviewModal').modal('hide');
|
||||||
|
toastr.warning("Demande rejetée avec succès.");
|
||||||
|
setTimeout(() => location.reload(), 1500);
|
||||||
|
} else {
|
||||||
|
toastr.error(res.message || "Erreur lors du rejet.");
|
||||||
|
$("#btn-confirm-reject").prop('disabled', false).text('Confirmer le rejet');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
toastr.error("Erreur serveur (500).");
|
||||||
|
$("#btn-confirm-reject").prop('disabled', false).text('Confirmer le rejet');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/* =====================================================
|
||||||
|
* LOGIQUE DE VALIDATION (AGENCY BANKING)
|
||||||
|
* ===================================================== */
|
||||||
|
|
||||||
|
// 1. Fonction pour VALIDER
|
||||||
|
function validateAgencyRequest() {
|
||||||
|
let id = $("#review_id").val();
|
||||||
|
|
||||||
|
// Récupération des documents (stockés dans les inputs cachés lors de l'ouverture du modal)
|
||||||
|
let docFront = $("#hidden_doc_front").val();
|
||||||
|
let docBack = $("#hidden_doc_back").val();
|
||||||
|
|
||||||
|
// On peut désactiver le bouton pour éviter le double clic
|
||||||
|
$("#btn-validate-request").prop('disabled', true).html('<i class="fa fa-spinner fa-spin"></i> Traitement...');
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "<?= base_url('Gestion/validate_request_agency'); ?>", // URL SPÉCIFIQUE
|
||||||
|
type: "POST",
|
||||||
|
data: {
|
||||||
|
id: id,
|
||||||
|
status: 'active',
|
||||||
|
doc_front: docFront,
|
||||||
|
doc_back: docBack
|
||||||
|
},
|
||||||
|
dataType: "json",
|
||||||
|
success: function (res) {
|
||||||
|
$("#btn-validate-request").prop('disabled', false).html('VALIDER');
|
||||||
|
|
||||||
|
if (res && res.success === "ok") {
|
||||||
|
$('#reviewModal').modal('hide');
|
||||||
|
toastr.success(res.message || "Demande validée avec succès !");
|
||||||
|
setTimeout(() => location.reload(), 1500);
|
||||||
|
} else {
|
||||||
|
toastr.error(res.message || "Erreur lors de la validation.");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
$("#btn-validate-request").prop('disabled', false).html('VALIDER');
|
||||||
|
toastr.error("Erreur serveur (500) lors de la validation.");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clic sur VALIDER
|
||||||
|
$("#btn-validate-request").click(function() {
|
||||||
|
validateAgencyRequest();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// Logique Review LINK
|
// Logique Review LINK
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue