Fix: Orden de camas en Mapa de Camas
This commit is contained in:
+23
-40
@@ -114,51 +114,34 @@ export function MapaCamas({
|
|||||||
const pa = parseBedNumber(a.numero);
|
const pa = parseBedNumber(a.numero);
|
||||||
const pb = parseBedNumber(b.numero);
|
const pb = parseBedNumber(b.numero);
|
||||||
|
|
||||||
if (pa.sala >= 200 && pa.sala < 300) {
|
const getOrden = (sala: number) => {
|
||||||
const salaImpar = [221, 217, 215, 213, 209, 205, 203, 201];
|
const grupo = Math.floor(sala / 100);
|
||||||
const salaPar = [204, 214];
|
const esPar = sala % 2 === 0;
|
||||||
|
|
||||||
if (salaImpar.includes(pa.sala)) {
|
if (grupo === 2) {
|
||||||
if (salaImpar.includes(pb.sala)) {
|
if (esPar) return { grupo: 2, suborden: 0, sala }; // 2XX pares, menor a mayor
|
||||||
if (pa.sala === pb.sala) {
|
return { grupo: 1, suborden: 1, sala }; // 2XX impares, mayor a menor
|
||||||
return pa.cama - pb.cama;
|
|
||||||
}
|
|
||||||
return salaImpar.indexOf(pa.sala) - salaImpar.indexOf(pb.sala);
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
if (salaImpar.includes(pb.sala)) return 1;
|
if (grupo === 3) {
|
||||||
|
if (esPar) return { grupo: 3, suborden: 0, sala }; // 3XX pares, menor a mayor
|
||||||
if (salaPar.includes(pa.sala)) {
|
return { grupo: 4, suborden: 1, sala }; // 3XX impares, mayor a menor
|
||||||
if (salaPar.includes(pb.sala)) {
|
|
||||||
if (pa.sala === pb.sala) {
|
|
||||||
return pa.cama - pb.cama;
|
|
||||||
}
|
|
||||||
return pa.sala - pb.sala;
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
if (salaPar.includes(pb.sala)) return 1;
|
if (grupo === 4) {
|
||||||
|
if (esPar) return { grupo: 6, suborden: 0, sala }; // 4XX pares, menor a mayor
|
||||||
|
return { grupo: 5, suborden: 1, sala }; // 4XX impares, mayor a menor
|
||||||
|
}
|
||||||
|
return { grupo: 10, suborden: 1, sala };
|
||||||
|
};
|
||||||
|
|
||||||
return pa.cama - pb.cama;
|
const oa = getOrden(pa.sala);
|
||||||
|
const ob = getOrden(pb.sala);
|
||||||
|
|
||||||
|
if (oa.grupo !== ob.grupo) return oa.grupo - ob.grupo;
|
||||||
|
if (oa.suborden === ob.suborden) {
|
||||||
|
if (oa.suborden === 0) return (oa.sala || pa.sala) - (ob.sala || pb.sala);
|
||||||
|
return (ob.sala || 0) - (oa.sala || 0);
|
||||||
}
|
}
|
||||||
|
return oa.suborden - ob.suborden;
|
||||||
if (pa.sala >= 300 && pa.sala < 400) {
|
|
||||||
const salaPiso3 = [308, 310, 312];
|
|
||||||
if (salaPiso3.includes(pa.sala)) {
|
|
||||||
if (salaPiso3.includes(pb.sala)) {
|
|
||||||
if (pa.sala === pb.sala) {
|
|
||||||
return pa.cama - pb.cama;
|
|
||||||
}
|
|
||||||
return salaPiso3.indexOf(pa.sala) - salaPiso3.indexOf(pb.sala);
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (salaPiso3.includes(pb.sala)) return 1;
|
|
||||||
return pa.cama - pb.cama;
|
|
||||||
}
|
|
||||||
|
|
||||||
return a.numero.localeCompare(b.numero);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const handleOcuparCama = () => {
|
const handleOcuparCama = () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user