fix: ajuste analitico
This commit is contained in:
parent
078c4842ed
commit
021de27ab9
|
|
@ -16,6 +16,7 @@ export async function GET(request: NextRequest) {
|
||||||
const codigoGrupo = searchParams.get('codigoGrupo');
|
const codigoGrupo = searchParams.get('codigoGrupo');
|
||||||
const codigoSubgrupo = searchParams.get('codigoSubgrupo');
|
const codigoSubgrupo = searchParams.get('codigoSubgrupo');
|
||||||
const codigoConta = searchParams.get('codigoConta');
|
const codigoConta = searchParams.get('codigoConta');
|
||||||
|
const codFilial = searchParams.get('codFilial');
|
||||||
|
|
||||||
// Parâmetros para exclusão de valores específicos
|
// Parâmetros para exclusão de valores específicos
|
||||||
const excluirCentroCusto = searchParams.get('excluirCentroCusto');
|
const excluirCentroCusto = searchParams.get('excluirCentroCusto');
|
||||||
|
|
@ -32,6 +33,7 @@ export async function GET(request: NextRequest) {
|
||||||
codigoGrupo,
|
codigoGrupo,
|
||||||
codigoSubgrupo,
|
codigoSubgrupo,
|
||||||
codigoConta,
|
codigoConta,
|
||||||
|
codFilial,
|
||||||
excluirCentroCusto,
|
excluirCentroCusto,
|
||||||
excluirCodigoConta,
|
excluirCodigoConta,
|
||||||
codigosCentrosCustoSelecionados,
|
codigosCentrosCustoSelecionados,
|
||||||
|
|
@ -46,13 +48,32 @@ export async function GET(request: NextRequest) {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Construir query SQL com filtros usando a view VB_DRE_FILIAL_DESPESA_ANALITICO
|
// Construir query SQL com filtros usando a view VB_DRE_FILIAL_DESPESA_ANALITICO
|
||||||
let sql = `SELECT * FROM VB_DRE_FILIAL_DESPESA_ANALITICO WHERE 1=1`;
|
// Fazer JOIN com FILIAL_CC quando houver filtro por filial
|
||||||
|
let sql = '';
|
||||||
const params: any[] = [];
|
const params: any[] = [];
|
||||||
let paramIndex = 1;
|
let paramIndex = 1;
|
||||||
|
|
||||||
|
// Se houver filtro por filial, fazer JOIN com FILIAL_CC
|
||||||
|
if (codFilial) {
|
||||||
|
sql = `SELECT FC.CODFILIAL, VB.*
|
||||||
|
FROM VB_DRE_FILIAL_DESPESA_ANALITICO VB
|
||||||
|
INNER JOIN FILIAL_CC FC ON FC.CC = VB.CODIGOCENTROCUSTO
|
||||||
|
WHERE 1=1`;
|
||||||
|
} else {
|
||||||
|
sql = `SELECT * FROM VB_DRE_FILIAL_DESPESA_ANALITICO WHERE 1=1`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filtro por filial (usando JOIN com FILIAL_CC)
|
||||||
|
if (codFilial) {
|
||||||
|
sql += ` AND FC.CODFILIAL = :${paramIndex}`;
|
||||||
|
params.push(codFilial);
|
||||||
|
paramIndex++;
|
||||||
|
console.log('🏢 Adicionando filtro de filial (CODFILIAL):', codFilial);
|
||||||
|
}
|
||||||
|
|
||||||
// Filtro por período (usando ANOMESCOMP)
|
// Filtro por período (usando ANOMESCOMP)
|
||||||
if (dataInicio && dataFim) {
|
if (dataInicio && dataFim) {
|
||||||
sql += ` AND ANOMESCOMP >= :${paramIndex} AND ANOMESCOMP <= :${paramIndex + 1}`;
|
sql += ` AND VB.ANOMESCOMP >= :${paramIndex} AND VB.ANOMESCOMP <= :${paramIndex + 1}`;
|
||||||
params.push(dataInicio, dataFim);
|
params.push(dataInicio, dataFim);
|
||||||
paramIndex += 2;
|
paramIndex += 2;
|
||||||
console.log('📅 Adicionando filtro de período:', dataInicio, 'a', dataFim);
|
console.log('📅 Adicionando filtro de período:', dataInicio, 'a', dataFim);
|
||||||
|
|
@ -60,7 +81,7 @@ export async function GET(request: NextRequest) {
|
||||||
|
|
||||||
// Filtro por código do grupo
|
// Filtro por código do grupo
|
||||||
if (codigoGrupo) {
|
if (codigoGrupo) {
|
||||||
sql += ` AND CODGRUPO = :${paramIndex}`;
|
sql += ` AND VB.CODGRUPO = :${paramIndex}`;
|
||||||
params.push(codigoGrupo);
|
params.push(codigoGrupo);
|
||||||
paramIndex++;
|
paramIndex++;
|
||||||
console.log('📊 Adicionando filtro de grupo:', codigoGrupo);
|
console.log('📊 Adicionando filtro de grupo:', codigoGrupo);
|
||||||
|
|
@ -68,7 +89,7 @@ export async function GET(request: NextRequest) {
|
||||||
|
|
||||||
// Filtro por subgrupo (DIRETO, INDIRETO, SEM CC, etc.)
|
// Filtro por subgrupo (DIRETO, INDIRETO, SEM CC, etc.)
|
||||||
if (codigoSubgrupo) {
|
if (codigoSubgrupo) {
|
||||||
sql += ` AND SUBGRUPO = :${paramIndex}`;
|
sql += ` AND VB.SUBGRUPO = :${paramIndex}`;
|
||||||
params.push(codigoSubgrupo);
|
params.push(codigoSubgrupo);
|
||||||
paramIndex++;
|
paramIndex++;
|
||||||
console.log('📊 Adicionando filtro de subgrupo:', codigoSubgrupo);
|
console.log('📊 Adicionando filtro de subgrupo:', codigoSubgrupo);
|
||||||
|
|
@ -76,7 +97,7 @@ export async function GET(request: NextRequest) {
|
||||||
|
|
||||||
// Filtro por código da conta
|
// Filtro por código da conta
|
||||||
if (codigoConta) {
|
if (codigoConta) {
|
||||||
sql += ` AND CODCONTA = :${paramIndex}`;
|
sql += ` AND VB.CODCONTA = :${paramIndex}`;
|
||||||
params.push(codigoConta);
|
params.push(codigoConta);
|
||||||
paramIndex++;
|
paramIndex++;
|
||||||
console.log('💰 Adicionando filtro de conta:', codigoConta);
|
console.log('💰 Adicionando filtro de conta:', codigoConta);
|
||||||
|
|
@ -98,7 +119,7 @@ export async function GET(request: NextRequest) {
|
||||||
if (centroCusto && centroCusto.trim() !== '') {
|
if (centroCusto && centroCusto.trim() !== '') {
|
||||||
// Quando há centroCusto individual (clique na célula), usar APENAS ele
|
// Quando há centroCusto individual (clique na célula), usar APENAS ele
|
||||||
// Ignorar codigosCentrosCustoSelecionados do filtro geral para garantir filtro preciso
|
// Ignorar codigosCentrosCustoSelecionados do filtro geral para garantir filtro preciso
|
||||||
sql += ` AND CODIGOCENTROCUSTO = :${paramIndex}`;
|
sql += ` AND VB.CODIGOCENTROCUSTO = :${paramIndex}`;
|
||||||
params.push(centroCusto);
|
params.push(centroCusto);
|
||||||
paramIndex++;
|
paramIndex++;
|
||||||
console.log('🏢 PRIORIDADE: Filtrando APENAS por centroCusto individual (clique na célula):', centroCusto);
|
console.log('🏢 PRIORIDADE: Filtrando APENAS por centroCusto individual (clique na célula):', centroCusto);
|
||||||
|
|
@ -109,7 +130,7 @@ export async function GET(request: NextRequest) {
|
||||||
const codigosArray = codigosCentrosCustoSelecionados.split(',').filter(c => c.trim() !== '');
|
const codigosArray = codigosCentrosCustoSelecionados.split(',').filter(c => c.trim() !== '');
|
||||||
if (codigosArray.length > 0) {
|
if (codigosArray.length > 0) {
|
||||||
const placeholders = codigosArray.map(() => `:${paramIndex++}`).join(',');
|
const placeholders = codigosArray.map(() => `:${paramIndex++}`).join(',');
|
||||||
sql += ` AND CODIGOCENTROCUSTO IN (${placeholders})`;
|
sql += ` AND VB.CODIGOCENTROCUSTO IN (${placeholders})`;
|
||||||
params.push(...codigosArray);
|
params.push(...codigosArray);
|
||||||
console.log('🏢 Filtrando por códigos de centros de custo selecionados (filtro geral):', codigosArray);
|
console.log('🏢 Filtrando por códigos de centros de custo selecionados (filtro geral):', codigosArray);
|
||||||
console.log('📝 SQL após adicionar filtro IN:', sql.substring(0, 200) + '...');
|
console.log('📝 SQL após adicionar filtro IN:', sql.substring(0, 200) + '...');
|
||||||
|
|
@ -121,7 +142,7 @@ export async function GET(request: NextRequest) {
|
||||||
// Exclusão de centro de custo específico (quando desmarcado)
|
// Exclusão de centro de custo específico (quando desmarcado)
|
||||||
// Só aplicar se não houver codigosCentrosCustoSelecionados, para evitar conflito
|
// Só aplicar se não houver codigosCentrosCustoSelecionados, para evitar conflito
|
||||||
if (excluirCentroCusto && !codigosCentrosCustoSelecionados) {
|
if (excluirCentroCusto && !codigosCentrosCustoSelecionados) {
|
||||||
sql += ` AND CODIGOCENTROCUSTO != :${paramIndex}`;
|
sql += ` AND VB.CODIGOCENTROCUSTO != :${paramIndex}`;
|
||||||
params.push(excluirCentroCusto);
|
params.push(excluirCentroCusto);
|
||||||
paramIndex++;
|
paramIndex++;
|
||||||
console.log('🚫 Excluindo centro de custo:', excluirCentroCusto);
|
console.log('🚫 Excluindo centro de custo:', excluirCentroCusto);
|
||||||
|
|
@ -129,7 +150,7 @@ export async function GET(request: NextRequest) {
|
||||||
|
|
||||||
// Exclusão de código de conta específico (quando desmarcado)
|
// Exclusão de código de conta específico (quando desmarcado)
|
||||||
if (excluirCodigoConta) {
|
if (excluirCodigoConta) {
|
||||||
sql += ` AND CODCONTA != :${paramIndex}`;
|
sql += ` AND VB.CODCONTA != :${paramIndex}`;
|
||||||
params.push(excluirCodigoConta);
|
params.push(excluirCodigoConta);
|
||||||
paramIndex++;
|
paramIndex++;
|
||||||
console.log('🚫 Excluindo código de conta:', excluirCodigoConta);
|
console.log('🚫 Excluindo código de conta:', excluirCodigoConta);
|
||||||
|
|
@ -139,12 +160,12 @@ export async function GET(request: NextRequest) {
|
||||||
if (codigosContasSelecionadas) {
|
if (codigosContasSelecionadas) {
|
||||||
const codigosArray = codigosContasSelecionadas.split(',');
|
const codigosArray = codigosContasSelecionadas.split(',');
|
||||||
const placeholders = codigosArray.map(() => `:${paramIndex++}`).join(',');
|
const placeholders = codigosArray.map(() => `:${paramIndex++}`).join(',');
|
||||||
sql += ` AND CODCONTA IN (${placeholders})`;
|
sql += ` AND VB.CODCONTA IN (${placeholders})`;
|
||||||
params.push(...codigosArray);
|
params.push(...codigosArray);
|
||||||
console.log('💰 Filtrando por códigos de contas:', codigosArray);
|
console.log('💰 Filtrando por códigos de contas:', codigosArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
sql += ` ORDER BY DTVENC, CODFORNEC, CODCONTA`;
|
sql += ` ORDER BY VB.DTVENC, VB.CODFORNEC, VB.CODCONTA`;
|
||||||
|
|
||||||
// Log detalhado da query SQL final
|
// Log detalhado da query SQL final
|
||||||
console.log('═══════════════════════════════════════════════════════════════');
|
console.log('═══════════════════════════════════════════════════════════════');
|
||||||
|
|
@ -173,6 +194,8 @@ export async function GET(request: NextRequest) {
|
||||||
codigosCentrosCustoSelecionados: codigosCentrosCustoSelecionados || 'N/A',
|
codigosCentrosCustoSelecionados: codigosCentrosCustoSelecionados || 'N/A',
|
||||||
temCodigoConta: !!codigoConta,
|
temCodigoConta: !!codigoConta,
|
||||||
codigoConta: codigoConta || 'N/A',
|
codigoConta: codigoConta || 'N/A',
|
||||||
|
temCodFilial: !!codFilial,
|
||||||
|
codFilial: codFilial || 'N/A',
|
||||||
temCodigosContasSelecionadas: !!codigosContasSelecionadas,
|
temCodigosContasSelecionadas: !!codigosContasSelecionadas,
|
||||||
codigosContasSelecionadas: codigosContasSelecionadas || 'N/A',
|
codigosContasSelecionadas: codigosContasSelecionadas || 'N/A',
|
||||||
temExcluirCentroCusto: !!excluirCentroCusto,
|
temExcluirCentroCusto: !!excluirCentroCusto,
|
||||||
|
|
@ -204,7 +227,7 @@ export async function GET(request: NextRequest) {
|
||||||
codigo_fornecedor: item.CODFORNEC || "",
|
codigo_fornecedor: item.CODFORNEC || "",
|
||||||
nome_fornecedor: item.FORNECEDOR || "",
|
nome_fornecedor: item.FORNECEDOR || "",
|
||||||
id: item.NUMLANC || 0,
|
id: item.NUMLANC || 0,
|
||||||
codfilial: item.FILIAL || "001", // Usar FILIAL da view
|
codfilial: item.CODFILIAL || item.FILIAL || "001", // Usar CODFILIAL do JOIN ou FILIAL da view
|
||||||
recnum: item.NUMLANC || 0,
|
recnum: item.NUMLANC || 0,
|
||||||
data_competencia: item.ANOMESCOMP || "",
|
data_competencia: item.ANOMESCOMP || "",
|
||||||
data_vencimento: item.DTVENC ? new Date(item.DTVENC).toISOString().split('T')[0] : "",
|
data_vencimento: item.DTVENC ? new Date(item.DTVENC).toISOString().split('T')[0] : "",
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,7 @@ interface AnaliticoProps {
|
||||||
codigoGrupo?: string;
|
codigoGrupo?: string;
|
||||||
codigoSubgrupo?: string;
|
codigoSubgrupo?: string;
|
||||||
codigoConta?: string;
|
codigoConta?: string;
|
||||||
|
codFilial?: string;
|
||||||
linhaSelecionada?: string;
|
linhaSelecionada?: string;
|
||||||
excluirCentroCusto?: string;
|
excluirCentroCusto?: string;
|
||||||
excluirCodigoConta?: string;
|
excluirCodigoConta?: string;
|
||||||
|
|
@ -397,6 +398,9 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
if (filtrosExternos.codigoConta) {
|
if (filtrosExternos.codigoConta) {
|
||||||
params.append('codigoConta', filtrosExternos.codigoConta);
|
params.append('codigoConta', filtrosExternos.codigoConta);
|
||||||
}
|
}
|
||||||
|
if (filtrosExternos.codFilial) {
|
||||||
|
params.append('codFilial', filtrosExternos.codFilial);
|
||||||
|
}
|
||||||
if (filtrosExternos.excluirCentroCusto) {
|
if (filtrosExternos.excluirCentroCusto) {
|
||||||
params.append('excluirCentroCusto', filtrosExternos.excluirCentroCusto);
|
params.append('excluirCentroCusto', filtrosExternos.excluirCentroCusto);
|
||||||
}
|
}
|
||||||
|
|
@ -419,6 +423,7 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
codigoGrupo: filtrosExternos.codigoGrupo,
|
codigoGrupo: filtrosExternos.codigoGrupo,
|
||||||
codigoSubgrupo: filtrosExternos.codigoSubgrupo,
|
codigoSubgrupo: filtrosExternos.codigoSubgrupo,
|
||||||
codigoConta: filtrosExternos.codigoConta,
|
codigoConta: filtrosExternos.codigoConta,
|
||||||
|
codFilial: filtrosExternos.codFilial,
|
||||||
excluirCentroCusto: filtrosExternos.excluirCentroCusto,
|
excluirCentroCusto: filtrosExternos.excluirCentroCusto,
|
||||||
excluirCodigoConta: filtrosExternos.excluirCodigoConta,
|
excluirCodigoConta: filtrosExternos.excluirCodigoConta,
|
||||||
codigosCentrosCustoSelecionados: filtrosExternos.codigosCentrosCustoSelecionados,
|
codigosCentrosCustoSelecionados: filtrosExternos.codigosCentrosCustoSelecionados,
|
||||||
|
|
@ -862,7 +867,7 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{/* Filtros Externos Ativos - Apenas quando maximizado */}
|
{/* Filtros Externos Ativos - Apenas quando maximizado */}
|
||||||
{isMaximized && (filtrosExternos.dataInicio || filtrosExternos.codigoGrupo || filtrosExternos.codigoSubgrupo || filtrosExternos.codigoConta || filtrosExternos.centroCusto) && (
|
{isMaximized && (filtrosExternos.dataInicio || filtrosExternos.codigoGrupo || filtrosExternos.codigoSubgrupo || filtrosExternos.codigoConta || filtrosExternos.centroCusto || filtrosExternos.codFilial) && (
|
||||||
<div className="flex items-center gap-2 mb-4">
|
<div className="flex items-center gap-2 mb-4">
|
||||||
<div className="w-2 h-2 bg-blue-500 rounded-full"></div>
|
<div className="w-2 h-2 bg-blue-500 rounded-full"></div>
|
||||||
<span className="text-sm font-medium text-blue-900">Filtros aplicados pela tabela DRE Filial:</span>
|
<span className="text-sm font-medium text-blue-900">Filtros aplicados pela tabela DRE Filial:</span>
|
||||||
|
|
@ -887,6 +892,11 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
Conta: {filtrosExternos.codigoConta}
|
Conta: {filtrosExternos.codigoConta}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
{filtrosExternos.codFilial && (
|
||||||
|
<span className="px-2 py-1 bg-blue-100 rounded">
|
||||||
|
Filial: {filtrosExternos.codFilial}
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
{filtrosExternos.centroCusto && (
|
{filtrosExternos.centroCusto && (
|
||||||
<span className="px-2 py-1 bg-blue-100 rounded">
|
<span className="px-2 py-1 bg-blue-100 rounded">
|
||||||
Centro Custo: {filtrosExternos.centroCusto}
|
Centro Custo: {filtrosExternos.centroCusto}
|
||||||
|
|
@ -1044,7 +1054,7 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Filtros Externos Ativos - Centralizado */}
|
{/* Filtros Externos Ativos - Centralizado */}
|
||||||
{(filtrosExternos.dataInicio || filtrosExternos.codigoGrupo || filtrosExternos.codigoSubgrupo || filtrosExternos.codigoConta || filtrosExternos.centroCusto) && (
|
{(filtrosExternos.dataInicio || filtrosExternos.codigoGrupo || filtrosExternos.codigoSubgrupo || filtrosExternos.codigoConta || filtrosExternos.centroCusto || filtrosExternos.codFilial) && (
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<div className="w-2 h-2 bg-blue-500 rounded-full"></div>
|
<div className="w-2 h-2 bg-blue-500 rounded-full"></div>
|
||||||
<span className="text-sm font-medium text-blue-900">Filtros aplicados pela tabela DRE Filial:</span>
|
<span className="text-sm font-medium text-blue-900">Filtros aplicados pela tabela DRE Filial:</span>
|
||||||
|
|
@ -1069,6 +1079,11 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
Conta: {filtrosExternos.codigoConta}
|
Conta: {filtrosExternos.codigoConta}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
{filtrosExternos.codFilial && (
|
||||||
|
<span className="px-2 py-1 bg-blue-100 rounded">
|
||||||
|
Filial: {filtrosExternos.codFilial}
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
{filtrosExternos.centroCusto && (
|
{filtrosExternos.centroCusto && (
|
||||||
<span className="px-2 py-1 bg-blue-100 rounded">
|
<span className="px-2 py-1 bg-blue-100 rounded">
|
||||||
Centro Custo: {filtrosExternos.centroCusto}
|
Centro Custo: {filtrosExternos.centroCusto}
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ const TableRow = memo(({
|
||||||
}: {
|
}: {
|
||||||
row: HierarchicalRow;
|
row: HierarchicalRow;
|
||||||
index: number;
|
index: number;
|
||||||
handleRowClick: (row: HierarchicalRow, mes?: string) => void;
|
handleRowClick: (row: HierarchicalRow, mes?: string, filial?: string) => void;
|
||||||
getRowStyle: (row: HierarchicalRow) => string;
|
getRowStyle: (row: HierarchicalRow) => string;
|
||||||
getIndentStyle: (level: number) => React.CSSProperties;
|
getIndentStyle: (level: number) => React.CSSProperties;
|
||||||
renderCellContent: (row: HierarchicalRow) => React.ReactNode;
|
renderCellContent: (row: HierarchicalRow) => React.ReactNode;
|
||||||
|
|
@ -112,7 +112,7 @@ const TableRow = memo(({
|
||||||
<React.Fragment key={`${mes}-${filial || 'default'}`}>
|
<React.Fragment key={`${mes}-${filial || 'default'}`}>
|
||||||
<td
|
<td
|
||||||
className="px-2 py-1 text-right font-semibold cursor-pointer hover:bg-blue-50/50 transition-colors duration-200 whitespace-nowrap overflow-hidden w-[120px] min-w-[120px]"
|
className="px-2 py-1 text-right font-semibold cursor-pointer hover:bg-blue-50/50 transition-colors duration-200 whitespace-nowrap overflow-hidden w-[120px] min-w-[120px]"
|
||||||
onClick={() => handleRowClick(row, mes)}
|
onClick={() => handleRowClick(row, mes, filial)}
|
||||||
title={
|
title={
|
||||||
filial && row.valoresPorMesPorFilial?.[mes]?.[filial] !== undefined
|
filial && row.valoresPorMesPorFilial?.[mes]?.[filial] !== undefined
|
||||||
? formatCurrency(row.valoresPorMesPorFilial[mes][filial])
|
? formatCurrency(row.valoresPorMesPorFilial[mes][filial])
|
||||||
|
|
@ -158,7 +158,7 @@ const TableRow = memo(({
|
||||||
</td>
|
</td>
|
||||||
<td
|
<td
|
||||||
className="px-2 py-1 text-center font-medium cursor-pointer hover:bg-blue-50/50 transition-colors duration-200 whitespace-nowrap overflow-hidden w-[100px] min-w-[100px]"
|
className="px-2 py-1 text-center font-medium cursor-pointer hover:bg-blue-50/50 transition-colors duration-200 whitespace-nowrap overflow-hidden w-[100px] min-w-[100px]"
|
||||||
onClick={() => handleRowClick(row, mes)}
|
onClick={() => handleRowClick(row, mes, filial)}
|
||||||
title={
|
title={
|
||||||
filial && row.percentuaisPorMesPorFilial?.[mes]?.[filial] !== undefined
|
filial && row.percentuaisPorMesPorFilial?.[mes]?.[filial] !== undefined
|
||||||
? `${row.percentuaisPorMesPorFilial[mes][filial].toFixed(1)}%`
|
? `${row.percentuaisPorMesPorFilial[mes][filial].toFixed(1)}%`
|
||||||
|
|
@ -257,6 +257,7 @@ export default function Teste() {
|
||||||
codigoGrupo: "",
|
codigoGrupo: "",
|
||||||
codigoSubgrupo: "",
|
codigoSubgrupo: "",
|
||||||
codigoConta: "",
|
codigoConta: "",
|
||||||
|
codFilial: "",
|
||||||
linhaSelecionada: "",
|
linhaSelecionada: "",
|
||||||
excluirCentroCusto: "",
|
excluirCentroCusto: "",
|
||||||
excluirCodigoConta: "",
|
excluirCodigoConta: "",
|
||||||
|
|
@ -365,7 +366,7 @@ export default function Teste() {
|
||||||
}, [formatCurrency]);
|
}, [formatCurrency]);
|
||||||
|
|
||||||
// Função para lidar com clique nas linhas
|
// Função para lidar com clique nas linhas
|
||||||
const handleRowClick = React.useCallback((row: HierarchicalRow, mesSelecionado?: string) => {
|
const handleRowClick = React.useCallback((row: HierarchicalRow, mesSelecionado?: string, filialSelecionada?: string) => {
|
||||||
console.log('🖱️ Clique na linha:', row);
|
console.log('🖱️ Clique na linha:', row);
|
||||||
console.log('📅 Mês selecionado:', mesSelecionado);
|
console.log('📅 Mês selecionado:', mesSelecionado);
|
||||||
|
|
||||||
|
|
@ -425,6 +426,28 @@ export default function Teste() {
|
||||||
codigoContaFiltro = row.codigo_conta?.toString() || "";
|
codigoContaFiltro = row.codigo_conta?.toString() || "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Determinar CODFILIAL baseado na filial selecionada
|
||||||
|
let codFilialFiltro = "";
|
||||||
|
if (filialSelecionada) {
|
||||||
|
// Se a filial selecionada já é um código numérico, usar diretamente
|
||||||
|
// Caso contrário, buscar o CODFILIAL correspondente ao nome da filial nos dados
|
||||||
|
if (/^\d+$/.test(filialSelecionada)) {
|
||||||
|
codFilialFiltro = filialSelecionada;
|
||||||
|
} else {
|
||||||
|
// Buscar o CODFILIAL correspondente ao nome da filial nos dados
|
||||||
|
const itemComFilial = data.find((item: DREItem) => {
|
||||||
|
const itemFilial = item.filial || item.codfilial || "";
|
||||||
|
return itemFilial === filialSelecionada;
|
||||||
|
});
|
||||||
|
if (itemComFilial) {
|
||||||
|
codFilialFiltro = itemComFilial.codfilial || filialSelecionada;
|
||||||
|
} else {
|
||||||
|
// Se não encontrar, tentar usar o próprio valor como código
|
||||||
|
codFilialFiltro = filialSelecionada;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const novosFiltros = {
|
const novosFiltros = {
|
||||||
dataInicio: dataInicioFiltro,
|
dataInicio: dataInicioFiltro,
|
||||||
dataFim: dataFimFiltro,
|
dataFim: dataFimFiltro,
|
||||||
|
|
@ -432,6 +455,7 @@ export default function Teste() {
|
||||||
codigoGrupo: codigoGrupoFiltro,
|
codigoGrupo: codigoGrupoFiltro,
|
||||||
codigoSubgrupo: "", // Não aplicável na hierarquia filial
|
codigoSubgrupo: "", // Não aplicável na hierarquia filial
|
||||||
codigoConta: codigoContaFiltro,
|
codigoConta: codigoContaFiltro,
|
||||||
|
codFilial: codFilialFiltro,
|
||||||
linhaSelecionada: row.grupo || row.conta || "",
|
linhaSelecionada: row.grupo || row.conta || "",
|
||||||
excluirCentroCusto: "",
|
excluirCentroCusto: "",
|
||||||
excluirCodigoConta: "",
|
excluirCodigoConta: "",
|
||||||
|
|
@ -1006,6 +1030,7 @@ export default function Teste() {
|
||||||
codigoGrupo: "",
|
codigoGrupo: "",
|
||||||
codigoSubgrupo: "",
|
codigoSubgrupo: "",
|
||||||
codigoConta: "",
|
codigoConta: "",
|
||||||
|
codFilial: "",
|
||||||
linhaSelecionada: "",
|
linhaSelecionada: "",
|
||||||
excluirCentroCusto: "",
|
excluirCentroCusto: "",
|
||||||
excluirCodigoConta: "",
|
excluirCodigoConta: "",
|
||||||
|
|
@ -1057,6 +1082,7 @@ export default function Teste() {
|
||||||
codigoGrupo: "",
|
codigoGrupo: "",
|
||||||
codigoSubgrupo: "",
|
codigoSubgrupo: "",
|
||||||
codigoConta: "",
|
codigoConta: "",
|
||||||
|
codFilial: "",
|
||||||
linhaSelecionada: "",
|
linhaSelecionada: "",
|
||||||
excluirCentroCusto: "",
|
excluirCentroCusto: "",
|
||||||
excluirCodigoConta: "",
|
excluirCodigoConta: "",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue