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;
|
||||
excluirCentroCusto?: string;
|
||||
excluirCodigoConta?: string;
|
||||
codigosCentrosCustoSelecionados?: string;
|
||||
codigosContasSelecionadas?: string;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -379,6 +381,12 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
|||
if (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()}`;
|
||||
console.log('🌐 Fazendo requisição para:', url);
|
||||
|
|
@ -732,25 +740,25 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
|||
if (sortedAndFilteredData.length === 0) return;
|
||||
|
||||
const exportData = sortedAndFilteredData.map((item) => ({
|
||||
"Data Competência": item.data_competencia
|
||||
? new Date(item.data_competencia).toLocaleDateString("pt-BR")
|
||||
: "-",
|
||||
"Data Vencimento": item.data_vencimento
|
||||
? new Date(item.data_vencimento).toLocaleDateString("pt-BR")
|
||||
: "-",
|
||||
"Data Caixa": item.data_caixa
|
||||
? new Date(item.data_caixa).toLocaleDateString("pt-BR")
|
||||
: "-",
|
||||
"Código Fornecedor": item.codigo_fornecedor,
|
||||
Fornecedor: item.nome_fornecedor,
|
||||
"Código Centro Custo": item.codigo_centrocusto,
|
||||
"Centro Custo": item.codigo_centrocusto,
|
||||
"Código Conta": item.codigo_conta,
|
||||
Conta: item.conta,
|
||||
Valor: typeof item.valor === "string" ? parseFloat(item.valor) : item.valor,
|
||||
Histórico: item.historico,
|
||||
"Histórico 2": item.historico2,
|
||||
Recnum: item.recnum,
|
||||
"Entidade": item.entidade || "-",
|
||||
"Código Fornecedor": item.codigo_fornecedor || "-",
|
||||
"Fornecedor": item.nome_fornecedor || "-",
|
||||
"Código Centro Custo": item.codigo_centrocusto || "-",
|
||||
"Código Conta": item.codigo_conta || "-",
|
||||
"Conta": item.conta || "-",
|
||||
"Valor Realizado": typeof item.valor === "string" ? parseFloat(item.valor) : (item.valor || 0),
|
||||
"Valor Previsto": typeof item.valor_previsto === "string" ? parseFloat(item.valor_previsto) : (item.valor_previsto || 0),
|
||||
"Valor Confirmado": typeof item.valor_confirmado === "string" ? parseFloat(item.valor_confirmado) : (item.valor_confirmado || 0),
|
||||
"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();
|
||||
|
|
|
|||
|
|
@ -221,6 +221,8 @@ export default function Teste() {
|
|||
linhaSelecionada: "", // Adicionar informação da linha selecionada
|
||||
excluirCentroCusto: "", // Para excluir centro de custo 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 [isAllExpanded, setIsAllExpanded] = useState(false);
|
||||
|
|
@ -463,6 +465,24 @@ export default function Teste() {
|
|||
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 = {
|
||||
dataInicio: dataInicioFiltro,
|
||||
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
|
||||
excluirCentroCusto,
|
||||
excluirCodigoConta,
|
||||
codigosCentrosCustoSelecionados,
|
||||
codigosContasSelecionadas,
|
||||
};
|
||||
|
||||
console.log('🎯 Novos filtros para analítico:', novosFiltros);
|
||||
|
|
@ -480,7 +502,9 @@ export default function Teste() {
|
|||
centroCusto: novosFiltros.centroCusto,
|
||||
codigoConta: novosFiltros.codigoConta,
|
||||
codigoContaType: typeof novosFiltros.codigoConta,
|
||||
codigoContaLength: novosFiltros.codigoConta?.length
|
||||
codigoContaLength: novosFiltros.codigoConta?.length,
|
||||
codigosCentrosCustoSelecionados: novosFiltros.codigosCentrosCustoSelecionados,
|
||||
codigosContasSelecionadas: novosFiltros.codigosContasSelecionadas
|
||||
});
|
||||
setAnaliticoFiltros(novosFiltros);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -19,6 +19,10 @@ export async function GET(request: NextRequest) {
|
|||
// Parâmetros para exclusão de valores específicos
|
||||
const excluirCentroCusto = searchParams.get('excluirCentroCusto');
|
||||
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:', {
|
||||
dataInicio,
|
||||
|
|
@ -27,7 +31,9 @@ export async function GET(request: NextRequest) {
|
|||
codigoGrupo,
|
||||
codigoConta,
|
||||
excluirCentroCusto,
|
||||
excluirCodigoConta
|
||||
excluirCodigoConta,
|
||||
codigosCentrosCustoSelecionados,
|
||||
codigosContasSelecionadas
|
||||
});
|
||||
|
||||
// Construir query SQL com filtros
|
||||
|
|
@ -83,6 +89,24 @@ export async function GET(request: NextRequest) {
|
|||
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`;
|
||||
|
||||
console.log('🗄️ Query SQL final:', sql);
|
||||
|
|
|
|||
Loading…
Reference in New Issue