diff --git a/src/app/dre-filial/analitico.tsx b/src/app/dre-filial/analitico.tsx index 02c04c3..6eee0f2 100644 --- a/src/app/dre-filial/analitico.tsx +++ b/src/app/dre-filial/analitico.tsx @@ -89,12 +89,15 @@ interface AnaliticoProps { filtros: { dataInicio: string; dataFim: string; + centroCusto?: string; codigoGrupo?: string; + codigoSubgrupo?: string; codigoConta?: string; linhaSelecionada?: string; + excluirCentroCusto?: string; excluirCodigoConta?: string; + codigosCentrosCustoSelecionados?: string; codigosContasSelecionadas?: string; - filial?: string; }; } @@ -382,18 +385,27 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { if (filtrosExternos.dataFim) { params.append('dataFim', filtrosExternos.dataFim); } + if (filtrosExternos.centroCusto) { + params.append('centroCusto', filtrosExternos.centroCusto); + } if (filtrosExternos.codigoGrupo) { params.append('codigoGrupo', filtrosExternos.codigoGrupo); } + if (filtrosExternos.codigoSubgrupo) { + params.append('codigoSubgrupo', filtrosExternos.codigoSubgrupo); + } if (filtrosExternos.codigoConta) { params.append('codigoConta', filtrosExternos.codigoConta); } - if (filtrosExternos.filial) { - params.append('filial', filtrosExternos.filial); + if (filtrosExternos.excluirCentroCusto) { + params.append('excluirCentroCusto', filtrosExternos.excluirCentroCusto); } if (filtrosExternos.excluirCodigoConta) { params.append('excluirCodigoConta', filtrosExternos.excluirCodigoConta); } + if (filtrosExternos.codigosCentrosCustoSelecionados) { + params.append('codigosCentrosCustoSelecionados', filtrosExternos.codigosCentrosCustoSelecionados); + } if (filtrosExternos.codigosContasSelecionadas) { params.append('codigosContasSelecionadas', filtrosExternos.codigosContasSelecionadas); } @@ -403,9 +415,13 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { console.log('📋 Parâmetros enviados:', { dataInicio: filtrosExternos.dataInicio, dataFim: filtrosExternos.dataFim, + centroCusto: filtrosExternos.centroCusto, codigoGrupo: filtrosExternos.codigoGrupo, + codigoSubgrupo: filtrosExternos.codigoSubgrupo, codigoConta: filtrosExternos.codigoConta, - filial: filtrosExternos.filial, + excluirCentroCusto: filtrosExternos.excluirCentroCusto, + excluirCodigoConta: filtrosExternos.excluirCodigoConta, + codigosCentrosCustoSelecionados: filtrosExternos.codigosCentrosCustoSelecionados, codigosContasSelecionadas: filtrosExternos.codigosContasSelecionadas }); @@ -497,6 +513,54 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { }; const baseColumns = [ + { + field: "numero_lancamento", + headerName: "ID", + width: 100, + sortable: true, + resizable: true, + renderCell: (params: any) => params.value || "-", + }, + { + field: "data_lancamento", + headerName: "Dt Lanc", + width: 95, + sortable: true, + resizable: true, + renderCell: dateCellRenderer, + }, + { + field: "data_compensacao", + headerName: "Dt Comp", + width: 95, + sortable: true, + resizable: true, + renderCell: dateCellRenderer, + }, + { + field: "data_vencimento", + headerName: "Dt Venc", + width: 95, + sortable: true, + resizable: true, + renderCell: dateCellRenderer, + }, + { + field: "data_caixa", + headerName: "Dt Caixa", + width: 95, + sortable: true, + resizable: true, + renderCell: dateCellRenderer, + }, + { + field: "data_pagto", + headerName: "Dt Pagto", + width: 95, + sortable: true, + resizable: true, + renderCell: dateCellRenderer, + }, { field: "ano_mes_comp", headerName: "Ano/Mês Comp", @@ -506,27 +570,42 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { renderCell: (params: any) => params.value || "-", }, { - field: "filial", - headerName: "Filial", + field: "entidade", + headerName: "Entidade", width: 90, sortable: true, resizable: true, renderCell: (params: any) => params.value || "-", }, { - field: "codigo_grupo", - headerName: "Cod.Grupo", + field: "codigo_fornecedor", + headerName: "Cod. Fornec", width: 100, sortable: true, resizable: true, }, { - field: "grupo", - headerName: "Grupo", + field: "nome_fornecedor", + headerName: "Fornecedor", width: 200, sortable: true, resizable: true, }, + { + field: "codigo_centrocusto", + headerName: "Cod.CC", + width: 90, + sortable: true, + resizable: true, + }, + { + field: "centro_custo", + headerName: "Centro Custo", + width: 180, + sortable: true, + resizable: true, + renderCell: (params: any) => params.value || "-", + }, { field: "codigo_conta", headerName: "Cod.Conta", @@ -551,13 +630,54 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { renderCell: (params: any) => currencyCellRenderer(params, true), }, { - field: "tipo", - headerName: "Tipo", + field: "valor_previsto", + headerName: "VI.Pr", + type: "number" as const, + width: 85, + sortable: true, + resizable: true, + renderCell: (params: any) => currencyCellRenderer(params, false), + }, + { + field: "valor_confirmado", + headerName: "VI.Confirmado", + type: "number" as const, + width: 125, + sortable: true, + resizable: true, + renderCell: (params: any) => currencyCellRenderer(params, false), + }, + { + field: "historico", + headerName: "Histórico", + width: 250, + sortable: true, + resizable: true, + }, + { + field: "tipo_parceiro", + headerName: "Tipo Parc", width: 95, sortable: true, resizable: true, renderCell: (params: any) => params.value || "-", }, + { + field: "valor_pago", + headerName: "VI.Pago", + type: "number" as const, + width: 100, + sortable: true, + resizable: true, + renderCell: (params: any) => currencyCellRenderer(params, false), + }, + { + field: "historico2", + headerName: "Histórico 2", + width: 250, + sortable: true, + resizable: true, + }, ]; // Adicionar renderHeader com filtro Excel para todas as colunas @@ -637,6 +757,15 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { if (sortedAndFilteredData.length === 0) return; // Funções auxiliares para formatar valores exatamente como na grid + const formatDateValue = (value: any): string => { + if (!value) return "-"; + try { + return new Date(value).toLocaleDateString("pt-BR"); + } catch (error) { + return value; + } + }; + const formatCurrencyValue = (value: any, showZero: boolean = false): string | number => { if (value === null || value === undefined || value === "") return "-"; const numValue = typeof value === "string" ? parseFloat(value) : Number(value); @@ -654,18 +783,32 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { // Se a coluna tem renderCell, aplicar a mesma lógica if (column.renderCell) { + // Para datas + if (column.field.includes("data_")) { + return formatDateValue(value); + } + // Para valores monetários if (column.field === "valor") { return formatCurrencyValue(value, true); } + if (column.field === "valor_previsto" || column.field === "valor_confirmado" || column.field === "valor_pago") { + return formatCurrencyValue(value, false); + } // Para campos que retornam "-" se vazios - if (column.field === "filial" || column.field === "ano_mes_comp" || - column.field === "tipo") { + if (column.field === "centro_custo" || column.field === "numero_lancamento" || + column.field === "entidade" || column.field === "tipo_parceiro" || + column.field === "ano_mes_comp") { return value || "-"; } } + // Para datas sem renderCell explícito (mas que são datas) + if (column.field.includes("data_")) { + return formatDateValue(value); + } + // Valor padrão return value ?? ""; }; @@ -719,7 +862,7 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { return ( <> {/* Filtros Externos Ativos - Apenas quando maximizado */} - {isMaximized && (filtrosExternos.dataInicio || filtrosExternos.codigoGrupo || filtrosExternos.codigoConta) && ( + {isMaximized && (filtrosExternos.dataInicio || filtrosExternos.codigoGrupo || filtrosExternos.codigoSubgrupo || filtrosExternos.codigoConta || filtrosExternos.centroCusto) && (
Filtros aplicados pela tabela DRE Filial: @@ -734,11 +877,21 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { Grupo: {filtrosExternos.codigoGrupo} )} + {filtrosExternos.codigoSubgrupo && ( + + Subgrupo: {filtrosExternos.codigoSubgrupo} + + )} {filtrosExternos.codigoConta && ( Conta: {filtrosExternos.codigoConta} )} + {filtrosExternos.centroCusto && ( + + Centro Custo: {filtrosExternos.centroCusto} + + )}
)} @@ -891,7 +1044,7 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { {/* Filtros Externos Ativos - Centralizado */} - {(filtrosExternos.dataInicio || filtrosExternos.codigoGrupo || filtrosExternos.codigoConta) && ( + {(filtrosExternos.dataInicio || filtrosExternos.codigoGrupo || filtrosExternos.codigoSubgrupo || filtrosExternos.codigoConta || filtrosExternos.centroCusto) && (
Filtros aplicados pela tabela DRE Filial: @@ -899,20 +1052,30 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { {filtrosExternos.dataInicio && filtrosExternos.dataFim && ( Período: {filtrosExternos.dataInicio} a {filtrosExternos.dataFim} - - )} + + )} {filtrosExternos.codigoGrupo && ( Grupo: {filtrosExternos.codigoGrupo} - - )} + + )} + {filtrosExternos.codigoSubgrupo && ( + + Subgrupo: {filtrosExternos.codigoSubgrupo} + + )} {filtrosExternos.codigoConta && ( Conta: {filtrosExternos.codigoConta} - - )} -
- + + )} + {filtrosExternos.centroCusto && ( + + Centro Custo: {filtrosExternos.centroCusto} + + )} + + )} {/* Controls */}