Exemplo n.º 1
0
        public async Task <ICollection <CargaObligacionDto> > ObtenerListaCargaObligacionArchivoCabecera(int usuarioId, string estado, int pciId)
        {
            var fechaLimitePago = _holiday.GetNextWorkingDay(System.DateTime.Now, 2);
            // DateTime dateValue = new DateTime(2021, 10, 29);
            // var fechaLimitePago = _holiday.GetNextWorkingDay(dateValue, 2);
            var usuario = (from u in _context.Usuario
                           join c in _context.Cargo on u.CargoId equals c.CargoId
                           where u.UsuarioId == usuarioId
                           select new
            {
                Nombres = u.Nombres,
                Apellidos = u.Apellidos,
                CargoDescripcion = c.Nombre,
            }
                           ).FirstOrDefault();

            var pci = (from p in _context.Pci
                       where p.PciId == pciId
                       select p).FirstOrDefault();

            var lista = await(from co in _context.CargaObligacion
                              join rp in _context.RubroPresupuestal on co.RubroPresupuestalId equals rp.RubroPresupuestalId
                              join ff in _context.FuenteFinanciacion on co.FuenteFinanciacionId equals ff.FuenteFinanciacionId
                              join sf in _context.SituacionFondo on co.SituacionFondoId equals sf.SituacionFondoId
                              join re in _context.RecursoPresupuestal on co.RecursoPresupuestalId equals re.RecursoPresupuestalId
                              join td in _context.TipoDocumentoIdentidad on co.TipoDocumentoIdentidadId equals td.TipoDocumentoIdentidadId
                              join tds in _context.TipoDocumentoSoporte on co.TipoDocumentoSoporteId equals tds.TipoDocumentoSoporteId
                              join nap in _context.NivelAgrupacionPac on new
            {
                RubroPresupuestalId   = rp.PadreRubroId.Value,
                SituacionFondoId      = co.SituacionFondoId.Value,
                FuenteFinanciacionId  = co.FuenteFinanciacionId.Value,
                RecursoPresupuestalId = co.RecursoPresupuestalId.Value,
                pci = co.PciId
            } equals
                              new
            {
                RubroPresupuestalId   = nap.RubroPresupuestalId,
                SituacionFondoId      = nap.SituacionFondoId,
                FuenteFinanciacionId  = nap.FuenteFinanciacionId,
                RecursoPresupuestalId = nap.RecursoPresupuestalId,
                pci = nap.PciId
            }
                              where co.PciId == pciId
                              where co.Estado.ToLower() == estado.ToLower()

                              select new CargaObligacionDto()
            {
                FechaRegistro          = System.DateTime.Now,
                FechaPago              = co.FechaRegistro,
                FechaLimitePago        = (co.ValorActual - co.ValorDeduccion > 0) ? fechaLimitePago : System.DateTime.Now,
                Obligacion             = co.Obligacion,
                ValorActual            = co.ValorActual,
                CodigoTipoBeneficiario = (pci.Nit == co.NumeroIdentificacion) ? "P" : "B",
                MedioPago              = (co.MedioPago.ToLower() == "abono en cuenta") ? ("AC") :
                                         (((co.MedioPago.ToLower() == "giro") ? ("GR") :
                                           (((co.MedioPago.ToLower() == "cheque") ? ("CH") :
                                             (((co.MedioPago.ToLower() == "efectivo") ? ("EF") : (string.Empty))))))),
                CodigoPosicionPac = nap.Identificacion,
                CodigoDependenciaAfectacionPac = nap.DependenciaAfectacionPAC,
                CodigoPciTesoreria             = nap.IdentificacionTesoreria,
                Tercero = new TerceroDto()
                {
                    TipoDocumentoIdentidad = td.Codigo,
                    NumeroIdentificacion   = co.NumeroIdentificacion,
                    Nombre = co.NombreRazonSocial
                },
                Pci = new Pci()
                {
                    Identificacion = pci.Identificacion,
                },
                NumeroCuenta               = co.NumeroCuenta,
                TipoCuenta                 = co.TipoCuenta.ToLower() == "ahorro" ? "AHR" : "CRR",
                TipoDocSoporteCompromiso   = tds.Codigo,
                NumeroDocSoporteCompromiso = co.NumeroDocSoporteCompromiso,
                FechaDocSoporteCompromiso  = co.FechaDocSoporteCompromiso,
                NombreFuncionario          = usuario.Nombres + " " + usuario.Apellidos,
                CargoFuncionario           = usuario.CargoDescripcion,
                Concepto = co.Concepto.Length > 200 ? co.Concepto.Substring(0, 200) : co.Concepto,
            })
                        .Distinct()
                        .ToListAsync();

            return(lista);
        }