protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Usuario"] == null)
            {
                ScriptManager.RegisterStartupScript(Page, this.GetType(), "mykey", "CancelEdit();", true);
            }

            try
            {
                if (!Page.IsPostBack)
                {
                    LoginWCF.LoginWCFClient objLoginWCF = new LoginWCF.LoginWCFClient();
                    objLoginWCF.AuditoriaMenu_Registrar(System.Web.HttpContext.Current.Request.Url.AbsolutePath, Environment.MachineName,
                                                        ((Usuario_LoginResult)System.Web.HttpContext.Current.Session["Usuario"]).idUsuario);

                    if (!string.IsNullOrEmpty(Request.QueryString["objHistorial"]))
                    {
                        Title = "Historial";
                        string obj = Request.QueryString["objHistorial"];
                        gsReporte_DocumentosPendientesResult objCierreContable = JsonHelper.JsonDeserialize <gsReporte_DocumentosPendientesResult>(Request.QueryString["objHistorial"]);
                        ViewState["ID_Financiamiento"] = objCierreContable.ID_Financiamiento;
                        //CargarGridEdit();

                        //Label1.Text = objCierreContable.ID_Financiamiento.ToString();


                        var idEmpresa     = ((Usuario_LoginResult)Session["Usuario"]).idEmpresa;
                        var codigoUsuario = ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario;
                        EstadoCuentaWCFClient objEstadoCuentaWCF = new EstadoCuentaWCFClient();
                        var lstSource = objEstadoCuentaWCF.GetCicloLetras(idEmpresa, codigoUsuario, (decimal)objCierreContable.ID_Financiamiento);
                        grdHistorial.DataSource = lstSource;
                        grdHistorial.DataBind();

                        var lstEstados = new List <string>
                        {
                            "Cancelado",
                            "Letra Aprobada",
                            "Letra Renovada",
                            "Letra Protestada"
                        };

                        var lstChart = (from item in lstEstados let sum = lstSource.Count(x => x.Estado == item) select new ChartClass {
                            AxisX = item, SerieDecimal = sum
                        }).ToList();

                        //RadHtmlChart1.DataSource = lstChart;
                        //RadHtmlChart1.DataBind();
                    }
                }
            }
            catch (Exception ex)
            {
                //lblMensaje.Text = "ERROR: " + ex.Message;
                //lblMensaje.CssClass = "mensajeError";
            }
        }
        static List <gsReporte_DocumentosPendientesResult> ListarEstadoCuenta(int idEmpresa, int idUsuario, string codAgenda, string codVendedor, DateTime fechaEmisionInicial, DateTime fechaEmisionFinal, DateTime fechaVencimientoInicial, DateTime fechaVencimientoFinal, int vencidos)
        {
            EstadoCuentaWCFClient objEstadoCuentaWCF = new EstadoCuentaWCFClient();

            try
            {
                List <gsReporte_DocumentosPendientesResult> lstEstadoCuenta = new List <gsReporte_DocumentosPendientesResult>();

                if (codVendedor != null)
                {
                    if (codVendedor.Length > 3)
                    {
                        if (codVendedor == "666666")
                        {
                            codVendedor = null;

                            List <gsReporte_DocumentosPendientesResult> lst = objEstadoCuentaWCF.EstadoCuenta_ListarxCliente(idEmpresa, idUsuario, codAgenda, codVendedor, fechaEmisionInicial, fechaEmisionFinal, fechaVencimientoInicial, fechaVencimientoFinal, vencidos).OrderBy(e => e.ClienteNombre).OrderBy(e => e.FechaVencimiento).ToList();

                            var query_Estado = from c in lst
                                               where c.EstadoCliente == "LEGAL"
                                               orderby c.Fecha, c.ZonaCobranza ascending
                                select new
                            {
                                c.Banco,
                                c.ClienteNombre,
                                c.DeudaDolares,
                                c.DeudaSoles,
                                c.DiasMora,
                                c.EstadoCliente,
                                c.EstadoDoc,
                                c.FAceptada,
                                c.Fecha,
                                c.FechaVencimiento,
                                c.ID_Agenda,
                                c.ID_Doc,
                                c.ID_EstadoDoc,
                                c.ID_Moneda,
                                c.Id_TipoDoc,
                                c.ID_Vendedor,
                                c.ID_Zona,
                                c.Importe,
                                c.ImporteFinanciado,
                                c.ImportePagado,
                                c.ImportePendiente,
                                c.ImportePendiente_01a08,
                                c.ImportePendiente_01a30,
                                c.ImportePendiente_09a30,
                                c.ImportePendiente_121a360,
                                c.ImportePendiente_121aMas,
                                c.ImportePendiente_31a60,
                                c.ImportePendiente_361a720,
                                c.ImportePendiente_361aMas,
                                c.ImportePendiente_61a120,
                                c.ImportePendiente_61a90,
                                c.ImportePendiente_721aMas,
                                c.ImportePendiente_91a120,
                                c.ImportePendiente_NoVencido,
                                c.ImportePendiente_PorVencer30,
                                c.ImportePendiente_VenceHoy,
                                c.Moneda,
                                c.monedasigno,
                                c.No_Vendedor,
                                c.NroDocumento,
                                c.Numero,
                                c.NumeroUnico,
                                c.Origen,
                                c.OrigenOp,
                                c.Referencia,
                                c.Sede,
                                c.Serie,
                                c.Situacion,
                                c.TC,
                                c.TipoDocumento,
                                c.ZonaCobranza
                            };

                            foreach (var QEstado in query_Estado.ToList())
                            {
                                gsReporte_DocumentosPendientesResult rowEstado = new gsReporte_DocumentosPendientesResult();
                                rowEstado.Banco                    = QEstado.Banco;
                                rowEstado.ClienteNombre            = QEstado.ClienteNombre;
                                rowEstado.DeudaDolares             = QEstado.DeudaDolares;
                                rowEstado.DeudaSoles               = QEstado.DeudaSoles;
                                rowEstado.DiasMora                 = QEstado.DiasMora;
                                rowEstado.EstadoCliente            = QEstado.EstadoCliente;
                                rowEstado.EstadoDoc                = QEstado.EstadoDoc;
                                rowEstado.FAceptada                = QEstado.FAceptada;
                                rowEstado.Fecha                    = QEstado.Fecha;
                                rowEstado.FechaVencimiento         = QEstado.FechaVencimiento;
                                rowEstado.ID_Agenda                = QEstado.ID_Agenda;
                                rowEstado.ID_Doc                   = QEstado.ID_Doc;
                                rowEstado.ID_EstadoDoc             = QEstado.ID_EstadoDoc;
                                rowEstado.ID_Moneda                = QEstado.ID_Moneda;
                                rowEstado.Id_TipoDoc               = QEstado.Id_TipoDoc;
                                rowEstado.ID_Vendedor              = QEstado.ID_Vendedor;
                                rowEstado.ID_Zona                  = QEstado.ID_Zona;
                                rowEstado.Importe                  = QEstado.Importe;
                                rowEstado.ImporteFinanciado        = QEstado.ImporteFinanciado;
                                rowEstado.ImportePagado            = QEstado.ImportePagado;
                                rowEstado.ImportePendiente         = QEstado.ImportePendiente;
                                rowEstado.ImportePendiente_01a08   = QEstado.ImportePendiente_01a08;
                                rowEstado.ImportePendiente_01a30   = QEstado.ImportePendiente_01a30;
                                rowEstado.ImportePendiente_09a30   = QEstado.ImportePendiente_09a30;
                                rowEstado.ImportePendiente_121a360 = QEstado.ImportePendiente_121a360;
                                rowEstado.ImportePendiente_121aMas = QEstado.ImportePendiente_121aMas;
                                rowEstado.ImportePendiente_31a60   = QEstado.ImportePendiente_31a60;
                                rowEstado.ImportePendiente_361a720 = QEstado.ImportePendiente_361a720;
                                rowEstado.ImportePendiente_361aMas = QEstado.ImportePendiente_361aMas;
                                rowEstado.ImportePendiente_61a120  = QEstado.ImportePendiente_61a120;
                                rowEstado.ImportePendiente_61a90   = QEstado.ImportePendiente_61a90;
                                rowEstado.ImportePendiente_721aMas = QEstado.ImportePendiente_721aMas;

                                rowEstado.ImportePendiente_91a120      = QEstado.ImportePendiente_91a120;
                                rowEstado.ImportePendiente_NoVencido   = QEstado.ImportePendiente_NoVencido;
                                rowEstado.ImportePendiente_PorVencer30 = QEstado.ImportePendiente_PorVencer30;
                                rowEstado.ImportePendiente_VenceHoy    = QEstado.ImportePendiente_VenceHoy;
                                rowEstado.Moneda       = QEstado.Moneda;
                                rowEstado.monedasigno  = QEstado.monedasigno;
                                rowEstado.No_Vendedor  = QEstado.No_Vendedor;
                                rowEstado.NroDocumento = QEstado.NroDocumento;
                                rowEstado.Numero       = QEstado.Numero;
                                rowEstado.NumeroUnico  = QEstado.NumeroUnico;
                                rowEstado.Origen       = QEstado.Origen;
                                rowEstado.OrigenOp     = QEstado.OrigenOp;
                                rowEstado.Referencia   = QEstado.Referencia;
                                rowEstado.Sede         = QEstado.Sede;

                                rowEstado.Serie         = QEstado.Serie;
                                rowEstado.Situacion     = QEstado.Situacion;
                                rowEstado.TC            = QEstado.TC;
                                rowEstado.TipoDocumento = QEstado.TipoDocumento;
                                rowEstado.ZonaCobranza  = QEstado.ZonaCobranza;

                                lstEstadoCuenta.Add(rowEstado);
                            }
                        }
                        else
                        {
                            List <gsReporte_DocumentosPendientesResult> lst = objEstadoCuentaWCF.EstadoCuenta_ListarxCliente(idEmpresa, idUsuario, codAgenda, codVendedor, fechaEmisionInicial, fechaEmisionFinal, fechaVencimientoInicial, fechaVencimientoFinal, vencidos).OrderBy(e => e.ClienteNombre).OrderBy(e => e.FechaVencimiento).ToList();

                            var query_Estado = from c in lst
                                               where c.EstadoCliente != "LEGAL"
                                               orderby c.Fecha, c.ZonaCobranza ascending
                                select new
                            {
                                c.Banco,
                                c.ClienteNombre,
                                c.DeudaDolares,
                                c.DeudaSoles,
                                c.DiasMora,
                                c.EstadoCliente,
                                c.EstadoDoc,
                                c.FAceptada,
                                c.Fecha,
                                c.FechaVencimiento,
                                c.ID_Agenda,
                                c.ID_Doc,
                                c.ID_EstadoDoc,
                                c.ID_Moneda,
                                c.Id_TipoDoc,
                                c.ID_Vendedor,
                                c.ID_Zona,
                                c.Importe,
                                c.ImporteFinanciado,
                                c.ImportePagado,
                                c.ImportePendiente,
                                c.ImportePendiente_01a08,
                                c.ImportePendiente_01a30,
                                c.ImportePendiente_09a30,
                                c.ImportePendiente_121a360,
                                c.ImportePendiente_121aMas,
                                c.ImportePendiente_31a60,
                                c.ImportePendiente_361a720,
                                c.ImportePendiente_361aMas,
                                c.ImportePendiente_61a120,
                                c.ImportePendiente_61a90,
                                c.ImportePendiente_721aMas,
                                c.ImportePendiente_91a120,
                                c.ImportePendiente_NoVencido,
                                c.ImportePendiente_PorVencer30,
                                c.ImportePendiente_VenceHoy,
                                c.Moneda,
                                c.monedasigno,
                                c.No_Vendedor,
                                c.NroDocumento,
                                c.Numero,
                                c.NumeroUnico,
                                c.Origen,
                                c.OrigenOp,
                                c.Referencia,
                                c.Sede,
                                c.Serie,
                                c.Situacion,
                                c.TC,
                                c.TipoDocumento,
                                c.ZonaCobranza
                            };

                            foreach (var QEstado in query_Estado.ToList())
                            {
                                gsReporte_DocumentosPendientesResult rowEstado = new gsReporte_DocumentosPendientesResult();
                                rowEstado.Banco                    = QEstado.Banco;
                                rowEstado.ClienteNombre            = QEstado.ClienteNombre;
                                rowEstado.DeudaDolares             = QEstado.DeudaDolares;
                                rowEstado.DeudaSoles               = QEstado.DeudaSoles;
                                rowEstado.DiasMora                 = QEstado.DiasMora;
                                rowEstado.EstadoCliente            = QEstado.EstadoCliente;
                                rowEstado.EstadoDoc                = QEstado.EstadoDoc;
                                rowEstado.FAceptada                = QEstado.FAceptada;
                                rowEstado.Fecha                    = QEstado.Fecha;
                                rowEstado.FechaVencimiento         = QEstado.FechaVencimiento;
                                rowEstado.ID_Agenda                = QEstado.ID_Agenda;
                                rowEstado.ID_Doc                   = QEstado.ID_Doc;
                                rowEstado.ID_EstadoDoc             = QEstado.ID_EstadoDoc;
                                rowEstado.ID_Moneda                = QEstado.ID_Moneda;
                                rowEstado.Id_TipoDoc               = QEstado.Id_TipoDoc;
                                rowEstado.ID_Vendedor              = QEstado.ID_Vendedor;
                                rowEstado.ID_Zona                  = QEstado.ID_Zona;
                                rowEstado.Importe                  = QEstado.Importe;
                                rowEstado.ImporteFinanciado        = QEstado.ImporteFinanciado;
                                rowEstado.ImportePagado            = QEstado.ImportePagado;
                                rowEstado.ImportePendiente         = QEstado.ImportePendiente;
                                rowEstado.ImportePendiente_01a08   = QEstado.ImportePendiente_01a08;
                                rowEstado.ImportePendiente_01a30   = QEstado.ImportePendiente_01a30;
                                rowEstado.ImportePendiente_09a30   = QEstado.ImportePendiente_09a30;
                                rowEstado.ImportePendiente_121a360 = QEstado.ImportePendiente_121a360;
                                rowEstado.ImportePendiente_121aMas = QEstado.ImportePendiente_121aMas;
                                rowEstado.ImportePendiente_31a60   = QEstado.ImportePendiente_31a60;
                                rowEstado.ImportePendiente_361a720 = QEstado.ImportePendiente_361a720;
                                rowEstado.ImportePendiente_361aMas = QEstado.ImportePendiente_361aMas;
                                rowEstado.ImportePendiente_61a120  = QEstado.ImportePendiente_61a120;
                                rowEstado.ImportePendiente_61a90   = QEstado.ImportePendiente_61a90;
                                rowEstado.ImportePendiente_721aMas = QEstado.ImportePendiente_721aMas;

                                rowEstado.ImportePendiente_91a120      = QEstado.ImportePendiente_91a120;
                                rowEstado.ImportePendiente_NoVencido   = QEstado.ImportePendiente_NoVencido;
                                rowEstado.ImportePendiente_PorVencer30 = QEstado.ImportePendiente_PorVencer30;
                                rowEstado.ImportePendiente_VenceHoy    = QEstado.ImportePendiente_VenceHoy;
                                rowEstado.Moneda       = QEstado.Moneda;
                                rowEstado.monedasigno  = QEstado.monedasigno;
                                rowEstado.No_Vendedor  = QEstado.No_Vendedor;
                                rowEstado.NroDocumento = QEstado.NroDocumento;
                                rowEstado.Numero       = QEstado.Numero;
                                rowEstado.NumeroUnico  = QEstado.NumeroUnico;
                                rowEstado.Origen       = QEstado.Origen;
                                rowEstado.OrigenOp     = QEstado.OrigenOp;
                                rowEstado.Referencia   = QEstado.Referencia;
                                rowEstado.Sede         = QEstado.Sede;

                                rowEstado.Serie         = QEstado.Serie;
                                rowEstado.Situacion     = QEstado.Situacion;
                                rowEstado.TC            = QEstado.TC;
                                rowEstado.TipoDocumento = QEstado.TipoDocumento;
                                rowEstado.ZonaCobranza  = QEstado.ZonaCobranza;

                                lstEstadoCuenta.Add(rowEstado);
                            }
                        }
                    }
                }
                else
                {
                    List <gsReporte_DocumentosPendientesResult> lst = objEstadoCuentaWCF.EstadoCuenta_ListarxCliente(idEmpresa, idUsuario, codAgenda, codVendedor, fechaEmisionInicial, fechaEmisionFinal, fechaVencimientoInicial, fechaVencimientoFinal, vencidos).OrderBy(e => e.ClienteNombre).OrderBy(e => e.FechaVencimiento).ToList();
                    lstEstadoCuenta = lst;
                }

                //ViewState["lstEstadoCuenta"] = JsonHelper.JsonSerializer(lstEstadoCuenta);
                //grdEstadoCuenta.DataSource = lstEstadoCuenta;
                //grdEstadoCuenta.DataBind();
                //lblDate.Text = "1";
                return(lstEstadoCuenta);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }