Esempio n. 1
0
        public static decimal calcularCosto(Subcomponente subcomponente)
        {
            decimal costo = decimal.Zero;

            try
            {
                List <Producto>  productos   = ProductoDAO.getProductosBySubComponente(subcomponente.id);
                List <Actividad> actividades = ActividadDAO.GetActividadesPorObjeto(subcomponente.id, 2);
                if ((productos != null && productos.Count > 0) || (actividades != null && actividades.Count > 0))
                {
                    if (productos != null)
                    {
                        foreach (Producto producto in productos)
                        {
                            costo += Decimal.Add(costo, producto.costo ?? default(decimal));
                        }
                    }

                    if (actividades != null && actividades.Count > 0)
                    {
                        foreach (Actividad actividad in actividades)
                        {
                            costo += Decimal.Add(costo, actividad.costo ?? default(decimal));
                        }
                    }
                }
                else
                {
                    PlanAdquisicion pa = PlanAdquisicionDAO.getPlanAdquisicionByObjeto(2, subcomponente.id);
                    if (pa != null)
                    {
                        List <PlanAdquisicionPago> lstpagos = PlanAdquisicionPagoDAO.getPagosByPlan(Convert.ToInt32(pa.id));
                        if (lstpagos != null && lstpagos.Count > 0)
                        {
                            decimal pagos = decimal.Zero;
                            foreach (PlanAdquisicionPago pago in lstpagos)
                            {
                                pagos += Decimal.Add(pagos, pago.pago ?? default(decimal));
                            }
                            costo = pagos;
                        }
                        else
                        {
                            costo = pa.montoContrato;
                        }
                    }
                    else
                    {
                        costo = subcomponente.costo ?? default(decimal);
                    }
                }
            }
            catch (Exception e)
            {
                CLogger.write("16", "Subcomponente.class", e);
            }

            return(costo);
        }
Esempio n. 2
0
        public IActionResult Adquisicion([FromBody] dynamic value)
        {
            try
            {
                PlanAdquisicionValidator validator = new PlanAdquisicionValidator();
                ValidationResult         results   = validator.Validate(value);

                if (results.IsValid)
                {
                    PlanAdquisicion pa = new PlanAdquisicion();
                    pa.categoriaAdquisicions = CategoriaAdquisicionDAO.getCategoriaPorId(value.categoriaAdquisicion);
                    pa.categoriaAdquisicion  = pa.categoriaAdquisicions.id;
                    pa.tipoAdquisicions      = TipoAdquisicionDAO.getTipoAdquisicionPorId(value.tipoId);
                    pa.unidadMedida          = value.medidaNombre;
                    pa.cantidad                     = value.cantidad;
                    pa.total                        = value.tota;
                    pa.precioUnitario               = value.precioUnitario;
                    pa.preparacionDocPlanificado    = value.preparacionDocumentosPlanificada;
                    pa.preparacionDocReal           = value.preparacionDocReal;
                    pa.lanzamientoEventoPlanificado = value.lanzamientoEventoPlanificada;
                    pa.lanzamientoEventoReal        = value.lanzamientoEventoReal;
                    pa.recepcionOfertasPlanificado  = value.recepcionOfertasPlanificada;
                    pa.recepcionOfertasReal         = value.recepcionOfertasReal;
                    pa.adjudicacionPlanificado      = value.adjudicacionPlanificada;
                    pa.adjudicacionReal             = value.adjudicacionReal;
                    pa.firmaContratoPlanificado     = value.firmaContratoPlanificada;
                    pa.firmaContratoReal            = value.firmaContratoReal;
                    pa.objetoId                     = value.objetoId;
                    pa.objetoTipo                   = value.objetoTipo;
                    pa.usuarioCreo                  = User.Identity.Name;
                    pa.fechaCreacion                = DateTime.Now;
                    pa.estado                       = 1;
                    pa.bloqueado                    = 0;
                    pa.numeroContrato               = value.numeroContrato;
                    pa.montoContrato                = value.montoContrato;
                    pa.nog          = value.nog;
                    pa.tipoRevision = value.tipoRevision;

                    PlanAdquisicionDAO.guardarPlanAdquisicion(pa);
                    string pagos      = value.pagos;
                    int    objetoId   = value.objetoId;
                    int    objetoTipo = value.objetoTipo;

                    bool guardado = PlanAdquisicionDAO.actualizarNivelesPagos(pagos, pa, User.Identity.Name, objetoId, objetoTipo);

                    return(Ok(new { success = guardado, id = pa.id }));
                }
                else
                {
                    return(Ok(new { success = false }));
                }
            }
            catch (Exception e)
            {
                CLogger.write("1", "PlanAdquisicionController.class", e);
                return(BadRequest(500));
            }
        }
Esempio n. 3
0
        public async Task <IActionResult> RegistrarPlanAdquisicion(PlanAdquisicion planAdquisicion)
        {
            usuarioId  = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
            valorPciId = User.FindFirst(ClaimTypes.Role).Value;
            if (!string.IsNullOrEmpty(valorPciId))
            {
                pciId = int.Parse(valorPciId);
            }

            if (planAdquisicion != null)
            {
                await ActualizarPlanAdquisicion(pciId, planAdquisicion);

                return(Ok(1));
            }
            return(NoContent());
        }
        public static PlanAdquisicion getPlanAdquisicionByObjeto(int objetoTipo, int ObjetoId)
        {
            PlanAdquisicion ret = null;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    ret = db.QueryFirstOrDefault <PlanAdquisicion>("SELECT * FROM PLAN_ADQUISICION pa WHERE pa.objeto_id=:objetoId AND pa.objeto_tipo=:objetoTipo AND pa.estado=1",
                                                                   new { objetoTipo = objetoTipo, ObjetoId = ObjetoId });
                }
            }
            catch (Exception e)
            {
                CLogger.write("3", "PlanAdquisicionDAO.class", e);
            }
            return(ret);
        }
        public static PlanAdquisicion getPlanAdquisicionById(int planAdquisicionId)
        {
            PlanAdquisicion ret = null;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    ret = db.QueryFirstOrDefault <PlanAdquisicion>("SELECT * FROM PLAN_ADQUISICION WHERE id=:planAdquisicionId",
                                                                   new { planAdquisicionId = planAdquisicionId });
                }
            }
            catch (Exception e)
            {
                CLogger.write("2", "PlanAdquisicionDAO.class", e);
            }
            return(ret);
        }
        public static bool borrarPlan(PlanAdquisicion plan)
        {
            bool ret = false;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    int eliminado = db.Execute("DELETE FROM PLAN_ADQUISICION WHERE id=:id", new { id = plan.id });

                    ret = eliminado > 0 ? true : false;
                }
            }
            catch (Exception e)
            {
                CLogger.write("5", "PlanAdquisicionDAO.class", e);
            }
            return(ret);
        }
        public static int guardarPlanAdquisicion(PlanAdquisicion planAdquisicion)
        {
            int ret = 0;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM PLAN_ADQUISICION WHERE id=:id", new { id = planAdquisicion.id });

                    if (existe > 0)
                    {
                        int guardado = db.Execute("UPDATE PLAN_ADQUISICION SET tipo_adquisicion=:tipoAdquisicion, categoria_adquisicion=:categoriaAdquisicion, " +
                                                  "unidad_medida=:unidadMedida, cantidad=:cantidad, total=:total, precio_unitario=:precioUnitario, preparacion_doc_planificado=:preparacionDocPlanificado, " +
                                                  "preparacion_doc_real=:preparacionDocReal, lanzamiento_evento_planificado=:lanzamientoEventoPlanificado, lanzamiento_evento_real=:lanzamientoEventoReal, " +
                                                  "recepcion_ofertas_planificado=:recepcionOfertasPlanificado, recepcion_ofertas_real=:recepcionOfertasReal, adjudicacion_planificado=:adjudicacionPlanificado, " +
                                                  "adjudicacion_real=:adjudicacionReal, firma_contrato_planificado=:firmaContratoPlanificado, firma_contrato_real=:firmaContratoReal, objeto_id=:objetoId, " +
                                                  "objeto_tipo=:objetoTipo, usuario_creo=:usuarioCreo, usuarioActualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, fecha_actualizacion=:fechaActualizacion, " +
                                                  "estado=:estado, bloqueado=:bloqueado, numero_contrato=:numeroContrato, monto_contrato=:montoContrato, nog=:nog, tipo_revision=:tipoRevision WHERE id=:id", planAdquisicion);

                        ret = guardado > 0 ? Convert.ToInt32(planAdquisicion.id) : 0;
                    }
                    else
                    {
                        int sequenceId = db.ExecuteScalar <int>("SELECT seq_plan_adquisicion.nextval FROM DUAL");
                        planAdquisicion.id = sequenceId;
                        int guardado = db.Execute("INSERT INTO PLAN_ADQUISICION VALUES (:id, :tipoAdquisicion, :categoriaAdquisicion, :unidadMedida, :cantidad, :total, " +
                                                  ":precioUnitario, :preparacionDocPlanificado, :preparacionDocReal, :lanzamientoEventoPlanificado, :lanzamientoEventoReal, :recepcionOfertasPlanificado, " +
                                                  ":recepcionOfertasReal, :adjudicacionPlanificado, :adjudicacionReal, :firmaContratoPlanificado, :firmaContratoReal, :objetoId, :objetoTipo, :usuarioCreo, " +
                                                  ":usuarioActualizo, :fechaCreacion, :fechaActualizacion, :estado, :bloqueado, :numeroContrato, :montoContrato, :nog, :tipoRevision)", planAdquisicion);

                        ret = guardado > 0 ? Convert.ToInt32(planAdquisicion.id) : 0;
                    }
                }
            }
            catch (Exception e)
            {
                CLogger.write("1", "PlanAdquisicionDAO.class", e);
            }
            return(ret);
        }
        public static PlanAdquisicion getPlanAdquisicionByObjetoLB(int objetoTipo, int ObjetoId, String lineaBase)
        {
            PlanAdquisicion ret = null;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    String query = String.Join(" ", "SELECT pa.* FROM sipro_history.plan_adquisicion pa",
                                               "WHERE pa.objeto_id=:objetoId",
                                               "AND pa.objeto_tipo=:objetoTipo",
                                               lineaBase != null ? "AND pa.linea_base LIKE '%" + lineaBase + "%'" : "AND pa.actual=1",
                                               "AND pa.estado=1");

                    ret = db.QueryFirstOrDefault <PlanAdquisicion>(query, new { objetoId = ObjetoId, objetoTipo = objetoTipo });
                }
            }
            catch (Exception e)
            {
                CLogger.write("3", "PlanAdquisicionDAO.class", e);
            }
            return(ret);
        }
Esempio n. 9
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();
        }
Esempio n. 10
0
        public static bool actualizarNivelesPagos(String pagosString, PlanAdquisicion pa, string usuario, int objetoId, int objetoTipo)
        {
            bool ret = false;

            try
            {
                decimal bpagos      = decimal.Zero;
                bool    tiene_pagos = false;
                if (pagosString != null)
                {
                    JArray pagos = JArray.Parse(pagosString);
                    for (int j = 0; j < pagos.Count; j++)
                    {
                        JObject             objeto_pago = new JObject(new JProperty("fecha", pagos[j]), new JProperty("pago", pagos[j]));
                        DateTime            fechaPago   = (DateTime)objeto_pago["fecha"];
                        decimal             dpago       = (decimal)objeto_pago["pago"];
                        PlanAdquisicionPago pago        = new PlanAdquisicionPago();
                        pago.planAdquisicions  = pa;
                        pago.planAdquisicionid = pa.id;
                        pago.fechaPago         = fechaPago;
                        pago.pago          = dpago;
                        pago.usuarioCreo   = usuario;
                        pago.fechaCreacion = DateTime.Now;
                        pago.estado        = 1;

                        PlanAdquisicionPagoDAO.guardarPago(pago);
                        bpagos     += dpago;
                        tiene_pagos = true;
                    }
                }

                List <Actividad> actividades = ActividadDAO.GetActividadesPorObjeto(objetoId, objetoTipo);
                switch (objetoTipo)
                {
                case 3:
                    Producto           producto     = ProductoDAO.getProductoPorId(objetoId);
                    List <Subproducto> subproductos = SubproductoDAO.getSubproductosByProductoid(producto.id);
                    if (!(subproductos != null && subproductos.Count > 0) &&
                        !(actividades != null && actividades.Count > 0))
                    {
                        if (tiene_pagos)
                        {
                            producto.costo = bpagos;
                        }
                        else
                        {
                            producto.costo = pa.total;
                        }
                        ProductoDAO.guardarProducto(producto, true);
                    }
                    break;

                case 4:
                    Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId);
                    if (!(actividades != null && actividades.Count > 0))
                    {
                        if (tiene_pagos)
                        {
                            subproducto.costo = bpagos;
                        }
                        else
                        {
                            subproducto.costo = pa.total;
                        }
                        SubproductoDAO.guardarSubproducto(subproducto, true);
                    }
                    break;

                case 5:
                    Actividad actividad = ActividadDAO.GetActividadPorId(objetoId);
                    if (!(actividades != null && actividades.Count > 0))
                    {
                        if (tiene_pagos)
                        {
                            actividad.costo = bpagos;
                        }
                        else
                        {
                            actividad.costo = pa.total;
                        }
                        ActividadDAO.guardarActividad(actividad, true);
                    }
                    break;
                }

                ret = true;
            }
            catch (Exception e)
            {
                CLogger.write("50", "PlanAdquisicionDAO.class", e);
            }

            return(ret);
        }
Esempio n. 11
0
        public static void actualizarCostoPlanificadoObjeto(PlanAdquisicion pa)
        {
            decimal ret        = decimal.Zero;
            int     objetoId   = Convert.ToInt32(pa.objetoId);
            int     objetoTipo = Convert.ToInt32(pa.objetoTipo);
            List <PlanAdquisicionPago> pagos       = PlanAdquisicionPagoDAO.getPagosByPlan(Convert.ToInt32(pa.id));
            List <Actividad>           actividades = ActividadDAO.GetActividadesPorObjeto(objetoId, objetoTipo);

            foreach (Actividad actividad in actividades)
            {
                ret += actividad.costo ?? default(decimal);
            }

            switch (objetoTipo)
            {
            case 0:
                Proyecto          proyecto    = ProyectoDAO.getProyecto(objetoId);
                List <Componente> componentes = ComponenteDAO.getComponentesPorProyecto(proyecto.id);
                if (componentes == null || componentes.Count == 0)
                {
                    if (actividades == null || actividades.Count == 0)
                    {
                        if (pagos != null && pagos.Count > 0)
                        {
                            foreach (PlanAdquisicionPago pago in pagos)
                            {
                                ret += pago.pago ?? default(decimal);
                            }
                        }
                        else
                        {
                            ret = pa.total ?? default(decimal);
                        }
                    }
                }
                else
                {
                    foreach (Componente cmp in componentes)
                    {
                        ret += cmp.costo ?? default(decimal);
                    }
                }
                proyecto.costo = ret;
                ProyectoDAO.guardarProyecto(proyecto, false);
                break;

            case 1:
                Componente           componente     = ComponenteDAO.getComponente(objetoId);
                List <Producto>      productos      = ProductoDAO.getProductosByComponente(componente.id);
                List <Subcomponente> subcomponentes = SubComponenteDAO.getSubComponentesPorComponente(componente.id);
                if (productos == null || productos.Count == 0 || subcomponentes == null || subcomponentes.Count == 0)
                {
                    if (actividades == null || actividades.Count == 0)
                    {
                        if (pagos != null && pagos.Count > 0)
                        {
                            foreach (PlanAdquisicionPago pago in pagos)
                            {
                                ret += pago.pago ?? default(decimal);
                            }
                        }
                        else
                        {
                            ret = pa.total ?? default(decimal);
                        }
                    }
                }
                else
                {
                    if (productos != null)
                    {
                        foreach (Producto prod in productos)
                        {
                            ret += prod.costo ?? default(decimal);
                        }
                    }
                    if (subcomponentes != null)
                    {
                        foreach (Subcomponente subcomponente in subcomponentes)
                        {
                            ret += subcomponente.costo ?? default(decimal);
                        }
                    }
                }
                componente.costo = ret;
                ComponenteDAO.guardarComponente(componente, false);
                break;

            case 3:
                Producto           producto     = ProductoDAO.getProductoPorId(objetoId);
                List <Subproducto> subproductos = SubproductoDAO.getSubproductosByProductoid(producto.id);
                if (subproductos == null || subproductos.Count == 0)
                {
                    if (actividades == null || actividades.Count == 0)
                    {
                        if (pagos != null && pagos.Count > 0)
                        {
                            foreach (PlanAdquisicionPago pago in pagos)
                            {
                                ret += pago.pago ?? default(decimal);
                            }
                        }
                        else
                        {
                            ret = pa.total ?? default(decimal);
                        }
                    }
                }
                else
                {
                    foreach (Subproducto subprod in subproductos)
                    {
                        ret += subprod.costo ?? default(decimal);
                    }
                }
                producto.costo = ret;
                ProductoDAO.guardarProducto(producto, false);
                break;

            case 4:
                Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId);
                if (actividades != null && actividades.Count > 0)
                {
                    subproducto.costo = ret;
                    SubproductoDAO.guardarSubproducto(subproducto, false);
                }
                break;

            case 5:
                Actividad actividad = ActividadDAO.GetActividadPorId(objetoId);
                if (actividades != null && actividades.Count > 0)
                {
                    actividad.costo = ret;
                    ActividadDAO.guardarActividad(actividad, false);
                }
                break;
            }
        }
Esempio n. 12
0
        public IActionResult PlanAdquisicionPorObjeto([FromBody] dynamic value)
        {
            try
            {
                PlanAdquisicion adquisicion = PlanAdquisicionDAO.getPlanAdquisicionByObjeto((int)value.objetoTipo, (int)value.objetoId);
                if (adquisicion != null)
                {
                    stadquisicion temp = new stadquisicion();
                    temp.id = Convert.ToInt32(adquisicion.id);
                    temp.adjudicacionPlanificado = adquisicion.adjudicacionPlanificado != null?adquisicion.adjudicacionPlanificado.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.adjudicacionReal = adquisicion.adjudicacionReal != null?adquisicion.adjudicacionReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.cantidad                 = Convert.ToInt32(adquisicion.cantidad);
                    temp.categoriaAdquisicion     = Convert.ToInt32(adquisicion.categoriaAdquisicions.id);
                    temp.categoriaNombre          = adquisicion.categoriaAdquisicions.nombre;
                    temp.firmaContratoPlanificado = adquisicion.firmaContratoPlanificado != null?adquisicion.firmaContratoPlanificado.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.firmaContratoReal = adquisicion.firmaContratoReal != null?adquisicion.firmaContratoReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.lanzamientoEventoPlanificado = adquisicion.lanzamientoEventoPlanificado != null?adquisicion.lanzamientoEventoPlanificado.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.lanzamientoEventoReal = adquisicion.lanzamientoEventoReal != null?adquisicion.lanzamientoEventoReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.unidadMedida              = adquisicion.unidadMedida;
                    temp.montoContrato             = adquisicion.montoContrato;
                    temp.nog                       = Convert.ToInt64(adquisicion.nog);
                    temp.numeroContrato            = adquisicion.numeroContrato;
                    temp.precioUnitario            = adquisicion.precioUnitario ?? default(decimal);
                    temp.preparacionDocPlanificado = adquisicion.preparacionDocPlanificado != null?adquisicion.preparacionDocPlanificado.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.preparacionDocReal = adquisicion.preparacionDocReal != null?adquisicion.preparacionDocReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.recepcionOfertasPlanificado = adquisicion.recepcionOfertasPlanificado != null?adquisicion.recepcionOfertasPlanificado.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.recepcionOfertasReal = adquisicion.recepcionOfertasReal != null?adquisicion.recepcionOfertasReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null;

                    temp.tipoAdquisicion    = Convert.ToInt32(adquisicion.tipoAdquisicions.id);
                    temp.tipoNombre         = adquisicion.tipoAdquisicions.nombre;
                    temp.total              = adquisicion.total ?? default(decimal);
                    temp.tipoRevision       = adquisicion.tipoRevision ?? default(int);
                    temp.tipoRevisionNombre = temp.tipoRevision == 1 ? "Ex-ante" : temp.tipoRevision == 2 ? "Ex-Post" : null;


                    List <PlanAdquisicionPago> lstpagos = PlanAdquisicionDAO.getPagos(Convert.ToInt32(adquisicion.id));
                    if (lstpagos != null && lstpagos.Count > 0)
                    {
                        List <stpago> pagos = new List <stpago>();
                        stpago        pago  = null;

                        for (int i = 0; i < lstpagos.Count; i++)
                        {
                            if (lstpagos[i].estado == 1)
                            {
                                pago           = new stpago();
                                pago.fechaPago = lstpagos[i].fechaPago.ToString("dd/MM/yyyy H:mm:ss");
                                pago.pago      = lstpagos[i].pago ?? default(decimal);
                                pagos.Add(pago);
                            }
                        }
                    }

                    return(Ok(new { success = true, adquisicion = temp }));
                }
                else
                {
                    return(Ok(new { success = false }));
                }
            }
            catch (Exception e)
            {
                CLogger.write("3", "PlanAdquisicionController.class", e);
                return(BadRequest(500));
            }
        }
Esempio n. 13
0
        private List <PlanAdquisicion> obtenerListaDetalleCdp(IList <DetalleCDPDto> lista)
        {
            List <PlanAdquisicion> listaCDP = new List <PlanAdquisicion>();
            PlanAdquisicion        cdp      = null;

            var listaActividadGeneral     = _context.ActividadGeneral.ToList();
            var listaActividadEspecifica  = _context.ActividadEspecifica.ToList();
            var listaDependencia          = _context.Dependencia.ToList();
            var listaRubrosPresupuestales = _context.RubroPresupuestal.ToList();
            var listaUsuarios             = _context.Usuario.ToList();
            var listaArea = _context.Area.ToList();

            foreach (var item in lista)
            {
                cdp = new PlanAdquisicion();

                cdp.PcpId          = item.PcpId;
                cdp.IdArchivo      = item.IdArchivo;
                cdp.Cdp            = item.Cdp;
                cdp.Proy           = item.Proy;
                cdp.Prod           = item.Prod;
                cdp.PlanDeCompras  = item.PlanDeCompras;
                cdp.AplicaContrato = item.AplicaContrato;
                cdp.Convenio       = item.Convenio;
                cdp.PlanDeCompras  = item.PlanDeCompras;

                cdp.ValorAct       = item.ValorAct;
                cdp.SaldoAct       = item.SaldoAct;
                cdp.ValorCDP       = item.ValorCDP;
                cdp.ValorRP        = item.ValorRP;
                cdp.ValorOB        = item.ValorOB;
                cdp.ValorOP        = item.ValorOP;
                cdp.SaldoTotal     = item.SaldoTotal;
                cdp.Valor_Convenio = item.Valor_Convenio;

                //Actividad General
                if (!string.IsNullOrEmpty(item.Proyecto))
                {
                    var actividad = (from ag in listaActividadGeneral
                                     join rp in listaRubrosPresupuestales on ag.RubroPresupuestalId equals rp.RubroPresupuestalId
                                     where (rp.Nombre.Trim().ToUpper() == item.Proyecto.Trim().ToUpper())
                                     select ag).FirstOrDefault();
                    if (actividad != null)
                    {
                        cdp.ActividadGeneralId = actividad.ActividadGeneralId;
                    }
                }

                //Actividad Especifica
                if (!string.IsNullOrEmpty(item.ActividadBpin))
                {
                    var actividad = listaActividadEspecifica
                                    .Where(c => c.Nombre.ToUpper() == item.ActividadBpin.ToUpper())
                                    .FirstOrDefault();
                    if (actividad != null)
                    {
                        cdp.ActividadEspecificaId = actividad.ActividadEspecificaId;
                    }
                }

                //Dependencia
                if (!string.IsNullOrEmpty(item.Dependencia))
                {
                    var dependencia = listaDependencia
                                      .Where(c => c.Nombre.ToUpper() == item.Dependencia.ToUpper())
                                      .FirstOrDefault();
                    if (dependencia != null)
                    {
                        cdp.DependenciaId = dependencia.DependenciaId;
                    }
                }

                //Rubro Presupuestal
                if (!string.IsNullOrEmpty(item.RubroPresupuestal.Identificacion))
                {
                    var rubro = listaRubrosPresupuestales
                                .Where(c => c.Identificacion.ToUpper() == item.RubroPresupuestal.Identificacion.ToUpper())
                                .FirstOrDefault();
                    if (rubro != null)
                    {
                        cdp.RubroPresupuestalId = rubro.RubroPresupuestalId;
                    }
                }

                //Decreto
                if (!string.IsNullOrEmpty(item.Decreto))
                {
                    var decreto = listaRubrosPresupuestales
                                  .Where(c => c.Identificacion.ToUpper() == item.Decreto.ToUpper())
                                  .FirstOrDefault();

                    if (decreto != null)
                    {
                        cdp.DecretoId = decreto.RubroPresupuestalId;
                    }
                }

                //Area
                if (!string.IsNullOrEmpty(item.Area))
                {
                    var area = listaArea
                               .Where(c => c.Nombre.ToUpper() == item.Area.ToUpper())
                               .FirstOrDefault();

                    if (area != null)
                    {
                        cdp.AreaId = area.AreaId;
                    }
                }

                //Usuario
                if (!string.IsNullOrEmpty(item.Responsable))
                {
                    var usuario = listaUsuarios
                                  .Where(c => c.Nombres.ToUpper() + " " + c.Apellidos.ToUpper() == item.Responsable.ToUpper())
                                  .FirstOrDefault();
                    if (usuario != null)
                    {
                        cdp.UsuarioId = usuario.UsuarioId;
                    }
                }
                listaCDP.Add(cdp);
            }

            return(listaCDP);
        }
        public IActionResult Pagos([FromBody] dynamic value)
        {
            try
            {
                PagoAdquisicionValidator validator = new PagoAdquisicionValidator();
                ValidationResult         results   = validator.Validate(value);

                if (results.IsValid)
                {
                    bool result = false;

                    List <stPago> pagos = JsonConvert.DeserializeObject <List <stPago> >(value.pagos);

                    foreach (stPago pago in pagos)
                    {
                        if (pago.id == 0)
                        {
                            PlanAdquisicion     pa        = PlanAdquisicionDAO.getPlanAdquisicionById(value.planId);
                            PlanAdquisicionPago nuevoPago = new PlanAdquisicionPago();
                            nuevoPago.planAdquisicionid = pa.id;
                            nuevoPago.fechaPago         = Convert.ToDateTime(pago.fechaReal);
                            nuevoPago.pago          = pago.pago;
                            nuevoPago.descripcion   = pago.descripcion;
                            nuevoPago.usuarioCreo   = User.Identity.Name;
                            nuevoPago.fechaCreacion = DateTime.Now;
                            nuevoPago.estado        = 1;

                            result = PlanAdquisicionPagoDAO.guardarPago(nuevoPago);
                        }
                        else
                        {
                            result = true;
                        }
                    }

                    List <PlanAdquisicionPago> Pagos = PlanAdquisicionPagoDAO.getPagosByPlan(value.planId);

                    List <stPago> resultado = new List <stPago>();
                    foreach (PlanAdquisicionPago pago in Pagos)
                    {
                        stPago temp = new stPago();
                        temp.id          = Convert.ToInt32(pago.id);
                        temp.fecha       = pago.fechaPago.ToString("dd/MM/yyyy H:mm:ss");
                        temp.pago        = pago.pago ?? default(decimal);
                        temp.descripcion = pago.descripcion;
                        resultado.Add(temp);
                    }

                    return(Ok(new { success = true, pagos = resultado }));
                }
                else
                {
                    return(Ok(new { success = true }));
                }
            }
            catch (Exception e)
            {
                CLogger.write("2", "PlanAdquisicionPagoController.class", e);
                return(BadRequest(500));
            }
        }
Esempio n. 15
0
        public async Task <ActionResult> RegistrarSolicitudCDP(SolicitudCDP solicitudCDP)
        {
            usuarioId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
            SolicitudCDP               solicitud       = null;
            DetalleSolicitudCDP        detalle         = null;
            PlanAdquisicion            planAdquisicion = null;
            List <DetalleSolicitudCDP> listaDetalle    = new List <DetalleSolicitudCDP>();

            await using var transaction = await _dataContext.Database.BeginTransactionAsync();

            try
            {
                if (solicitudCDP != null)
                {
                    if (solicitudCDP.TipoOperacion.TipoOperacionId == (int)TipoOperacionEnum.SOLICITUD_INICIAL)
                    {
                        #region Cabecera Solicitud CDP

                        solicitud = new SolicitudCDP();
                        solicitud.TipoOperacionId      = solicitudCDP.TipoOperacion.TipoOperacionId;
                        solicitud.UsuarioId            = usuarioId;
                        solicitud.UsuarioIdRegistro    = usuarioId;
                        solicitud.FechaRegistro        = _generalInterface.ObtenerFechaHoraActual();
                        solicitud.EstadoSolicitudCDPId = solicitudCDP.EstadoSolicitudCDP.EstadoId;

                        solicitud.NumeroActividad              = solicitudCDP.NumeroActividad;
                        solicitud.AplicaContrato               = solicitudCDP.AplicaContrato;
                        solicitud.NombreBienServicio           = solicitudCDP.NombreBienServicio;
                        solicitud.ProyectoInversion            = solicitudCDP.ProyectoInversion;
                        solicitud.NombreBienServicio           = solicitudCDP.NombreBienServicio;
                        solicitud.ActividadProyectoInversion   = solicitudCDP.ActividadProyectoInversion;
                        solicitud.ObjetoBienServicioContratado = solicitudCDP.ObjetoBienServicioContratado;
                        solicitud.Observaciones    = solicitudCDP.Observaciones;
                        solicitud.Cdp              = null;
                        solicitud.TipoDetalleCDPId = null;

                        await _dataContext.SolicitudCDP.AddAsync(solicitud);

                        await _dataContext.SaveChangesAsync();

                        #endregion Cabecera Solicitud CDP

                        #region Registrar Detalle Solicitud CDP

                        if (solicitudCDP.DetalleSolicitudCDPs != null && solicitudCDP.DetalleSolicitudCDPs.Count > 0)
                        {
                            foreach (var item in solicitudCDP.DetalleSolicitudCDPs)
                            {
                                detalle = new DetalleSolicitudCDP();
                                detalle.SolicitudCDPId      = solicitud.SolicitudCDPId;
                                detalle.PlanAdquisicionId   = item.PlanAdquisicionId;
                                detalle.RubroPresupuestalId = item.RubroPresupuestal.RubroPresupuestalId;
                                detalle.ValorActividad      = item.ValorActividad;
                                detalle.SaldoActividad      = item.SaldoActividad;
                                detalle.ValorSolicitud      = item.ValorSolicitud;
                                listaDetalle.Add(detalle);
                            }

                            //Insertar Detalle
                            await _dataContext.DetalleSolicitudCDP.AddRangeAsync(listaDetalle);

                            await _dataContext.SaveChangesAsync();
                        }

                        #endregion Registrar Detalle Solicitud CDP

                        #region Actualizar Plan de adquisición

                        if (solicitudCDP.DetalleSolicitudCDPs != null && solicitudCDP.DetalleSolicitudCDPs.Count > 0)
                        {
                            foreach (var item in solicitudCDP.DetalleSolicitudCDPs)
                            {
                                planAdquisicion = await _planAdquisicionRepo.ObtenerPlanAnualAdquisicionBase(item.PlanAdquisicionId.Value);

                                planAdquisicion.SaldoAct = planAdquisicion.SaldoAct - item.ValorSolicitud;
                                planAdquisicion.EstadoId = (int)EstadoPlanAdquisicion.ConCDP;
                                await _dataContext.SaveChangesAsync();
                            }
                        }

                        #endregion Actualizar Plan de adquisición
                    }
                    else
                    {
                        #region Cabecera Solicitud CDP

                        solicitud = new SolicitudCDP();
                        solicitud.TipoOperacionId      = solicitudCDP.TipoOperacion.TipoOperacionId;
                        solicitud.UsuarioId            = usuarioId;
                        solicitud.UsuarioIdRegistro    = usuarioId;
                        solicitud.FechaRegistro        = _generalInterface.ObtenerFechaHoraActual();
                        solicitud.EstadoSolicitudCDPId = solicitudCDP.EstadoSolicitudCDP.EstadoId;

                        solicitud.NumeroActividad              = solicitudCDP.NumeroActividad;
                        solicitud.AplicaContrato               = solicitudCDP.AplicaContrato;
                        solicitud.NombreBienServicio           = solicitudCDP.NombreBienServicio;
                        solicitud.ProyectoInversion            = solicitudCDP.ProyectoInversion;
                        solicitud.NombreBienServicio           = solicitudCDP.NombreBienServicio;
                        solicitud.ActividadProyectoInversion   = solicitudCDP.ActividadProyectoInversion;
                        solicitud.ObjetoBienServicioContratado = solicitudCDP.ObjetoBienServicioContratado;
                        solicitud.Observaciones    = solicitudCDP.Observaciones;
                        solicitud.Cdp              = solicitudCDP.Cdp;
                        solicitud.TipoDetalleCDPId = solicitudCDP.TipoDetalleCDP.TipoDetalleCDPId;

                        await _dataContext.SolicitudCDP.AddAsync(solicitud);

                        await _dataContext.SaveChangesAsync();

                        #endregion Cabecera Solicitud CDP

                        #region Registrar Detalle Solicitud CDP

                        if (solicitudCDP.DetalleSolicitudCDPs != null && solicitudCDP.DetalleSolicitudCDPs.Count > 0)
                        {
                            foreach (var item in solicitudCDP.DetalleSolicitudCDPs)
                            {
                                detalle = new DetalleSolicitudCDP();
                                detalle.SolicitudCDPId      = solicitud.SolicitudCDPId;
                                detalle.PlanAdquisicionId   = item.PlanAdquisicionId;
                                detalle.RubroPresupuestalId = item.RubroPresupuestal.RubroPresupuestalId;
                                detalle.ValorActividad      = item.ValorActividad;
                                detalle.SaldoActividad      = item.SaldoActividad;
                                detalle.ValorSolicitud      = item.ValorSolicitud;
                                listaDetalle.Add(detalle);
                            }

                            await _dataContext.DetalleSolicitudCDP.AddRangeAsync(listaDetalle);

                            await _dataContext.SaveChangesAsync();
                        }

                        #endregion Registrar Detalle Solicitud CDP

                        #region Actualizar Plan de adquisición

                        if (solicitudCDP.DetalleSolicitudCDPs != null && solicitudCDP.DetalleSolicitudCDPs.Count > 0)
                        {
                            foreach (var item in solicitudCDP.DetalleSolicitudCDPs)
                            {
                                planAdquisicion = await _planAdquisicionRepo.ObtenerPlanAnualAdquisicionBase(item.PlanAdquisicionId.Value);

                                switch (solicitudCDP.TipoOperacion.TipoOperacionId)
                                {
                                case (int)TipoOperacionEnum.ADICION:
                                {
                                    planAdquisicion.SaldoAct = planAdquisicion.SaldoAct - item.ValorSolicitud;
                                    break;
                                }

                                case (int)TipoOperacionEnum.REDUCCION:
                                {
                                    planAdquisicion.SaldoAct = planAdquisicion.SaldoAct + item.ValorSolicitud;
                                    break;
                                }

                                case (int)TipoOperacionEnum.ANULACION:
                                {
                                    planAdquisicion.SaldoAct = planAdquisicion.SaldoAct + item.ValorSolicitud;
                                    break;
                                }
                                }

                                planAdquisicion.EstadoId = (int)EstadoPlanAdquisicion.ConCDP;
                                await _dataContext.SaveChangesAsync();
                            }
                        }

                        #endregion Actualizar Plan de adquisición
                    }

                    await transaction.CommitAsync();

                    return(Ok(solicitudCDP.SolicitudCDPId));
                }
            }
            catch (Exception)
            {
                throw;
            }

            throw new Exception($"No se pudo registrar la solicitud de CDP");
        }