Beispiel #1
0
        public async Task <List <DetalleCDPDto> > ObtenerListaPlanAdquisicionSinCDPXIds(List <int> listaId)
        {
            var lista = await(from d in _context.PlanAdquisicion
                              join u in _context.Usuario on d.UsuarioId equals u.UsuarioId
                              join r in _context.RubroPresupuestal on d.RubroPresupuestalId equals r.RubroPresupuestalId
                              join dec in _context.RubroPresupuestal on d.DecretoId equals dec.RubroPresupuestalId
                              join ag in _context.ActividadGeneral on new { d.ActividadGeneralId } equals new { ag.ActividadGeneralId } into ActividadGeneralDetalle
                              from acGe in ActividadGeneralDetalle.DefaultIfEmpty()
                              join rp in _context.RubroPresupuestal on acGe.RubroPresupuestalId equals rp.RubroPresupuestalId into RubroActividadGeneral
                              from rpAG in RubroActividadGeneral.DefaultIfEmpty()
                              join ae in _context.ActividadEspecifica on new { d.ActividadEspecificaId } equals new { ae.ActividadEspecificaId } into ActividadEspecificaDetalle
                              from acEs in ActividadEspecificaDetalle.DefaultIfEmpty()
                              join de in _context.Dependencia on new { d.DependenciaId } equals new { de.DependenciaId } into DependenciaDetalle
                              from de in DependenciaDetalle.DefaultIfEmpty()
                              join a in _context.Area on new { d.AreaId } equals new { a.AreaId } into AreaDetalle
                              from a in AreaDetalle.DefaultIfEmpty()
                              where d.PciId == u.PciId
                              where d.PciId == acGe.PciId
                              where d.PciId == acEs.PciId
                              where d.PciId == a.PciId
                              where listaId.Contains(d.PlanAdquisicionId)
                              select new DetalleCDPDto()
            {
                DetalleCdpId              = d.PlanAdquisicionId,
                PcpId                     = d.PcpId,
                IdArchivo                 = d.IdArchivo,
                Cdp                       = d.Cdp,
                Proy                      = d.Proy,
                Prod                      = d.Prod,
                Proyecto                  = rpAG.Nombre,
                ActividadBpin             = acEs.Nombre,
                PlanDeCompras             = d.PlanDeCompras,
                Responsable               = u.Nombres + " " + u.Apellidos,
                Dependencia               = de.Nombre,
                ValorAct                  = d.ValorAct,
                SaldoAct                  = d.SaldoAct,
                ValorRP                   = d.ValorRP,
                ValorOB                   = d.ValorOB,
                ValorOP                   = d.ValorOP,
                AplicaContratoDescripcion = d.AplicaContrato ? "SI" : "NO",
                SaldoTotal                = d.SaldoTotal,
                SaldoDisponible           = d.SaldoDisponible,
                Crp                       = d.Crp,
                Area                      = a.Nombre,
                Valor_Convenio            = d.Valor_Convenio,
                Convenio                  = d.Convenio,
                Decreto                   = dec.Identificacion,
                RubroPresupuestal         = new RubroPresupuestal()
                {
                    RubroPresupuestalId = r.RubroPresupuestalId,
                    Identificacion      = r.Identificacion,
                    Nombre = r.Nombre,
                }
            })
                        .Distinct()
                        .OrderBy(x => x.RubroPresupuestal.Identificacion)
                        .ToListAsync();

            return(lista);
        }
Beispiel #2
0
        public async Task <PagedList <DetalleCDPDto> > ObtenerListaPlanAdquisicionReporte(int usuarioId, int?rubroPresupuestalId, UserParams userParams)
        {
            IOrderedQueryable <DetalleCDPDto> lista = null;
            var listaPerfilxUsuario = await _context.UsuarioPerfil.Where(x => x.UsuarioId == usuarioId).ToListAsync();

            if (listaPerfilxUsuario != null && listaPerfilxUsuario.Count > 0)
            {
                var listaPerfilId = listaPerfilxUsuario.Select(x => x.PerfilId);

                if (listaPerfilId.Contains((int)PerfilUsuario.Administrador) ||
                    listaPerfilId.Contains((int)PerfilUsuario.CoordinadorFinanciero))
                {
                    #region Administrador o Coordinador Financiero

                    lista = (from d in _context.PlanAdquisicion
                             join u in _context.Usuario on d.UsuarioId equals u.UsuarioId
                             join de in _context.Dependencia on new { d.DependenciaId } equals new { de.DependenciaId } into DependenciaDetalle
                             from de in DependenciaDetalle.DefaultIfEmpty()
                             join a in _context.Area on new { d.AreaId } equals new { a.AreaId } into AreaDetalle
                             from a in AreaDetalle.DefaultIfEmpty()
                             where d.PciId == u.PciId
                             //where c.Instancia == (int)TipoDocumento.Cdp
                             where d.PciId == userParams.PciId
                             where d.RubroPresupuestalId == rubroPresupuestalId || rubroPresupuestalId == null

                             select new DetalleCDPDto()
                    {
                        DetalleCdpId = d.PlanAdquisicionId,
                        PlanDeCompras = d.PlanDeCompras,
                        Cdp = d.Cdp,

                        ValorAct = d.ValorAct,
                        ValorModif = 0,
                        SaldoAct = d.SaldoAct,
                        ValorCDP = d.ValorCDP,
                        ValorRP = d.ValorRP,
                        ValorOB = d.ValorOB,
                        ValorOP = d.ValorOP,

                        Responsable = d.UsuarioId > 0 ? u.Nombres + ' ' + u.Apellidos : string.Empty,
                        Dependencia = d.DependenciaId > 0 ? de.Nombre : string.Empty,
                        AplicaContratoDescripcion = d.AplicaContrato ? "SI" : "NO",
                        Area = d.AreaId > 0 ? a.Nombre : string.Empty,
                    })
                            .Distinct()
                            .OrderBy(x => x.Cdp);

                    #endregion Administrador o Coordinador Financiero
                }
                else
                {
                    #region Usuario

                    lista = (from d in _context.PlanAdquisicion
                             join u in _context.Usuario on d.UsuarioId equals u.UsuarioId
                             join de in _context.Dependencia on new { d.DependenciaId } equals new { de.DependenciaId } into DependenciaDetalle
                             from de in DependenciaDetalle.DefaultIfEmpty()
                             join a in _context.Area on new { d.AreaId } equals new { a.AreaId } into AreaDetalle
                             from a in AreaDetalle.DefaultIfEmpty()
                             where d.PciId == u.PciId
                             //where c.Instancia == (int)TipoDocumento.Cdp
                             where d.UsuarioId == usuarioId
                             where d.PciId == userParams.PciId
                             where d.RubroPresupuestalId == rubroPresupuestalId || rubroPresupuestalId == null

                             select new DetalleCDPDto()
                    {
                        DetalleCdpId = d.PlanAdquisicionId,
                        PlanDeCompras = d.PlanDeCompras,
                        Cdp = d.Cdp,

                        ValorAct = d.ValorAct,
                        ValorModif = 0,
                        SaldoAct = d.SaldoAct,
                        ValorCDP = d.ValorCDP,
                        ValorRP = d.ValorRP,
                        ValorOB = d.ValorOB,
                        ValorOP = d.ValorOP,

                        Responsable = d.UsuarioId > 0 ? u.Nombres + ' ' + u.Apellidos : string.Empty,
                        Dependencia = d.DependenciaId > 0 ? de.Nombre : string.Empty,
                        AplicaContratoDescripcion = d.AplicaContrato ? "SI" : "NO",
                        Area = d.AreaId > 0 ? a.Nombre : string.Empty,
                    })
                            .Distinct()
                            .OrderBy(x => x.Cdp);

                    #endregion Usuario
                }
            }

            return(await PagedList <DetalleCDPDto> .CreateAsync(lista, userParams.PageNumber, userParams.PageSize));
        }
Beispiel #3
0
        //Para solicitud inicial no tiene CDP asociado
        public async Task <PagedList <DetalleCDPDto> > ObtenerListaPlanAnualAdquisicionSinCDP(int usuarioId, int?rubroPresupuestalId, UserParams userParams)
        {
            IOrderedQueryable <DetalleCDPDto> lista = null;
            var listaPerfilxUsuario = await _context.UsuarioPerfil.Where(x => x.UsuarioId == usuarioId).ToListAsync();

            if (listaPerfilxUsuario != null && listaPerfilxUsuario.Count > 0)
            {
                var listaPerfilId = listaPerfilxUsuario.Select(x => x.PerfilId);

                if (listaPerfilId.Contains((int)PerfilUsuario.Administrador) || listaPerfilId.Contains((int)PerfilUsuario.CoordinadorFinanciero))
                {
                    #region Administrador o Coordinador Financiero

                    lista = (from d in _context.PlanAdquisicion
                             join u in _context.Usuario on d.UsuarioId equals u.UsuarioId
                             join r in _context.RubroPresupuestal on d.RubroPresupuestalId equals r.RubroPresupuestalId
                             join dec in _context.RubroPresupuestal on d.DecretoId equals dec.RubroPresupuestalId
                             join ag in _context.ActividadGeneral on new { d.ActividadGeneralId } equals new { ag.ActividadGeneralId } into ActividadGeneralDetalle
                             from acGe in ActividadGeneralDetalle.DefaultIfEmpty()
                             join rp in _context.RubroPresupuestal on acGe.RubroPresupuestalId equals rp.RubroPresupuestalId into RubroActividadGeneral
                             from rpAG in RubroActividadGeneral.DefaultIfEmpty()
                             join ae in _context.ActividadEspecifica on new { d.ActividadEspecificaId } equals new { ae.ActividadEspecificaId } into ActividadEspecificaDetalle
                             from acEs in ActividadEspecificaDetalle.DefaultIfEmpty()
                             join de in _context.Dependencia on new { d.DependenciaId } equals new { de.DependenciaId } into DependenciaDetalle
                             from de in DependenciaDetalle.DefaultIfEmpty()
                             join a in _context.Area on new { d.AreaId } equals new { a.AreaId } into AreaDetalle
                             from a in AreaDetalle.DefaultIfEmpty()
                             where d.RubroPresupuestalId == rubroPresupuestalId || rubroPresupuestalId == null
                             where d.PciId == u.PciId
                             where d.PciId == acGe.PciId
                             where d.PciId == acEs.PciId
                             where d.PciId == a.PciId
                             where d.PciId == userParams.PciId
                             where d.Cdp == 0
                             where d.SaldoAct > 0

                             select new DetalleCDPDto()
                    {
                        DetalleCdpId = d.PlanAdquisicionId,
                        PcpId = d.PcpId,
                        IdArchivo = d.IdArchivo,
                        Cdp = d.Cdp,
                        Proy = d.Proy,
                        Prod = d.Prod,
                        Proyecto = rpAG.Nombre,
                        ActividadBpin = acEs.Nombre,
                        PlanDeCompras = d.PlanDeCompras,
                        Responsable = u.Nombres + " " + u.Apellidos,
                        Dependencia = de.Nombre,
                        ValorAct = d.ValorAct,
                        SaldoAct = d.SaldoAct,
                        ValorRP = d.ValorRP,
                        ValorOB = d.ValorOB,
                        ValorOP = d.ValorOP,
                        AplicaContratoDescripcion = d.AplicaContrato ? "SI" : "NO",
                        SaldoTotal = d.SaldoTotal,
                        SaldoDisponible = d.SaldoDisponible,
                        Crp = d.Crp,
                        Area = a.Nombre,
                        Valor_Convenio = d.Valor_Convenio,
                        Convenio = d.Convenio,
                        Decreto = dec.Identificacion,
                        RubroPresupuestal = new RubroPresupuestal()
                        {
                            RubroPresupuestalId = r.RubroPresupuestalId,
                            Identificacion = r.Identificacion,
                            Nombre = r.Nombre,
                        }
                    })
                            .Distinct()
                            .OrderBy(x => x.RubroPresupuestal.Identificacion);
                    #endregion Administrador o Coordinador Financiero
                }
                else
                {
                    #region Usuario

                    lista = (from d in _context.PlanAdquisicion
                             join u in _context.Usuario on d.UsuarioId equals u.UsuarioId
                             join r in _context.RubroPresupuestal on d.RubroPresupuestalId equals r.RubroPresupuestalId
                             join dec in _context.RubroPresupuestal on d.DecretoId equals dec.RubroPresupuestalId
                             join ag in _context.ActividadGeneral on new { d.ActividadGeneralId } equals new { ag.ActividadGeneralId } into ActividadGeneralDetalle
                             from acGe in ActividadGeneralDetalle.DefaultIfEmpty()
                             join rp in _context.RubroPresupuestal on acGe.RubroPresupuestalId equals rp.RubroPresupuestalId into RubroActividadGeneral
                             from rpAG in RubroActividadGeneral.DefaultIfEmpty()
                             join ae in _context.ActividadEspecifica on new { d.ActividadEspecificaId } equals new { ae.ActividadEspecificaId } into ActividadEspecificaDetalle
                             from acEs in ActividadEspecificaDetalle.DefaultIfEmpty()
                             join de in _context.Dependencia on new { d.DependenciaId } equals new { de.DependenciaId } into DependenciaDetalle
                             from de in DependenciaDetalle.DefaultIfEmpty()
                             join a in _context.Area on new { d.AreaId } equals new { a.AreaId } into AreaDetalle
                             from a in AreaDetalle.DefaultIfEmpty()
                             where d.UsuarioId == usuarioId
                             where d.RubroPresupuestalId == rubroPresupuestalId || rubroPresupuestalId == null
                             where d.PciId == u.PciId
                             where d.PciId == acGe.PciId
                             where d.PciId == acEs.PciId
                             where d.PciId == a.PciId
                             where d.PciId == userParams.PciId
                             where d.Cdp == 0

                             select new DetalleCDPDto()
                    {
                        DetalleCdpId = d.PlanAdquisicionId,
                        PcpId = d.PcpId,
                        IdArchivo = d.IdArchivo,
                        Cdp = d.Cdp,
                        Proy = d.Proy,
                        Prod = d.Prod,
                        Proyecto = rpAG.Nombre,
                        ActividadBpin = acEs.Nombre,
                        PlanDeCompras = d.PlanDeCompras,
                        Responsable = u.Nombres + " " + u.Apellidos,
                        Dependencia = de.Nombre,
                        ValorAct = d.ValorAct,
                        SaldoAct = d.SaldoAct,
                        ValorRP = d.ValorRP,
                        ValorOB = d.ValorOB,
                        ValorOP = d.ValorOP,
                        AplicaContratoDescripcion = d.AplicaContrato ? "SI" : "NO",
                        SaldoTotal = d.SaldoTotal,
                        SaldoDisponible = d.SaldoDisponible,
                        Crp = d.Crp,
                        Area = a.Nombre,
                        Valor_Convenio = d.Valor_Convenio,
                        Convenio = d.Convenio,
                        Decreto = dec.Identificacion,
                        RubroPresupuestal = new RubroPresupuestal()
                        {
                            RubroPresupuestalId = r.RubroPresupuestalId,
                            Identificacion = r.Identificacion,
                            Nombre = r.Nombre,
                        }
                    })
                            .Distinct()
                            .OrderBy(x => x.RubroPresupuestal.Identificacion);

                    #endregion Usuario
                }
            }


            return(await PagedList <DetalleCDPDto> .CreateAsync(lista, userParams.PageNumber, userParams.PageSize));
        }
Beispiel #4
0
        private async Task <PagedList <DetalleCDPDto> > ObtenerListaPlanAnualAdquisicionConCDP(int usuarioId, int numeroCdp, UserParams userParams)
        {
            var lista = (from d in _context.PlanAdquisicion
                         join i in _context.RubroPresupuestal on d.RubroPresupuestalId equals i.RubroPresupuestalId
                         join dec in _context.RubroPresupuestal on d.DecretoId equals dec.RubroPresupuestalId
                         join c in _context.CDP on d.Cdp equals c.Cdp
                         join u in _context.Usuario on d.UsuarioId equals u.UsuarioId
                         join ag in _context.ActividadGeneral on new { d.ActividadGeneralId } equals new { ag.ActividadGeneralId } into ActividadGeneralDetalle
                         from acGe in ActividadGeneralDetalle.DefaultIfEmpty()
                         join rp in _context.RubroPresupuestal on acGe.RubroPresupuestalId equals rp.RubroPresupuestalId into RubroActividadGeneral
                         from ruAG in RubroActividadGeneral.DefaultIfEmpty()
                         join ae in _context.ActividadEspecifica on new { d.ActividadEspecificaId } equals new { ae.ActividadEspecificaId } into ActividadEspecificaDetalle
                         from acEs in ActividadEspecificaDetalle.DefaultIfEmpty()
                         join de in _context.Dependencia on new { d.DependenciaId } equals new { de.DependenciaId } into DependenciaDetalle
                         from de in DependenciaDetalle.DefaultIfEmpty()
                         join a in _context.Area on new { d.AreaId } equals new { a.AreaId } into AreaDetalle
                         from a in AreaDetalle.DefaultIfEmpty()
                         where c.PciId == acGe.PciId
                         where c.PciId == acEs.PciId
                         where c.PciId == u.PciId
                         where d.RubroPresupuestalId == c.RubroPresupuestalId
                         where c.Instancia == (int)TipoDocumento.Cdp
                         where d.UsuarioId == usuarioId
                         where d.Cdp == numeroCdp
                         select new DetalleCDPDto()
            {
                DetalleCdpId = d.PlanAdquisicionId,
                PcpId = d.PcpId,
                IdArchivo = d.IdArchivo,
                Cdp = d.Cdp,
                Proy = d.Proy,
                Prod = d.Prod,
                Proyecto = ruAG.Nombre,
                ActividadBpin = acEs.Nombre,
                PlanDeCompras = d.PlanDeCompras,
                Responsable = u.Nombres + ' ' + u.Apellidos,
                Dependencia = de.Nombre,
                ValorCDP = c.ValorTotal,
                SaldoCDP = c.SaldoActual,
                ValorAct = d.ValorAct,
                SaldoAct = d.SaldoAct,
                ValorRP = d.ValorRP,
                ValorOB = d.ValorOB,
                ValorOP = d.ValorOP,
                AplicaContratoDescripcion = d.AplicaContrato ? "SI" : "NO",
                SaldoTotal = d.SaldoTotal,
                SaldoDisponible = d.SaldoDisponible,
                Area = a.Nombre,
                Valor_Convenio = d.Valor_Convenio,
                Convenio = d.Convenio,
                Decreto = dec.Identificacion,
                RubroPresupuestal = new RubroPresupuestal()
                {
                    RubroPresupuestalId = i.RubroPresupuestalId,
                    Identificacion = i.Identificacion,
                    Nombre = i.Nombre,
                }
            })
                        .Distinct()
                        .OrderBy(x => x.RubroPresupuestal.Identificacion);

            return(await PagedList <DetalleCDPDto> .CreateAsync(lista, userParams.PageNumber, userParams.PageSize));
        }