diff --git a/modules/customer-invoices/src/common/locales/es.json b/modules/customer-invoices/src/common/locales/es.json
index c3ff060c..9d88a325 100644
--- a/modules/customer-invoices/src/common/locales/es.json
+++ b/modules/customer-invoices/src/common/locales/es.json
@@ -418,7 +418,7 @@
"columns": {
"proforma_reference": "Num.",
"series": "Serie",
- "reference": "Reference",
+ "reference": "Referencia",
"status": "Estado",
"proforma_date": "Fecha",
"operation_date": "Fecha de operación",
@@ -431,9 +431,10 @@
"recipient_postal_code": "Código postal",
"recipient_country": "País",
"subtotal_amount": "Subtotal",
- "discount_amount": "Descuentos",
+ "discount_amount": "Dtos.",
+ "taxable_amount": "Base imp.",
"taxes_amount": "Impuestos",
- "total_amount": "Importe total"
+ "total_amount": "Total"
}
},
"archived": {
diff --git a/modules/customer-invoices/src/web/proformas/list/ui/blocks/proformas-grid/use-proforma-grid-columns.tsx b/modules/customer-invoices/src/web/proformas/list/ui/blocks/proformas-grid/use-proforma-grid-columns.tsx
index e1e7f7c5..6981c936 100644
--- a/modules/customer-invoices/src/web/proformas/list/ui/blocks/proformas-grid/use-proforma-grid-columns.tsx
+++ b/modules/customer-invoices/src/web/proformas/list/ui/blocks/proformas-grid/use-proforma-grid-columns.tsx
@@ -132,6 +132,7 @@ export function useProformasGridColumns(
/>
),
meta: {
+ title: t("pages.proformas.list.columns.proforma_reference"),
cellClassName: "font-mono text-sm font-medium",
},
},
@@ -149,6 +150,7 @@ export function useProformasGridColumns(
),
cell: ({ row }) => DateHelper.format(row.original.proformaDate),
meta: {
+ title: t("pages.proformas.list.columns.proforma_date"),
cellClassName: "text-muted-foreground",
},
},
@@ -170,6 +172,9 @@ export function useProformasGridColumns(
);
},
+ meta: {
+ title: t("pages.proformas.list.columns.status"),
+ },
},
// Cliente
@@ -194,16 +199,20 @@ export function useProformasGridColumns(
);
},
meta: {
+ title: t("pages.proformas.list.columns.recipient"),
cellClassName: "max-w-128",
},
},
{
id: "series",
accessorKey: "series",
- header: "Serie",
+ header: t("pages.proformas.list.columns.series"),
enableHiding: true,
enableSorting: false,
cell: ({ row }) => row.original.series || ,
+ meta: {
+ title: t("pages.proformas.list.columns.series"),
+ },
},
{
id: "reference",
@@ -223,6 +232,7 @@ export function useProformasGridColumns(
),
meta: {
+ title: t("pages.proformas.list.columns.reference"),
cellClassName: "hidden lg:table-cell max-w-16 text-muted-foreground",
headerClassName: "hidden lg:table-cell",
},
@@ -240,6 +250,7 @@ export function useProformasGridColumns(
/>
),
meta: {
+ title: t("pages.proformas.list.columns.subtotal_amount"),
cellClassName: "hidden 2xl:table-cell text-right tabular-nums font-medium",
headerClassName: "hidden 2xl:table-cell text-right",
},
@@ -247,9 +258,10 @@ export function useProformasGridColumns(
{
id: "totalDiscountAmountFmt",
accessorKey: "totalDiscountAmountFmt",
- header: "Dtos",
+ header: t("pages.proformas.list.columns.discount_amount"),
enableSorting: false,
meta: {
+ title: t("pages.proformas.list.columns.discount_amount"),
cellClassName:
"hidden 2xl:table-cell text-right tabular-nums font-medium text-muted-foreground",
headerClassName: "hidden 2xl:table-cell text-right",
@@ -258,9 +270,10 @@ export function useProformasGridColumns(
{
id: "taxableAmountFmt",
accessorKey: "taxableAmountFmt",
- header: "Base Imp.",
+ header: t("pages.proformas.list.columns.taxable_amount"),
enableSorting: false,
meta: {
+ title: t("pages.proformas.list.columns.taxable_amount"),
cellClassName: "hidden 2xl:table-cell text-right tabular-nums font-medium",
headerClassName: "hidden 2xl:table-cell text-right",
},
@@ -268,9 +281,10 @@ export function useProformasGridColumns(
{
id: "taxesAmountFmt",
accessorKey: "taxesAmountFmt",
- header: "Impuestos",
+ header: t("pages.proformas.list.columns.taxes_amount"),
enableSorting: false,
meta: {
+ title: t("pages.proformas.list.columns.taxes_amount"),
cellClassName: "hidden 2xl:table-cell text-right tabular-nums font-medium",
headerClassName: "hidden 2xl:table-cell text-right",
},
@@ -278,9 +292,10 @@ export function useProformasGridColumns(
{
id: "totalAmountFmt",
accessorKey: "totalAmountFmt",
- header: "Total",
+ header: t("pages.proformas.list.columns.total_amount"),
enableSorting: false,
meta: {
+ title: t("pages.proformas.list.columns.total_amount"),
cellClassName: "hidden xl:table-cell text-right tabular-nums font-semibold",
headerClassName: "hidden xl:table-cell text-right",
},
diff --git a/packages/rdx-ui/src/components/datatable/data-table-view-options.tsx b/packages/rdx-ui/src/components/datatable/data-table-view-options.tsx
index 55c3a13b..a0091c40 100644
--- a/packages/rdx-ui/src/components/datatable/data-table-view-options.tsx
+++ b/packages/rdx-ui/src/components/datatable/data-table-view-options.tsx
@@ -60,16 +60,15 @@ export function DataTableViewOptions({ table }: { table: Table })
}
const getColumnLabel = (column: Column): string => {
- let label = String(column.id);
+ const meta = column.columnDef.meta as { title?: string } | undefined;
+ let label = meta?.title ?? String(column.id);
const h = column.columnDef.header;
// header como string literal
- if (typeof h === "string") label = h;
+ if (typeof h === "string") label = meta?.title ?? h;
- // header función → intentar obtener title si lo usas en tus componentes
+ // Para cabeceras dinámicas, usamos un título explícito para no exponer ids técnicos.
if (typeof h === "function") {
- // tu DataTableColumnHeader recibe `title` como prop → está en column.columnDef.meta
- const meta = column.columnDef.meta as { title?: string } | undefined;
label = meta?.title ?? column.id;
}
return label;