// Admin panel functionality function showTab(tabName) { document.querySelectorAll('.tab').forEach(t => t.classList.remove('active')); document.querySelectorAll('.tab-content').forEach(t => t.classList.remove('active')); event.target.classList.add('active'); document.getElementById(`tab-${tabName}`).classList.add('active'); if (tabName === 'albaranes') { loadAlbaranes(); } else if (tabName === 'clasificacion') { loadClasificacion(); } } async function loadAlbaranes() { try { const data = await apiRequest('/albaranes/'); const albaranes = Array.isArray(data) ? data : (data.results || []); renderAlbaranes(albaranes); } catch (error) { console.error('Error al cargar albaranes:', error); } } async function loadClasificacion() { try { const data = await apiRequest('/albaranes/?estado_procesado=clasificacion'); const albaranes = Array.isArray(data) ? data : (data.results || []); renderClasificacion(albaranes); } catch (error) { console.error('Error al cargar clasificación:', error); } } function renderAlbaranes(albaranes) { const container = document.getElementById('albaranes-container'); if (!container) return; container.innerHTML = ''; albaranes.forEach(albaran => { const card = document.createElement('div'); card.className = 'albaran-card'; const estadoClass = albaran.estado_procesado === 'procesado' ? 'procesado' : albaran.estado_procesado === 'clasificacion' ? 'clasificacion' : 'pendiente'; card.innerHTML = `

Albarán ${albaran.numero_albaran || albaran.id}

Proveedor: ${albaran.proveedor ? albaran.proveedor.nombre : 'Sin asignar'}

Fecha: ${albaran.fecha_albaran || 'N/A'}

${albaran.estado_procesado}
Albarán
${JSON.stringify(albaran.datos_ocr || {}, null, 2)}
${albaran.referencias && albaran.referencias.length > 0 ? ` ${albaran.referencias.map(ref => ` `).join('')}
Referencia Descripción Unidades Precio IVA
${ref.referencia} ${ref.denominacion} ${ref.unidades} ${ref.precio_unitario}€ ${ref.impuesto_tipo}%
` : ''} `; container.appendChild(card); }); } async function renderClasificacion(albaranes) { const container = document.getElementById('clasificacion-container'); if (!container) return; container.innerHTML = ''; // Cargar proveedores primero let proveedores = []; try { proveedores = await apiRequest('/proveedores/'); } catch (error) { console.error('Error al cargar proveedores:', error); } albaranes.forEach(albaran => { const card = document.createElement('div'); card.className = 'albaran-card'; card.innerHTML = `

Albarán ${albaran.numero_albaran || albaran.id}

Albarán
`; container.appendChild(card); }); } async function vincularProveedor(albaranId) { const select = document.getElementById(`proveedor-${albaranId}`); if (!select) return; const proveedorId = select.value; if (!proveedorId) { alert('Selecciona un proveedor'); return; } try { await apiRequest(`/albaranes/${albaranId}/vincular-proveedor?proveedor_id=${proveedorId}`, { method: 'POST' }); alert('Proveedor vinculado correctamente'); loadClasificacion(); } catch (error) { alert('Error al vincular proveedor: ' + error.message); } } // Cargar inicial document.addEventListener('DOMContentLoaded', () => { loadAlbaranes(); });