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[] = [];
|
||||
|
||||
// Nova hierarquia: [entidade, direto/indireto, cc, conta]
|
||||
// Agrupar por entidade
|
||||
const entidades = data.reduce((acc, item) => {
|
||||
// Agrupar primeiro por CODGRUPO, depois por entidade
|
||||
const gruposPorCodigo = data.reduce((acc, item) => {
|
||||
const codgrupo = item.codgrupo || "";
|
||||
if (!codgrupo) return acc;
|
||||
if (!acc[codgrupo]) {
|
||||
acc[codgrupo] = {};
|
||||
}
|
||||
const entidade = item.entidades || "";
|
||||
if (!entidade) return acc;
|
||||
if (!acc[entidade]) {
|
||||
acc[entidade] = [];
|
||||
if (!acc[codgrupo][entidade]) {
|
||||
acc[codgrupo][entidade] = [];
|
||||
}
|
||||
acc[entidade].push(item);
|
||||
acc[codgrupo][entidade].push(item);
|
||||
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]) =>
|
||||
entA.localeCompare(entB)
|
||||
);
|
||||
|
|
@ -957,6 +975,7 @@ export default function Teste() {
|
|||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
return rows;
|
||||
};
|
||||
|
|
@ -1577,18 +1596,36 @@ export default function Teste() {
|
|||
const rows: HierarchicalRow[] = [];
|
||||
|
||||
// Nova hierarquia: [entidade, direto/indireto, cc, conta]
|
||||
// Agrupar por entidade
|
||||
const entidades = data.reduce((acc, item) => {
|
||||
// Agrupar primeiro por CODGRUPO, depois por entidade
|
||||
const gruposPorCodigo = data.reduce((acc, item) => {
|
||||
const codgrupo = item.codgrupo || "";
|
||||
if (!codgrupo) return acc;
|
||||
if (!acc[codgrupo]) {
|
||||
acc[codgrupo] = {};
|
||||
}
|
||||
const entidade = item.entidades || "";
|
||||
if (!entidade) return acc;
|
||||
if (!acc[entidade]) {
|
||||
acc[entidade] = [];
|
||||
if (!acc[codgrupo][entidade]) {
|
||||
acc[codgrupo][entidade] = [];
|
||||
}
|
||||
acc[entidade].push(item);
|
||||
acc[codgrupo][entidade].push(item);
|
||||
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]) =>
|
||||
entA.localeCompare(entB)
|
||||
);
|
||||
|
|
@ -1777,6 +1814,7 @@ export default function Teste() {
|
|||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return rows;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue