import { getInvoiceById, updateInvoice, validateInvoice, addInvoiceLine } from '../services/invoices.js'; export function InvoiceModal(invoiceId, onClose, onUpdate) { const modal = document.createElement('div'); modal.className = 'modal-overlay'; let invoice = null; let isLoading = true; // Formatear fecha para input type="date" const formatDateForInput = (dateString) => { if (!dateString) return ''; const date = new Date(dateString); return date.toISOString().split('T')[0]; }; // Formatear fecha para mostrar const formatDate = (dateString) => { if (!dateString) return '-'; 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 || 0); }; // Obtener texto de estado const getStatusText = (status) => { const statusTextMap = { 'draft': 'Borrador', 'validated': 'Validada', 'paid': 'Pagada', 'unpaid': 'Impagada', 'canceled': 'Cancelada' }; return statusTextMap[status] || status; }; // Renderizar contenido del modal const renderContent = () => { const modalContent = modal.querySelector('.modal-content'); if (isLoading) { modalContent.innerHTML = `