public async Task <ICollection <DetalleLiquidacionParaArchivo> > ObtenerCabeceraParaArchivoObligacion(List <int> listaLiquidacionId, int pciId) { List <DetalleLiquidacionParaArchivo> listaFinal = new List <DetalleLiquidacionParaArchivo>(); string identificacionPCI = string.Empty; var pci = await _listaRepository.ObtenerPci(pciId); if (pci != null) { identificacionPCI = pci.Identificacion; } var lista = await(from dl in _context.DetalleLiquidacion join t in _context.Tercero on dl.TerceroId equals t.TerceroId join p in _context.ParametroLiquidacionTercero on dl.TerceroId equals p.TerceroId into parametroLiquidacion from pl in parametroLiquidacion.DefaultIfEmpty() join tc in _context.TipoCuentaXPagar on pl.TipoCuentaXPagarId equals tc.TipoCuentaXPagarId into CuentaPorPagar from tiCu in CuentaPorPagar.DefaultIfEmpty() join td in _context.TipoDocumentoSoporte on pl.TipoDocumentoSoporteId equals td.TipoDocumentoSoporteId into TipoDocumento from tiDo in TipoDocumento.DefaultIfEmpty() where dl.PciId == pl.PciId where (listaLiquidacionId.Contains(dl.DetalleLiquidacionId)) select new DetalleLiquidacionParaArchivo() { FechaActual = System.DateTime.Now.ToString("yyyy/MM/dd"), PCI = identificacionPCI, Crp = dl.Crp, Dip = "NO", TipoCuentaXPagarCodigo = pl.TipoCuentaXPagarId > 0 ? tiCu.Codigo : string.Empty, ValorIva = decimal.Round(dl.ValorIva, 2, MidpointRounding.AwayFromZero), TipoDocumentoSoporteCodigo = pl.TipoDocumentoSoporteId > 0 ? tiDo.Codigo : string.Empty, NumeroFactura = dl.NumeroFactura, ConstanteExpedidor = "11", ConstanteCargo = "SUPERVISOR", NombreSupervisor = dl.NombreSupervisor, TextoComprobanteContable = dl.TextoComprobanteContable.Length > 220 ? dl.TextoComprobanteContable.Substring(0, 220) : dl.TextoComprobanteContable, ValorTotal = decimal.Round(dl.ValorTotal, 2, MidpointRounding.AwayFromZero), FechaRegistro = dl.FechaRegistro.Value, }) .ToListAsync(); if (lista != null && lista.Count > 0) { listaFinal = lista.OrderBy(x => x.FechaRegistro).ToList(); } return(listaFinal); }