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 DetalladoPorAsiento : System.Web.UI.Page
{
    String _Periodo;
    protected void Page_Load(object sender, EventArgs e)
    {
        Thread.CurrentThread.CurrentCulture = new CultureInfo("es-PE");
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-PE");
        if (!Page.IsPostBack)
        {
            ViewState["MonedaID"] = Session["MonedaID"].ToString();
            PopulateCombo_Moneda(ViewState["MonedaID"].ToString());

            cbxMoneda.SelectedValue = ViewState["MonedaID"].ToString();
            if (ViewState["MonedaID"].ToString() == "") ViewState["MonedaID"] = "1";

            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"].ToString() == "" || ViewState["FecDesde"] == null || ViewState["FecHasta"].ToString() == "" || 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"]));
            }

            ViewState["SubDiarioID"] = Request.QueryString["DRO"];
            ViewState["Mes"] = "99";
            ViewState["FecDesde"] = Request.QueryString["FD"];
            ViewState["FecHasta"] = Request.QueryString["FH"];
            ViewState["CtaInicio"] = Request.QueryString["CI"];
            ViewState["CtaFin"] = Request.QueryString["CF"];
            ViewState["CPC1"] = Request.QueryString["CPC1"];
            ViewState["CPC2"] = Request.QueryString["CPC2"];
            ViewState["HotelID"] = Request.QueryString["HTL"];
            ViewState["AsientocontableDetalleIDTransferencia"] = "";
            if (ViewState["HotelID"].ToString() == "") ViewState["HotelID"] = "0";
            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";
            }

            _Periodo = Request.QueryString["ANIO"];

            ViewState["UnidadNegocioID"] = Request.QueryString["UNG"];
            if (ViewState["UnidadNegocioID"].ToString() == "") ViewState["UnidadNegocioID"] = "0";
            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"];
            if (ViewState["AreaID"].ToString() == "") ViewState["AreaID"] = "0";
            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";
            }
            cbxEstados.Items.Insert(0, new RadComboBoxItem("Todos"));
            cbxEstados.Items[0].Value = "";
            cbxEstados.Items.Insert(1, new RadComboBoxItem("Asientos"));
            cbxEstados.Items[1].Value = "1";
            cbxEstados.Items.Insert(2, new RadComboBoxItem("Asientos de Transferencia"));
            cbxEstados.Items[2].Value = "2";
        }
    }

    protected void showMessage(string strMessage)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "Application", "alert('" + strMessage + "');", true);
    }

    private void PopulateCombo_Moneda(String SelectedValue)
    {
        BLMonedas oBEMonedas = new BLMonedas();
        List<BEMonedas> loMonedas;
        loMonedas = oBEMonedas.fnSelMonedasAll();
        for (Int32 i = 0; i < loMonedas.Count; i++)
        {
            RadComboBoxItem item = new RadComboBoxItem();
            item.Text = loMonedas[i].Nombre.Trim();
            item.Value = loMonedas[i].MonedaID.ToString();
            cbxMoneda.Items.Add(item);
            item.DataBind();
        }
        if (SelectedValue == "") cbxMoneda.SelectedValue = "1";
        oBEMonedas = null;
        loMonedas = null;
    }
    protected void btnActualizar_Click(object sender, EventArgs e)
    {
        RadGrid1.Rebind();
    }

    protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
    {
        

        switch (e.CommandName)
        {
            case "ExportExcel":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    //RadGrid1.PageSize = RadGrid1.MasterTableView.VirtualItemCount;
                    RadGrid1.ExportSettings.IgnorePaging = true;
                    RadGrid1.ExportSettings.OpenInNewWindow = true;
                    RadGrid1.MasterTableView.ExportToExcel();
                    
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportPDF":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    RadGrid1.MasterTableView.ExportToPdf();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportWord":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    RadGrid1.MasterTableView.ExportToWord();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportCSV":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    RadGrid1.MasterTableView.ExportToCSV();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "Print":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Imprime == 1)
                {
                    //Response.Write(Cls_Utilitaria.f_Imprime());
                    RadWindowManager windowManager = new RadWindowManager();
                    RadWindow widnow1 = new RadWindow();
                    widnow1.NavigateUrl = "frm_ReportDetalladoPorAsiento.aspx?SUBDI=" + Request.QueryString["SUBDI"] + "&UNG=" + Request.QueryString["UNG"] + "&ARA=" + Request.QueryString["ARA"] + "&HTL=" + Request.QueryString["HTL"] + "&FD=" + Request.QueryString["FD"] + "&FH=" + Request.QueryString["FH"] + "&CI=" + Request.QueryString["CI"] + "&CF=" + Request.QueryString["CF"] + "&CPC1=&CPC2=&Texto1=DETALLADO%20POR%20ASIENTOS&Texto2=Moneda:%20" + this.cbxMoneda.Text.ToString() + "%20" + Session["txtPeriodo"].ToString() + "&texto3=Test3";
                    widnow1.ID = "RadWindow1";
                    widnow1.Width = 1000;
                    widnow1.Height = 500;
                    widnow1.Skin = "Office2007";
                    widnow1.VisibleOnPageLoad = true; //Set this property to True for showing window from code.
                    windowManager.Windows.Add(widnow1);
                    this.form1.Controls.Add(widnow1);
                    RadGrid1.Rebind();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
        }
        //RadGrid1.Rebind();
    }

    //protected void Exportar_Data(object sender, EventArgs e)
    //{
    //    RadGrid1.ExportSettings.ExportOnlyData = true;
    //    RadGrid1.ExportSettings.IgnorePaging = true;
    //    RadGrid1.ExportSettings.OpenInNewWindow = true;
    //    switch ((sender as ImageButton).CommandName)
    //    {
    //        case "ExportExcel":
    //            if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
    //            {
    //                RadGrid1.MasterTableView.ExportToExcel();
    //            }
    //            else
    //            {
    //                showMessage("No posee los privilegios necesario para completar la operación");
    //            }
    //            break;
    //        case "ExportPDF":
    //            if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
    //            {
    //                RadGrid1.MasterTableView.ExportToPdf();
    //            }
    //            else
    //            {
    //                showMessage("No posee los privilegios necesario para completar la operación");
    //            }
    //            break;
    //        case "ExportWord":
    //            if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
    //            {
    //                RadGrid1.MasterTableView.ExportToWord();
    //            }
    //            else
    //            {
    //                showMessage("No posee los privilegios necesario para completar la operación");
    //            }
    //            break;
    //        case "ExportCSV":
    //            if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
    //            {
    //                RadGrid1.MasterTableView.ExportToCSV();
    //            }
    //            else
    //            {
    //                showMessage("No posee los privilegios necesario para completar la operación");
    //            }
    //            break;
    //        case "Print":

    //            if (Cls_Propiedades.PrivilegiosUsuario[0].Imprime == 1)
    //            {
    //                //Response.Write(Cls_Utilitaria.f_Imprime());
    //                RadWindowManager windowManager = new RadWindowManager();
    //                RadWindow widnow1 = new RadWindow();
    //                widnow1.NavigateUrl = "frm_ReportDetalladoPorAsiento.aspx?SUBDI=" + Request.QueryString["SUBDI"] + "&UNG=" + Request.QueryString["UNG"] + "&ARA=" + Request.QueryString["ARA"] + "&HTL=" + Request.QueryString["HTL"] + "&FD=" + Request.QueryString["FD"] + "&FH=" + Request.QueryString["FH"] + "&CI=" + Request.QueryString["CI"] + "&CF=" + Request.QueryString["CF"] + "&CPC1=&CPC2=&Texto1=DETALLADO%20POR%20ASIENTOS&Texto2=Moneda:%20" + this.cbxMoneda.Text.ToString() + "%20" + Session["txtPeriodo"].ToString() + "&texto3=Test3";
    //                widnow1.ID = "RadWindow1";
    //                widnow1.Width = 1000;
    //                widnow1.Height = 500;
    //                widnow1.Skin = "Office2007";
    //                widnow1.VisibleOnPageLoad = true; //Set this property to True for showing window from code.
    //                windowManager.Windows.Add(widnow1);
    //                this.form1.Controls.Add(widnow1);
    //                RadGrid1.Rebind();
    //            }
    //            else
    //            {
    //                showMessage("No posee los privilegios necesario para completar la operación");
    //            }
    //            break;
    //    }
    //}

    //private void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
    //{
    //    foreach (GridDataItem item in RadGrid1.Items)
    //    {
    //        string NombreSubFamilia = Strings.Trim(item("NombreGrupo").Text);
    //        if (NombreSubFamilia.Length > 5)
    //        {
    //            item("NombreGrupo").Text = NombreSubFamilia.Substring(0, 4);
    //        }
    //        item("NombreGrupo").Text = item("NombreGrupo").Text + "..";
    //    }
    //}

    protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
    {
        //var dataItem = e.Item as GridDataItem;
        //var GlosaV = dataItem["NombreTipoDoc"];
        //if (GlosaV.Text.Length > 10)
        //{
        //    var originaltext = GlosaV.Text;
        //    GlosaV.Text = GlosaV.Text.Remove(10) + "...";
        //    GlosaV.ToolTip = originaltext;
        //}

        var dataItem = e.Item as GridDataItem;
        if (dataItem != null && !dataItem.IsInEditMode)
        {
            var Glosa = dataItem["Glosa"];
            if (Glosa.Text != "&nbsp;")
            {
                if (Glosa.Text.Length > 40)
                {
                    var originalGlosa = Glosa.Text;
                    Glosa.Text = Glosa.Text.Remove(40) + "...";
                    Glosa.ToolTip = originalGlosa;
                }
            }

            var cell = dataItem["NombreTipoDoc"];
            if (cell.Text != "&nbsp;")
            {
                if (cell.Text.Length > 20)
                {
                    var originaltext = cell.Text;
                    cell.Text = cell.Text.Remove(20) + "...";
                    cell.ToolTip = originaltext;
                }
            }

            var NombrePlanCuentaV = dataItem["NombrePlanCuenta"];
            if (NombrePlanCuentaV.Text != "&nbsp;")
            {
                if (NombrePlanCuentaV.Text.Length > 20)
                {
                    var originalNombrePlanCuentaVtext = NombrePlanCuentaV.Text;
                    NombrePlanCuentaV.Text = NombrePlanCuentaV.Text.Remove(20) + "...";
                    NombrePlanCuentaV.ToolTip = originalNombrePlanCuentaVtext;
                }
            }

            var ReferenciaV = dataItem["Referencia"];
            if (ReferenciaV.Text != "&nbsp;")
            {
                if (ReferenciaV.Text.Length > 47)
                {
                    var originalReferenciaVtext = ReferenciaV.Text;
                    ReferenciaV.Text = ReferenciaV.Text.Remove(47) + "...";
                    ReferenciaV.ToolTip = originalReferenciaVtext;
                }
            }
            
            var razonsocialV = dataItem["razonsocial"];
            if (razonsocialV.Text != "&nbsp;")
            {
                if (NombrePlanCuentaV.Text.Length > 20)
                {
                    var originalrazonsocialVtext = razonsocialV.Text;
                    razonsocialV.Text = razonsocialV.Text.Remove(20) + "...";
                    razonsocialV.ToolTip = originalrazonsocialVtext;
                }
            }
        }
    }
}