Mon commit initial
This commit is contained in:
197
static/js/index.js
Normal file
197
static/js/index.js
Normal 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))
|
||||
})
|
||||
Reference in New Issue
Block a user