Mon commit initial

This commit is contained in:
2025-12-19 09:43:33 +00:00
commit f11d1e62b4
336 changed files with 6247 additions and 0 deletions

0
static/css/base.css Normal file
View File

6
static/css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
static/images/stock-bon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

14
static/js/Untitled-1.py Normal file
View File

@@ -0,0 +1,14 @@
table.setFilter("colors", "keywords", "red green blue"); //returns rows with a colors filed containing either the word "red", "green", or "blue"
table.setFilter("colors", "keywords", "red green blue", {matchAll:true}); //returns rows with a colors filed containing ALL the words "red", "green" & "blue"
function customFilter(data, filterParams){
//data - the data for the row being filtered
//filterParams - params object passed to the filter
return data.name == "bob" && data.height < filterParams.height; //must return a boolean, true if it passes the filter.
}
table.setFilter(customFilter, {height:3});
table.refreshFilter();

7
static/js/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,25 @@
const $ = (id) => document.getElementById(id);
const tableau_carnet = new Tabulator("#tableau-carnet", {
columns: [
{"title": "Date", "field": "date"},
{"title": "Nom de la station-service", "field": "nom_station"},
{"title": "Type de carburant", "field": "type_carburant"},
{"title": "Litres", "field": "litre"},
{"title": "Litre/Prix (GNF)", "field": "prix"},
{"title": "Montant total (GNF)", "field": "montant_total"},
{"title": "Kilometrage", "field": "kilometrage"},
{"title": "Observation", "field": "observation"},
{"title": "Nom du chauffeur", "field": "nom_chauffeur"},
]
})
$("filtreMois").addEventListener("change", function () {
tableau_carnet.setData(
`${$("filtreMois").dataset.url}`,
{
"id_vehicule": $("id_vehicule").value,
"mois": this.value
}
)
})

View File

@@ -0,0 +1,23 @@
const $ = (id) => document.getElementById(id);
const tableau_carnet = new Tabulator("#tableau-sortie-vehicule", {
columns: [
{"title": "Nom du passager", "field": "nom_passager"},
{"title": "Lieu de depart", "field": "lieu_depart"},
{"title": "Heure de départ prévue", "field": "heure_depart_prevu"},
{"title": "Heure effectif de départ", "field": "heure_depart_effectif"},
{"title": "Lieu d'arrivé", "field": "lieu_arrive"},
{"title": "Heure d'arrivée", "field": "heure_arrive"},
{"title": "Nom du chauffeur", "field": "nom_chauffeur"},
]
})
$("filtreMois").addEventListener("change", function () {
tableau_carnet.setData(
`${$("filtreMois").dataset.url}`,
{
"id_vehicule": $("id_vehicule").value,
"mois": this.value
}
)
})

View File

@@ -0,0 +1,9 @@
const $ = (id) => document.getElementById(id);
const course_terminer = $("course-terminer").dataset.state;
if(course_terminer === "True"){
$("course-terminer").checked = true;
document.querySelectorAll(".enregistrerButton").forEach(button => {
button.style.display = "none";
});
}

View File

@@ -0,0 +1,24 @@
// document.getElementById("id_mois_concerne").addEventListener("change", function () {
// fetch(`/gestion-produit/recuperer-fournisseur-categorie/${this.value}`)
// .then(response => response.json())
// .then(data => {
// champs_fournisseur.innerHTML = "";
// data.forEach(fournisseur => {
// const option = document.createElement("option");
// option.value = fournisseur.id;
// option.text = fournisseur.nom_fournisseur;
// champs_fournisseur.appendChild(option);
// });
// })
// })
carnetBordMois = document.querySelector("#carnetBordForm #id_mois_concerne");
carnetBordMois.addEventListener("change", function () {
fetch (`/gestion-vehicule/carnet-vehicule-information/${carnetBordMois.value}`)
.then(response => response.json())
.then(data => {
document.getElementById("id_km_debut_mois").value = data.km_debut;
document.getElementById("id_km_fin_mois").value = data.km_fin;
})
})

View File

@@ -0,0 +1,24 @@
const tableau_livraison = new Tabulator("#liste-livraison", {
layout: "fitColumns",
columns: [
{ title: "Date de livraison", field: "date", sorter: "date" },
{ title: "Produit", field: "produit" },
{ title: "Quantité commandée", field: "quantite" },
{ title: "Montant", field: "prix_achat", formatter: "money" },
{ title: "Montant total", field: "montant_total", formatter: "money" },
{ title: "Statut", field: "statut", formatter: "tickCross" },
],
responsiveLayout: "hide",
pagination: true,
paginationSize: 10,
ajaxURL: document.getElementById("liste-livraison").dataset.url,
})
document.getElementById("filtreMois").addEventListener("change", function() {
const mois = this.value;
if (mois) {
tableau_livraison.setFilter("date", "like", mois);
} else {
tableau_livraison.clearFilter();
}
});

View File

@@ -0,0 +1,34 @@
const $ = (id) => document.getElementById(id);
const tableau_liste_fournisseur = new Tabulator("#liste_fournisseur", {
layout:"fitColumns",
ajaxURL: `${$('liste_fournisseur').dataset.url}`,
columns:[
{title:"Nom de l'entreprise", field:"nom_entreprise"},
{title:"Nom et prénom du representant", field:"representant"},
{title:"Fonction", field:"fonction"},
{title:"Téléphone", field:"telephone"},
{title:"E-mail", field:"email"},
// {title:"Note", field:"note", formatter: "star"},
],
});
document.getElementById("searchFournisseur").addEventListener("keyup", function () {
if(this.value){
tableau_liste_fournisseur.setFilter("nom_entreprise", "like", this.value)
}else{
tableau_liste_fournisseur.clearFilter();
}
})
document.getElementById("filterCategorie").addEventListener("change", function (e) {
if(this.value === ""){
tableau_liste_fournisseur.setData(`${$('liste_fournisseur').dataset.url}`)
}else{
tableau_liste_fournisseur.setData("/gestion-fournisseur/liste-fournisseur-categorie", {"c": this.value})
}
})
tableau_liste_fournisseur.on("rowClick", function(e, row){
location.href = `details-fournisseur/${row.getData().id}`;
});

View File

@@ -0,0 +1,231 @@
const $ = (id) => document.getElementById(id);
document.addEventListener('DOMContentLoaded', function () {
const voirBtns = document.querySelectorAll('.voir-demande');
const modal = new bootstrap.Modal($('enregistrerDetailDemande'));
voirBtns.forEach(btn => {
btn.addEventListener('click', function () {
const produitId = this.dataset.id;
fetch(`/gestion-produit/detailDemande/${produitId}/`)
.then(response => response.json())
.then(data => {
$('detailNom').value = data.detailNom;
$('detailCategorie').value = data.detailCategorie;
$('detailmotif').textContent = data.detailmotif;
$('detailDateDemande').value = data.detailDeMiseADispo;
$('detailARendre').checked = data.detailARendre ? true : false;
// Sauvegarde de lID pour les boutons daction
if(data.chef_departement){
$('confirmerBtn').dataset.id = produitId;
$('refuserBtn').dataset.id = produitId;
}
modal.show();
});
});
});
function updateStatut(demandeId, action) {
fetch('/gestion-produit/update-demande', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: `id=${demandeId}&action=${action}&emetteur=chef`
})
.then(response => response.json())
.then(data => {
if (data.success) {
alert(`Demande ${action} avec succès !`);
location.reload(); // recharge la page pour voir le nouveau statut
} else {
alert(data.message);
}
})
.catch(error => console.error('Erreur :', error));
}
try{
$('confirmerBtn').addEventListener('click', function () {
updateStatut(this.dataset.id, '1'); // '1' pour confirmer
});
$('refuserBtn').addEventListener('click', function () {
updateStatut(this.dataset.id, '0'); // '0' pour refuser
});
}catch{
}
const tabulator = new Tabulator("#listeDemandeTable", {
columns: [
{ title: "Nom Produit", field: "produit", sorter: "string" },
// { title: "Catégorie", field: "categorie", sorter: "string" },
{ title: "Motif", field: "motifs", sorter: "string" },
{ title: "Date de mise à disposition souhaitée", field: "dateDeMiseADispoSouhaite", sorter: "date" },
{ title: "À Rendre", field: "a_rendre", sorter: "boolean", formatter: "tickCross" },
{ title: "Validé par le supérieur", field: "valider_par_chef", sorter: "boolean", formatter: "tickCross", formatterParams: {
allowEmpty: true
}
},
{ title: "Valider par la logistique", field: "valider_par_logisticien", sorter: "boolean", formatter: "tickCross", formatterParams: {
allowEmpty: true
}},
{ title: "Motif de refus", field: "motifs_refus"},
],
ajaxURL: `${$("listeDemandeTable").dataset.url}`,
})
// ----------------------------------------------------------- FILTRE
$('searchInput').addEventListener('keyup', function() {
const filter = this.value.toLowerCase();
const cards = document.querySelectorAll('.card');
cards.forEach(card => {
const title = card.querySelector('.card-title').textContent.toLowerCase();
if (title.includes(filter)) {
card.style.display = '';
} else {
card.style.display = 'none';
}
});
})
// Enregistrement de commande
const listeCommanderButton = document.querySelectorAll(".listeCommanderButton");
const modalCommander = new bootstrap.Modal($("commanderModal"));
listeCommanderButton.forEach(commanderButton => {
commanderButton.addEventListener("click", function (e) {
const idProduit = this.dataset.id;
const champs_produit = $("id_produit");
const champs_fournisseur = $("id_fournisseur");
champs_produit.value = idProduit;
// champs_produit.disabled = true;
fetch(`/gestion-produit/recuperer-fournisseur-categorie/${idProduit}`)
.then(response => response.json())
.then(data => {
champs_fournisseur.innerHTML = "";
data.forEach(fournisseur => {
const option = document.createElement("option");
option.value = fournisseur.id;
option.text = fournisseur.nom_fournisseur;
champs_fournisseur.appendChild(option);
});
})
modalCommander.show();
})
});
const listeDemandeButton = document.querySelectorAll(".listeDemandeButton");
const demanderModal = new bootstrap.Modal($("demanderModal"));
listeDemandeButton.forEach(demanderButton => {
demanderButton.addEventListener("click", function() {
const produitCommanderId = this.dataset.id;
const champs_produit = document.querySelector("#demanderModal #id_produit");
// champs_produit.disabled = true;
champs_produit.value = produitCommanderId;
demanderModal.show();
})
});
$("filterCategorie").addEventListener("change", function(){
const card = document.querySelectorAll(".card");
const filtre = this.value;
if(filtre === ""){
card.forEach(carte => {
carte.style.display = "";
});
}else{
card.forEach(carte => {
categorie = carte.querySelector(".categorie-produit").textContent.toLowerCase();
if(parseInt(categorie) === parseInt(filtre)){
carte.style.display = "";
}else{
carte.style.display = 'none'
}
});
}
})
$("enregistrement-produit-form").addEventListener("submit", function (e) {
e.preventDefault();
const form = this;
const url = this.dataset.url;
// const csrf =
fetch(
url,
{
method: "POST",
headers: {
"X-Requested-With": "XMLHttpRequest"
},
body: new FormData(form)
}
)
.then(response => response.json())
.then(data => {
const messageZone = $("messageZone");
if(data.success){
messageZone.innerHTML = `
<div class="alert alert-success">
${data.message}
</div>
`;
form.reset();
}
})
})
$('enregistrerProduit').addEventListener("hidden.bs.modal", function () {
location.reload()
})
});
// --------------------------------- Tableau categorie
const url_liste_categorie = $("listecategorie").dataset.url;
const tableau_categorie = new Tabulator("#listecategorie", {
columns: [
{title: "Nom de la catégorie", field: "categorie"}
],
ajaxURL: url_liste_categorie
})
$("enregistrer-categorie").addEventListener("submit", function (e) {
e.preventDefault();
const form = this;
const url = this.dataset.url;
fetch(url, {
method: "POST",
headers:{
"X-Requested-With": "XMLHttpResponse"
},
body: new FormData(form)
})
.then(response => response.json())
.then(data => {
if(data.success){
const messageBox = $("message-creation-categorie");
messageBox.innerHTML = `
<div class="alert alert-success">
Categorie crée avec succès
</div>
`;
tableau_categorie.setData(url_liste_categorie);
}
})
})
$("enregistrerCategorie").addEventListener("hidden.bs.modal", function () {
location.reload();
})

View File

@@ -0,0 +1,166 @@
const $ = (id) => document.getElementById(id);
const tableau_demande_vehicule = new Tabulator("#tableau-demande-vehicule", {
columns: [
{title: "Nom du passager", field: "nom_passager"},
{title: "Lieu de depart", field: "lieu_depart"},
{title: "Date et heure de départ", field: "date_heure_depart"},
{title: "Lieu d'arrivée", field: "lieu_arrivee"},
{title: "Statut de validation", field: "validation", formatter: "tickCross", formatterParams: {
allowEmpty: true
}},
],
ajaxURL: `${$("tableau-demande-vehicule").dataset.url}`,
pagination: true,
paginationSize: 8
})
function valider(statut) {
if(statut == "valider"){
$("affichage-formulaire").style.display = "block";
$("refus").style.display = "none";
}else if(statut == "refuser"){
$("affichage-formulaire").style.display = "none";
$("refus").style.display = "block";
}
}
$("radioValider").addEventListener("input", function () {
valider("valider");
})
$("radioRefuser").addEventListener("input", function () {
valider("refuser");
})
tableau_demande_vehicule.on("rowClick", function (row, rowData) {
const data = rowData.getData();
const modal = new bootstrap.Modal($("confirmerDemandeModal"));
$("id-demande").value = data.id_demande;
$("nom-passager").value = data.nom_passager;
$("lieu-depart").value = data.lieu_depart;
$("lieu-arrivee").value = data.lieu_arrivee;
$("date-heure-depart").value = data.date_heure_depart;
chauffeur_champs = $("chauffeur");
chauffeur_champs.innerHTML = "";
data.chauffeurs.forEach(chauffeur => {
const option = document.createElement("option");
option.value = chauffeur.chauffeur_id;
option.text = chauffeur.chauffeur_name;
chauffeur_champs.appendChild(option);
});
$("radioValider").disabled = false;
$("radioValider").checked = false;
$("radioRefuser").disabled = false;
$("radioRefuser").checked = false;
// $("courseTermine").disabled = false;
// $("courseTermine").checked = false;
$("motif-refus").textContent = "";
if(data.validation == true){
$("radioValider").checked = true;
$("radioValider").disabled = true;
$("radioRefuser").disabled = true;
valider("valider");
if(data.course_terminer){
$("courseTermine").checked = true;
$("courseTermine").disabled = true;
$("date_heure_retour").value = data.heure_course_termine;
$("demanderValiderEnregistrer").disabled = true;
}
}else if (data.validation == false){
valider("refuser");
// $("radioRefuser").disabled = true;
$("radioValider").disabled = true;
$("radioRefuser").checked = true;
$("demanderValiderEnregistrer").disabled = true;
$("motif-refus").textContent = data.motif_refus;
$("motif-refus").style.disabled = true;
}else{
$("affichage-formulaire").style.display = "none";
$("refus").style.display = "none";
$("radioValider").checked = false;
$("radioRefuser").checked = false;
}
const vehiculeHTML = $("vehicule");
vehiculeHTML.innerHTML = "";
data.vehicule.forEach(vehicule => {
const option = document.createElement("option");
option.value = vehicule.id;
option.textContent = vehicule.immatriculation;
vehiculeHTML.appendChild(option);
});
$("validation-sortie-footer").style.display = "none";
if(data.is_logisticien){
$("validation-sortie-footer").style.display = "";
}
if(data.validation & (data.is_logisticien | data.is_chauffeur)){
location.href = `detail-course/${data.id_demande}`
}else{
modal.show();
}
})
$("filtreStatutDemande").addEventListener("change", function () {
option_filtre = this.value;
if(option_filtre === "valider"){
tableau_demande_vehicule.setFilter("validation", '=', true);
}else if(option_filtre === "refuser"){
tableau_demande_vehicule.setFilter("validation", '=', false);
}else if(option_filtre === "attente"){
tableau_demande_vehicule.setFilter("validation", '=', null);
}else if(option_filtre === "terminer"){
tableau_demande_vehicule.setFilter("course_terminer", '=', true);
}else if(option_filtre === "mes_demandes"){
tableau_demande_vehicule.setFilter("user_id", "=", $("tableau-demande-vehicule").dataset.userid)
}
else{
tableau_demande_vehicule.clearFilter();
}
})
$("enregistrer-demande-form").addEventListener("submit", function (e) {
e.preventDefault();
const url = this.dataset.url;
const form = this;
fetch(
url,
{
method: "POST",
headers: {
"X-Requested-With": "XMTHttpRequest"
},
body: new FormData(form)
}
)
.then(response => response.json())
.then(data => {
const messageZone = $("messageZone");
if(data.success){
messageZone.innerHTML = `
<div class="alert alert-success">
${data.message}
</div>
`;
form.reset();
}
})
})
$("enregistrerDemandeModal").addEventListener("hidden.bs.modal", function () {
location.reload();
})

197
static/js/index.js Normal file
View File

@@ -0,0 +1,197 @@
const $ = (id) => document.getElementById(id);
const table_demandes = new Tabulator("#demande_produit", {
layout:"fitColumns",
ajaxURL:`${$('demande_produit').dataset.url}`,
pagination: true,
paginationSize: 8,
columns:[
{title:"Libellé", field:"produit"},
{title:"Quantité", field:"quantite"},
{title:"A rendre", field:"a_rendre", formatter: "tickCross"},
],
});
table_demandes.on("rowClick", function(e, row){
let data = row.getData();
console.log("Data", data);
const modal = new bootstrap.Modal($('listeDemandesModal'));
$('produit').value = data.produit;
$("demandeur").value = data.demandeur;
$('quantite').value = data.quantite;
$('motifs').textContent = data.motifs;
$('date_demande').value = data.date_de_mise_a_dispo_souhaite;
$('a_rendre').checked = data.a_rendre ? true : false;
$('valider_par_chef').checked = data.valider_par_chef ? true : false;
$("radioRefuser").dataset.id = data.id_demande;
$("radioValider").dataset.id = data.id_demande;
$("radioRefuser").addEventListener("click", (e) =>{
$("box-motif-refus").classList.remove("d-none");
$("box-motif-refus").classList.add("d-block");
})
$("radioValider").addEventListener("click", (e) =>{
$("box-motif-refus").classList.remove("d-block");
$("box-motif-refus").classList.add("d-none");
})
if(data.is_logisticien){
modal.show();
}
});
const table_commande = new Tabulator("#commande_attentes", {
layout:"fitColumns",
ajaxURL:`${$('commande_attentes').dataset.url}`,
pagination: true,
paginationSize: 8,
columns:[
{title:"Libellé", field:"produit"},
{title:"Fournisseur", field:"fournisseur"},
{title:"Date de livraison", field:"date_livraison"},
],
});
const tableau_produit_rupture = new Tabulator("#tableau-produit-rupture", {
layout: "fitcolumns",
ajaxURL: `${$("tableau-produit-rupture").dataset.url}`,
ajaxParams: {
type: "rupture"
},
pagination: true,
paginationSize: 8,
columns: [
{title: "Libellé", field:"libelle"},
// {title: "Catégorie", field:"categorie"},
{title: "Conditionnement", field:"conditionnement"},
{title: "Quantité en stock", field:"stockActuel"},
]
})
$("produit_rupture").addEventListener("click", function () {
produitRuptureModal = new bootstrap.Modal($("produitRuptureModal"));
tableau_produit_rupture.setData(`${$("tableau-produit-rupture").dataset.url}`, {type: "rupture"})
$("produitRuptureModalLabel").innerHTML = "Produit en rupture"
produitRuptureModal.show();
})
$("produit_pre_rupture").addEventListener("click", function() {
produitRuptureModal = new bootstrap.Modal($("produitRuptureModal"));
tableau_produit_rupture.setData(`${$("tableau-produit-rupture").dataset.url}`, {type: "pre_rupture"})
$("produitRuptureModalLabel").innerHTML = "Produit en pré-rupture"
produitRuptureModal.show()
})
$("produit_normal").addEventListener("click", function() {
produitRuptureModal = new bootstrap.Modal($("produitRuptureModal"));
tableau_produit_rupture.setData(`${$("tableau-produit-rupture").dataset.url}`, {type: "normal"})
$("produitRuptureModalLabel").innerHTML = "Produit en quantité suffisante"
produitRuptureModal.show()
})
function updateStatut(demandeId, action, motifRefus='') {
const url = $("radioRefuser").dataset.url;
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: `id=${demandeId}&action=${action}&emetteur=logisticien&motif_refus=${motifRefus}`
})
.then(response => response.json())
.then(data => {
if (data.success) {
alert(`Demande ${action} avec succès !`);
location.reload(); // recharge la page pour voir le nouveau statut
} else {
alert(data.message);
}
})
.catch(error => console.error('Erreur :', error));
}
$('enregistrerModifs').addEventListener('click', function () {
if($("radioRefuser").checked){
updateStatut(
$("radioRefuser").dataset.id,
'0',
$("motifs_refus").value
); // '0' pour refuser
}else{
updateStatut(
$("radioValider").dataset.id,
'1',
); // '1' pour confirmer
}
});
table_commande.on("rowClick", function(e, row){
let data = row.getData();
const modal = new bootstrap.Modal($('listeCommandesModal'));
$('produitCommande').value = data.produit;
$('fournisseur').value = data.fournisseur;
$('quantiteCommande').value = data.quantite;
$('date_commande').value = data.date_commande;
$('date_livraison').value = data.date_livraison;
$("enregistrerModifsCommande").dataset.id = data.id_commande;
if(data.is_logisticien){
modal.show();
}
});
$('enregistrerModifsCommande').addEventListener('click', function () {
if($("produit_livre").checked){
fetch(`${$("enregistrerModifsCommande").dataset.url}`, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: `id_commande=${$("enregistrerModifsCommande").dataset.id}`
})
.then(response => response.json())
.then(data => {
if (data.status === "success") {
alert(data.message);
location.reload(); // recharge la page pour voir le nouveau statut
} else {
alert(data.message);
}
})
.catch(error => console.error('Erreur :', error));
}
});
const tableau_equipement_rendre = new Tabulator("#tableau-equipement-rendre", {
layout:"fitColumns",
ajaxURL: `${$("tableau-equipement-rendre").dataset.url}`,
pagination: true,
paginationSize: 8,
columns:[
{title:"Libellé", field:"produit"},
{title:"Quantite", field:"quantite"},
{title:"Detenteur", field:"detenteur"},
// {title:"Departement", field:"detenteur"},
{title:"Rendu", field:"action", formatter:"tickCross", editor: true},
],
})
$("equipementARendreEnregistrer").addEventListener("click", function () {
const information_equipement = tableau_equipement_rendre.getData();
fetch(`${$("equipementARendreEnregistrer").dataset.url}`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(information_equipement)
})
.then(response => response.json())
.then(data => {
tableau_equipement_rendre.setData("/equipement-a-rendre");
// tableau_equipement_rendre.clearEditedData();
})
.catch(error => console.error(error))
})

View File

@@ -0,0 +1,52 @@
const $ = (id) => document.getElementById(id);
const tableau_entre = new Tabulator("#tableau-stock-entree", {
columns: [
{title: "Produit", field: "produit"},
{title: "Catégorie", field: "categorie"},
{title: "Conditionnement", field: "conditionnement"},
{title: "Fournisseur", field: "fournisseur"},
{title: "Date de commande", field: "date_commande"},
{title: "Date de livraison", field: "date_livraison"},
{title: "Quantité commandée", field: "quantite_commander"},
],
})
const tableau_sortie = new Tabulator("#tableau-stock-sortie", {
columns: [
{title: "Produit", field: "produit"},
{title: "Catégorie", field: "categorie"},
{title: "Conditionnement", field: "conditionnement"},
{title: "Date de la demande", field: "date_demande"},
// {title: "Date de mise à disposition", field: "date_mise_a_dispo"},
{title: "Quantité demandée", field: "quantite_demander"},
]
})
const filtreMois = $("filtreMois");
filtreMois.addEventListener("change", function () {
tableau_entre.setData(`${filtreMois.dataset.url}`, {
dateFiltre: filtreMois.value,
typeFiltre: $("type_operation").value
})
tableau_sortie.setData(`${filtreMois.dataset.url}`, {
dateFiltre: filtreMois.value,
typeFiltre: $("type_operation").value
})
})
$("type_operation").addEventListener("change", function () {
if(this.value === "entree"){
$("tableau-stock-entree").style.display = "";
$("tableau-stock-sortie").style.display = "none";
}
})
$("type_operation").addEventListener("change", function () {
if(this.value === "sortie"){
$("tableau-stock-entree").style.display = "none";
$("tableau-stock-sortie").style.display = "";
}
})

3
static/js/tabulator.min.js vendored Normal file

File diff suppressed because one or more lines are too long