Files
pedidosClientes/frontend/js/proveedores.js
2025-12-05 11:27:16 -03:00

76 lines
2.8 KiB
JavaScript

// Proveedores functionality
function renderProveedores(data) {
const container = document.getElementById('proveedores-container');
if (!container) return;
container.innerHTML = '';
if (data.length === 0) {
container.innerHTML = '<p>No hay referencias pendientes</p>';
return;
}
data.forEach(proveedorData => {
const card = document.createElement('div');
card.className = 'proveedor-card';
const pendientes = proveedorData.referencias_pendientes || [];
const devoluciones = proveedorData.referencias_devolucion || [];
card.innerHTML = `
<div class="proveedor-header">
${proveedorData.proveedor?.nombre || 'Sin nombre'}
</div>
${pendientes.length > 0 ? `
<div class="section-title">Referencias Pendientes de Recepción</div>
${pendientes.map(ref => `
<div class="referencia-item pendiente">
<div class="referencia-codigo">${ref.referencia}</div>
<div>${ref.denominacion}</div>
<div class="referencia-info">
Pedidas: ${ref.unidades_pedidas} | Recibidas: ${ref.unidades_recibidas} | Pendiente: ${ref.unidades_pedidas - ref.unidades_recibidas}
</div>
</div>
`).join('')}
` : ''}
${devoluciones.length > 0 ? `
<div class="section-title">Referencias Pendientes de Abono</div>
${devoluciones.map(dev => `
<div class="referencia-item devolucion">
<div class="referencia-codigo">${dev.referencia}</div>
<div>${dev.denominacion || ''}</div>
<div class="referencia-info">
Unidades: ${dev.unidades} | Fecha: ${new Date(dev.fecha_devolucion).toLocaleDateString('es-ES')}
</div>
</div>
`).join('')}
` : ''}
${pendientes.length === 0 && devoluciones.length === 0 ?
'<p style="color: #95a5a6; text-align: center; padding: 2rem;">Sin referencias pendientes</p>' : ''}
`;
container.appendChild(card);
});
}
async function loadProveedores() {
try {
const data = await apiRequest('/referencias-proveedor/');
renderProveedores(data);
} catch (error) {
console.error('Error al cargar proveedores:', error);
alert('Error al cargar los datos: ' + error.message);
}
}
// Auto-refresh cada 30 segundos
setInterval(loadProveedores, 30000);
// Cargar inicial
document.addEventListener('DOMContentLoaded', loadProveedores);