public async Task ActualizarActividadEspecifica(ActividadEspecifica actividad, decimal valor, int operacion) { if (operacion == 1) { actividad.SaldoPorProgramar = actividad.SaldoPorProgramar + valor; } else { actividad.SaldoPorProgramar = actividad.SaldoPorProgramar - valor; } await _dataContext.SaveChangesAsync(); }
public async Task <IActionResult> RegistrarActividadesEspecificas(ActividadEspecifica actividadEspecifica) { usuarioId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); valorPciId = User.FindFirst(ClaimTypes.Role).Value; if (!string.IsNullOrEmpty(valorPciId)) { pciId = int.Parse(valorPciId); } if (actividadEspecifica != null) { await _serviceActividad.ActualizarActividadEspecifica(pciId, actividadEspecifica); return(Ok(1)); } return(NoContent()); }
private async Task ActualizarPlanAdquisicion(int pciId, PlanAdquisicion planAdquisicion) { DateTime fechaActual = _generalInterface.ObtenerFechaHoraActual(); ActividadEspecifica actividadEspecificaBD = null; int operacion = 1; // operacion=1=>suma; operacion=2=>resta int areaId = 0; await using var transaction = await _dataContext.Database.BeginTransactionAsync(); #region Obtener Area if (planAdquisicion.DependenciaId > 0) { Dependencia dependencia = _dataContext.Dependencia.Where(x => x.DependenciaId == planAdquisicion.DependenciaId).FirstOrDefault(); if (dependencia != null) { areaId = dependencia.AreaId; } } #endregion Obtener Area #region Registrar nuevos if (planAdquisicion.EstadoModificacion == (int)EstadoModificacion.Insertado) { PlanAdquisicion planAdquisicionNuevo = new PlanAdquisicion(); planAdquisicionNuevo.PlanDeCompras = planAdquisicion.PlanDeCompras; planAdquisicionNuevo.ActividadGeneralId = planAdquisicion.ActividadEspecifica.ActividadGeneral.ActividadGeneralId; planAdquisicionNuevo.ActividadEspecificaId = planAdquisicion.ActividadEspecifica.ActividadEspecificaId; planAdquisicionNuevo.ValorAct = planAdquisicion.ValorAct; planAdquisicionNuevo.SaldoAct = planAdquisicion.ValorAct; planAdquisicionNuevo.AplicaContrato = planAdquisicion.AplicaContrato; planAdquisicionNuevo.UsuarioId = planAdquisicion.UsuarioId; planAdquisicionNuevo.DependenciaId = planAdquisicion.DependenciaId; planAdquisicionNuevo.AreaId = areaId; planAdquisicionNuevo.PciId = pciId; planAdquisicionNuevo.EstadoId = (int)EstadoPlanAdquisicion.Generado; if (planAdquisicion.RubroPresupuestal != null) { planAdquisicionNuevo.RubroPresupuestalId = planAdquisicion.RubroPresupuestal.RubroPresupuestalId; planAdquisicionNuevo.DecretoId = planAdquisicion.RubroPresupuestal.PadreRubroId.Value; } actividadEspecificaBD = await _repoActividad.ObtenerActividadEspecificaBase(planAdquisicion.ActividadEspecifica.ActividadEspecificaId); if (actividadEspecificaBD != null) { operacion = 2; // resta await _serviceActividad.ActualizarActividadEspecifica(actividadEspecificaBD, planAdquisicion.ValorAct, operacion); } await _dataContext.PlanAdquisicion.AddAsync(planAdquisicionNuevo); await _dataContext.SaveChangesAsync(); } #endregion Registrar nuevos #region Actualizar registros if (planAdquisicion.EstadoModificacion == (int)EstadoModificacion.Modificado) { decimal valor = 0; PlanAdquisicion planAdquisicionBD = await _repo.ObtenerPlanAnualAdquisicionBase(planAdquisicion.PlanAdquisicionId); if (planAdquisicionBD != null) { if (planAdquisicionBD.ValorAct > planAdquisicion.ValorAct) { operacion = 1; // Suma valor = planAdquisicionBD.ValorAct - planAdquisicion.ValorAct; } else { operacion = 2; // Resta valor = planAdquisicion.ValorAct - planAdquisicionBD.ValorAct; } planAdquisicionBD.PlanDeCompras = planAdquisicion.PlanDeCompras; planAdquisicionBD.AplicaContrato = planAdquisicion.AplicaContrato; planAdquisicionBD.SaldoAct = planAdquisicion.ValorAct; planAdquisicionBD.ValorAct = planAdquisicion.ValorAct; planAdquisicionBD.AplicaContrato = planAdquisicion.AplicaContrato; planAdquisicionBD.DependenciaId = planAdquisicion.DependenciaId; planAdquisicionBD.Crp = planAdquisicion.Crp; planAdquisicionBD.AreaId = areaId; await _dataContext.SaveChangesAsync(); actividadEspecificaBD = await _repoActividad.ObtenerActividadEspecificaBase(planAdquisicion.ActividadEspecifica.ActividadEspecificaId); if (actividadEspecificaBD != null) { await _serviceActividad.ActualizarActividadEspecifica(actividadEspecificaBD, valor, operacion); } } } #endregion Actualizar registros await transaction.CommitAsync(); }
public async Task ActualizarActividadEspecifica(int pciId, ActividadEspecifica actividadEspecifica) { ActividadGeneral actividadGeneralBD = null; DateTime fechaActual = _generalInterface.ObtenerFechaHoraActual(); int operacion = 1; // operacion=1=>suma; operacion=2=>resta await using var transaction = await _dataContext.Database.BeginTransactionAsync(); #region Registrar nuevos if (actividadEspecifica.EstadoModificacion == (int)EstadoModificacion.Insertado) { ActividadEspecifica actividadEspecificaNuevo = new ActividadEspecifica(); actividadEspecificaNuevo.Nombre = actividadEspecifica.Nombre; actividadEspecificaNuevo.RubroPresupuestalId = actividadEspecifica.RubroPresupuestal.RubroPresupuestalId; actividadEspecificaNuevo.SaldoPorProgramar = actividadEspecifica.SaldoPorProgramar; actividadEspecificaNuevo.ValorApropiacionVigente = actividadEspecifica.ValorApropiacionVigente; actividadEspecificaNuevo.ActividadGeneralId = actividadEspecifica.ActividadGeneral.ActividadGeneralId; actividadEspecificaNuevo.PciId = pciId; actividadGeneralBD = await _repoActividad.ObtenerActividadGeneralBase(actividadEspecifica.ActividadGeneral.ActividadGeneralId); if (actividadGeneralBD != null) { operacion = 2; // resta await ActualizarActividadGeneral(actividadGeneralBD, actividadEspecifica.SaldoPorProgramar, operacion); } await _dataContext.ActividadEspecifica.AddAsync(actividadEspecificaNuevo); await _dataContext.SaveChangesAsync(); } #endregion Registrar nuevos #region Actualizar registros if (actividadEspecifica.EstadoModificacion == (int)EstadoModificacion.Modificado) { decimal valor = 0; ActividadEspecifica actividadEspecificaBD = await _repoActividad.ObtenerActividadEspecificaBase(actividadEspecifica.ActividadEspecificaId); if (actividadEspecificaBD != null) { if (actividadEspecificaBD.SaldoPorProgramar > actividadEspecifica.SaldoPorProgramar) { operacion = 1; // Suma valor = actividadEspecificaBD.SaldoPorProgramar - actividadEspecifica.SaldoPorProgramar; } else { operacion = 2; // Resta valor = actividadEspecifica.SaldoPorProgramar - actividadEspecificaBD.SaldoPorProgramar; } actividadEspecificaBD.Nombre = actividadEspecifica.Nombre; actividadEspecificaBD.ValorApropiacionVigente = actividadEspecifica.ValorApropiacionVigente; actividadEspecificaBD.SaldoPorProgramar = actividadEspecifica.SaldoPorProgramar; actividadEspecificaBD.PciId = pciId; await _dataContext.SaveChangesAsync(); actividadGeneralBD = await _repoActividad.ObtenerActividadGeneralBase(actividadEspecifica.ActividadGeneral.ActividadGeneralId); if (actividadGeneralBD != null) { await ActualizarActividadGeneral(actividadGeneralBD, valor, operacion); } } } #endregion Actualizar registros await transaction.CommitAsync(); }