You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
490 lines
19 KiB
490 lines
19 KiB
<!-- Content Wrapper. Contains page content -->
|
|
<div class="content-wrapper">
|
|
<!-- Content Header (Page header) -->
|
|
<section class="content-header">
|
|
<h1>
|
|
Gestion des
|
|
<small>Réparations</small>
|
|
</h1>
|
|
<ol class="breadcrumb">
|
|
<li><a href="#"><i class="fa fa-dashboard"></i> Accueil</a></li>
|
|
<li class="active">Mécanicien</li>
|
|
</ol>
|
|
</section>
|
|
|
|
<section class="content">
|
|
<div class="row">
|
|
<div class="col-md-12 col-xs-12">
|
|
<div id="messages"></div>
|
|
<?php if (session()->getFlashdata('success')): ?>
|
|
<div class="alert alert-success alert-dismissible" role="alert">
|
|
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span
|
|
aria-hidden="true">×</span></button>
|
|
<?php echo session()->getFlashdata('success'); ?>
|
|
</div>
|
|
<?php elseif (session()->getFlashdata('error')): ?>
|
|
<div class="alert alert-error alert-dismissible" role="alert">
|
|
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span
|
|
aria-hidden="true">×</span></button>
|
|
<?php echo session()->getFlashdata('error'); ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<?php if (in_array('createMecanicien', $user_permission)): ?>
|
|
<button class="btn btn-primary" data-toggle="modal" data-target="#addModal">Ajouter une réparation</button>
|
|
<br /> <br />
|
|
<?php endif; ?>
|
|
<div class="box">
|
|
<div class="box-header">
|
|
<h3 class="box-title">Gérer les Réparations</h3>
|
|
</div>
|
|
|
|
<div class="box-body">
|
|
<table id="manageTable" class="table table-bordered table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Image</th>
|
|
<th>Motos</th>
|
|
<th>Username</th>
|
|
<th>Statut</th>
|
|
<th>Observation</th>
|
|
<th>Date de début</th>
|
|
<th>Date de fin</th>
|
|
<?php if (in_array('updateMecanicien', $user_permission) || in_array('deleteMecanicien', $user_permission)): ?>
|
|
<th>Action</th>
|
|
<?php endif; ?>
|
|
</tr>
|
|
</thead>
|
|
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
|
|
<?php if (in_array('createMecanicien', $user_permission)): ?>
|
|
<!-- create brand modal -->
|
|
<div class="modal fade" tabindex="-1" role="dialog" id="addModal">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
|
aria-hidden="true">×</span></button>
|
|
<h4 class="modal-title">Ajouter une moto pour réparation</h4>
|
|
</div>
|
|
|
|
<form role="form" action="<?php echo base_url('mecanicien/create') ?>" method="post" id="createForm">
|
|
|
|
<div class="modal-body">
|
|
|
|
<div class="form-group">
|
|
<label for="motos">Nom du motos</label>
|
|
<!-- <select class="form-control" id="motos" name="motos" style="width: 100%;">
|
|
<//?php foreach ($moto as $k => $v): ?>
|
|
<option value="<//?php echo $v['id'] ?>"><//?php echo $v['name'] ?></option>
|
|
<//?php endforeach ?>
|
|
</select> -->
|
|
<select name="motos" class="form-control select2" id="moto_select" style="width: 100%;"
|
|
style="width:100%;" required>
|
|
<option value=""></option>
|
|
<?php foreach ($moto as $k => $v): ?>
|
|
<?php if ($v['product_sold'] == false): ?>
|
|
<option value="<?php echo $v['id'] ?>">
|
|
<?= $v['sku'] . ' | ' . $v['name'] . ' | ' . $v['numero_de_moteur'] . ' | ' . $v['puissance'] ?>
|
|
</option>
|
|
<!-- <//?php else: ?>
|
|
<option value="<?php echo $v['id'] ?>" disabled><?php echo $v['name'] ?> <span style="background-color: #dc3545; color: #ffffff; padding: 2px 5px; border-radius: 5px;"> (Rupture de stock)</span></option>
|
|
<?php endif; ?> -->
|
|
<?php endforeach ?>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mecano">Nom du mecanicien</label>
|
|
<select class="form-control select2" id="moto_select2" name="mecano" style="width: 100%;">
|
|
<?php foreach ($users as $k => $v): ?>
|
|
<option value="<?php echo $v['id'] ?>"><?php echo $v['firstname'] . " " . $v['lastname'] ?></option>
|
|
<?php endforeach ?>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="statut">Status</label>
|
|
<select class="form-control" id="statut" name="statut" required>
|
|
<option value="1">En cours de réparation</option>
|
|
<option value="2">Réparer</option>
|
|
<option value="3">Non réparer</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="observation">Observation</label>
|
|
<textarea class="form-control" name="observation" id="observation" cols="30" rows="3"
|
|
placeholder="votre observation"></textarea>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="date_debut">Date de debut</label>
|
|
<input type="date" name="date_debut" id="date_debut" class="form-control" required>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="date_fin">Date de fin</label>
|
|
<input type="date" name="date_fin" id="date_fin" class="form-control" required>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">Fermer</button>
|
|
<button type="submit" class="btn btn-primary">Enregistrer</button>
|
|
</div>
|
|
|
|
</form>
|
|
|
|
|
|
</div><!-- /.modal-content -->
|
|
</div><!-- /.modal-dialog -->
|
|
</div><!-- /.modal -->
|
|
<?php endif; ?>
|
|
|
|
<?php if (in_array('deleteMecanicien', $user_permission)): ?>
|
|
<!-- remove brand modal -->
|
|
<div class="modal fade" tabindex="-1" role="dialog" id="removeModal">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
|
aria-hidden="true">×</span></button>
|
|
<h4 class="modal-title">Supprimer la réparation</h4>
|
|
</div>
|
|
|
|
<form role="form" action="<?php echo base_url('mecanicien/delete') ?>" method="post" id="removeForm">
|
|
<div class="modal-body">
|
|
<p>Voulez-vous vraiment supprimer ?</p>
|
|
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">Fermer</button>
|
|
<button type="submit" class="btn btn-primary">Oui</button>
|
|
</div>
|
|
</form>
|
|
|
|
|
|
</div><!-- /.modal-content -->
|
|
</div><!-- /.modal-dialog -->
|
|
</div><!-- /.modal -->
|
|
<?php endif; ?>
|
|
|
|
<?php if (in_array('updateMecanicien', $user_permission)): ?>
|
|
<!-- edit brand modal -->
|
|
<div class="modal fade" tabindex="-1" role="dialog" id="editModal">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
|
aria-hidden="true">×</span></button>
|
|
<h4 class="modal-title">Mise à jour du réparation</h4>
|
|
</div>
|
|
|
|
<form role="form" action="<?php echo base_url('mecanicien/update') ?>" method="post" id="updateForm">
|
|
|
|
<div class="modal-body">
|
|
|
|
<div class="form-group">
|
|
<label for="motos">Nom du motos</label>
|
|
<select class="form-control" id="motos_edit" name="motos" style="width: 100%;" required>
|
|
<?php foreach ($moto as $k => $v): ?>
|
|
<?php if ($v['product_sold'] == false): ?>
|
|
<option value="<?php echo $v['id'] ?>">
|
|
<?= $v['sku'] . ' | ' . $v['name'] . ' | ' . $v['numero_de_moteur'] . ' | ' . $v['puissance'] ?>
|
|
</option>
|
|
<!-- <//?php else: ?>
|
|
<option value="<?php echo $v['id'] ?>" disabled><?php echo $v['name'] ?> <span style="background-color: #dc3545; color: #ffffff; padding: 2px 5px; border-radius: 5px;"> (Rupture de stock)</span></option>
|
|
<?php endif; ?> -->
|
|
<?php endforeach ?>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mecano">Nom du mecanicien</label>
|
|
<select class="mecanic" id="mecano" name="mecano" style="width: 100%;">
|
|
<?php foreach ($users as $k => $v): ?>
|
|
<option value="<?php echo $v['id'] ?>"><?php echo $v['firstname'] . " " . $v['lastname'] ?></option>
|
|
<?php endforeach ?>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="statut">Status</label>
|
|
<select class="form-control" id="statut_edit" name="statut" required>
|
|
<option value="1">En cours de réparation</option>
|
|
<option value="2">Réparer</option>
|
|
<option value="3">Non réparer</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="observation">Observation</label>
|
|
<textarea class="form-control" name="observation" id="observation_edit" cols="30" rows="3"
|
|
placeholder="votre observation"></textarea>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="date_debut">Date de debut</label>
|
|
<input type="date" name="date_debut" id="date_debut_edit" class="form-control" required>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="date_fin">Date de fin</label>
|
|
<input type="date" name="date_fin" id="date_fin_edit" class="form-control" required>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">Fermer</button>
|
|
<button type="submit" class="btn btn-primary">Enregistrer</button>
|
|
</div>
|
|
|
|
</form>
|
|
|
|
|
|
</div><!-- /.modal-content -->
|
|
</div><!-- /.modal-dialog -->
|
|
</div><!-- /.modal -->
|
|
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
$(document).ready(function () {
|
|
$('#addModal').on('shown.bs.modal', function () {
|
|
// Only initialize if not already done
|
|
if (!$('#moto_select').hasClass("select2-hidden-accessible")) {
|
|
$('#moto_select').select2({
|
|
dropdownParent: $('#addModal'),
|
|
width: '100%' // Ensure it takes full width
|
|
});
|
|
}
|
|
|
|
if (!$('#moto_select2').hasClass("select2-hidden-accessible")) {
|
|
$('#moto_select2').select2({
|
|
dropdownParent: $('#addModal'),
|
|
width: '100%' // Ensure it takes full width
|
|
});
|
|
}
|
|
});
|
|
$("#motos_edit").select2();
|
|
$('.mecanic').select2();
|
|
$("#mecanicNav").addClass('active');
|
|
|
|
// initialize the datatable
|
|
// datatable-fr.js
|
|
$.extend(true, $.fn.dataTable.defaults, {
|
|
language: {
|
|
sProcessing: "Traitement en cours...",
|
|
sSearch: "Rechercher :",
|
|
sLengthMenu: "Afficher _MENU_ éléments",
|
|
sInfo: "Affichage de l'élement _START_ à _END_ sur _TOTAL_ éléments",
|
|
sInfoEmpty: "Affichage de l'élement 0 à 0 sur 0 élément",
|
|
sInfoFiltered: "(filtré de _MAX_ éléments au total)",
|
|
sLoadingRecords: "Chargement en cours...",
|
|
sZeroRecords: "Aucun élément à afficher",
|
|
sEmptyTable: "Aucune donnée disponible dans le tableau",
|
|
oPaginate: {
|
|
sFirst: "Premier",
|
|
sPrevious: "Précédent",
|
|
sNext: "Suivant",
|
|
sLast: "Dernier"
|
|
},
|
|
oAria: {
|
|
sSortAscending: ": activer pour trier la colonne par ordre croissant",
|
|
sSortDescending: ": activer pour trier la colonne par ordre décroissant"
|
|
}
|
|
}
|
|
});
|
|
|
|
manageTable = $('#manageTable').DataTable({
|
|
'ajax': `<?= base_url('mecanicien/fetchMecanicien') ?>`,
|
|
'order': []
|
|
});
|
|
|
|
|
|
// submit the create from
|
|
$("#createForm").unbind('submit').on('submit', function () {
|
|
var form = $(this);
|
|
|
|
// remove the text-danger
|
|
$(".text-danger").remove();
|
|
|
|
$.ajax({
|
|
url: form.attr('action'),
|
|
type: form.attr('method'),
|
|
data: form.serialize(), // /converting the form data into array and sending it to server
|
|
dataType: 'json',
|
|
success: function (response) {
|
|
|
|
manageTable.ajax.reload(null, false);
|
|
|
|
if (response.success === true) {
|
|
$("#messages").html('<div class="alert alert-success alert-dismissible" role="alert">' +
|
|
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>' +
|
|
'<strong> <span class="glyphicon glyphicon-ok-sign"></span> </strong>' + response.messages +
|
|
'</div>');
|
|
|
|
|
|
// hide the modal
|
|
$("#addModal").modal('hide');
|
|
|
|
// reset the form
|
|
$("#createForm")[0].reset();
|
|
$("#createForm .form-group").removeClass('has-error').removeClass('has-success');
|
|
|
|
} else {
|
|
|
|
if (response.messages instanceof Object) {
|
|
$.each(response.messages, function (index, value) {
|
|
var id = $("#" + index);
|
|
|
|
id.closest('.form-group')
|
|
.removeClass('has-error')
|
|
.removeClass('has-success')
|
|
.addClass(value.length > 0 ? 'has-error' : 'has-success');
|
|
|
|
id.after(value);
|
|
|
|
});
|
|
} else {
|
|
$("#messages").html('<div class="alert alert-warning alert-dismissible" role="alert">' +
|
|
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>' +
|
|
'<strong> <span class="glyphicon glyphicon-exclamation-sign"></span> </strong>' + response.messages +
|
|
'</div>');
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
return false;
|
|
});
|
|
|
|
})
|
|
|
|
// edit function
|
|
function editFunc(id) {
|
|
$.ajax({
|
|
url: '<?= base_url('mecanicien/fetchmecanicienSingle') ?>/' + id,
|
|
type: 'post',
|
|
dataType: 'json',
|
|
success: function (response) {
|
|
console.log(response);
|
|
let date1 = new Date(response.reparation_debut);
|
|
let date2 = new Date(response.reparation_fin);
|
|
let formattedDate1 = date1.toLocaleDateString("fr-CA").split("T")[0]; // Convert to YYYY-MM-DD
|
|
let formattedDate2 = date2.toLocaleDateString("fr-CA").split("T")[0]; // Convert to YYYY-MM-DD
|
|
$("#motos_edit").val(response.produit_id).change();
|
|
$("#statut_edit").val(response.reparation_statut);
|
|
$("#observation_edit").val(response.reparation_observation);
|
|
$("#date_debut_edit").val(formattedDate1);
|
|
$("#date_fin_edit").val(formattedDate2);
|
|
|
|
// submit the edit from
|
|
$("#updateForm").unbind('submit').bind('submit', function () {
|
|
var form = $(this);
|
|
|
|
// remove the text-danger
|
|
$(".text-danger").remove();
|
|
|
|
$.ajax({
|
|
url: form.attr('action').replace(/\/?$/, '/') + id,
|
|
type: form.attr('method'),
|
|
data: form.serialize(), // /converting the form data into array and sending it to server
|
|
dataType: 'json',
|
|
success: function (response) {
|
|
|
|
manageTable.ajax.reload(null, false);
|
|
|
|
if (response.success === true) {
|
|
$("#messages").html('<div class="alert alert-success alert-dismissible" role="alert">' +
|
|
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>' +
|
|
'<strong> <span class="glyphicon glyphicon-ok-sign"></span> </strong>' + response.messages +
|
|
'</div>');
|
|
|
|
|
|
// hide the modal
|
|
$("#editModal").modal('hide');
|
|
// reset the form
|
|
$("#updateForm .form-group").removeClass('has-error').removeClass('has-success');
|
|
|
|
} else {
|
|
|
|
if (response.messages instanceof Object) {
|
|
$.each(response.messages, function (index, value) {
|
|
var id = $("#" + index);
|
|
|
|
id.closest('.form-group')
|
|
.removeClass('has-error')
|
|
.removeClass('has-success')
|
|
.addClass(value.length > 0 ? 'has-error' : 'has-success');
|
|
|
|
id.after(value);
|
|
|
|
});
|
|
} else {
|
|
$("#messages").html('<div class="alert alert-warning alert-dismissible" role="alert">' +
|
|
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>' +
|
|
'<strong> <span class="glyphicon glyphicon-exclamation-sign"></span> </strong>' + response.messages +
|
|
'</div>');
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
return false;
|
|
});
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
function removeFunc(id) {
|
|
if (id) {
|
|
$("#removeForm").on('submit', function () {
|
|
|
|
var form = $(this);
|
|
|
|
// remove the text-danger
|
|
$(".text-danger").remove();
|
|
|
|
$.ajax({
|
|
url: form.attr('action'),
|
|
type: form.attr('method'),
|
|
data: {
|
|
reparation_id: id
|
|
},
|
|
dataType: 'json',
|
|
success: function (response) {
|
|
|
|
manageTable.ajax.reload(null, false);
|
|
|
|
if (response.success === true) {
|
|
$("#messages").html('<div class="alert alert-success alert-dismissible" role="alert">' +
|
|
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>' +
|
|
'<strong> <span class="glyphicon glyphicon-ok-sign"></span> </strong>' + response.messages +
|
|
'</div>');
|
|
|
|
// hide the modal
|
|
$("#removeModal").modal('hide');
|
|
|
|
} else {
|
|
|
|
$("#messages").html('<div class="alert alert-warning alert-dismissible" role="alert">' +
|
|
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>' +
|
|
'<strong> <span class="glyphicon glyphicon-exclamation-sign"></span> </strong>' + response.messages +
|
|
'</div>');
|
|
}
|
|
}
|
|
});
|
|
|
|
return false;
|
|
});
|
|
}
|
|
}
|
|
</script>
|