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,13 @@
using System;
namespace GestionIntegral.Api.Models.Distribucion
{
public class CambioParadaCanilla
{
public int IdRegistro { get; set; } // Id_Registro (PK, Identity)
public int IdCanilla { get; set; } // Id_Canilla (FK)
public string Parada { get; set; } = string.Empty; // Parada (nueva dirección)
public DateTime VigenciaD { get; set; } // VigenciaD (fecha desde que aplica la nueva parada)
public DateTime? VigenciaH { get; set; } // VigenciaH (fecha hasta que aplicó esta parada, NULL si es la actual)
}
}

View File

@@ -0,0 +1,16 @@
using System;
namespace GestionIntegral.Api.Models.Distribucion
{
public class CambioParadaCanillaHistorial
{
public int Id_Registro { get; set; } // FK al registro original
public int Id_Canilla { get; set; }
public string Parada { get; set; } = string.Empty;
public DateTime VigenciaD { get; set; }
public DateTime? VigenciaH { get; set; } // Nullable
public int Id_Usuario { get; set; }
public DateTime FechaMod { get; set; }
public string TipoMod { get; set; } = string.Empty;
}
}

View File

@@ -1,19 +1,19 @@
using System;
namespace GestionIntegral.Api.Models.Distribucion
{
public class CanillaHistorico
public class CanillaHistorico // Corresponde a dist_dtCanillas_H
{
public int IdCanilla { get; set; }
public int Id_Canilla { get; set; }
public int? Legajo { get; set; }
public string NomApe { get; set; } = string.Empty;
public string? Parada { get; set; }
public int IdZona { get; set; }
public int Id_Zona { get; set; }
public bool Accionista { get; set; }
public string? Obs { get; set; }
public int Empresa { get; set; }
public bool Baja { get; set; }
public DateTime? FechaBaja { get; set; }
// Campos de Auditoría
public int Id_Usuario { get; set; }
public DateTime FechaMod { get; set; }
public string TipoMod { get; set; } = string.Empty;

View File

@@ -1,12 +1,14 @@
using System;
namespace GestionIntegral.Api.Models.Distribucion
{
public class DistribuidorHistorico
public class DistribuidorHistorico // Corresponde a dist_dtDistribuidores_H
{
public int IdDistribuidor { get; set; } // FK
public int Id_Distribuidor { get; set; }
public string Nombre { get; set; } = string.Empty;
public string? Contacto { get; set; }
public string NroDoc { get; set; } = string.Empty;
public int? IdZona { get; set; }
public int? Id_Zona { get; set; }
public string? Calle { get; set; }
public string? Numero { get; set; }
public string? Piso { get; set; }
@@ -14,8 +16,6 @@ namespace GestionIntegral.Api.Models.Distribucion
public string? Telefono { get; set; }
public string? Email { get; set; }
public string? Localidad { get; set; }
// Campos de Auditoría
public int Id_Usuario { get; set; }
public DateTime FechaMod { get; set; }
public string TipoMod { get; set; } = string.Empty;

View File

@@ -1,11 +1,13 @@
namespace GestionIntegral.Api.Models.Empresas
using System;
namespace GestionIntegral.Api.Models.Distribucion
{
public class EmpresaHistorico
public class EmpresaHistorico // Corresponde a dist_dtEmpresas_H
{
public int IdEmpresa { get; set; }
public int Id_Empresa { get; set; } // ID de la Empresa original
public string Nombre { get; set; } = string.Empty;
public string? Detalle { get; set; }
public int IdUsuario { get; set; }
public int Id_Usuario { get; set; }
public DateTime FechaMod { get; set; }
public string TipoMod { get; set; } = string.Empty;
}

View File

@@ -0,0 +1,23 @@
using System;
namespace GestionIntegral.Api.Models.Distribucion // Asegúrate que este namespace sea el correcto
{
public class EntradaSalidaCanillaHistorico
{
public int Id_Parte { get; set; }
public int Id_Publicacion { get; set; }
public int Id_Canilla { get; set; }
public DateTime Fecha { get; set; }
public int CantSalida { get; set; }
public int CantEntrada { get; set; }
public int Id_Precio { get; set; }
public int Id_Recargo { get; set; }
public int Id_PorcMon { get; set; }
public string? Observacion { get; set; }
public int Id_Usuario { get; set; }
public DateTime FechaMod { get; set; }
public string TipoMod { get; set; } = string.Empty;
// El campo Liquidado, FechaLiquidado, UserLiq no están en dist_EntradasSalidasCanillas_H según tu script.
// Si los necesitas auditar, deberías añadirlos a la tabla _H y al modelo.
}
}

View File

@@ -0,0 +1,20 @@
using System;
namespace GestionIntegral.Api.Models.Distribucion // Asegúrate que el namespace sea el correcto
{
public class NovedadCanillaHistorico // Corresponde a la tabla dist_dtNovedadesCanillas_H
{
// Columnas de la tabla dist_dtNovedadesCanillas_H
// No hay una PK propia en la tabla _H, se referencia por Id_Novedad de la tabla principal
public int Id_Novedad { get; set; }
public int Id_Canilla { get; set; }
public DateTime Fecha { get; set; } // Fecha original de la novedad
public string? Detalle { get; set; }
// Columnas de auditoría estándar
public int Id_Usuario { get; set; }
public DateTime FechaMod { get; set; }
public string TipoMod { get; set; } = string.Empty;
}
}