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,39 @@
import apiClient from '../apiClient';
import type { CambioParadaDto } from '../../models/dtos/Distribucion/CambioParadaDto';
import type { CreateCambioParadaDto } from '../../models/dtos/Distribucion/CreateCambioParadaDto';
import type { UpdateCambioParadaDto } from '../../models/dtos/Distribucion/UpdateCambioParadaDto';
// Obtiene todos los registros de cambio de parada para un canillita.
const getParadasPorCanilla = async (idCanilla: number): Promise<CambioParadaDto[]> => {
const response = await apiClient.get<CambioParadaDto[]>(`/canillas/${idCanilla}/paradas`);
return response.data;
};
// Crea un nuevo registro de cambio de parada (y cierra el anterior si aplica en backend).
const createParada = async (idCanilla: number, data: CreateCambioParadaDto): Promise<CambioParadaDto> => {
const response = await apiClient.post<CambioParadaDto>(`/canillas/${idCanilla}/paradas`, data);
return response.data;
};
// Cierra la vigencia de una parada específica (actualiza VigenciaH).
// Nota: La ruta podría ser /paradas/{idRegistroParada}/cerrar si el idRegistroParada es globalmente único.
// O /canillas/{idCanilla}/paradas/{idRegistroParada}/cerrar si necesitas el contexto del canillita.
// Asumiré la ruta que usaste en el controlador: /api/paradas/{idRegistroParada}/cerrar
const cerrarParada = async (idRegistroParada: number, data: UpdateCambioParadaDto): Promise<void> => {
await apiClient.put(`/paradas/${idRegistroParada}/cerrar`, data);
};
// Elimina un registro de cambio de parada (si se permite esta acción).
const deleteParada = async (idRegistroParada: number): Promise<void> => {
await apiClient.delete(`/paradas/${idRegistroParada}`);
};
const cambioParadaService = {
getParadasPorCanilla,
createParada,
cerrarParada,
deleteParada,
};
export default cambioParadaService;