using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BE;
using BL;
using Utilitaria;

using System.Data;
using System.Data.SqlClient;
using Telerik.Web.UI;
using System.Configuration;

using System.Data.OleDb;
using System.IO;

using System.Globalization;
using System.Threading;

public partial class BalanceComprobacion : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Thread.CurrentThread.CurrentCulture = new CultureInfo("es-PE");
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-PE");
        if (Session["Usuario"] == null)
        {
            Response.Redirect(Utilitaria.Cls_Enums.CerrarSesion.Salir);
        }
        

        if (!IsPostBack)
        {
            ViewState["Click"] = "1";
            Cls_Propiedades.TempBalanceComprobacion.Clear();
            /////////////////////////// Inicio Parametros Cabecera 
            ViewState["FecDesde"] = Session["Desde"];
            ViewState["FecHasta"] = Session["Hasta"];
            this.lblMoneda.Text = Utilitaria.Cls_Utilitaria.f_MostraNombreMoneda(Convert.ToInt32(Session["MonedaID"].ToString()), 3);
            //if (ViewState["FecDesde"] == "" || ViewState["FecDesde"] == null || ViewState["FecHasta"] == "" || ViewState["FecHasta"] == null)
            //{
            //    this.lblDesde.Text = "--/--/----";
            //    this.lblHasta.Text = "--/--/----";
            //}
            //else
            //{
            //    this.lblDesde.Text = String.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(ViewState["FecDesde"]));
            //    this.lblHasta.Text = String.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(ViewState["FecHasta"]));
            //}
            /////////////////////////// Fin Parametros Cabecera 


            ViewState["TipoFormatoGGPPID"] = Request.QueryString["TFGPID"];
            ViewState["MonedaID"] = Request.QueryString["MON"];            
            ViewState["Acumulado"] = Request.QueryString["ACUM"];
            ViewState["NivelCuentaID"] = Request.QueryString["NVL"];

            //accediendo desde todos los hoteles

            ViewState["IND"] = (Request.QueryString["IND"]) == null ? "" : Request.QueryString["IND"];
            //PopulateComco_TipoCuenta(String.Empty);
            //PopulateCombo_Acumulado(Request.QueryString["ACUM"]);
            if (ViewState["IND"].ToString()== "104")
            {
                lblTitulo.Text = "BALANCE DE COMPROBACION SUNAT -";
            }
            else
            {
                lblTitulo.Text = "BALANCE DE COMPROBACION -";
            }

            
            PopulateCombo_Acumulado(String.Empty);
            cbxAcumulado.SelectedValue = ViewState["Acumulado"].ToString();
            Combo_Moneda();
            this.cbxMoneda.SelectedValue = ViewState["MonedaID"].ToString();
            PopulateCombo_NivelCuenta(String.Empty);

            BLMonedas oBLMonedas = new BLMonedas();
            List<BEMonedas> loMonedas;
            loMonedas = oBLMonedas.fnSelMonedasDin(Convert.ToInt32(ViewState["MonedaID"]), "");
            lblMonedaNombre.Text = loMonedas[0].Nombre;
            loMonedas = null;

            ViewState["HotelID"] = Request.QueryString["HTL"].ToString();
            if (ViewState["HotelID"].ToString() != "0")
            {
                BLHoteles oBLHoteles = new BLHoteles();
                List<BEHoteles> loHoteles;
                loHoteles = oBLHoteles.fnSelHotelesDin("Where HotelID=" + ViewState["HotelID"].ToString().Trim(), "");
                lblSucursal.Text = loHoteles[0].NombreHotel;
            }
            else
            {
                lblSucursal.Text = "Todas";
            }

            ViewState["UnidadNegocioID"] = Request.QueryString["UNG"].ToString();
            if (ViewState["UnidadNegocioID"].ToString() != "0")
            {
                BLUnidadesDeNegocio oBLUnidadesDeNegocio = new BLUnidadesDeNegocio();
                BEUnidadesDeNegocio oBEUnidadesDeNegocio = new BEUnidadesDeNegocio();
                oBEUnidadesDeNegocio.EstablecimientoID = Convert.ToInt32(Session["EmpresaID"].ToString());
                List<BEUnidadesDeNegocio> loUnidadesDeNegocio;
                loUnidadesDeNegocio = oBLUnidadesDeNegocio.fnSelUnidadesDeNegocioDin(oBEUnidadesDeNegocio, "and UnidadNegocioID=" + ViewState["UnidadNegocioID"].ToString().Trim(), "");
                lblUnidadNegocio.Text = loUnidadesDeNegocio[0].NombreUnidadNegocio;
            }
            else
            {
                lblUnidadNegocio.Text = "Todas";
            }

            ViewState["AreaID"] = Request.QueryString["ARA"].ToString();
            if (ViewState["AreaID"].ToString() != "0")
            {
                BLAreas oBLAreas = new BLAreas();
                List<BEAreas> loAreas;
                loAreas = oBLAreas.fnSelAreasDin("AreaID=" + ViewState["AreaID"].ToString().Trim(), "");
                lblArea.Text = loAreas[0].NombreArea;
            }
            else
            {
                lblArea.Text = "Todas";
            }

            lblEjercicio.Text = Session["txtPeriodo"].ToString();

            ViewState["Mes"] = Request.QueryString["Mes"];
            switch (Convert.ToInt32(ViewState["Mes"]))
            {
                case 0: lblMes.Text = "Apertura";
                    break;
                case 1: lblMes.Text = "Enero";
                        break;
                case 2: lblMes.Text = "Febrero";
                        break;
                case 3: lblMes.Text = "Marzo";
                        break;
                case 4: lblMes.Text = "Abril";
                        break;
                case 5: lblMes.Text = "Mayo";
                        break;
                case 6: lblMes.Text = "Junio";
                        break;
                case 7: lblMes.Text = "Julio";
                        break;
                case 8: lblMes.Text = "Agosto";
                        break;
                case 9: lblMes.Text = "Septiembre";
                        break;
                case 10: lblMes.Text = "Octubre";
                        break;
                case 11: lblMes.Text = "Noviembre";
                        break;
                case 12: lblMes.Text = "Diciembre";
                        break;
                case 13: lblMes.Text = "Cierre";
                        break;
            }

            if (ViewState["Acumulado"].ToString() == "1")
            {
                lblAcumulado.Text = "Al";
            }
            else 
            {
                lblAcumulado.Text = "Del";
            }
        }

      
    }

    protected void Page_PreRender(object sender, EventArgs e)
    {
        tk_Grid.Columns[0].CurrentFilterFunction = Telerik.Web.UI.GridKnownFunction.StartsWith;
        
    }

    private void Listar()
    {
        if (ViewState["Click"] == "1" && Cls_Propiedades.TempBalanceComprobacion.Count == 0)
        {

            BLBalanceComprobacion oBLBalanceComprobacion = new BLBalanceComprobacion();

            Int32 MonedaID = Convert.ToInt32(ViewState["MonedaID"]);
            Int32 NivelID = Convert.ToInt32(ViewState["NivelCuentaID"]);


            Cls_Propiedades.TempBalanceComprobacion = oBLBalanceComprobacion.fnSelAsientosContablesDetalleAll(MonedaID, Convert.ToInt32(ViewState["Mes"]), Convert.ToInt32(Session["txtPeriodo"]), Convert.ToInt32(ViewState["HotelID"]), Convert.ToInt32(Session["EmpresaID"]), NivelID, Convert.ToInt32(ViewState["Acumulado"].ToString()), ViewState["IND"].ToString());
                
            oBLBalanceComprobacion = null;
        }
        ViewState["Click"] = "";
        tk_Grid.DataSource = Cls_Propiedades.TempBalanceComprobacion;
       
    
    }

    String currUrl;
    string currUrl2;
    String headertext;
    protected void tk_Grid_ItemDataBound(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridHeaderItem)
        {
            GridHeaderItem headerItem = (GridHeaderItem)e.Item;

            HyperLink hh0 = new HyperLink();
            currUrl = "frmEEFFMensual.aspx?Mes=" + ViewState["Mes"].ToString().Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"] + "&NVL=" + ViewState["NivelCuentaID"] + "&ACUM=" + ViewState["Acumulado"].ToString().Trim() + "&TFGPID=01" + "&NTF=Balance General&FORMATOREPORTE=0";// +ViewState["TipoFormatoGGPPID"].ToString().Trim();
            hh0.NavigateUrl = "#";
            hh0.Text = "Activo";
            hh0.CssClass = "gridtextbold";
            hh0.Attributes.Add("OnClick", "return AbreVentana('" + currUrl + "','EEFFMensual');");
            headerItem["Activo"].Controls.Add(hh0);

            HyperLink hh1 = new HyperLink();
            currUrl = "frmEEFFMensual.aspx?Mes=" + ViewState["Mes"].ToString().Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"] + "&NVL=" + ViewState["NivelCuentaID"] + "&ACUM=" + ViewState["Acumulado"].ToString().Trim() + "&TFGPID=01" + "&NTF=Balance General&FORMATOREPORTE=1";// +ViewState["TipoFormatoGGPPID"].ToString().Trim();
            hh1.NavigateUrl = "#";
            hh1.Text = "Pasivo";
            hh1.CssClass = "gridtextbold";
            hh1.Attributes.Add("OnClick", "return AbreVentana('" + currUrl + "','EEFFMensual');");
            headerItem["Pasivo"].Controls.Add(hh1);

            HyperLink hh2 = new HyperLink();
            currUrl = "frmEEFFMensual.aspx?Mes=" + ViewState["Mes"].ToString().Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"] + "&NVL=" + ViewState["NivelCuentaID"] + "&ACUM=" + ViewState["Acumulado"].ToString().Trim() + "&TFGPID=02" + "&NTF=Ganancias Y Perdidas Por NATURALEZA/funcion&FORMATOREPORTE=2";// +ViewState["TipoFormatoGGPPID"].ToString().Trim();
            hh2.NavigateUrl = "#";
            hh2.Text = "Perdida por Funcion";
            hh2.CssClass = "gridtextbold";
            hh2.Attributes.Add("OnClick", "return AbreVentana('" + currUrl + "','EEFFMensual');");
            headerItem["PerdidaPorFuncion"].Controls.Add(hh2);

            HyperLink hh3 = new HyperLink();
            currUrl = "frmEEFFMensual.aspx?Mes=" + ViewState["Mes"].ToString().Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"] + "&NVL=" + ViewState["NivelCuentaID"] + "&ACUM=" + ViewState["Acumulado"].ToString().Trim() + "&TFGPID=02" + "&NTF=Ganancias Y Perdidas Por NATURALEZA/funcion&FORMATOREPORTE=2";// +ViewState["TipoFormatoGGPPID"].ToString().Trim();
            hh3.NavigateUrl = "#";
            hh3.Text = "Ganancia por Funcion";
            hh3.CssClass = "gridtextbold";
            hh3.Attributes.Add("OnClick", "return AbreVentana('" + currUrl + "','EEFFMensual');");
            headerItem["GananciaPorFuncion"].Controls.Add(hh3);

            HyperLink hh4 = new HyperLink();
            currUrl = "frmEEFFMensual.aspx?Mes=" + ViewState["Mes"].ToString().Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"] + "&NVL=" + ViewState["NivelCuentaID"] + "&ACUM=" + ViewState["Acumulado"].ToString().Trim() + "&TFGPID=03" + "&NTF=Ganancias Y Perdidas Por FUNCION/naturaleza&FORMATOREPORTE=0";// +ViewState["TipoFormatoGGPPID"].ToString().Trim();
            hh4.NavigateUrl = "#";
            hh4.Text = "Perdida por Naturaleza";
            hh4.CssClass = "gridtextbold";
            hh4.Attributes.Add("OnClick", "return AbreVentana('" + currUrl + "','EEFFMensual');");
            headerItem["PerdidaPorNaturaleza"].Controls.Add(hh4);

            HyperLink hh5 = new HyperLink();
            currUrl = "frmEEFFMensual.aspx?Mes=" + ViewState["Mes"].ToString().Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"] + "&NVL=" + ViewState["NivelCuentaID"] + "&ACUM=" + ViewState["Acumulado"].ToString().Trim() + "&TFGPID=03" + "&NTF=Ganancias Y Perdidas Por FUNCION/naturaleza&FORMATOREPORTE=0";// +ViewState["TipoFormatoGGPPID"].ToString().Trim();
            hh5.NavigateUrl = "#";
            hh5.Text = "Ganancia por Naturaleza";
            hh5.CssClass = "gridtextbold";
            hh5.Attributes.Add("OnClick", "return AbreVentana('" + currUrl + "','EEFFMensual');");
            headerItem["GananciaPorNaturaleza"].Controls.Add(hh5);
        }

        if (e.Item is GridGroupHeaderItem)
        {
            GridGroupHeaderItem item = (GridGroupHeaderItem)e.Item;
            headertext = item.DataCell.Text.Substring(item.DataCell.Text.IndexOf(':') + 1);
        }
        if (e.Item is GridDataItem)
        {
            GridDataItem dataItem = (GridDataItem)e.Item;

            if (Double.Parse(dataItem["Debe"].Text) == 0) dataItem["Debe"].Text = "";
            if (Double.Parse(dataItem["Haber"].Text) == 0) dataItem["Haber"].Text = "";
            if (Double.Parse(dataItem["SaldoDeudor"].Text) == 0) dataItem["SaldoDeudor"].Text = "";
            if (Double.Parse(dataItem["SaldoAcreedor"].Text) == 0) dataItem["SaldoAcreedor"].Text = "";
            if (Double.Parse(dataItem["Activo"].Text) == 0) dataItem["Activo"].Text = "";
            if (Double.Parse(dataItem["Pasivo"].Text) == 0) dataItem["Pasivo"].Text = "";
            if (Double.Parse(dataItem["PerdidaPorNaturaleza"].Text) == 0) dataItem["PerdidaPorNaturaleza"].Text = "";
            if (Double.Parse(dataItem["GananciaPorNaturaleza"].Text) == 0) dataItem["GananciaPorNaturaleza"].Text = "";
            if (Double.Parse(dataItem["PerdidaPorFuncion"].Text) == 0) dataItem["PerdidaPorFuncion"].Text = "";
            if (Double.Parse(dataItem["GananciaPorFuncion"].Text) == 0) dataItem["GananciaPorFuncion"].Text = "";


            HyperLink CodigoPlanCuenta = new HyperLink();

            //currUrl = "frmAnalisisPorCuenta.aspx?Mes=" + ViewState["Mes"].ToString().Trim() + "&FED=&FEH=&CTAID2=&CTAID=" + dataItem["PlanCuentaID"].Text.Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"];
            currUrl = "frmAnalisisPorCuenta.aspx?Mes=" + ViewState["Mes"].ToString().Trim() + "&FED=&FEH=&CTAID2=&CTAID=" + dataItem["CodigoPlanCuenta"].Text.Trim() + "&HTL=" + ViewState["HotelID"] + "&ARA=" + ViewState["AreaID"] + "&UNG=" + ViewState["UnidadNegocioID"] + "&SUD=&ACUM=" + ViewState["Acumulado"].ToString().Trim() + "&MON=" + ViewState["MonedaID"].ToString();
            CodigoPlanCuenta.NavigateUrl = "#";
            CodigoPlanCuenta.Text = dataItem["CodigoPlanCuenta"].Text;
            CodigoPlanCuenta.CssClass = "gridtext";
            CodigoPlanCuenta.Attributes.Add("OnClick", "return AbreVentana('" + currUrl + "','Analisis');");
            dataItem["CodigoPlanCuenta"].Controls.Add(CodigoPlanCuenta);


            dataItem.ToolTip = dataItem["NombrePlanCuenta"].Text.ToString();
           
            if (dataItem["NombrePlanCuenta"].Text.ToString().Length > (CaracteresDescripcion()))
            {
                dataItem["NombrePlanCuenta"].Text = dataItem["NombrePlanCuenta"].Text.ToString().Substring(0,  CaracteresDescripcion()) + "...";
                //dataItem["NombrePlanCuenta"].Width = CaracteresDescripcion()*2;
            }
            


            //nbernuy
           // this.lblMoneda.Text = Utilitaria.Cls_Utilitaria.f_MostraNombreMoneda(Convert.ToInt32(Session["MonedaID"].ToString()), 3);

           

            string codigo= dataItem["PlanCuentaID"].Text;
            HyperLink descrip = new HyperLink();
            currUrl2 = "FrmAsientosContablesA.aspx?ACU="+ViewState["Acumulado"].ToString()+"&EID=" + Session["EmpresaID"].ToString()+"&hot="+ViewState["HotelID"].ToString()+"&ar="+ ViewState["AreaID"].ToString()+"&un="+ViewState["UnidadNegocioID"].ToString() +"&m="+ViewState["Mes"].ToString().Trim()+ "&pe=" + Session["txtPeriodo"].ToString() + "&ruc="+ "&sm=0" + "&mo="+Session["MonedaID"].ToString()+"&s="+codigo;
            descrip.NavigateUrl = "#";
            descrip.Text = dataItem["NombrePlanCuenta"].Text;
            descrip.CssClass = "gridtext";
            //descrip.Attributes.Add("OnClick", "return Mensaje ();");
            descrip.Attributes.Add("OnClick", "return AbreVentana('"+currUrl2+"','Analisis');");
            dataItem["NombrePlanCuenta"].Controls.Add(descrip);

            //nbernuy


        }

        if (e.Item is GridGroupFooterItem)
        {
            GridGroupFooterItem groupItem = (GridGroupFooterItem)e.Item;

            if (Double.Parse(groupItem["Debe"].Text) == 0) groupItem["Debe"].Text = "";
            if (Double.Parse(groupItem["Haber"].Text) == 0) groupItem["Haber"].Text = "";
            if (Double.Parse(groupItem["SaldoDeudor"].Text) == 0) groupItem["SaldoDeudor"].Text = "";
            if (Double.Parse(groupItem["SaldoAcreedor"].Text) == 0) groupItem["SaldoAcreedor"].Text = "";
            if (Double.Parse(groupItem["Activo"].Text) == 0) groupItem["Activo"].Text = "";
            if (Double.Parse(groupItem["Pasivo"].Text) == 0) groupItem["Pasivo"].Text = "";
            if (Double.Parse(groupItem["PerdidaPorNaturaleza"].Text) == 0) groupItem["PerdidaPorNaturaleza"].Text = "";
            if (Double.Parse(groupItem["GananciaPorNaturaleza"].Text) == 0) groupItem["GananciaPorNaturaleza"].Text = "";
            if (Double.Parse(groupItem["PerdidaPorFuncion"].Text) == 0) groupItem["PerdidaPorFuncion"].Text = "";
            if (Double.Parse(groupItem["GananciaPorFuncion"].Text) == 0) groupItem["GananciaPorFuncion"].Text = "";

            groupItem["DebeSI"].Font.Bold = true;
            groupItem["HaberSI"].Font.Bold = true;
            groupItem["DebeMov"].Font.Bold = true;
            groupItem["HaberMov"].Font.Bold = true;
            groupItem["Debe"].Font.Bold = true;
            groupItem["Haber"].Font.Bold = true;
            groupItem["SaldoDeudor"].Font.Bold = true;
            groupItem["SaldoAcreedor"].Font.Bold = true;
            groupItem["Activo"].Font.Bold = true;
            groupItem["Pasivo"].Font.Bold = true;
            groupItem["PerdidaPorNaturaleza"].Font.Bold = true;
            groupItem["GananciaPorNaturaleza"].Font.Bold = true;
            groupItem["PerdidaPorFuncion"].Font.Bold = true;
            groupItem["GananciaPorFuncion"].Font.Bold = true;

            groupItem["DebeSI"].Style["border-top"] = "2px solid black";
            groupItem["HaberSI"].Style["border-top"] = "2px solid black";
            groupItem["DebeMov"].Style["border-top"] = "2px solid black";
            groupItem["HaberMov"].Style["border-top"] = "2px solid black";
            groupItem["Debe"].Style["border-top"] = "2px solid black";
            groupItem["Haber"].Style["border-top"] = "2px solid black";
            groupItem["SaldoDeudor"].Style["border-top"] = "2px solid black";
            groupItem["SaldoAcreedor"].Style["border-top"] = "2px solid black";
            groupItem["Activo"].Style["border-top"] = "2px solid black";
            groupItem["Pasivo"].Style["border-top"] = "2px solid black";
            groupItem["PerdidaPorNaturaleza"].Style["border-top"] = "2px solid black";
            groupItem["GananciaPorNaturaleza"].Style["border-top"] = "2px solid black";
            groupItem["PerdidaPorFuncion"].Style["border-top"] = "2px solid black";
            groupItem["GananciaPorFuncion"].Style["border-top"] = "2px solid black"; 
            //cell.Style["border-bottom"] = "1px solid black";

            string strtxt = groupItem["CodigoPlanCuenta2Digitos"].Text.Substring(groupItem["CodigoPlanCuenta2Digitos"].Text.IndexOf(':') + 1);
            if (headertext != null)
                if (headertext.ToString().Trim() == "99")
                {
                    groupItem["NombrePlanCuenta"].Text = "Total General :" + strtxt;
                }
                else
                {
                    groupItem["NombrePlanCuenta"].Text = "SubTotal Cuenta " + headertext + ":" + strtxt;
                }
            
            groupItem["NombrePlanCuenta"].Style["color"] = "#006400";
            groupItem["NombrePlanCuenta"].Style["font-weight"] = "bold";
            groupItem["NombrePlanCuenta"].Style["font-style"] = "italic";
            groupItem["NombrePlanCuenta"].Style["text-align"] = "right";

            if (this.cbxNivelCuentas.Text == "2 Digitos")
            {
                if (headertext.ToString().Trim() != "99")
                {
                    groupItem["NombrePlanCuenta"].Visible = false;
                    groupItem["HaberMov"].Visible = false;
                    groupItem["CodigoPlanCuenta"].Visible = false;
                    groupItem["DebeSI"].Visible = false;
                    groupItem["HaberSI"].Visible = false;
                    groupItem["DebeMov"].Visible = false;
                    groupItem["Debe"].Visible = false;
                    groupItem["Haber"].Visible = false;
                    groupItem["SaldoDeudor"].Visible = false;
                    groupItem["SaldoAcreedor"].Visible = false;
                    groupItem["Activo"].Visible = false;
                    groupItem["Pasivo"].Visible = false;
                    groupItem["PerdidaPorNaturaleza"].Visible = false;
                    groupItem["GananciaPorNaturaleza"].Visible = false;
                    groupItem["PerdidaPorFuncion"].Visible = false;
                    groupItem["GananciaPorFuncion"].Visible = false;
                    groupItem.Visible = false;
                    //groupItem.Height = 1;
                    groupItem.Display = false;
                }
            }
            //if (this.cbxNivelCuentas.Text == "2 Digitos")
            //{
            //    groupItem["NombrePlanCuenta"].Visible = false;
            //    groupItem["HaberMov"].Visible = false;
            //    groupItem["CodigoPlanCuenta"].Visible = false;
            //    groupItem["DebeSI"].Visible = false;
            //    groupItem["HaberSI"].Visible = false;
            //    groupItem["DebeMov"].Visible = false;
            //    groupItem["Debe"].Visible = false;
            //    groupItem["Haber"].Visible = false;
            //    groupItem["SaldoDeudor"].Visible = false;
            //    groupItem["SaldoAcreedor"].Visible = false;
            //    groupItem["Activo"].Visible = false;
            //    groupItem["Pasivo"].Visible = false;
            //    groupItem["PerdidaPorNaturaleza"].Visible = false;
            //    groupItem["GananciaPorNaturaleza"].Visible = false;
            //    groupItem["PerdidaPorFuncion"].Visible = false;
            //    groupItem["GananciaPorFuncion"].Visible = false;
            //    groupItem.Visible = false;
            //    //groupItem.Height = 1;
            //    groupItem.Display = false;
            //}
        }

        
        //if (e.Item is GridFooterItem)
        //{
        //    GridFooterItem footerItem = (GridFooterItem)e.Item;
        //    footerItem.Visible = false;
        //}
        
    }

    protected void tk_Grid_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
    {
        Listar();
    }

    protected void tk_Grid_PreRender(object sender, EventArgs e)
    {
        foreach (GridGroupHeaderItem groupheader in tk_Grid.MasterTableView.GetItems(GridItemType.GroupHeader))
        {
            if (groupheader.GroupIndex.Length >= 1)
            {
                groupheader.Visible = false;
            }
        }


        GridColumn gridCol = tk_Grid.MasterTableView.GetColumn("NombrePlanCuenta");
        gridCol.HeaderStyle.Width = Unit.Pixel(100*4);   

        //GridDataItem lastItem = tk_Grid.MasterTableView.Items[tk_Grid.MasterTableView.Items.Count - 1];
        //foreach (TableCell cell in lastItem.Cells)
        //{
        //    String x = cell.Text;
        //    Int32 xg = cell.
        //    cell.Style["border-bottom"] = "1px solid black";
        //} 



    }

    public String f_TurnEmptyIfCero(Decimal Value)
    {
        if (Value == 0)
        {
            return String.Empty;
        }
        else
        {
            return Convert.ToString(Value);
        }
    }

    protected void tk_Grid_ItemCommand(object source, GridCommandEventArgs e)
    {
        tk_Grid.ExportSettings.ExportOnlyData = true;
        tk_Grid.ExportSettings.IgnorePaging = true;
        tk_Grid.ExportSettings.OpenInNewWindow = false;

        switch (e.CommandName)
        {
            case "ExportExcel":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToExcel();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportPDF":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToPdf();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportWord":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToWord();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportCSV":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToCSV();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "Print":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Imprime == 1)
                {

                    if (ViewState["IND"].ToString() == "104")
                    {
                             //Response.Write(Cls_Utilitaria.f_Imprime());
                    RadWindowManager windowManager = new RadWindowManager();
                    RadWindow widnow1 = new RadWindow();
                    // Set the window properties   
                    widnow1.NavigateUrl = "Frm_ReporteBalanceComprobacion_Sunat.aspx?monedaID=" + this.cbxMoneda.SelectedValue + "&PeriodoID=" + Convert.ToInt32(ViewState["Mes"]) + "&Ejercicio=" + Session["txtPeriodo"].ToString() + "&HotelID=" + Request.QueryString["HTL"].ToString() + "&EstablecimientoID=" + Convert.ToInt32(Session["EmpresaID"].ToString()) + "&NivelID=" + this.cbxNivelCuentas.SelectedValue + "&Acumulado=" + Request.QueryString["ACUM"] + "&Texto1="+ lblTitulo.Text+"&Texto2=Moneda:%20" + this.cbxMoneda.Text.ToString() + "%20Nivel:%20" + this.cbxNivelCuentas.Text.ToString() + "%20Mes:%20" + lblMes.Text + "%20A%C3%B1o:%20" + Session["txtPeriodo"].ToString() + "&texto3=Test3";
                    widnow1.ID = "RadWindow1";
                    widnow1.Width = 500;
                    widnow1.Height = 500;
                    widnow1.Skin = "Office2007";
                    widnow1.VisibleOnPageLoad = true; // Set this property to True for showing window from code   
                    windowManager.Windows.Add(widnow1);
                    this.form2.Controls.Add(widnow1);
                    tk_Grid.Rebind();
                    }
                    else{
                             //Response.Write(Cls_Utilitaria.f_Imprime());
                    RadWindowManager windowManager2 = new RadWindowManager();
                    RadWindow widnow2 = new RadWindow();
                    // Set the window properties   
                    widnow2.NavigateUrl = "Frm_ReporteBalanceComprobacion.aspx?monedaID=" + this.cbxMoneda.SelectedValue + "&PeriodoID=" + Convert.ToInt32(ViewState["Mes"]) + "&Ejercicio=" + Session["txtPeriodo"].ToString() + "&HotelID=" + Request.QueryString["HTL"].ToString() + "&EstablecimientoID=" + Convert.ToInt32(Session["EmpresaID"].ToString()) + "&NivelID=" + this.cbxNivelCuentas.SelectedValue + "&Acumulado=" + Request.QueryString["ACUM"] + "&Texto1=" + lblTitulo.Text + "&Texto2=Moneda:%20" + this.cbxMoneda.Text.ToString() + "%20Nivel:%20" + this.cbxNivelCuentas.Text.ToString() + "%20Mes:%20" + lblMes.Text + "%20A%C3%B1o:%20" + Session["txtPeriodo"].ToString() + "&texto3=Test3" + "&Sucursal=" + lblSucursal.Text;
                    widnow2.ID = "RadWindow1";
                    widnow2.Width = 500;
                    widnow2.Height = 500;
                    widnow2.Skin = "Office2007";
                    widnow2.VisibleOnPageLoad = true; // Set this property to True for showing window from code   
                    windowManager2.Windows.Add(widnow2);
                    this.form2.Controls.Add(widnow2);
                    tk_Grid.Rebind();
                    }
               
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
        }
        Listar();
    }

    protected void showMessage(string strMessage)
    {
        //ClientScript.RegisterStartupScript(this.GetType(), "Application", string.Format("alert('{0}');", HttpUtility.HtmlDecode(strMessage)), true);
        RadScriptManager.RegisterStartupScript(this, this.GetType(), "Application", "alert('" + strMessage + "');", true);

    }

    private void PopulateCombo_NivelCuenta(String SelectedValue)
    {
        BLPlanDeCuentasNiveles oBLPlanDeCuentasNiveles = new BLPlanDeCuentasNiveles();
        List<BEPlanDeCuentasNiveles> loPlanDeCuentasNiveles;
        int i = 0;

        loPlanDeCuentasNiveles = oBLPlanDeCuentasNiveles.fnSelPlanDeCuentasAll();
        RadComboBoxItem item0 = new RadComboBoxItem();
        item0.Text = "General";
        item0.Value = "0";
        cbxNivelCuentas.Items.Add(item0);
        item0.DataBind();

        for (i = 0; i < loPlanDeCuentasNiveles.Count; i++)
        {
            RadComboBoxItem item = new RadComboBoxItem();
            item.Text = loPlanDeCuentasNiveles[i].NombreNivel.Trim();
            item.Value = Convert.ToString(loPlanDeCuentasNiveles[i].PlanDeCuentasNivelesID);
            cbxNivelCuentas.Items.Add(item);
            item.DataBind();
        }
        oBLPlanDeCuentasNiveles = null;
        loPlanDeCuentasNiveles = null;

        if (SelectedValue == "") cbxNivelCuentas.SelectedValue = "0";
    }

    private void Combo_Moneda()
    {
        BEMonedas objet_Monedas = new BEMonedas();
        BLMonedas objlg_Monedas = new BLMonedas();
        List<BEMonedas> Col_Monedas;

        Col_Monedas = objlg_Monedas.fnSelMonedasOrigenAll();
        for (int i = 0; i < Col_Monedas.Count; i++)
        {
            cbxMoneda.Items.Insert(i, new RadComboBoxItem(Col_Monedas[i].Nombre.Trim()));
            cbxMoneda.Items[i].Value = Col_Monedas[i].MonedaID.ToString().Trim();
        }
        cbxMoneda.SelectedValue = ViewState["MonedaID"].ToString();

        objet_Monedas = null;
        objlg_Monedas = null;
    }

    protected void btnActualizar_Click(object sender, EventArgs e)
    {
        ViewState["Click"] = "1";
        Cls_Propiedades.TempBalanceComprobacion.Clear();
        ViewState["MonedaID"] = cbxMoneda.SelectedValue.ToString();
        ViewState["NivelCuentaID"] = cbxNivelCuentas.SelectedValue.ToString();
        ViewState["Acumulado"] = cbxAcumulado.SelectedValue.ToString();
        tk_Grid.Rebind();
       
        if (ViewState["Acumulado"].ToString() == "0")
        {
            lblAcumulado.Text = "Del";
            //this.lblnik.Text = "deeeeeel";
        }
        else if (ViewState["Acumulado"].ToString() == "1")
        {
            lblAcumulado.Text = "Al";
            //  this.lblnik.Text = "aaaaaaaall";
        }
    }

    private Int32 CaracteresDescripcion()
    {
        BEParametrosGenerales objBEParametrosGenerales = new BEParametrosGenerales();
        BLParametrosGenerales objBLParametrosGenerales = new BLParametrosGenerales();
        objBEParametrosGenerales.ParametroGeneralID = 621;
        List<BEParametrosGenerales> lstBEParametrosGenerales = objBLParametrosGenerales.fnSelParametrosGenerales(objBEParametrosGenerales);
        return Convert.ToInt32(lstBEParametrosGenerales[0].Valor);
    }

    protected void cbxAcumulado_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e)
    {
        PopulateCombo_Acumulado(e.Text);
    }

    private void PopulateCombo_Acumulado(String SelectedValue)
    {
        RadComboBoxItem item = new RadComboBoxItem();
        item.Text = "Mensual";
        item.Value = "0";
        cbxAcumulado.Items.Add(item);
        item.DataBind();

        RadComboBoxItem _item = new RadComboBoxItem();
        _item.Text = "Acumulado";
        _item.Value = "1";
        cbxAcumulado.Items.Add(_item);
        _item.DataBind();

        if (SelectedValue == "") cbxAcumulado.SelectedValue = "0";
        if (SelectedValue != "") cbxAcumulado.SelectedValue = SelectedValue;
    }

    //protected void cbxTipoCuenta1_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e)
    //{
    //    PopulateComco_TipoCuenta(e.Text);
    //}

    //private void PopulateComco_TipoCuenta(String SelectedValue)
    //{
    //    BLTipoCuenta oBLTipoCuenta = new BLTipoCuenta();
    //    List<BETipoCuenta> loBLTipoCuenta;

    //    loBLTipoCuenta = oBLTipoCuenta.fnSelTipoCuentaDin("Estado=0", "");
    //    RadComboBoxItem item0 = new RadComboBoxItem();
    //    item0.Text = "Todas";
    //    item0.Value = "0";
    //    //cbxTipoCuenta1.Items.Add(item0);
    //    item0.DataBind();

    //    for (int i = 0; i < loBLTipoCuenta.Count; i++)
    //    {
    //        RadComboBoxItem item = new RadComboBoxItem();
    //        item.Text = loBLTipoCuenta[i].CodigoTipoCuenta.Trim() + " -> " + loBLTipoCuenta[i].NombreTipoCuenta.Trim();
    //        item.Value = Convert.ToString(loBLTipoCuenta[i].TipoCuentaID.Trim());
    //        cbxTipoCuenta1.Items.Add(item);
    //        item.DataBind();
    //    }
    //    oBLTipoCuenta = null;
    //    loBLTipoCuenta = null;

    //    if (SelectedValue == "") cbxTipoCuenta1.SelectedValue = "0";
    //}
    protected void cbxAcumulado_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        ViewState["Acumulado"] = cbxAcumulado.SelectedValue.ToString();
    }
}
