Diseño de un AuditoriaController con un patrón para añadir endpoints de historial para diferentes entidades.
Implementación de la lógica de servicio y repositorio para obtener datos de las tablas _H para:
Usuarios (gral_Usuarios_H)
Pagos de Distribuidores (cue_PagosDistribuidor_H)
Notas de Crédito/Débito (cue_CreditosDebitos_H)
Entradas/Salidas de Distribuidores (dist_EntradasSalidas_H)
Entradas/Salidas de Canillitas (dist_EntradasSalidasCanillas_H)
Novedades de Canillitas (dist_dtNovedadesCanillas_H)
Ajustes Manuales de Saldo (cue_SaldoAjustesHistorial)
Tipos de Pago (cue_dtTipopago_H)
Canillitas (Maestro) (dist_dtCanillas_H)
Distribuidores (Maestro) (dist_dtDistribuidores_H)
Empresas (Maestro) (dist_dtEmpresas_H)
DTOs específicos para cada tipo de historial, incluyendo NombreUsuarioModifico.
Frontend:
Servicio auditoriaService.ts con métodos para llamar a cada endpoint de historial.
Página AuditoriaGeneralPage.tsx con:
Selector de "Tipo de Entidad a Auditar".
Filtros comunes (Fechas, Usuario Modificador, Tipo de Modificación, ID Entidad).
Un DataGrid que muestra las columnas dinámicamente según el tipo de entidad seleccionada.
Lógica para cargar los datos correspondientes.
DTOs de historial en TypeScript.
Actualizaciones en AppRoutes.tsx y MainLayout.tsx para la nueva sección de Auditoría (restringida a SuperAdmin).
This commit is contained in:
2025-06-09 19:37:07 -03:00
parent 35e24ab7d2
commit 437b1e8864
98 changed files with 3683 additions and 325 deletions

View File

@@ -0,0 +1,21 @@
export interface CanillaHistorialDto {
id_Canilla: number;
legajo?: number | null;
nomApe: string;
parada?: string | null;
id_Zona: number;
// nombreZona?: string;
accionista: boolean;
obs?: string | null;
empresa: number; // id de la empresa
// nombreEmpresa?: string;
baja: boolean;
fechaBaja?: string | null; // "yyyy-MM-ddTHH:mm:ss" o solo fecha
id_Usuario: number;
nombreUsuarioModifico: string;
fechaMod: string;
tipoMod: string;
id?: string; // Para DataGrid
}

View File

@@ -0,0 +1,22 @@
export interface DistribuidorHistorialDto {
id_Distribuidor: number;
nombre: string;
contacto?: string | null;
nroDoc: string;
id_Zona?: number | null;
// nombreZona?: string;
calle?: string | null;
numero?: string | null;
piso?: string | null;
depto?: string | null;
telefono?: string | null;
email?: string | null;
localidad?: string | null;
id_Usuario: number;
nombreUsuarioModifico: string;
fechaMod: string;
tipoMod: string;
id?: string; // Para DataGrid
}

View File

@@ -0,0 +1,12 @@
export interface EmpresaHistorialDto {
id_Empresa: number;
nombre: string;
detalle?: string | null;
id_Usuario: number;
nombreUsuarioModifico: string;
fechaMod: string;
tipoMod: string;
id?: string; // Para DataGrid
}

View File

@@ -0,0 +1,21 @@
export interface EntradaSalidaCanillaHistorialDto {
id_Parte: number;
id_Publicacion: number;
// nombrePublicacion?: string;
id_Canilla: number;
// nombreCanilla?: string;
fecha: string; // Fecha original del movimiento
cantSalida: number;
cantEntrada: number;
id_Precio: number;
id_Recargo: number;
id_PorcMon: number;
observacion?: string | null;
id_Usuario: number;
nombreUsuarioModifico: string;
fechaMod: string; // Fecha de la modificación
tipoMod: string;
id?: string; // Para DataGrid
}

View File

@@ -0,0 +1,22 @@
export interface EntradaSalidaDistHistorialDto {
id_Parte: number;
id_Publicacion: number;
// nombrePublicacion?: string;
id_Distribuidor: number;
// nombreDistribuidor?: string;
fecha: string; // Fecha original del movimiento
tipoMovimiento: string;
cantidad: number;
remito: number;
observacion?: string | null;
id_Precio: number;
id_Recargo: number;
id_Porcentaje: number;
id_Usuario: number;
nombreUsuarioModifico: string;
fechaMod: string; // Fecha de la modificación
tipoMod: string;
id?: string; // Para DataGrid
}

View File

@@ -0,0 +1,20 @@
export interface NotaCreditoDebitoHistorialDto {
id_Nota: number;
destino: string;
id_Destino: number;
// nombreDestinatario?: string; // Opcional
referencia?: string | null;
tipo: string;
fecha: string; // Fecha original de la nota
monto: number;
observaciones?: string | null;
id_Empresa: number;
// nombreEmpresa?: string; // Opcional
id_Usuario: number;
nombreUsuarioModifico: string;
fechaMod: string; // Fecha de la modificación
tipoMod: string;
id?: string; // Para DataGrid
}

View File

@@ -0,0 +1,14 @@
export interface NovedadCanillaHistorialDto {
id_Novedad: number;
id_Canilla: number;
// nombreCanilla?: string;
fecha: string; // Fecha original
detalle?: string | null;
id_Usuario: number;
nombreUsuarioModifico: string;
fechaMod: string; // Fecha de auditoría
tipoMod: string;
id?: string; // Para DataGrid
}

View File

@@ -0,0 +1,19 @@
export interface PagoDistribuidorHistorialDto {
id_Pago: number; // ID del pago original
id_Distribuidor: number;
fecha: string; // Fecha del pago original (YYYY-MM-DDTHH:mm:ss)
tipoMovimiento: string;
recibo: number;
monto: number;
id_TipoPago: number;
detalle?: string | null;
id_Empresa: number;
// Campos de auditoría
id_Usuario: number;
nombreUsuarioModifico: string;
fechaMod: string; // Fecha de la modificación (YYYY-MM-DDTHH:mm:ss)
tipoMod: string;
id?: string; // Para el DataGrid, se generará en el frontend
}

View File

@@ -0,0 +1,19 @@
export interface SaldoAjusteHistorialDto {
idSaldoAjusteHist: number;
destino: string;
id_Destino: number;
// nombreDestinatario?: string;
id_Empresa: number;
// nombreEmpresa?: string;
montoAjuste: number;
saldoAnterior: number;
saldoNuevo: number;
justificacion: string;
fechaAjuste: string; // Es la FechaMod, pero la llamamos FechaAjuste para claridad
id_UsuarioAjuste: number; // Corresponde a Id_Usuario en el DTO de C#
nombreUsuarioModifico: string;
// tipoMod?: string; // Podrías añadirlo fijo como "Ajuste Manual" en el frontend si es necesario
id?: string; // Para DataGrid
}

View File

@@ -0,0 +1,12 @@
export interface TipoPagoHistorialDto {
id_TipoPago: number;
nombre: string; // Nombre del TipoPago en ese momento
detalle?: string | null; // Detalle en ese momento
id_Usuario: number;
nombreUsuarioModifico: string;
fechaMod: string;
tipoMod: string;
id?: string; // Para DataGrid
}

View File

@@ -0,0 +1,9 @@
export interface CambioParadaDto {
idRegistro: number;
idCanilla: number;
nombreCanilla: string;
parada: string;
vigenciaD: string; // "yyyy-MM-dd"
vigenciaH?: string | null; // "yyyy-MM-dd"
esActual: boolean; // Calculada en el backend o frontend
}

View File

@@ -0,0 +1,5 @@
export interface CreateCambioParadaDto {
// idCanilla se pasa por la ruta
parada: string;
vigenciaD: string; // "yyyy-MM-dd"
}

View File

@@ -0,0 +1,3 @@
export interface UpdateCambioParadaDto {
vigenciaH: string; // "yyyy-MM-dd"
}