fix: correção da ordenação por CODGRUPO
This commit is contained in:
parent
6ce426222e
commit
64d4397847
|
|
@ -775,18 +775,36 @@ export default function Teste() {
|
||||||
const rows: HierarchicalRow[] = [];
|
const rows: HierarchicalRow[] = [];
|
||||||
|
|
||||||
// Nova hierarquia: [entidade, direto/indireto, cc, conta]
|
// Nova hierarquia: [entidade, direto/indireto, cc, conta]
|
||||||
// Agrupar por entidade
|
// Agrupar primeiro por CODGRUPO, depois por entidade
|
||||||
const entidades = data.reduce((acc, item) => {
|
const gruposPorCodigo = data.reduce((acc, item) => {
|
||||||
|
const codgrupo = item.codgrupo || "";
|
||||||
|
if (!codgrupo) return acc;
|
||||||
|
if (!acc[codgrupo]) {
|
||||||
|
acc[codgrupo] = {};
|
||||||
|
}
|
||||||
const entidade = item.entidades || "";
|
const entidade = item.entidades || "";
|
||||||
if (!entidade) return acc;
|
if (!entidade) return acc;
|
||||||
if (!acc[entidade]) {
|
if (!acc[codgrupo][entidade]) {
|
||||||
acc[entidade] = [];
|
acc[codgrupo][entidade] = [];
|
||||||
}
|
}
|
||||||
acc[entidade].push(item);
|
acc[codgrupo][entidade].push(item);
|
||||||
return acc;
|
return acc;
|
||||||
}, {} as Record<string, DREItem[]>);
|
}, {} as Record<string, Record<string, DREItem[]>>);
|
||||||
|
|
||||||
// Ordenar entidades alfabeticamente
|
// Ordenar por CODGRUPO (numericamente), depois por entidade (alfabeticamente)
|
||||||
|
const sortedGrupos = Object.entries(gruposPorCodigo).sort(([codA], [codB]) => {
|
||||||
|
// Ordenar numericamente por CODGRUPO
|
||||||
|
const numA = parseInt(codA) || 0;
|
||||||
|
const numB = parseInt(codB) || 0;
|
||||||
|
if (numA !== numB) {
|
||||||
|
return numA - numB;
|
||||||
|
}
|
||||||
|
// Se não for numérico, ordenar alfabeticamente
|
||||||
|
return codA.localeCompare(codB);
|
||||||
|
});
|
||||||
|
|
||||||
|
sortedGrupos.forEach(([codgrupo, entidades]) => {
|
||||||
|
// Ordenar entidades dentro do grupo alfabeticamente
|
||||||
const sortedEntidades = Object.entries(entidades).sort(([entA], [entB]) =>
|
const sortedEntidades = Object.entries(entidades).sort(([entA], [entB]) =>
|
||||||
entA.localeCompare(entB)
|
entA.localeCompare(entB)
|
||||||
);
|
);
|
||||||
|
|
@ -957,6 +975,7 @@ export default function Teste() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
return rows;
|
return rows;
|
||||||
};
|
};
|
||||||
|
|
@ -1577,18 +1596,36 @@ export default function Teste() {
|
||||||
const rows: HierarchicalRow[] = [];
|
const rows: HierarchicalRow[] = [];
|
||||||
|
|
||||||
// Nova hierarquia: [entidade, direto/indireto, cc, conta]
|
// Nova hierarquia: [entidade, direto/indireto, cc, conta]
|
||||||
// Agrupar por entidade
|
// Agrupar primeiro por CODGRUPO, depois por entidade
|
||||||
const entidades = data.reduce((acc, item) => {
|
const gruposPorCodigo = data.reduce((acc, item) => {
|
||||||
|
const codgrupo = item.codgrupo || "";
|
||||||
|
if (!codgrupo) return acc;
|
||||||
|
if (!acc[codgrupo]) {
|
||||||
|
acc[codgrupo] = {};
|
||||||
|
}
|
||||||
const entidade = item.entidades || "";
|
const entidade = item.entidades || "";
|
||||||
if (!entidade) return acc;
|
if (!entidade) return acc;
|
||||||
if (!acc[entidade]) {
|
if (!acc[codgrupo][entidade]) {
|
||||||
acc[entidade] = [];
|
acc[codgrupo][entidade] = [];
|
||||||
}
|
}
|
||||||
acc[entidade].push(item);
|
acc[codgrupo][entidade].push(item);
|
||||||
return acc;
|
return acc;
|
||||||
}, {} as Record<string, DREItem[]>);
|
}, {} as Record<string, Record<string, DREItem[]>>);
|
||||||
|
|
||||||
// Ordenar entidades alfabeticamente
|
// Ordenar por CODGRUPO (numericamente), depois por entidade (alfabeticamente)
|
||||||
|
const sortedGrupos = Object.entries(gruposPorCodigo).sort(([codA], [codB]) => {
|
||||||
|
// Ordenar numericamente por CODGRUPO
|
||||||
|
const numA = parseInt(codA) || 0;
|
||||||
|
const numB = parseInt(codB) || 0;
|
||||||
|
if (numA !== numB) {
|
||||||
|
return numA - numB;
|
||||||
|
}
|
||||||
|
// Se não for numérico, ordenar alfabeticamente
|
||||||
|
return codA.localeCompare(codB);
|
||||||
|
});
|
||||||
|
|
||||||
|
sortedGrupos.forEach(([codgrupo, entidades]) => {
|
||||||
|
// Ordenar entidades dentro do grupo alfabeticamente
|
||||||
const sortedEntidades = Object.entries(entidades).sort(([entA], [entB]) =>
|
const sortedEntidades = Object.entries(entidades).sort(([entA], [entB]) =>
|
||||||
entA.localeCompare(entB)
|
entA.localeCompare(entB)
|
||||||
);
|
);
|
||||||
|
|
@ -1777,6 +1814,7 @@ export default function Teste() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
return rows;
|
return rows;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue