Finalización de Reportes y arreglos varios de controles y comportamientos...
This commit is contained in:
@@ -83,7 +83,10 @@ namespace GestionIntegral.Api.Controllers.Distribucion
|
||||
public async Task<IActionResult> UpdateMovimiento(int idParte, [FromBody] UpdateEntradaSalidaCanillaDto updateDto)
|
||||
{
|
||||
if (!TienePermiso(PermisoModificarMovimiento)) return Forbid();
|
||||
if (!ModelState.IsValid) return BadRequest(ModelState);
|
||||
|
||||
// Esta línea es la que dispara la validación del modelo 'updateDto'
|
||||
if (!ModelState.IsValid) return BadRequest(ModelState);
|
||||
|
||||
var userId = GetCurrentUserId();
|
||||
if (userId == null) return Unauthorized();
|
||||
|
||||
@@ -91,7 +94,7 @@ namespace GestionIntegral.Api.Controllers.Distribucion
|
||||
if (!exito)
|
||||
{
|
||||
if (error == "Movimiento no encontrado." || error == "No se puede modificar un movimiento ya liquidado.")
|
||||
return NotFound(new { message = error }); // Podría ser 404 o 400 dependiendo del error
|
||||
return NotFound(new { message = error });
|
||||
return BadRequest(new { message = error });
|
||||
}
|
||||
return NoContent();
|
||||
|
||||
@@ -117,5 +117,65 @@ namespace GestionIntegral.Api.Controllers.Distribucion
|
||||
}
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
// Endpoint para obtener las configuraciones de días para una publicación
|
||||
[HttpGet("{idPublicacion:int}/dias-semana")]
|
||||
[ProducesResponseType(typeof(IEnumerable<PublicacionDiaSemanaDto>), StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status403Forbidden)]
|
||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||
public async Task<IActionResult> GetConfiguracionDiasPublicacion(int idPublicacion)
|
||||
{
|
||||
// Podrías usar el mismo permiso de ver publicaciones o uno específico
|
||||
if (!TienePermiso(PermisoVer)) return Forbid();
|
||||
|
||||
var publicacion = await _publicacionService.ObtenerPorIdAsync(idPublicacion);
|
||||
if (publicacion == null) return NotFound(new { message = "Publicación no encontrada." });
|
||||
|
||||
var configs = await _publicacionService.ObtenerConfiguracionDiasAsync(idPublicacion);
|
||||
return Ok(configs);
|
||||
}
|
||||
|
||||
// Endpoint para actualizar las configuraciones de días para una publicación
|
||||
[HttpPut("{idPublicacion:int}/dias-semana")]
|
||||
[ProducesResponseType(StatusCodes.Status204NoContent)]
|
||||
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
||||
[ProducesResponseType(StatusCodes.Status403Forbidden)]
|
||||
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||
public async Task<IActionResult> UpdateConfiguracionDiasPublicacion(int idPublicacion, [FromBody] UpdatePublicacionDiasSemanaRequestDto requestDto)
|
||||
{
|
||||
// Podrías usar el mismo permiso de modificar publicaciones o uno específico
|
||||
if (!TienePermiso(PermisoModificar)) return Forbid();
|
||||
if (!ModelState.IsValid) return BadRequest(ModelState);
|
||||
|
||||
var userId = GetCurrentUserId();
|
||||
if (userId == null) return Unauthorized();
|
||||
|
||||
var (exito, error) = await _publicacionService.ActualizarConfiguracionDiasAsync(idPublicacion, requestDto, userId.Value);
|
||||
if (!exito)
|
||||
{
|
||||
if (error == "Publicación no encontrada.") return NotFound(new { message = error });
|
||||
return BadRequest(new { message = error });
|
||||
}
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
// Endpoint para obtener publicaciones por día de la semana (para el modal de canillitas)
|
||||
[HttpGet("por-dia-semana")]
|
||||
[ProducesResponseType(typeof(IEnumerable<PublicacionDto>), StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
||||
[ProducesResponseType(StatusCodes.Status403Forbidden)]
|
||||
public async Task<IActionResult> GetPublicacionesPorDia([FromQuery] byte dia) // dia: 0=Domingo, 1=Lunes...
|
||||
{
|
||||
// Generalmente, este endpoint no necesitaría un permiso estricto si solo devuelve datos públicos
|
||||
// pero puedes añadirlo si es necesario.
|
||||
// if (!TienePermiso(PermisoVer)) return Forbid();
|
||||
|
||||
if (dia > 6) // byte no puede ser negativo
|
||||
{
|
||||
return BadRequest(new { message = "El día de la semana debe estar entre 0 (Domingo) y 6 (Sábado)." });
|
||||
}
|
||||
var publicaciones = await _publicacionService.ObtenerPublicacionesPorDiaSemanaAsync(dia);
|
||||
return Ok(publicaciones);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user