示例#1
0
        public async Task <ICollection <ClavePresupuestalContableDto> > ObtenerListaClavePresupuestalContable(int pciId)
        {
            var lista = (from cla in _context.ClavePresupuestalContable
                         join c in _context.CDP on cla.Crp equals c.Crp
                         join t in _context.Tercero on c.TerceroId equals t.TerceroId
                         join rp in _context.RubroPresupuestal on cla.RubroPresupuestalId equals rp.RubroPresupuestalId
                         join rc in _context.RelacionContable on cla.RelacionContableId equals rc.RelacionContableId
                         join tg in _context.TipoGasto on rc.TipoGastoId equals tg.TipoGastoId into TipoGasto
                         from tiGa in TipoGasto.DefaultIfEmpty()
                         join cc in _context.CuentaContable on rc.CuentaContableId equals cc.CuentaContableId into CuentaContable
                         from cuCo in CuentaContable.DefaultIfEmpty()
                         join ac in _context.AtributoContable on rc.AtributoContableId equals ac.AtributoContableId into AtributoContable
                         from atrCon in AtributoContable.DefaultIfEmpty()
                         join up in _context.UsoPresupuestal on cla.UsoPresupuestalId equals up.UsoPresupuestalId into UsoPresupuestal
                         from usoPre in UsoPresupuestal.DefaultIfEmpty()
                         where c.Instancia == (int)TipoDocumento.Compromiso
                         where cla.PciId == c.PciId
                         where cla.PciId == rc.PciId
                         where cla.PciId == usoPre.PciId
                         where cla.PciId == pciId
                         where rp.RubroPresupuestalId == c.RubroPresupuestalId
                         select new ClavePresupuestalContableDto()
            {
                Crp = c.Crp,
                Detalle4 = c.Detalle4,

                Tercero = new ValorSeleccion()
                {
                    Codigo = t.NumeroIdentificacion,
                    Nombre = t.Nombre,
                },
                RubroPresupuestal = new ValorSeleccion()
                {
                    Codigo = rp.Identificacion,
                },
                RelacionContableDto = new RelacionContable()
                {
                    TipoOperacion = rc.TipoOperacion,
                    UsoContable = rc.UsoContable,
                    TipoGasto = new TipoGasto()
                    {
                        Codigo = rc.TipoGastoId > 0 ? tiGa.Codigo : string.Empty,
                    },
                    AtributoContable = new AtributoContable()
                    {
                        Nombre = rc.AtributoContableId > 0 ? atrCon.Nombre : string.Empty
                    }
                },
                CuentaContable = new ValorSeleccion()
                {
                    Codigo = cuCo.NumeroCuenta,
                    Nombre = cuCo.DescripcionCuenta
                },
                UsoPresupuestal = new ValorSeleccion()
                {
                    Codigo = cla.UsoPresupuestalId > 0 ? usoPre.Identificacion : string.Empty,
                    Nombre = cla.UsoPresupuestalId > 0 ? usoPre.Nombre : string.Empty,
                },
            })
                        .Distinct()
                        .OrderBy(c => c.Crp);

            return(await lista.ToListAsync());
        }
示例#2
0
        public async Task <ICollection <ClavePresupuestalContableDto> > ObtenerClavesPresupuestalContableXCompromiso(int crp, int pciId)
        {
            var detalles = await(from cla in _context.ClavePresupuestalContable
                                 join rp in _context.RubroPresupuestal on cla.RubroPresupuestalId equals rp.RubroPresupuestalId
                                 join c in _context.CDP on cla.Crp equals c.Crp
                                 join t in _context.Tercero on c.TerceroId equals t.TerceroId
                                 join sf in _context.SituacionFondo on c.Detalle9 equals sf.Nombre
                                 join ff in _context.FuenteFinanciacion on c.Detalle8 equals ff.Nombre
                                 join r in _context.RecursoPresupuestal on c.Detalle10 equals r.Codigo
                                 join rc in _context.RelacionContable on cla.RelacionContableId equals rc.RelacionContableId
                                 join cc in _context.CuentaContable on rc.CuentaContableId equals cc.CuentaContableId into CuentaContable
                                 from cuCo in CuentaContable.DefaultIfEmpty()
                                 join up in _context.UsoPresupuestal on new { UsoPresupuestalId = cla.UsoPresupuestalId.Value, PciId = cla.PciId.Value } equals
                                 new { UsoPresupuestalId = up.UsoPresupuestalId, PciId = up.PciId.Value } into UsoPresupuestal
                                 from usoPre in UsoPresupuestal.DefaultIfEmpty()
                                 where rp.RubroPresupuestalId == c.RubroPresupuestalId
                                 where c.Instancia == (int)TipoDocumento.Compromiso
                                 where cla.Crp == crp
                                 where cla.Dependencia == c.Detalle2
                                 where cla.PciId == c.PciId
                                 where cla.PciId == rc.PciId
                                 where cla.PciId == pciId

                                 select new ClavePresupuestalContableDto()
            {
                ClavePresupuestalContableId = cla.ClavePresupuestalContableId,
                CdpId                  = c.CdpId,
                Crp                    = c.Crp,
                Dependencia            = c.Detalle2,
                DependenciaDescripcion = c.Detalle2 + " " + (c.Detalle3.Length > 100 ? c.Detalle3.Substring(0, 100) + "..." : c.Detalle3),
                RubroPresupuestal      = new ValorSeleccion()
                {
                    Id     = rp.RubroPresupuestalId,
                    Codigo = rp.Identificacion,
                    Nombre = rp.Nombre,
                },
                Tercero = new ValorSeleccion()
                {
                    Id     = t.TerceroId,
                    Codigo = t.NumeroIdentificacion,
                    Nombre = t.Nombre,
                },
                FuenteFinanciacion = new ValorSeleccion()
                {
                    Id     = ff.FuenteFinanciacionId,
                    Nombre = c.Detalle8
                },
                SituacionFondo = new ValorSeleccion()
                {
                    Id     = sf.SituacionFondoId,
                    Nombre = c.Detalle9
                },
                RecursoPresupuestal = new ValorSeleccion()
                {
                    Id     = r.RecursoPresupuestalId,
                    Codigo = c.Detalle10,
                    Nombre = r.Nombre
                },
                RelacionContable = new ValorSeleccion()
                {
                    Id     = cla.RelacionContableId > 0 ? cla.RelacionContableId : 0,
                    Codigo = cuCo.NumeroCuenta,
                    Nombre = cuCo.DescripcionCuenta
                },
                UsoPresupuestal = new ValorSeleccion()
                {
                    Id     = cla.UsoPresupuestalId.HasValue ? cla.UsoPresupuestalId.Value : 0,
                    Codigo = cla.UsoPresupuestalId > 0 ? usoPre.Identificacion : string.Empty,
                    Nombre = cla.UsoPresupuestalId > 0 ? usoPre.Nombre : string.Empty,
                },
            })
                           .Distinct()
                           .OrderBy(rp => rp.RubroPresupuestal.Codigo)
                           .ToListAsync();

            return(detalles);
        }