示例#1
0
 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();
 }
示例#2
0
        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());
        }
示例#3
0
        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();
        }
示例#4
0
        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();
        }