Actualizar proveedores.html

This commit is contained in:
2026-03-14 16:37:06 +00:00
parent ac2c74c6af
commit 2b8e8c2d50

View File

@@ -316,6 +316,41 @@
return 1; return 1;
} }
// Función inteligente para filtrar los estados según si hay operario o no
function filterStatusOptions() {
const statusSelect = document.getElementById('impStatus');
const operatorSelect = document.getElementById('impOperator');
const hasOperator = operatorSelect.value !== "";
const currentSelected = statusSelect.value; // Guardamos lo que estaba seleccionado
statusSelect.innerHTML = '<option value="">(Sin Estado)</option>';
systemStatuses.forEach(st => {
const nameLow = st.name.toLowerCase();
// Detectamos qué estados EXIGEN tener un trabajador físico
const requiresWorker =
(nameLow.includes('asignado') && !nameLow.includes('pendiente') && !nameLow.includes('desasignado')) ||
nameLow.includes('esperando') ||
nameLow.includes('citado') ||
nameLow.includes('camino') ||
nameLow.includes('trabajando');
// Si el estado exige trabajador y NO hay ninguno seleccionado, lo saltamos
if (requiresWorker && !hasOperator) return;
statusSelect.innerHTML += `<option value="${st.id}">${st.name.toUpperCase()}</option>`;
});
// Intentamos restaurar el valor que había (si sigue siendo válido tras el filtro)
if (Array.from(statusSelect.options).some(opt => opt.value === currentSelected)) {
statusSelect.value = currentSelected;
} else {
statusSelect.value = "";
}
}
async function loadStatuses() { async function loadStatuses() {
try { try {
const res = await fetch(`${API_URL}/statuses`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } }); const res = await fetch(`${API_URL}/statuses`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } });