public async Task ActualizarListaActividadGeneral(int pciId, List <ActividadGeneral> listaTotal) { List <ActividadGeneral> listaActividadGeneral = new List <ActividadGeneral>(); ActividadGeneral actividadGeneral = null; DateTime fechaActual = _generalInterface.ObtenerFechaHoraActual(); #region Registrar nuevos List <ActividadGeneral> listaNueva = listaTotal .Where(x => x.ActividadGeneralId == 0) .OrderBy(x => x.RubroPresupuestal.Nombre) .ToList(); if (listaNueva != null && listaNueva.Count > 0) { foreach (var item in listaNueva) { actividadGeneral = new ActividadGeneral(); actividadGeneral.PciId = pciId; actividadGeneral.ApropiacionVigente = item.ApropiacionVigente; actividadGeneral.ApropiacionDisponible = item.ApropiacionDisponible; actividadGeneral.RubroPresupuestalId = item.RubroPresupuestal.RubroPresupuestalId; listaActividadGeneral.Add(actividadGeneral); } await _dataContext.ActividadGeneral.AddRangeAsync(listaActividadGeneral); await _dataContext.SaveChangesAsync(); } #endregion Registrar nuevos #region Actualizar registros List <ActividadGeneral> listaModificada = listaTotal .Where(x => x.ActividadGeneralId > 0) .ToList(); if (listaModificada != null && listaModificada.Count > 0) { foreach (var item in listaModificada) { actividadGeneral = await _repoActividad.ObtenerActividadGeneralBase(item.ActividadGeneralId); if (actividadGeneral != null) { actividadGeneral.ApropiacionVigente = item.ApropiacionVigente; actividadGeneral.ApropiacionDisponible = item.ApropiacionDisponible; await _dataContext.SaveChangesAsync(); } } } #endregion Actualizar registros }
public async Task ActualizarActividadGeneral(ActividadGeneral actividadGeneral, decimal valor, int operacion) { if (operacion == 1) { actividadGeneral.ApropiacionDisponible = actividadGeneral.ApropiacionDisponible + valor; } else { actividadGeneral.ApropiacionDisponible = actividadGeneral.ApropiacionDisponible - valor; } await _dataContext.SaveChangesAsync(); }
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(); }