Merge pull request #21 from JurunenseDevInterno/fix-tabela-sintetica-exportacao
Fix tabela sintetica exportacao
This commit is contained in:
commit
97d6e70c52
|
|
@ -78,6 +78,8 @@ interface AnaliticoProps {
|
||||||
linhaSelecionada?: string;
|
linhaSelecionada?: string;
|
||||||
excluirCentroCusto?: string;
|
excluirCentroCusto?: string;
|
||||||
excluirCodigoConta?: string;
|
excluirCodigoConta?: string;
|
||||||
|
codigosCentrosCustoSelecionados?: string;
|
||||||
|
codigosContasSelecionadas?: string;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -379,6 +381,12 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
if (filtrosExternos.excluirCodigoConta) {
|
if (filtrosExternos.excluirCodigoConta) {
|
||||||
params.append('excluirCodigoConta', filtrosExternos.excluirCodigoConta);
|
params.append('excluirCodigoConta', filtrosExternos.excluirCodigoConta);
|
||||||
}
|
}
|
||||||
|
if (filtrosExternos.codigosCentrosCustoSelecionados) {
|
||||||
|
params.append('codigosCentrosCustoSelecionados', filtrosExternos.codigosCentrosCustoSelecionados);
|
||||||
|
}
|
||||||
|
if (filtrosExternos.codigosContasSelecionadas) {
|
||||||
|
params.append('codigosContasSelecionadas', filtrosExternos.codigosContasSelecionadas);
|
||||||
|
}
|
||||||
|
|
||||||
const url = `/api/analitico-oracle?${params.toString()}`;
|
const url = `/api/analitico-oracle?${params.toString()}`;
|
||||||
console.log('🌐 Fazendo requisição para:', url);
|
console.log('🌐 Fazendo requisição para:', url);
|
||||||
|
|
@ -732,25 +740,25 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
if (sortedAndFilteredData.length === 0) return;
|
if (sortedAndFilteredData.length === 0) return;
|
||||||
|
|
||||||
const exportData = sortedAndFilteredData.map((item) => ({
|
const exportData = sortedAndFilteredData.map((item) => ({
|
||||||
"Data Competência": item.data_competencia
|
|
||||||
? new Date(item.data_competencia).toLocaleDateString("pt-BR")
|
|
||||||
: "-",
|
|
||||||
"Data Vencimento": item.data_vencimento
|
"Data Vencimento": item.data_vencimento
|
||||||
? new Date(item.data_vencimento).toLocaleDateString("pt-BR")
|
? new Date(item.data_vencimento).toLocaleDateString("pt-BR")
|
||||||
: "-",
|
: "-",
|
||||||
"Data Caixa": item.data_caixa
|
"Data Caixa": item.data_caixa
|
||||||
? new Date(item.data_caixa).toLocaleDateString("pt-BR")
|
? new Date(item.data_caixa).toLocaleDateString("pt-BR")
|
||||||
: "-",
|
: "-",
|
||||||
"Código Fornecedor": item.codigo_fornecedor,
|
"Entidade": item.entidade || "-",
|
||||||
Fornecedor: item.nome_fornecedor,
|
"Código Fornecedor": item.codigo_fornecedor || "-",
|
||||||
"Código Centro Custo": item.codigo_centrocusto,
|
"Fornecedor": item.nome_fornecedor || "-",
|
||||||
"Centro Custo": item.codigo_centrocusto,
|
"Código Centro Custo": item.codigo_centrocusto || "-",
|
||||||
"Código Conta": item.codigo_conta,
|
"Código Conta": item.codigo_conta || "-",
|
||||||
Conta: item.conta,
|
"Conta": item.conta || "-",
|
||||||
Valor: typeof item.valor === "string" ? parseFloat(item.valor) : item.valor,
|
"Valor Realizado": typeof item.valor === "string" ? parseFloat(item.valor) : (item.valor || 0),
|
||||||
Histórico: item.historico,
|
"Valor Previsto": typeof item.valor_previsto === "string" ? parseFloat(item.valor_previsto) : (item.valor_previsto || 0),
|
||||||
"Histórico 2": item.historico2,
|
"Valor Confirmado": typeof item.valor_confirmado === "string" ? parseFloat(item.valor_confirmado) : (item.valor_confirmado || 0),
|
||||||
Recnum: item.recnum,
|
"Valor Pago": typeof item.valor_pago === "string" ? parseFloat(item.valor_pago) : (item.valor_pago || 0),
|
||||||
|
"Histórico": item.historico || "-",
|
||||||
|
"Histórico 2": item.historico2 || "-",
|
||||||
|
"Número Lançamento": item.numero_lancamento || "-",
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const wb = XLSX.utils.book_new();
|
const wb = XLSX.utils.book_new();
|
||||||
|
|
|
||||||
|
|
@ -221,6 +221,8 @@ export default function Teste() {
|
||||||
linhaSelecionada: "", // Adicionar informação da linha selecionada
|
linhaSelecionada: "", // Adicionar informação da linha selecionada
|
||||||
excluirCentroCusto: "", // Para excluir centro de custo específico quando desmarcado
|
excluirCentroCusto: "", // Para excluir centro de custo específico quando desmarcado
|
||||||
excluirCodigoConta: "", // Para excluir código de conta específico quando desmarcado
|
excluirCodigoConta: "", // Para excluir código de conta específico quando desmarcado
|
||||||
|
codigosCentrosCustoSelecionados: "", // Códigos dos centros de custo selecionados no filtro
|
||||||
|
codigosContasSelecionadas: "", // Códigos das contas selecionadas no filtro
|
||||||
});
|
});
|
||||||
const [linhaSelecionada, setLinhaSelecionada] = useState<string | null>(null);
|
const [linhaSelecionada, setLinhaSelecionada] = useState<string | null>(null);
|
||||||
const [isAllExpanded, setIsAllExpanded] = useState(false);
|
const [isAllExpanded, setIsAllExpanded] = useState(false);
|
||||||
|
|
@ -463,6 +465,24 @@ export default function Teste() {
|
||||||
excluirCodigoConta = "100050";
|
excluirCodigoConta = "100050";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Obter códigos dos centros de custo selecionados no filtro
|
||||||
|
const codigosCentrosCustoSelecionados = centrosCustoSelecionados
|
||||||
|
.map(centro => {
|
||||||
|
const item = data.find((d: DREItem) => d.centro_custo === centro);
|
||||||
|
return item?.codigo_centro_custo;
|
||||||
|
})
|
||||||
|
.filter(codigo => codigo) // Remover undefined
|
||||||
|
.join(',');
|
||||||
|
|
||||||
|
// Obter códigos das contas selecionadas no filtro
|
||||||
|
const codigosContasSelecionadas = contasSelecionadas
|
||||||
|
.map(conta => {
|
||||||
|
const item = data.find((d: DREItem) => d.conta === conta);
|
||||||
|
return item?.codigo_conta?.toString();
|
||||||
|
})
|
||||||
|
.filter(codigo => codigo) // Remover undefined
|
||||||
|
.join(',');
|
||||||
|
|
||||||
const novosFiltros = {
|
const novosFiltros = {
|
||||||
dataInicio: dataInicioFiltro,
|
dataInicio: dataInicioFiltro,
|
||||||
dataFim: dataFimFiltro,
|
dataFim: dataFimFiltro,
|
||||||
|
|
@ -473,6 +493,8 @@ export default function Teste() {
|
||||||
linhaSelecionada: row.grupo || row.subgrupo || row.centro_custo || row.conta || "", // Incluir informação da linha selecionada
|
linhaSelecionada: row.grupo || row.subgrupo || row.centro_custo || row.conta || "", // Incluir informação da linha selecionada
|
||||||
excluirCentroCusto,
|
excluirCentroCusto,
|
||||||
excluirCodigoConta,
|
excluirCodigoConta,
|
||||||
|
codigosCentrosCustoSelecionados,
|
||||||
|
codigosContasSelecionadas,
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log('🎯 Novos filtros para analítico:', novosFiltros);
|
console.log('🎯 Novos filtros para analítico:', novosFiltros);
|
||||||
|
|
@ -480,7 +502,9 @@ export default function Teste() {
|
||||||
centroCusto: novosFiltros.centroCusto,
|
centroCusto: novosFiltros.centroCusto,
|
||||||
codigoConta: novosFiltros.codigoConta,
|
codigoConta: novosFiltros.codigoConta,
|
||||||
codigoContaType: typeof novosFiltros.codigoConta,
|
codigoContaType: typeof novosFiltros.codigoConta,
|
||||||
codigoContaLength: novosFiltros.codigoConta?.length
|
codigoContaLength: novosFiltros.codigoConta?.length,
|
||||||
|
codigosCentrosCustoSelecionados: novosFiltros.codigosCentrosCustoSelecionados,
|
||||||
|
codigosContasSelecionadas: novosFiltros.codigosContasSelecionadas
|
||||||
});
|
});
|
||||||
setAnaliticoFiltros(novosFiltros);
|
setAnaliticoFiltros(novosFiltros);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,10 @@ export async function GET(request: NextRequest) {
|
||||||
// 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');
|
||||||
const excluirCodigoConta = searchParams.get('excluirCodigoConta');
|
const excluirCodigoConta = searchParams.get('excluirCodigoConta');
|
||||||
|
|
||||||
|
// Novos parâmetros para códigos selecionados no filtro
|
||||||
|
const codigosCentrosCustoSelecionados = searchParams.get('codigosCentrosCustoSelecionados');
|
||||||
|
const codigosContasSelecionadas = searchParams.get('codigosContasSelecionadas');
|
||||||
|
|
||||||
console.log('🎯 Filtros recebidos:', {
|
console.log('🎯 Filtros recebidos:', {
|
||||||
dataInicio,
|
dataInicio,
|
||||||
|
|
@ -27,7 +31,9 @@ export async function GET(request: NextRequest) {
|
||||||
codigoGrupo,
|
codigoGrupo,
|
||||||
codigoConta,
|
codigoConta,
|
||||||
excluirCentroCusto,
|
excluirCentroCusto,
|
||||||
excluirCodigoConta
|
excluirCodigoConta,
|
||||||
|
codigosCentrosCustoSelecionados,
|
||||||
|
codigosContasSelecionadas
|
||||||
});
|
});
|
||||||
|
|
||||||
// Construir query SQL com filtros
|
// Construir query SQL com filtros
|
||||||
|
|
@ -83,6 +89,24 @@ export async function GET(request: NextRequest) {
|
||||||
console.log('🚫 Excluindo código de conta:', excluirCodigoConta);
|
console.log('🚫 Excluindo código de conta:', excluirCodigoConta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Filtro por códigos de centros de custo selecionados no filtro
|
||||||
|
if (codigosCentrosCustoSelecionados) {
|
||||||
|
const codigosArray = codigosCentrosCustoSelecionados.split(',');
|
||||||
|
const placeholders = codigosArray.map(() => `:${paramIndex++}`).join(',');
|
||||||
|
sql += ` AND CODIGOCENTROCUSTO IN (${placeholders})`;
|
||||||
|
params.push(...codigosArray);
|
||||||
|
console.log('🏢 Filtrando por códigos de centros de custo:', codigosArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filtro por códigos de contas selecionadas no filtro
|
||||||
|
if (codigosContasSelecionadas) {
|
||||||
|
const codigosArray = codigosContasSelecionadas.split(',');
|
||||||
|
const placeholders = codigosArray.map(() => `:${paramIndex++}`).join(',');
|
||||||
|
sql += ` AND CODCONTA IN (${placeholders})`;
|
||||||
|
params.push(...codigosArray);
|
||||||
|
console.log('💰 Filtrando por códigos de contas:', codigosArray);
|
||||||
|
}
|
||||||
|
|
||||||
sql += ` ORDER BY DTVENC, CODFORNEC, CODCONTA`;
|
sql += ` ORDER BY DTVENC, CODFORNEC, CODCONTA`;
|
||||||
|
|
||||||
console.log('🗄️ Query SQL final:', sql);
|
console.log('🗄️ Query SQL final:', sql);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue