diff --git a/src/app/DRE/analitico.tsx b/src/app/DRE/analitico.tsx index d2cd729..977cd59 100644 --- a/src/app/DRE/analitico.tsx +++ b/src/app/DRE/analitico.tsx @@ -481,12 +481,12 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { // Definir colunas do DataGridPro na ordem solicitada const columns = React.useMemo(() => { const dateCellRenderer = (params: any) => { - if (!params.value) return "-"; - try { - return new Date(params.value).toLocaleDateString("pt-BR"); - } catch (error) { - return params.value; - } + if (!params.value) return "-"; + try { + return new Date(params.value).toLocaleDateString("pt-BR"); + } catch (error) { + return params.value; + } }; const currencyCellRenderer = (params: any, showZero: boolean = false) => { @@ -609,40 +609,40 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { sortable: true, resizable: true, }, - { - field: "valor", - headerName: "Vl.Realizado", - type: "number" as const, - width: 140, - sortable: true, - resizable: true, + { + field: "valor", + headerName: "Vl.Realizado", + type: "number" as const, + width: 140, + sortable: true, + resizable: true, renderCell: (params: any) => currencyCellRenderer(params, true), }, - { - field: "valor_previsto", - headerName: "Vl.Previsto", - type: "number" as const, - width: 130, - sortable: true, - resizable: true, + { + field: "valor_previsto", + headerName: "Vl.Previsto", + type: "number" as const, + width: 130, + sortable: true, + resizable: true, renderCell: (params: any) => currencyCellRenderer(params, false), }, - { - field: "valor_confirmado", - headerName: "Vl.Confirmado", - type: "number" as const, - width: 140, - sortable: true, - resizable: true, + { + field: "valor_confirmado", + headerName: "Vl.Confirmado", + type: "number" as const, + width: 140, + sortable: true, + resizable: true, renderCell: (params: any) => currencyCellRenderer(params, false), }, - { - field: "valor_pago", - headerName: "Vl.Pago", - type: "number" as const, + { + field: "valor_pago", + headerName: "Vl.Pago", + type: "number" as const, width: 120, - sortable: true, - resizable: true, + sortable: true, + resizable: true, renderCell: (params: any) => currencyCellRenderer(params, false), }, { @@ -823,10 +823,10 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { // Função para renderizar o conteúdo principal do componente (reutilizável) const renderAnaliticoContent = (isMaximized: boolean = false) => { - return ( + return ( <> - {/* Filtros Externos Ativos */} - {(filtrosExternos.dataInicio || filtrosExternos.centroCusto || filtrosExternos.codigoGrupo || filtrosExternos.codigoConta) && ( + {/* Filtros Externos Ativos - Apenas quando maximizado */} + {isMaximized && (filtrosExternos.dataInicio || filtrosExternos.centroCusto || filtrosExternos.codigoGrupo || filtrosExternos.codigoConta) && (
Filtros aplicados pela tabela DRE Gerencial: @@ -854,72 +854,74 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
)} - - {/* Controls */} -
- {data.length > 0 && ( + + {/* Controls - Apenas quando maximizado */} + {isMaximized && ( +
+ {data.length > 0 && ( + + )} - )} - +
+ )} + + {/* DataGridPro */} + + +
+
+

+ Total de Registros: {sortedAndFilteredData.length} +

+
+ Valor Total: + {new Intl.NumberFormat("pt-BR", { + style: "currency", + currency: "BRL", + }).format(valorTotal)} + +
+
- {/* DataGridPro */} - - -
-
-

- Total de Registros: {sortedAndFilteredData.length} -

-
- Valor Total: - {new Intl.NumberFormat("pt-BR", { - style: "currency", - currency: "BRL", - }).format(valorTotal)} - -
-
-
-
- row.id || `row-${row.recnum || Math.random()}`} - sx={{ - overflowAnchor: 'none', + row.id || `row-${row.recnum || Math.random()}`} + sx={{ + overflowAnchor: 'none', height: "100%", display: "flex", flexDirection: "column", @@ -943,7 +945,7 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { overflow: "hidden !important", position: "relative", zIndex: 100, - backgroundColor: "#f9fafb", + backgroundColor: "#f9fafb", flexShrink: 0, flexGrow: 0, }, @@ -951,8 +953,8 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { position: "relative !important", backgroundColor: "#f9fafb !important", zIndex: 100, - borderBottom: "1px solid #e5e7eb", - }, + borderBottom: "1px solid #e5e7eb", + }, "& .MuiDataGrid-columnHeader": { backgroundColor: "#f9fafb !important", }, @@ -962,10 +964,10 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { "& .MuiDataGrid-columnHeadersInner": { backgroundColor: "#f9fafb !important", }, - "& .MuiDataGrid-cell": { - borderBottom: "1px solid #f0f0f0", - fontSize: "0.875rem", - }, + "& .MuiDataGrid-cell": { + borderBottom: "1px solid #f0f0f0", + fontSize: "0.875rem", + }, // Container do virtualScroller - deve ter scroll e ocupar espaço restante "& .MuiDataGrid-container--bottom": { flex: 1, @@ -976,7 +978,7 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { flexDirection: "column", }, // Apenas o virtualScroller deve ter scroll - "& .MuiDataGrid-virtualScroller": { + "& .MuiDataGrid-virtualScroller": { overflowY: "auto !important", overflowX: "auto !important", height: "100% !important", @@ -1004,137 +1006,137 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) { }, "& .MuiDataGrid-row": { minWidth: "max-content", - }, - "& .MuiDataGrid-toolbarContainer": { - backgroundColor: "#f8fafc", - borderBottom: "1px solid #e5e7eb", - padding: "8px 16px", - }, + }, + "& .MuiDataGrid-toolbarContainer": { + backgroundColor: "#f8fafc", + borderBottom: "1px solid #e5e7eb", + padding: "8px 16px", + }, "& .MuiDataGrid-scrollbar": { display: "none", }, - // Ocultar todos os ícones nativos das colunas - "& .MuiDataGrid-columnHeaderMenuContainer": { - display: "none !important", - }, - "& .MuiDataGrid-columnHeaderMenuButton": { - display: "none !important", - }, - "& .MuiDataGrid-columnHeaderSortIcon": { - display: "none !important", - }, - "& .MuiDataGrid-columnHeaderSortIconContainer": { - display: "none !important", - }, - "& .MuiDataGrid-iconButtonContainer": { - display: "none !important", - }, - "& .MuiDataGrid-columnHeaderSeparator": { - display: "none !important", - }, - "& .MuiDataGrid-columnHeaderSortButton": { - display: "none !important", - }, - // Ocultar qualquer ícone de menu adicional - "& .MuiDataGrid-menuIcon": { - display: "none !important", - }, - "& .MuiDataGrid-menuIconButton": { - display: "none !important", - }, - "& .MuiDataGrid-columnHeaderMenuIcon": { - display: "none !important", - }, - "& .MuiDataGrid-columnHeaderMenuIconButton": { - display: "none !important", - }, - "& .MuiDataGrid-menuContainer": { - display: "none !important", - }, - "& .MuiDataGrid-menu": { - display: "none !important", - }, - // Ocultar footer de paginação - "& .MuiDataGrid-footerContainer": { - display: "none !important", - }, - "& .MuiDataGrid-pagination": { - display: "none !important", - }, - "& .MuiTablePagination-root": { - display: "none !important", - }, - // Garantir que nosso botão customizado apareça - "& .MuiDataGrid-columnHeaderTitleContainer": { - width: "100%", - display: "flex", - alignItems: "center", - justifyContent: "space-between", - }, - }} - /> - + // Ocultar todos os ícones nativos das colunas + "& .MuiDataGrid-columnHeaderMenuContainer": { + display: "none !important", + }, + "& .MuiDataGrid-columnHeaderMenuButton": { + display: "none !important", + }, + "& .MuiDataGrid-columnHeaderSortIcon": { + display: "none !important", + }, + "& .MuiDataGrid-columnHeaderSortIconContainer": { + display: "none !important", + }, + "& .MuiDataGrid-iconButtonContainer": { + display: "none !important", + }, + "& .MuiDataGrid-columnHeaderSeparator": { + display: "none !important", + }, + "& .MuiDataGrid-columnHeaderSortButton": { + display: "none !important", + }, + // Ocultar qualquer ícone de menu adicional + "& .MuiDataGrid-menuIcon": { + display: "none !important", + }, + "& .MuiDataGrid-menuIconButton": { + display: "none !important", + }, + "& .MuiDataGrid-columnHeaderMenuIcon": { + display: "none !important", + }, + "& .MuiDataGrid-columnHeaderMenuIconButton": { + display: "none !important", + }, + "& .MuiDataGrid-menuContainer": { + display: "none !important", + }, + "& .MuiDataGrid-menu": { + display: "none !important", + }, + // Ocultar footer de paginação + "& .MuiDataGrid-footerContainer": { + display: "none !important", + }, + "& .MuiDataGrid-pagination": { + display: "none !important", + }, + "& .MuiTablePagination-root": { + display: "none !important", + }, + // Garantir que nosso botão customizado apareça + "& .MuiDataGrid-columnHeaderTitleContainer": { + width: "100%", + display: "flex", + alignItems: "center", + justifyContent: "space-between", + }, + }} + /> + {/* Card de Agregação Customizado */} - {sortedAndFilteredData.length > 0 && ( -
-
-
-
-
- Vl.Realizado: - - {new Intl.NumberFormat("pt-BR", { - style: "currency", - currency: "BRL", - }).format(columnTotals.valor)} - -
- -
- Vl.Previsto: - - {new Intl.NumberFormat("pt-BR", { - style: "currency", - currency: "BRL", - }).format(columnTotals.valor_previsto)} - -
- -
- Vl.Confirmado: - - {new Intl.NumberFormat("pt-BR", { - style: "currency", - currency: "BRL", - }).format(columnTotals.valor_confirmado)} - -
- -
- Vl.Pago: - - {new Intl.NumberFormat("pt-BR", { - style: "currency", - currency: "BRL", - }).format(columnTotals.valor_pago)} - -
-
- -
- Total de Registros: {sortedAndFilteredData.length} -
-
-
-
- )} + {sortedAndFilteredData.length > 0 && ( +
+
+
+
+
+ Vl.Realizado: + + {new Intl.NumberFormat("pt-BR", { + style: "currency", + currency: "BRL", + }).format(columnTotals.valor)} +
- - + +
+ Vl.Previsto: + + {new Intl.NumberFormat("pt-BR", { + style: "currency", + currency: "BRL", + }).format(columnTotals.valor_previsto)} + +
+ +
+ Vl.Confirmado: + + {new Intl.NumberFormat("pt-BR", { + style: "currency", + currency: "BRL", + }).format(columnTotals.valor_confirmado)} + +
+ +
+ Vl.Pago: + + {new Intl.NumberFormat("pt-BR", { + style: "currency", + currency: "BRL", + }).format(columnTotals.valor_pago)} + +
+
+ +
+ Total de Registros: {sortedAndFilteredData.length} +
+
+
+
+ )} +
+
+
); };