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()); }
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); }