diff --git a/servicios.html b/servicios.html
index 8de3687..807fad6 100644
--- a/servicios.html
+++ b/servicios.html
@@ -1137,20 +1137,20 @@
const id = document.getElementById('detId').value;
const date = document.getElementById('dateInput').value;
const time = document.getElementById('timeInput').value;
- let statusMap = document.getElementById('detStatusMap').value; // 👈 CAMBIADO A LET
+ let statusMap = document.getElementById('detStatusMap').value;
- // 🛑 EL FIX MÁGICO: Si pones fecha pero el desplegable se quedó en "Asignado", lo pasamos a "Citado" automáticamente.
+ // Auto-Citado Mágico
const currentSt = systemStatuses.find(st => String(st.id) === String(statusMap));
- if (date && currentSt && currentSt.name.toLowerCase() === 'asignado') {
+ if (date && currentSt && currentSt.name.toLowerCase().includes('asignado')) {
const citadoSt = systemStatuses.find(st => st.name.toLowerCase().includes('citado'));
- if (citadoSt) {
- statusMap = String(citadoSt.id);
- }
+ if (citadoSt) statusMap = String(citadoSt.id);
}
const selectedSt = systemStatuses.find(st => String(st.id) === String(statusMap));
- if (selectedSt && !selectedSt.is_final && !date && !selectedSt.name.toLowerCase().includes('pausa') && !selectedSt.name.toLowerCase().includes('asignar')) {
- if(!confirm("No has asignado Fecha para este estado. ¿Deseas continuar?")) return;
+
+ // 🛑 SOLO avisamos si intenta poner "Citado" sin fecha
+ if (selectedSt && selectedSt.name.toLowerCase().includes('citado') && !date) {
+ if(!confirm("⚠️ Estás marcando el servicio como CITADO pero no has puesto la fecha. ¿Deseas continuar?")) return;
}
const btn = document.getElementById('btnSaveAppt');
@@ -1159,17 +1159,28 @@
btn.disabled = true;
try {
- await fetch(`${API_URL}/services/set-appointment/${id}`, {
+ const res = await fetch(`${API_URL}/services/set-appointment/${id}`, {
method: 'PUT',
headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` },
body: JSON.stringify({ date, time, status_operativo: statusMap })
});
- closeDetailModal(); showToast("Estado actualizado"); refreshData();
+
+ if (res.ok) {
+ closeDetailModal();
+ showToast("Estado actualizado");
+ refreshData();
+ } else {
+ alert("Error en el servidor al guardar.");
+ }
} catch (e) {
- alert("🔍 ERROR DETECTADO:\n" + e.message);
- console.error("Traza completa del error:", e);
+ alert("🔍 ERROR JAVASCRIPT: " + e.message);
+ console.error(e);
}
- finally { btn.innerHTML = originalContent; btn.disabled = false; }
+ finally {
+ btn.innerHTML = originalContent;
+ btn.disabled = false;
+ lucide.createIcons();
+ }
}
async function sendToAutomate() {