correzione 3 a eliminazione articoli della macchina
All checks were successful
Deploy to VPS / build (push) Successful in 39s
Deploy to VPS / deploy (push) Successful in 27s

This commit is contained in:
AV77web 2026-05-31 12:21:01 +02:00
parent c0ee27c5a9
commit 6843d901bf

View file

@ -280,30 +280,44 @@ export default function MacchineTree() {
}
};
const handleShowArticles = (nodeId: number) => {
const handleShowArticles = async (nodeId: number) => {
const macchina = nodes.find((n) => n.id === nodeId);
if (!macchina) return;
const articoliNodo = articlesByMacchina[nodeId] || [];
// Ricarica sempre i dati freschi dal server prima di mostrare la modale
try {
const res = await fetch("/api/art-macchine-parti");
if (!res.ok) throw new Error("Errore caricamento articoli");
const getDescendantArticles = (id: number): ArticoloAssegnatoMacchina[] => {
const children = nodes.filter((n) => n.id_padre === id);
let result: ArticoloAssegnatoMacchina[] = [];
for (const child of children) {
const childArticles = articlesByMacchina[child.id] || [];
result = [...result, ...childArticles, ...getDescendantArticles(child.id)];
}
return result;
};
const data = await res.json();
const freshArticlesByMacchina = data.articoliPerMacchina || {};
const allArticoli = [...articoliNodo, ...getDescendantArticles(nodeId)];
// Aggiorna lo state globale
setArticlesByMacchina(freshArticlesByMacchina);
setShowArticlesModal({
macchinaId: nodeId,
macchinaNome: macchina.nome,
macchinaStabilimentoId: macchina.id_stabilimento,
articoli: allArticoli,
});
const articoliNodo = freshArticlesByMacchina[nodeId] || [];
const getDescendantArticles = (id: number): ArticoloAssegnatoMacchina[] => {
const children = nodes.filter((n) => n.id_padre === id);
let result: ArticoloAssegnatoMacchina[] = [];
for (const child of children) {
const childArticles = freshArticlesByMacchina[child.id] || [];
result = [...result, ...childArticles, ...getDescendantArticles(child.id)];
}
return result;
};
const allArticoli = [...articoliNodo, ...getDescendantArticles(nodeId)];
setShowArticlesModal({
macchinaId: nodeId,
macchinaNome: macchina.nome,
macchinaStabilimentoId: macchina.id_stabilimento,
articoli: allArticoli,
});
} catch (err) {
console.error("Errore caricamento articoli:", err);
}
};
const handleDropArticle = (macchinaId: number, article: unknown) => {