private void FrmCreditos_Shown(object sender, EventArgs e)
        {
            Nuevo();
            Financiamiento f = _entidades.Financiamientos.Single(fin => fin.Tipo == "Grupal");

            txtInteresG.EditValue   = f.Interes;
            txtProrrogaG.EditValue  = f.Prorroga;
            txtRecargoG.EditValue   = f.Recargo;
            txtBaseG.EditValue      = f.Enganche;
            dtpFechaInicio.DateTime = DateTime.Today.Date;
        }
        public void Nuevo()
        {
            new ManejadorControles().DesectivarTextBox(gpoContenedor, true);
            new ManejadorControles().LimpiarControles(gpoContenedor);
            cboPlazo.Focus();
            dtIntegrantesGrupo.Rows.Clear();
            dtpFechaCredito.DateTime = DateTime.Today.Date;
            dtpFechaInicio.DateTime  = DateTime.Today.Date;
            Financiamiento f = _entidades.Financiamientos.Single(fin => fin.Tipo == "Grupal");

            txtInteresG.EditValue      = f.Interes;
            txtProrrogaG.EditValue     = f.Prorroga;
            txtRecargoG.EditValue      = f.Recargo;
            txtBaseG.EditValue         = f.Enganche;
            cboPlazo.SelectedIndex     = 0;
            txtNumPlazos.SelectedIndex = 0;
            //txtTotalAPagar.EditValue = 0;
            //txtPagoMensual.EditValue = 0;
            //throw new NotImplementedException();
            cboPlazo.Enabled = txtNumPlazos.Enabled = true;
        }
        private void cboTipoFinanciamiento_SelectedIndexChanged(object sender, EventArgs e)
        {
            _dtCronograma.Rows.Clear();
            if (cboTipoFinanciamiento.EditValue == null)
            {
                return;
            }
            switch (cboTipoFinanciamiento.Text)
            {
            case "Hipotecario":
                Financiamiento fH = _entidades.Financiamientos.Single(f => f.Tipo == cboTipoFinanciamiento.Text);
                txtFolioFinanciamiento.EditValue = (_entidades.Prestamos.Count(f => f.Tipo == cboTipoFinanciamiento.Text) + 1);
                txtPorcInteres.EditValue         = fH.Interes;
                txtProrroga.EditValue            = fH.Prorroga;
                txtPorcRecargo.EditValue         = fH.Recargo;
                lblEnganche.Visible     = false;
                lblPorcEnganche.Visible = false;
                txtPorcEnganche.Visible = false;
                txtEnganche.Visible     = false;
                txtEnganche.EditValue   = 0;
                CalcularPagoHipotecario();
                _cveTipoFinanciamiento = fH.Clave;
                break;

            case "AutoFinanciamiento":
            case "MotoFinanciamiento":
                Financiamiento fA = _entidades.Financiamientos.Single(f => f.Tipo == "AutoFinanciamiento");
                txtFolioFinanciamiento.EditValue = (_entidades.Prestamos.Count(f => f.Tipo == cboTipoFinanciamiento.Text) + 1);
                txtPorcInteres.EditValue         = fA.Interes;
                txtProrroga.EditValue            = fA.Prorroga;
                txtPorcRecargo.EditValue         = fA.Recargo;
                txtPorcEnganche.EditValue        = fA.Enganche;
                lblEnganche.Visible     = true;
                lblPorcEnganche.Visible = true;
                txtPorcEnganche.Visible = true;
                txtEnganche.Visible     = true;
                decimal enganche = Convert.ToDecimal(txtCantidadFinancimiento.EditValue) * Convert.ToDecimal(txtPorcEnganche.EditValue);
                txtEnganche.EditValue = enganche;
                CalcularPagoAutoMoto();
                _cveTipoFinanciamiento = fA.Clave;
                break;

            case "Personal":
                Financiamiento fP = _entidades.Financiamientos.Single(f => f.Tipo == cboTipoFinanciamiento.Text);
                txtFolioFinanciamiento.EditValue = (_entidades.Prestamos.Count(f => f.Tipo == cboTipoFinanciamiento.Text) + 1);
                txtPorcInteres.EditValue         = fP.Interes;
                txtProrroga.EditValue            = fP.Prorroga;
                txtPorcRecargo.EditValue         = fP.Recargo;
                lblEnganche.Visible     = false;
                lblPorcEnganche.Visible = false;
                txtPorcEnganche.Visible = false;
                txtEnganche.Visible     = false;
                txtEnganche.EditValue   = 0;
                CalcularPagoHipotecario();
                _cveTipoFinanciamiento = fP.Clave;
                break;

            case "Personal Fijo":
                Financiamiento fPF = _entidades.Financiamientos.Single(f => f.Tipo == cboTipoFinanciamiento.Text);
                txtFolioFinanciamiento.EditValue = (_entidades.Prestamos.Count(f => f.Tipo == cboTipoFinanciamiento.Text) + 1);
                txtPorcInteres.EditValue         = fPF.Interes;
                txtProrroga.EditValue            = fPF.Prorroga;
                txtPorcRecargo.EditValue         = fPF.Recargo;
                lblEnganche.Visible     = false;
                lblPorcEnganche.Visible = false;
                txtPorcEnganche.Visible = false;
                txtEnganche.Visible     = false;
                txtEnganche.EditValue   = 0;
                CalcularPagoAutoMoto();
                _cveTipoFinanciamiento = fPF.Clave;
                break;

            default:
                txtTotalAPagar.EditValue = null;
                txtPagoMensual.EditValue = null;
                break;
            }
        }
Example #4
0
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            TechoFinanciero        obj;
            Financiamiento         fin;
            List <Financiamiento>  listaFinanciamientos;
            List <TechoFinanciero> listaTechosFin;

            int fondo            = int.Parse(ddlFondo.SelectedValue);
            int modalidad        = int.Parse(ddlModalidad.SelectedValue);
            int año              = int.Parse(ddlAño.SelectedValue);
            int idFinanciamiento = 0;

            listaFinanciamientos = uow.FinanciamientoBusinessLogic.Get(p => p.FondoId == fondo && p.ModalidadFinanciamientoId == modalidad && p.AñoId == año).ToList();

            //buscamos el financiamiento seleccionado y si no existe lo creamos
            if (listaFinanciamientos.Count == 0)
            {
                fin = new Financiamiento();

                fin.FondoId = fondo;
                fin.ModalidadFinanciamientoId = modalidad;
                fin.AñoId = año;

                uow.FinanciamientoBusinessLogic.Insert(fin);
                uow.SaveChanges();

                idFinanciamiento = fin.Id;
            }
            else
            {
                foreach (Financiamiento aux in listaFinanciamientos)
                {
                    idFinanciamiento = aux.Id;
                }
            }



            uow.Errors.Clear();
            listaTechosFin = uow.TechoFinancieroBusinessLogic.Get(p => p.EjercicioId == idEjercicio && p.FinanciamientoId == idFinanciamiento).ToList();

            if (listaTechosFin.Count == 0)//Nuevo Techo Financiero
            {
                obj = new TechoFinanciero();

                obj.EjercicioId      = this.idEjercicio;
                obj.FinanciamientoId = idFinanciamiento;
                obj.Importe          = decimal.Parse(txtImporte.Value);

                uow.TechoFinancieroBusinessLogic.Insert(obj);
            }
            else
            {
                uow.Errors.Add("El financiamiento que quiere registrar ya ha sido capturado anteriormente");
            }

            if (uow.Errors.Count == 0)
            {
                uow.SaveChanges();
            }


            if (uow.Errors.Count == 0)
            {
                BindGrid();
                txtImporte.Value = "0";

                ModoLista();

                divMsgSuccess.Style.Add("display", "block");
                lblMensajeSuccess.Text = "El Techo Financiero ha sido registrado correctamente";
            }
            else
            {
                divMsgSuccess.Style.Add("display", "none");
                divMsgFail.Style.Add("display", "block");

                string mensaje;
                mensaje = string.Empty;
                foreach (string cad in uow.Errors)
                {
                    mensaje = mensaje + cad + "<br>";
                }

                lblMensajeFail.Text = mensaje;
            }
        }
        private void GuardarFinanciamiento()
        {
            try
            {
                if ((int)txtClaveH.EditValue == 0)
                {
                    Financiamiento finaH = new Financiamiento
                    {
                        Tipo        = "Hipotecario",
                        Interes     = Convert.ToDecimal(txtInteresH.EditValue),
                        Prorroga    = Convert.ToInt32(txtProrrogaH.EditValue),
                        Recargo     = Convert.ToDecimal(txtRecargoH.EditValue),
                        Vencimiento = Convert.ToInt32(txtVencimientoH.EditValue)
                    };
                    _entidades.Financiamientos.InsertOnSubmit(finaH);
                    txtClaveH.EditValue = finaH.Clave;
                }
                else
                {
                    Financiamiento finaH = _entidades.Financiamientos.FirstOrDefault(f => f.Clave == Convert.ToInt32(txtClaveH.EditValue));
                    if (finaH != null)
                    {
                        finaH.Interes     = Convert.ToDecimal(txtInteresH.EditValue);
                        finaH.Prorroga    = Convert.ToInt32(txtProrrogaH.EditValue);
                        finaH.Recargo     = Convert.ToDecimal(txtRecargoH.EditValue);
                        finaH.Vencimiento = Convert.ToInt32(txtVencimientoH.EditValue);
                    }
                }
                if ((int)txtClaveA.EditValue == 0)
                {
                    Financiamiento finaA = new Financiamiento
                    {
                        Tipo        = "AutoFinanciamiento",
                        Interes     = Convert.ToDecimal(txtInteresA.EditValue),
                        Prorroga    = Convert.ToInt32(txtProrrogaA.EditValue),
                        Recargo     = Convert.ToDecimal(txtRecargoA.EditValue),
                        Enganche    = Convert.ToDecimal(txtEngancheA.EditValue),
                        Vencimiento = Convert.ToInt32(txtVencimientoA.EditValue)
                    };
                    _entidades.Financiamientos.InsertOnSubmit(finaA);
                    txtClaveA.EditValue = finaA.Clave;
                }
                else
                {
                    Financiamiento finaA = _entidades.Financiamientos.FirstOrDefault(f => f.Clave == Convert.ToInt32(txtClaveA.EditValue));
                    if (finaA != null)
                    {
                        finaA.Interes     = Convert.ToDecimal(txtInteresA.EditValue);
                        finaA.Prorroga    = Convert.ToInt32(txtProrrogaA.EditValue);
                        finaA.Recargo     = Convert.ToDecimal(txtRecargoA.EditValue);
                        finaA.Enganche    = Convert.ToDecimal(txtEngancheA.EditValue);
                        finaA.Vencimiento = Convert.ToInt32(txtVencimientoA.EditValue);
                    }
                }
                if ((int)txtClaveP.EditValue == 0)
                {
                    Financiamiento finaP = new Financiamiento
                    {
                        Tipo        = "Personal",
                        Interes     = Convert.ToDecimal(txtInteresP.EditValue),
                        Prorroga    = Convert.ToInt32(txtProrrogaP.EditValue),
                        Recargo     = Convert.ToDecimal(txtRecargoP.EditValue),
                        Vencimiento = Convert.ToInt32(txtVencimientoP.EditValue)
                    };
                    _entidades.Financiamientos.InsertOnSubmit(finaP);
                    txtClaveP.EditValue = finaP.Clave;
                }
                else
                {
                    Financiamiento finaP = _entidades.Financiamientos.FirstOrDefault(f => f.Clave == Convert.ToInt32(txtClaveP.EditValue));

                    if (finaP != null)
                    {
                        finaP.Interes     = Convert.ToDecimal(txtInteresP.EditValue);
                        finaP.Prorroga    = Convert.ToInt32(txtProrrogaP.EditValue);
                        finaP.Recargo     = Convert.ToDecimal(txtRecargoP.EditValue);
                        finaP.Vencimiento = Convert.ToInt32(txtVencimientoP.EditValue);
                    }
                }
                if ((int)txtClavePF.EditValue == 0)
                {
                    Financiamiento finaP = new Financiamiento
                    {
                        Tipo        = "Personal Fijo",
                        Interes     = Convert.ToDecimal(txtInteresPF.EditValue),
                        Prorroga    = Convert.ToInt32(txtProrrogaPF.EditValue),
                        Recargo     = Convert.ToDecimal(txtRecargoPF.EditValue),
                        Vencimiento = Convert.ToInt32(txtVencimientoPF.EditValue)
                    };
                    _entidades.Financiamientos.InsertOnSubmit(finaP);
                    txtClavePF.EditValue = finaP.Clave;
                }
                else
                {
                    Financiamiento finaP = _entidades.Financiamientos.FirstOrDefault(f => f.Clave == Convert.ToInt32(txtClavePF.EditValue));

                    if (finaP != null)
                    {
                        finaP.Interes     = Convert.ToDecimal(txtInteresPF.EditValue);
                        finaP.Prorroga    = Convert.ToInt32(txtProrrogaPF.EditValue);
                        finaP.Recargo     = Convert.ToDecimal(txtRecargoPF.EditValue);
                        finaP.Vencimiento = Convert.ToInt32(txtVencimientoPF.EditValue);
                    }
                }
                if ((int)txtClaveG.EditValue == 0)
                {
                    Financiamiento finaG = new Financiamiento
                    {
                        Tipo        = "Grupal",
                        Interes     = Convert.ToDecimal(txtInteresG.EditValue),
                        Prorroga    = Convert.ToInt32(txtProrrogaG.EditValue),
                        Recargo     = Convert.ToDecimal(txtRecargoG.EditValue),
                        Vencimiento = Convert.ToInt32(txtVencimientoG.EditValue),
                        Enganche    = Convert.ToDecimal(txtBaseG.EditValue)
                    };
                    _entidades.Financiamientos.InsertOnSubmit(finaG);
                    txtClaveG.EditValue = finaG.Clave;
                }
                else
                {
                    Financiamiento finaG = _entidades.Financiamientos.FirstOrDefault(f => f.Clave == Convert.ToInt32(txtClaveG.EditValue));

                    if (finaG != null)
                    {
                        finaG.Interes     = Convert.ToDecimal(txtInteresG.EditValue);
                        finaG.Prorroga    = Convert.ToInt32(txtProrrogaG.EditValue);
                        finaG.Recargo     = Convert.ToDecimal(txtRecargoG.EditValue);
                        finaG.Vencimiento = Convert.ToInt32(txtVencimientoG.EditValue);
                        finaG.Enganche    = Convert.ToDecimal(txtBaseG.EditValue);
                    }
                }
                _entidades.SubmitChanges();
                XtraMessageBox.Show("Ya se ha guardado la Configuracion de financiamiento", "Datos Guardados");
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message);
            }
        }
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            Financiamiento         fin;
            List <Financiamiento>  listaFinanciamientos;
            List <TechoFinanciero> listaTechosFin;

            int fondo            = int.Parse(ddlFondo.SelectedValue);
            int modalidad        = int.Parse(ddlModalidad.SelectedValue);
            int año              = int.Parse(ddlAño.SelectedValue);
            int idFinanciamiento = 0;

            int idEjercicio = int.Parse(Session["EjercicioId"].ToString());
            int usuario     = int.Parse(Session["IdUser"].ToString());

            listaFinanciamientos = uow.FinanciamientoBusinessLogic.Get(p => p.FondoId == fondo && p.ModalidadFinanciamientoId == modalidad && p.AñoId == año).ToList();

            //buscamos el financiamiento seleccionado y si no existe lo creamos
            if (listaFinanciamientos.Count == 0)
            {
                fin = new Financiamiento();

                fin.FondoId = fondo;
                fin.ModalidadFinanciamientoId = modalidad;
                fin.AñoId = año;

                uow.FinanciamientoBusinessLogic.Insert(fin);
                uow.SaveChanges();

                idFinanciamiento = fin.Id;
            }
            else
            {
                foreach (Financiamiento aux in listaFinanciamientos)
                {
                    idFinanciamiento = aux.Id;
                }
            }



            uow.Errors.Clear();

            if (txtOficio.Value.Trim() == string.Empty)
            {
                uow.Errors.Add("No ha capturado el número de oficio correspondiente a este registro");
            }

            if (txtObservaciones.Value.Trim() == string.Empty)
            {
                uow.Errors.Add("No ha capturado las observaciones correspondientes");
            }


            listaTechosFin = uow.TechoFinancieroBusinessLogic.Get(p => p.EjercicioId == idEjercicio && p.FinanciamientoId == idFinanciamiento).ToList();

            if (listaTechosFin.Count == 0)//Nuevo Techo Financiero
            {
                List <TechoFinancieroTMPtransferencias> listaTMP = uow.TechoFinancieroTMPtransferenciasBL.Get(p => p.Usuario == usuario).ToList();

                //insertar el techo financiero
                TechoFinanciero obj = new TechoFinanciero();
                obj.EjercicioId      = idEjercicio;
                obj.FinanciamientoId = idFinanciamiento;
                obj.Importe          = listaTMP.Sum(q => q.Importe);
                uow.TechoFinancieroBusinessLogic.Insert(obj);

                //insertar la bitacora
                TechoFinancieroBitacora bitacora = new TechoFinancieroBitacora();
                bitacora.EjercicioId   = idEjercicio;
                bitacora.Movimiento    = 3;
                bitacora.Tipo          = EnumTipoMovimientoTechoFinanciero.NuevoFondo;
                bitacora.Fecha         = DateTime.Now;
                bitacora.Oficio        = txtOficio.Value;
                bitacora.Observaciones = txtObservaciones.Value;
                uow.TechoFinancieroBitacoraBL.Insert(bitacora);



                int i = 0;
                foreach (TechoFinancieroTMPtransferencias item in listaTMP)
                {
                    i++;

                    TechoFinancieroUnidadPresupuestal tfup = new TechoFinancieroUnidadPresupuestal();
                    tfup.UnidadPresupuestalId = item.OrigenId;
                    tfup.Importe = item.Importe;
                    obj.detalleUnidadesPresupuestales.Add(tfup);



                    TechoFinancieroBitacoraMovimientos bitacoraMovimientos = new TechoFinancieroBitacoraMovimientos();
                    bitacoraMovimientos.TechoFinancieroBitacora = bitacora;
                    bitacoraMovimientos.Submovimiento           = i;
                    bitacoraMovimientos.UnidadPresupuestalId    = item.OrigenId;
                    bitacoraMovimientos.Decremento = 0;
                    bitacoraMovimientos.Incremento = item.Importe;
                    obj.detalleBitacoraMovimientos.Add(bitacoraMovimientos);
                }
            }
            else
            {
                uow.Errors.Add("El financiamiento que quiere registrar ya ha sido capturado anteriormente");
            }



            if (uow.Errors.Count == 0)
            {
                uow.SaveChanges();
            }



            if (uow.Errors.Count == 0)
            {
                Response.Redirect("wfTechoFinanciero.aspx");
            }
            else
            {
                divMsgSuccess.Style.Add("display", "none");
                divMsgFail.Style.Add("display", "block");

                string mensaje;
                mensaje = string.Empty;
                foreach (string cad in uow.Errors)
                {
                    mensaje = mensaje + cad + "<br>";
                }

                lblMensajeFail.Text = mensaje;
            }
        }
        private void frmFinanciamientosAtrasados_Shown(object sender, EventArgs e)
        {
            Financiamiento f        = _entidades.Financiamientos.Single(fin => fin.Tipo == "Grupal");
            var            creditos = _entidades.FinancieraCreditos.Where(cre => cre.Estado == "Activo").Select(cre => new
            {
                cre.Clave,
                Grupo = cre.FinancieraGrupo.Nombre,
                cre.Prestamo, cre.TotalPago,
                cre.SaldoActual,
                FechaCredito    = cre.FechaInicio,
                PagosRealizados = cre.FinancieraPagos.Count(p => p.Estado),
                UltimoPago      = (cre.FinancieraPagos.Count == 0) ? cre.FechaInicio : cre.FinancieraPagos.Max(pc => pc.FechaPago),
                cre.Plazos,
                cre.FechaFinal
            });

            foreach (var c in creditos)
            {
                switch (c.Plazos)
                {
                case "SEMANAL": {
                    if (c.FechaCredito.AddDays(((c.PagosRealizados == 0?1:c.PagosRealizados) * 7)).Date.AddDays(f.Vencimiento * 7) <
                        DateTime.Today.Date)
                    {
                        int letras;
                        if (c.FechaFinal.Date < DateTime.Today.Date)
                        {
                            int dias = c.FechaFinal.Date.Subtract(             //DateTime.Today.Date.Subtract(
                                c.FechaCredito.AddDays(c.PagosRealizados * 7)) //c.FechaCredito.AddDays(((c.PagosRealizados == 0 ? 1 : c.PagosRealizados) * 7)).Date)//.AddDays(f.Vencimiento).Date)
                                       .Days;
                            letras = dias / 7;
                        }
                        else
                        {
                            int dias = DateTime.Today.Date.Subtract(
                                c.FechaCredito.AddDays(((c.PagosRealizados == 0 ? 1 : c.PagosRealizados) * 7)).Date)        //.AddDays(f.Vencimiento).Date)
                                       .Days;
                            letras = dias / 7;
                        }


                        _atrasadosDt.Rows.Add(c.Clave, c.Grupo, c.Prestamo, c.TotalPago,
                                              c.SaldoActual,
                                              c.FechaCredito, c.UltimoPago, c.PagosRealizados, letras);

                        var pagos = from pa in _entidades.FinancieraPagos
                                    where pa.Estado && pa.CveCredito == c.Clave
                                    select
                                    new
                        {
                            pa.Clave,
                            pa.CveCredito,
                            pa.Pago,
                            pa.Recargo,
                            pa.TotalPago,
                            pa.Usuario.Nombre,
                            pa.FechaPago
                        };
                        foreach (var p in pagos)
                        {
                            _pagosRealizadosDt.Rows.Add(new object[]
                                                        { p.Clave, p.CveCredito, p.Pago, p.Recargo, p.TotalPago, p.FechaPago, p.Nombre });
                        }
                    }
                }
                break;

                case "QUINCENAL":
                {
                    if (c.FechaCredito.AddDays(((c.PagosRealizados == 0 ? 1 : c.PagosRealizados) * 14)).Date.AddDays(f.Vencimiento * 14) <
                        DateTime.Today.Date)
                    {
                        int letras;
                        if (c.FechaFinal.Date < DateTime.Today.Date)
                        {
                            int dias = c.FechaFinal.Date.Subtract(              //DateTime.Today.Date.Subtract(
                                c.FechaCredito.AddDays(c.PagosRealizados * 14)) //c.FechaCredito.AddDays(((c.PagosRealizados == 0 ? 1 : c.PagosRealizados) * 7)).Date)//.AddDays(f.Vencimiento).Date)
                                       .Days;
                            letras = dias / 14;
                        }
                        else
                        {
                            int dias = DateTime.Today.Date.Subtract(
                                c.FechaCredito.AddDays(((c.PagosRealizados == 0 ? 1 : c.PagosRealizados) * 14)).Date)        //.AddDays(f.Vencimiento).Date)
                                       .Days;
                            letras = dias / 14;
                        }
                        _atrasadosDt.Rows.Add(c.Clave, c.Grupo, c.Prestamo, c.TotalPago,
                                              c.SaldoActual,
                                              c.FechaCredito, c.UltimoPago, c.PagosRealizados, letras);
                        var pagos = from pa in _entidades.FinancieraPagos
                                    where pa.Estado && pa.CveCredito == c.Clave
                                    select
                                    new
                        {
                            pa.Clave,
                            pa.CveCredito,
                            pa.Pago,
                            pa.Recargo,
                            pa.TotalPago,
                            pa.Usuario.Nombre,
                            pa.FechaPago
                        };
                        foreach (var p in pagos)
                        {
                            _pagosRealizadosDt.Rows.Add(new object[]
                                                        { p.Clave, p.CveCredito, p.Pago, p.Recargo, p.TotalPago, p.FechaPago, p.Nombre });
                        }
                    }
                }
                break;

                case "MENSUAL":
                {
                    if (c.FechaCredito.AddMonths((c.PagosRealizados)).Date.AddMonths(3) <
                        DateTime.Today.Date)
                    {
                        int dias =
                            DateTime.Today.Date.Subtract(
                                c.FechaCredito.AddMonths(c.PagosRealizados))
                            .Days;
                        int letras = dias / 30;
                        _atrasadosDt.Rows.Add(c.Clave, c.Grupo, c.Prestamo, c.TotalPago,
                                              c.SaldoActual,
                                              c.FechaCredito, c.UltimoPago, c.PagosRealizados, letras);

                        var pagos = from pa in _entidades.FinancieraPagos
                                    where pa.Estado && pa.CveCredito == c.Clave
                                    select
                                    new
                        {
                            pa.Clave,
                            pa.CveCredito,
                            pa.Pago,
                            pa.Recargo,
                            pa.TotalPago,
                            pa.Usuario.Nombre,
                            pa.FechaPago
                        };
                        foreach (var p in pagos)
                        {
                            _pagosRealizadosDt.Rows.Add(new object[]
                                                        { p.Clave, p.CveCredito, p.Pago, p.Recargo, p.TotalPago, p.FechaPago, p.Nombre });
                        }
                    }
                }
                break;
                }
            }

            //foreach (var item in financiamientos)
            //{

            //    if (item.FechaPrestamo.AddMonths(item.PagosRealizados).Date.AddMonths(item.Vencimiento) < DateTime.Today.Date)
            //    {
            //        int dias = DateTime.Today.Date.Subtract(item.FechaPrestamo.AddMonths(item.PagosRealizados).Date).Days;
            //        int meses = dias / 30;
            //        _atrasadosDt.Rows.Add(new object[] {item.Clave,item.FolioFinanciamiento, item.Tipo, item.Nombre, item.Telefono, item.Cantidad, item.Saldo, item.FechaPrestamo, item.UltimoPago, item.PagosRealizados, meses});
            //        var pagos = from pa in _entidades.PagosFinanciamientos
            //                    where pa.Estado  && pa.CvePrestamo == item.Clave
            //                    select new { pa.Clave, pa.CvePrestamo, pa.Cantidad, pa.Recargo, pa.AbonoPrestamo, pa.TotalPago, pa.Usuario.Nombre, pa.FechaPago };
            //        foreach (var p in pagos)
            //        {
            //            _pagosRealizadosDt.Rows.Add(new object[] { p.Clave, p.CvePrestamo, p.Cantidad, p.Recargo, p.AbonoPrestamo, p.TotalPago, p.FechaPago, p.Nombre });
            //        }
            //    }


            //}
            DataSet financiamientosDS = new DataSet();

            financiamientosDS.Tables.Add(_atrasadosDt);
            financiamientosDS.Tables.Add(_pagosRealizadosDt);

            //Set up a master-detail relationship between the DataTables
            DataColumn keyColumn        = financiamientosDS.Tables[0].Columns["Clave"];
            DataColumn foreignKeyColumn = financiamientosDS.Tables[1].Columns["CveCredito"];

            financiamientosDS.Relations.Add("Pagos", keyColumn, foreignKeyColumn);
            //gridCrono.DataSource =AtrasadosDT;
            gridCrono.DataSource = financiamientosDS.Tables[0];
            gridCrono.ForceInitialize();


            ////gridCrono.LevelTree.Nodes.Add("Pagos", crvPagos);
            //grvPagos.PopulateColumns(financiamientosDS.Tables[1]);
            //grvPagos.Columns["Cantidad"].DisplayFormat.FormatType = FormatType.Numeric;
            //grvPagos.Columns["Cantidad"].DisplayFormat.FormatString = "c2";
            //grvCreditos.Columns[0].Visible = false;
            //grvPagos.Columns[1].Visible = false;
            //grvPagos.Columns[2].DisplayFormat.FormatType = FormatType.Numeric;
            //grvPagos.Columns[2].DisplayFormat.FormatString = "$ #,##0.00";
            //grvPagos.Columns[3].DisplayFormat.FormatType = FormatType.Numeric;
            //grvPagos.Columns[3].DisplayFormat.FormatString = "$ #,##0.00";
            //grvPagos.Columns[4].DisplayFormat.FormatType = FormatType.Numeric;
            //grvPagos.Columns[4].DisplayFormat.FormatString = "$ #,##0.00";
            //grvPagos.Columns[5].DisplayFormat.FormatType = FormatType.Numeric;
            //grvPagos.Columns[5].DisplayFormat.FormatString = "$ #,##0.00";
            //grvPagos.Columns[6].DisplayFormat.FormatType = FormatType.DateTime;
            //grvPagos.Columns[6].DisplayFormat.FormatString = "dd-MMMM-yyyy";

            //grvCreditos.Columns[1].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center;//folio
            //grvCreditos.Columns[2].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center;//tipo
            //grvCreditos.Columns[4].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center;//telefono
            //grvCreditos.Columns[5].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Far;//prestamo
            //grvCreditos.Columns[6].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Far;//saldo
            //grvCreditos.Columns[7].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center;//fechaPrestamo
            //grvCreditos.Columns[8].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center;//ultimopago
            //grvCreditos.Columns[9].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center;//LPag
            //grvCreditos.Columns[10].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center;//lAtra

            //grvCreditos.Columns[3].Width = 250;
            ////grid.Columns[0].Width = 40;


            grvCreditos.Columns[2].DisplayFormat.FormatType   = FormatType.Numeric;
            grvCreditos.Columns[2].DisplayFormat.FormatString = "$ #,##0.00";
            grvCreditos.Columns[3].DisplayFormat.FormatType   = FormatType.Numeric;
            grvCreditos.Columns[3].DisplayFormat.FormatString = "$ #,##0.00";
            grvCreditos.Columns[4].DisplayFormat.FormatType   = FormatType.Numeric;
            grvCreditos.Columns[4].DisplayFormat.FormatString = "$ #,##0.00";
            grvCreditos.Columns[5].DisplayFormat.FormatType   = FormatType.DateTime;
            grvCreditos.Columns[5].DisplayFormat.FormatString = "dd-MMMM-yyyy";
            grvCreditos.Columns[6].DisplayFormat.FormatType   = FormatType.DateTime;
            grvCreditos.Columns[6].DisplayFormat.FormatString = "dd-MMMM-yyyy";
            //grid.Columns[1].Group();
            //grid.SetGroupLevelExpanded(0, true, true);
        }