COTIZADOR DE LETREROS

PRECIOS DE MATERIALES

INFORMACIÓN DEL CLIENTE

DATOS PERSONALES

INFORMACIÓN COMERCIAL

DETALLES DEL SERVICIO

CARRITO DE COMPRAS

ANÁLISIS DE COSTOS TOTALES

Desglose Monetario

Distribución Porcentual

`; }// --- INICIALIZACIÓN --- // Asignar listeners a elementos que existen al cargar const form = document.getElementById('cotizadorForm'); if (form) form.addEventListener('submit', handleFormSubmit); const instField = document.getElementById('costoInstalacion'); if (instField) instField.addEventListener('change', mostrarCarrito); const envField = document.getElementById('costoEnvio'); if (envField) envField.addEventListener('change', mostrarCarrito); const actBtn = document.getElementById('actualizarClienteBtn'); if (actBtn) actBtn.addEventListener('click', actualizarCliente); const impBtn = document.getElementById('imprimirCotizacion'); if (impBtn) impBtn.addEventListener('click', handleImprimir); const posBtn = document.getElementById('exportarPOSCotizacion'); if (posBtn) posBtn.addEventListener('click', handleImprimirPOS); const gemBtn = document.getElementById('geminiPitchBtn'); if (gemBtn) gemBtn.addEventListener('click', handleGeminiPitch);// Generar UI inicial generarCamposMateriales(); actualizarOpcionesSelect(); // Setear fecha actual por defecto const fechaField = document.getElementById('clienteFecha'); if (fechaField) { try { fechaField.valueAsDate = new Date(); } catch (e) { fechaField.value = new Date().toISOString().split('T')[0]; } }// Carga inicial del carrito (muestra "vacío" y totales en 0) mostrarCarrito();}); // Fin de DOMContentLoaded