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)) })