export function InvoiceItem(invoice) { const item = document.createElement('div'); item.className = 'invoice-item'; // Formatear fecha const formatDate = (dateString) => { const date = new Date(dateString); return date.toLocaleDateString('es-ES'); }; // Formatear moneda const formatCurrency = (amount) => { return new Intl.NumberFormat('es-ES', { style: 'currency', currency: 'EUR' }).format(amount); }; // Obtener clase de estado const getStatusClass = (status) => { const statusMap = { 'draft': 'status-draft', 'validated': 'status-validated', 'paid': 'status-paid', 'unpaid': 'status-unpaid', 'canceled': 'status-canceled' }; return statusMap[status] || 'status-default'; }; // Obtener texto de estado const getStatusText = (status) => { const statusTextMap = { 'draft': 'Borrador', 'validated': 'Validada', 'paid': 'Pagada', 'unpaid': 'Impagada', 'canceled': 'Cancelada' }; return statusTextMap[status] || status; }; item.innerHTML = /*html*/`
${invoice.number}
${getStatusText(invoice.status)}
👤 ${invoice.clientName || 'Sin nombre'}
${formatDate(invoice.date)}
${formatCurrency(invoice.total)}
${formatCurrency(invoice.remainToPay)}
`; // Event listener para el botón de ver const viewBtn = item.querySelector('.btn-view'); viewBtn.addEventListener('click', () => { console.log('Ver factura:', invoice.id); // Aquí puedes agregar la lógica para ver los detalles alert(`Ver detalles de factura: ${invoice.number}`); }); return item; }