Escuela Normal Superior La Hacienda - Barranquilla
IE
Inventario y Préstamos - Escuela Normal Superior La Hacienda
Inventario Electrónica
Gestión de artículos, préstamos y devoluciones
Escuela Normal Superior La Hacienda
Escuela Normal Superior La Hacienda
Centro de Innovación Educativa y Tecnológica
Agregar Artículo
El sistema genera automáticamente el código del ítem.
Items: 0
Vista rápida
Panel de administración
Nota: Los datos se almacenan localmente en el navegador (localStorage). Para usar en red o servidor, adapte este archivo para conectarse a una base de datos real (MySQL, Firebase, etc.).
Acceso a la aplicación
Ingrese la contraseña para abrir el sistema
Contraseña solicitada por la dirección de la institución.
');
doc.close();
setTimeout(()=>{win.print();},500);
}// Export & Import
exportBtn.addEventListener('click', ()=>{
const blob = new Blob([JSON.stringify({items,loans},null,2)],{type:'application/json'});
const url = URL.createObjectURL(blob);
const a = document.createElement('a');a.href=url;a.download='inventario_prestamos.json';document.body.appendChild(a);a.click();a.remove();URL.revokeObjectURL(url);
});
importBtn.addEventListener('click', ()=>fileImport.click());
fileImport.addEventListener('change', async (e)=>{
const f = e.target.files && e.target.files[0]; if(!f) return;
const text = await f.text(); try{
const obj = JSON.parse(text); if(Array.isArray(obj.items) && Array.isArray(obj.loans)){
if(confirm('Importar reemplazará los datos actuales. Continuar?')){items = obj.items;loans = obj.loans;saveItems(items);saveLoans(loans);renderAll();alert('Importación completada.')}
} else alert('JSON con formato inválido');
}catch(err){alert('Error leyendo JSON: '+err.message)}
});clearStorageBtn.addEventListener('click', ()=>{if(confirm('Eliminar todos los datos locales?')){localStorage.removeItem(STORAGE_KEYS.items);localStorage.removeItem(STORAGE_KEYS.loans);items=[];loans=[];renderAll();}});// small utilities
function escapeHtml(s){if(!s) return '';return s.replaceAll('&','&').replaceAll('<','<').replaceAll('>','>').replaceAll('"','"').replaceAll("'","'");}// Edit prompt
function openEditPrompt(it){
const newName = prompt('Editar nombre', it.name); if(newName===null) return; it.name=newName.trim()||it.name;
const newCab = prompt('Gabinete', it.cabinet); if(newCab!==null) it.cabinet=newCab.trim()||it.cabinet;
const newDr = prompt('Cajón', it.drawer); if(newDr!==null) it.drawer=newDr.trim()||it.drawer;
const newComp = prompt('Compartimiento', it.compartment); if(newComp!==null) it.compartment=newComp.trim()||it.compartment;
const newQ = prompt('Cantidad', it.qty); if(newQ!==null) it.qty = Number(newQ)||it.qty;
saveItems(items);renderAll();
}// ensure login overlay appears if not correct
(function checkPwdOnLoad(){ if(localStorage.getItem('logged_in')==='1'){loginEl.style.display='none'} })();