Finalización de Reportes y arreglos varios de controles y comportamientos...

This commit is contained in:
2025-06-03 13:45:20 -03:00
parent 99532b03f1
commit 062cc05fd0
67 changed files with 4523 additions and 993 deletions

View File

@@ -222,10 +222,10 @@ namespace GestionIntegral.Api.Services.Distribucion
{
if (connection is System.Data.Common.DbConnection dbConnOpen && connection.State == ConnectionState.Closed) await dbConnOpen.OpenAsync();
else if (connection.State == ConnectionState.Closed) connection.Open();
transaction = connection.BeginTransaction();
var esExistente = await _esCanillaRepository.GetByIdAsync(idParte);
var esExistente = await _esCanillaRepository.GetByIdAsync(idParte); // Obtener el estado actual
if (esExistente == null)
{
if (transaction?.Connection != null) transaction.Rollback();
@@ -234,17 +234,16 @@ namespace GestionIntegral.Api.Services.Distribucion
if (esExistente.Liquidado)
{
// Permiso MC006 es para "Eliminar Movimientos de Canillita Liquidados"
if (!TienePermisoEspecifico("MC006"))
if (!TienePermisoEspecifico("MC006")) // <--- AQUÍ ESTÁ LA VERIFICACIÓN
{
if (transaction?.Connection != null) transaction.Rollback();
return (false, "No tiene permiso para eliminar movimientos ya liquidados. Se requiere permiso especial (MC006) o ser SuperAdmin.");
}
_logger.LogWarning("Usuario ID {IdUsuario} está eliminando un movimiento LIQUIDADO (IDParte: {IdParte}). Permiso MC006 verificado.", idUsuario, idParte);
}
// Si no está liquidado, el permiso MC004 ya fue verificado en el controlador.
// Si no está liquidado, el permiso MC004 ya fue verificado en el controlador (o debería serlo).
var eliminado = await _esCanillaRepository.DeleteAsync(idParte, idUsuario, transaction);
var eliminado = await _esCanillaRepository.DeleteAsync(idParte, idUsuario, transaction); // Ahora esto no lanzará la excepción por liquidado
if (!eliminado)
{
// No es necesario hacer rollback aquí si DeleteAsync lanza una excepción,
@@ -258,10 +257,10 @@ namespace GestionIntegral.Api.Services.Distribucion
_logger.LogInformation("Movimiento Canillita ID {IdParte} eliminado por Usuario ID {IdUsuario}.", idParte, idUsuario);
return (true, null);
}
catch (KeyNotFoundException)
{
catch (KeyNotFoundException)
{
if (transaction?.Connection != null) try { transaction.Rollback(); } catch (Exception exR) { _logger.LogError(exR, "Rollback fallido KeyNotFoundException."); }
return (false, "Movimiento no encontrado.");
return (false, "Movimiento no encontrado.");
}
catch (Exception ex)
{