feat: Implementación de Secciones, Recargos, Porc. Pago Dist. y backend E/S Dist.
Backend API:
- Recargos por Zona (`dist_RecargoZona`):
  - CRUD completo (Modelos, DTOs, Repositorio, Servicio, Controlador).
  - Endpoints anidados bajo `/publicaciones/{idPublicacion}/recargos`.
  - Lógica de negocio para vigencias (cierre/reapertura de períodos).
  - Auditoría en `dist_RecargoZona_H`.
- Porcentajes de Pago Distribuidores (`dist_PorcPago`):
  - CRUD completo (Modelos, DTOs, Repositorio, Servicio, Controlador).
  - Endpoints anidados bajo `/publicaciones/{idPublicacion}/porcentajespago`.
  - Lógica de negocio para vigencias.
  - Auditoría en `dist_PorcPago_H`.
- Porcentajes/Montos Pago Canillitas (`dist_PorcMonPagoCanilla`):
  - CRUD completo (Modelos, DTOs, Repositorio, Servicio, Controlador).
  - Endpoints anidados bajo `/publicaciones/{idPublicacion}/porcentajesmoncanilla`.
  - Lógica de negocio para vigencias.
  - Auditoría en `dist_PorcMonPagoCanilla_H`.
- Secciones de Publicación (`dist_dtPubliSecciones`):
  - CRUD completo (Modelos, DTOs, Repositorio, Servicio, Controlador).
  - Endpoints anidados bajo `/publicaciones/{idPublicacion}/secciones`.
  - Auditoría en `dist_dtPubliSecciones_H`.
- Entradas/Salidas Distribuidores (`dist_EntradasSalidas`):
  - Implementado backend (Modelos, DTOs, Repositorio, Servicio, Controlador).
  - Lógica para determinar precios/recargos/porcentajes aplicables.
  - Cálculo de monto y afectación de saldos de distribuidores en `cue_Saldos`.
  - Auditoría en `dist_EntradasSalidas_H`.
- Correcciones de Mapeo Dapper:
  - Aplicados alias explícitos en repositorios de RecargoZona, PorcPago, PorcMonCanilla, PubliSeccion,
    Canilla, Distribuidor y Precio para asegurar mapeo correcto de IDs y columnas.
Frontend React:
- Recargos por Zona:
  - `recargoZonaService.ts`.
  - `RecargoZonaFormModal.tsx` para crear/editar períodos de recargos.
  - `GestionarRecargosPublicacionPage.tsx` para listar y gestionar recargos por publicación.
- Porcentajes de Pago Distribuidores:
  - `porcPagoService.ts`.
  - `PorcPagoFormModal.tsx`.
  - `GestionarPorcentajesPagoPage.tsx`.
- Porcentajes/Montos Pago Canillitas:
  - `porcMonCanillaService.ts`.
  - `PorcMonCanillaFormModal.tsx`.
  - `GestionarPorcMonCanillaPage.tsx`.
- Secciones de Publicación:
  - `publiSeccionService.ts`.
  - `PubliSeccionFormModal.tsx`.
  - `GestionarSeccionesPublicacionPage.tsx`.
- Navegación:
  - Actualizadas rutas y menús para acceder a la gestión de recargos, porcentajes (dist. y canillita) y secciones desde la vista de una publicación.
- Layout:
  - Uso consistente de `Box` con Flexbox en lugar de `Grid` en nuevos modales y páginas para evitar errores de tipo.
			
			
This commit is contained in:
		| @@ -0,0 +1,9 @@ | ||||
| export interface CreateEntradaSalidaDistDto { | ||||
|   idPublicacion: number; | ||||
|   idDistribuidor: number; | ||||
|   fecha: string; // "yyyy-MM-dd" | ||||
|   tipoMovimiento: 'Salida' | 'Entrada'; | ||||
|   cantidad: number; | ||||
|   remito: number; | ||||
|   observacion?: string | null; | ||||
| } | ||||
| @@ -0,0 +1,7 @@ | ||||
| export interface CreatePorcMonCanillaDto { | ||||
|   idPublicacion: number; | ||||
|   idCanilla: number; | ||||
|   vigenciaD: string; // "yyyy-MM-dd" | ||||
|   porcMon: number; | ||||
|   esPorcentaje: boolean; | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| export interface CreatePorcPagoDto { | ||||
|   idPublicacion: number; | ||||
|   idDistribuidor: number; | ||||
|   vigenciaD: string; // "yyyy-MM-dd" | ||||
|   porcentaje: number; | ||||
| } | ||||
| @@ -0,0 +1,5 @@ | ||||
| export interface CreatePubliSeccionDto { | ||||
|   idPublicacion: number; | ||||
|   nombre: string; | ||||
|   estado?: boolean; // Default true en backend | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| export interface CreateRecargoZonaDto { | ||||
|   idPublicacion: number; | ||||
|   idZona: number; | ||||
|   vigenciaD: string; // "yyyy-MM-dd" | ||||
|   valor: number; | ||||
| } | ||||
| @@ -0,0 +1,7 @@ | ||||
| export interface CreateSalidaOtroDestinoDto { | ||||
|   idPublicacion: number; | ||||
|   idDestino: number; | ||||
|   fecha: string; // "yyyy-MM-dd" | ||||
|   cantidad: number; | ||||
|   observacion?: string | null; | ||||
| } | ||||
| @@ -0,0 +1,15 @@ | ||||
| export interface EntradaSalidaDistDto { | ||||
|   idParte: number; | ||||
|   idPublicacion: number; | ||||
|   nombrePublicacion: string; | ||||
|   nombreEmpresaPublicacion: string; | ||||
|   idEmpresaPublicacion: number; | ||||
|   idDistribuidor: number; | ||||
|   nombreDistribuidor: string; | ||||
|   fecha: string; // "yyyy-MM-dd" | ||||
|   tipoMovimiento: 'Salida' | 'Entrada'; | ||||
|   cantidad: number; | ||||
|   remito: number; | ||||
|   observacion?: string | null; | ||||
|   montoCalculado: number; | ||||
| } | ||||
							
								
								
									
										10
									
								
								Frontend/src/models/dtos/Distribucion/PorcMonCanillaDto.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								Frontend/src/models/dtos/Distribucion/PorcMonCanillaDto.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| export interface PorcMonCanillaDto { | ||||
|   idPorcMon: number; | ||||
|   idPublicacion: number; | ||||
|   idCanilla: number; | ||||
|   nomApeCanilla: string; | ||||
|   vigenciaD: string; // "yyyy-MM-dd" | ||||
|   vigenciaH?: string | null; // "yyyy-MM-dd" | ||||
|   porcMon: number; | ||||
|   esPorcentaje: boolean; | ||||
| } | ||||
							
								
								
									
										9
									
								
								Frontend/src/models/dtos/Distribucion/PorcPagoDto.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								Frontend/src/models/dtos/Distribucion/PorcPagoDto.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| export interface PorcPagoDto { | ||||
|   idPorcentaje: number; | ||||
|   idPublicacion: number; | ||||
|   idDistribuidor: number; | ||||
|   nombreDistribuidor: string; | ||||
|   vigenciaD: string; // "yyyy-MM-dd" | ||||
|   vigenciaH?: string | null; // "yyyy-MM-dd" | ||||
|   porcentaje: number; | ||||
| } | ||||
							
								
								
									
										6
									
								
								Frontend/src/models/dtos/Distribucion/PubliSeccionDto.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								Frontend/src/models/dtos/Distribucion/PubliSeccionDto.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| export interface PubliSeccionDto { | ||||
|   idSeccion: number; | ||||
|   idPublicacion: number; | ||||
|   nombre: string; | ||||
|   estado: boolean; // true = activa, false = inactiva | ||||
| } | ||||
							
								
								
									
										9
									
								
								Frontend/src/models/dtos/Distribucion/RecargoZonaDto.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								Frontend/src/models/dtos/Distribucion/RecargoZonaDto.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| export interface RecargoZonaDto { | ||||
|   idRecargo: number; | ||||
|   idPublicacion: number; | ||||
|   idZona: number; | ||||
|   nombreZona: string; | ||||
|   vigenciaD: string; // "yyyy-MM-dd" | ||||
|   vigenciaH?: string | null; // "yyyy-MM-dd" | ||||
|   valor: number; | ||||
| } | ||||
| @@ -0,0 +1,10 @@ | ||||
| export interface SalidaOtroDestinoDto { | ||||
|   idParte: number; | ||||
|   idPublicacion: number; | ||||
|   nombrePublicacion: string; | ||||
|   idDestino: number; | ||||
|   nombreDestino: string; | ||||
|   fecha: string; // "yyyy-MM-dd" | ||||
|   cantidad: number; | ||||
|   observacion?: string | null; | ||||
| } | ||||
| @@ -0,0 +1,4 @@ | ||||
| export interface UpdateEntradaSalidaDistDto { | ||||
|   cantidad: number; | ||||
|   observacion?: string | null; | ||||
| } | ||||
| @@ -0,0 +1,5 @@ | ||||
| export interface UpdatePorcMonCanillaDto { | ||||
|   porcMon: number; | ||||
|   esPorcentaje: boolean; | ||||
|   vigenciaH?: string | null; // "yyyy-MM-dd" | ||||
| } | ||||
| @@ -0,0 +1,4 @@ | ||||
| export interface UpdatePorcPagoDto { | ||||
|   porcentaje: number; | ||||
|   vigenciaH?: string | null; // "yyyy-MM-dd" | ||||
| } | ||||
| @@ -0,0 +1,4 @@ | ||||
| export interface UpdatePubliSeccionDto { | ||||
|   nombre: string; | ||||
|   estado: boolean; | ||||
| } | ||||
| @@ -0,0 +1,4 @@ | ||||
| export interface UpdateRecargoZonaDto { | ||||
|   valor: number; | ||||
|   vigenciaH?: string | null; // "yyyy-MM-dd" | ||||
| } | ||||
| @@ -0,0 +1,4 @@ | ||||
| export interface UpdateSalidaOtroDestinoDto { | ||||
|   cantidad: number; | ||||
|   observacion?: string | null; | ||||
| } | ||||
| @@ -0,0 +1,7 @@ | ||||
| export interface CambiarEstadoBobinaDto { | ||||
|   nuevoEstadoId: number; | ||||
|   idPublicacion?: number | null; | ||||
|   idSeccion?: number | null; | ||||
|   obs?: string | null; | ||||
|   fechaCambioEstado: string; // "yyyy-MM-dd" | ||||
| } | ||||
| @@ -0,0 +1,8 @@ | ||||
| export interface CreateStockBobinaDto { | ||||
|   idTipoBobina: number; | ||||
|   nroBobina: string; | ||||
|   peso: number; | ||||
|   idPlanta: number; | ||||
|   remito: string; | ||||
|   fechaRemito: string; // "yyyy-MM-dd" | ||||
| } | ||||
| @@ -0,0 +1,9 @@ | ||||
| import type { DetalleSeccionTiradaDto } from "./DetalleSeccionTiradaDto"; | ||||
|  | ||||
| export interface CreateTiradaRequestDto { | ||||
|   idPublicacion: number; | ||||
|   fecha: string; // "yyyy-MM-dd" | ||||
|   idPlanta: number; | ||||
|   ejemplares: number; | ||||
|   secciones: DetalleSeccionTiradaDto[]; | ||||
| } | ||||
| @@ -0,0 +1,4 @@ | ||||
| export interface DetalleSeccionTiradaDto { | ||||
|   idSeccion: number; | ||||
|   cantPag: number; | ||||
| } | ||||
							
								
								
									
										19
									
								
								Frontend/src/models/dtos/Impresion/StockBobinaDto.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								Frontend/src/models/dtos/Impresion/StockBobinaDto.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| export interface StockBobinaDto { | ||||
|   idBobina: number; | ||||
|   idTipoBobina: number; | ||||
|   nombreTipoBobina: string; | ||||
|   nroBobina: string; | ||||
|   peso: number; | ||||
|   idPlanta: number; | ||||
|   nombrePlanta: string; | ||||
|   idEstadoBobina: number; | ||||
|   nombreEstadoBobina: string; | ||||
|   remito: string; | ||||
|   fechaRemito: string; // "yyyy-MM-dd" | ||||
|   fechaEstado?: string | null; // "yyyy-MM-dd" | ||||
|   idPublicacion?: number | null; | ||||
|   nombrePublicacion?: string | null; | ||||
|   idSeccion?: number | null; | ||||
|   nombreSeccion?: string | null; | ||||
|   obs?: string | null; | ||||
| } | ||||
							
								
								
									
										17
									
								
								Frontend/src/models/dtos/Impresion/TiradaDto.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								Frontend/src/models/dtos/Impresion/TiradaDto.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| export interface DetalleSeccionEnListadoDto { | ||||
|   idSeccion: number; | ||||
|   nombreSeccion: string; | ||||
|   cantPag: number; | ||||
|   idRegPublicacionSeccion: number; | ||||
| } | ||||
| export interface TiradaDto { | ||||
|   idRegistroTirada: number; | ||||
|   idPublicacion: number; | ||||
|   nombrePublicacion: string; | ||||
|   fecha: string; // "yyyy-MM-dd" | ||||
|   idPlanta: number; | ||||
|   nombrePlanta: string; | ||||
|   ejemplares: number; | ||||
|   seccionesImpresas: DetalleSeccionEnListadoDto[]; | ||||
|   totalPaginasSumadas: number; | ||||
| } | ||||
| @@ -0,0 +1,8 @@ | ||||
| export interface UpdateStockBobinaDto { | ||||
|   idTipoBobina: number; | ||||
|   nroBobina: string; | ||||
|   peso: number; | ||||
|   idPlanta: number; | ||||
|   remito: string; | ||||
|   fechaRemito: string; // "yyyy-MM-dd" | ||||
| } | ||||
		Reference in New Issue
	
	Block a user