@@ -214,41 +187,27 @@
document.getElementById('companyLogo').src = company.logo;
document.getElementById('companyLogoContainer').classList.remove('hidden');
}
- document.getElementById('clientName').innerText = client.name.split(' ')[0];
+ document.getElementById('clientName').innerText = client.name.split(' ')[0].toUpperCase();
const activeContainer = document.getElementById('activeServicesContainer');
const historyContainer = document.getElementById('historyServicesContainer');
const historyWrapper = document.getElementById('historyContainerWrapper');
const noActiveDiv = document.getElementById('noActiveServices');
- const headerCard = document.getElementById('mainServiceHeader');
activeContainer.innerHTML = '';
historyContainer.innerHTML = '';
let hasActive = false;
let hasHistory = false;
- let firstActiveRendered = false;
allServices.forEach(srv => {
const isFinalized = srv.status_name === 'Terminado';
const isPendingWorker = (!srv.assigned_worker || srv.assigned_worker === 'Pendiente');
+
+ // Procesamos la descripción con la "mini-IA"
const descLimpia = summarizeDescription(srv.description);
- let statusHtml = '';
- // SI ES EL PRIMER SERVICIO ACTIVO, RELLENAMOS LA FICHA SUPERIOR
- if (!isFinalized && !firstActiveRendered) {
- headerCard.classList.remove('hidden');
- document.getElementById('mainServiceDesc').innerText = descLimpia;
- document.getElementById('mainServiceAddress').innerText = client.addresses[0] || "Dirección no especificada";
- document.getElementById('mainServicePhone').innerText = client.phone;
-
- if (!isPendingWorker) {
- document.getElementById('contactButtons').classList.remove('hidden');
- } else {
- document.getElementById('contactButtons').classList.add('hidden');
- }
- firstActiveRendered = true;
- }
+ let statusHtml = '';
if (isFinalized) {
// MODO HISTORIAL (Gris y apagado)
@@ -261,57 +220,60 @@
} else if (isPendingWorker) {
// MODO 1: AÚN NO HAY TÉCNICO (Botón de agendar bloqueado)
statusHtml = `
-
-
-
+
+
+
-
Buscando Técnico
-
Estamos asignando al técnico más cercano a tu domicilio para esta reparación.
+
Buscando Técnico
+
Estamos asignando al técnico más cercano a tu domicilio.
En cuanto esté asignado, se habilitará la opción de agendar la visita aquí mismo.
`;
} else if (srv.appointment_status === 'pending') {
// MODO 2: PENDIENTE DE ACEPTACIÓN POR LA OFICINA
statusHtml = `
-
-
+
+
-
+
Pendiente de Confirmación
Tu solicitud de fecha ha sido enviada. El técnico debe confirmarla en breve.
`;
} else if (srv.status_name === 'Visita Agendada' || (srv.scheduled_date && srv.scheduled_time)) {
- // MODO 3: CITA CONFIRMADA
+ // MODO 3: CITA CONFIRMADA (FRANJA DE 1 HORA)
const endT = addOneHour(srv.scheduled_time);
statusHtml = `
-
-
-
+
+
+
+
+
+
-
Visita Confirmada
-
${formatDate(srv.scheduled_date)}
-
Llegada aprox: ${srv.scheduled_time} - ${endT}
+
Visita Confirmada
+
${formatDate(srv.scheduled_date)}
+
Llegada aprox: ${srv.scheduled_time} - ${endT}
`;
} else if (srv.status_name === 'Técnico de Camino') {
// MODO 5: DE CAMINO
statusHtml = `
-
-
-
-
+
+
+
+
-
¡Técnico en camino!
+
¡Técnico en camino!
Llegando en breves momentos a tu domicilio.
-
+
Señal GPS Próximamente
@@ -322,26 +284,26 @@
} else if (srv.status_name === 'En Reparación') {
// MODO 8: TRABAJANDO
statusHtml = `
-
-
-
+
+
+
-
En Reparación
-
El técnico está trabajando en tu domicilio ahora mismo.
+
En Reparación
+
El técnico está trabajando en tu domicilio ahora mismo.
`;
} else if (srv.status_name === 'Pausado / Incidencia') {
// MODO 6: INCIDENCIA
statusHtml = `
-
-
-
+
+
+
-
Incidencia / Pausado
-
El servicio está pausado (ej: esperando pieza). Te avisaremos pronto.
+
Incidencia / Pausado
+
El servicio está pausado temporalmente. Te avisaremos pronto.
`;
@@ -349,37 +311,88 @@
// MODO 4: PENDIENTE DE CITA NORMAL (Tiene técnico, no tiene cita)
statusHtml = `
-
+
-
+
-
Pendiente de Cita
-
El técnico necesita saber cuándo puede pasar por tu domicilio para la reparación.
+
Pendiente de Cita
+
El técnico necesita saber cuándo puede pasar por tu domicilio para la reparación.
-
`;
}
- // ESTRUCTURA DE LA TARJETA DEL EXPEDIENTE (SOLO MUESTRA INFO DE GESTIÓN Y ESTADO)
- const cardHtml = `
-
-
-
-
Exp. #${srv.title.replace('Expediente #', '').replace('🚨 URGENTE: ', '')}
+ // ESTRUCTURA DE LA TARJETA MAESTRA UNIFICADA
+ let cardHtml = '';
+
+ if (isFinalized) {
+ // Historial compacto
+ cardHtml = `
+
+
+
+ Exp. #${srv.title.replace('Expediente #', '').replace('🚨 URGENTE: ', '')}
+
${descLimpia}
+
- ${srv.assigned_worker && srv.assigned_worker !== 'Pendiente' ?
- `
-
Técnico
-
${srv.assigned_worker.split(' ')[0]}
-
` : ''
- }
+ ${statusHtml}
- ${statusHtml}
-
- `;
+ `;
+ } else {
+ // Tarjeta Principal Activa (La que te gusta pero ordenada para no ocultar el botón)
+ cardHtml = `
+
+
+
+
+ Expediente #${srv.title.replace('Expediente #', '').replace('🚨 URGENTE: ', '')}
+
+ ${srv.assigned_worker && srv.assigned_worker !== 'Pendiente' ?
+ `
+
Técnico
+
${srv.assigned_worker.split(' ')[0]}
+
` : ''
+ }
+
+
+
+ ${statusHtml}
+
+
+
+
+
Motivo de la Visita
+
${descLimpia}
+
+
+
+
+
${client.addresses[0] || "Dirección no especificada"}
+
+
+
+
+
+ ${!isPendingWorker ? `
+
+
+ Llamar
+
+
+ WhatsApp
+
+
+ ` : ''}
+
+
+ `;
+ }
if (isFinalized) {
historyContainer.innerHTML += cardHtml;
@@ -393,7 +406,6 @@
// GESTIÓN DE VISIBILIDAD DE CONTENEDORES
if (!hasActive) {
activeContainer.classList.add('hidden');
- headerCard.classList.add('hidden');
noActiveDiv.classList.remove('hidden');
} else {
activeContainer.classList.remove('hidden');