let data = JSON.parse(localStorage.getItem("inventario")) || []; function guardar(){ localStorage.setItem("inventario", JSON.stringify(data)); } function mostrar(id){ document.querySelectorAll(".seccion").forEach(s=>s.style.display="none"); document.getElementById(id).style.display="block"; if(id==="dashboard"){ document.getElementById("total").innerText = data.length; } if(id==="buscar"){ render(); } } function generarCodigo(){ let num = data.length + 1; return "EQ-2026-" + String(num).padStart(4,"0"); } function registrar(){ let nombre = document.getElementById("nombre").value; let ubicacion = document.getElementById("ubicacion").value; if(!nombre || !ubicacion){ alert("Completa datos"); return; } let codigo = generarCodigo(); data.push({ codigo, nombre, ubicacion }); guardar(); alert("Registrado: " + codigo); document.getElementById("nombre").value=""; document.getElementById("ubicacion").value=""; } function render(lista=data){ let tabla = document.getElementById("tabla"); tabla.innerHTML=""; lista.forEach(item=>{ tabla.innerHTML += ` ${item.codigo} ${item.nombre} ${item.ubicacion} `; }); } function buscar(){ let txt = document.getElementById("busqueda").value.toLowerCase(); let filtrado = data.filter(d=> d.codigo.toLowerCase().includes(txt) || d.nombre.toLowerCase().includes(txt) ); render(filtrado); } function seleccionar(codigo){ document.getElementById("movCodigo").value = codigo; mostrar("movimientos"); } function mover(){ let codigo = document.getElementById("movCodigo").value; let ubicacion = document.getElementById("movUbicacion").value; let item = data.find(d=>d.codigo===codigo); if(!item){ alert("No existe"); return; } item.ubicacion = ubicacion; guardar(); alert("Movimiento registrado"); } function generarEtiqueta(){ let codigo = document.getElementById("codigoEtiqueta").value; let item = data.find(d=>d.codigo===codigo); if(!item){ alert("No encontrado"); return; } document.getElementById("textoEtiqueta").innerText = item.nombre; JsBarcode("#barcode", codigo, { format:"CODE128" }); } mostrar("dashboard");