Actualizar proveedores.html
This commit is contained in:
@@ -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")}` } });
|
||||||
|
|||||||
Reference in New Issue
Block a user