using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using Telerik.Web.UI;
using System.Globalization;

using BE;
using BL;
using Utilitaria;


public partial class List_Areas : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Usuario"] == null)
        {
            Response.Redirect(Utilitaria.Cls_Enums.CerrarSesion.Salir);
        }
        if (!IsPostBack)
        {
            llenaCombo();
            ViewState["HotelID"] = Session["HotelID"];
            ViewState["EstablecimientoID"] = Session["EmpresaID"];
        }
    }

    private void listar(int tipo)
    {
        BEAreas objBEAreas = new BEAreas();
        BLAreas objBLAreas = new BLAreas();

        BESubDiarios objet_SubDiarios = new BESubDiarios();
        BLSubDiarios objlg_SubDiarios = new BLSubDiarios();
        string combo = this.ddlEstado.SelectedValue;
        if (combo == string.Empty)
        {
            combo = "0";
        }

        string strEstado = Utilitaria.Cls_Utilitaria.f_CadenaEstado(Convert.ToInt32(combo));
        strEstado += (strEstado.Length == 0) ? "" : " AND ";
        //strEstado += "HotelID=" + ViewState["HotelID"].ToString() + " And ";
        strEstado += "EstablecimientoID=" + ViewState["EstablecimientoID"].ToString();


        this.tk_Grid.Columns[6].Visible = false;
        if (combo == Utilitaria.Cls_Enums.EstadoModulos.Activo)
        {
            this.tk_Grid.Columns[7].Visible = false;
            this.tk_Grid.Columns[8].Visible = true;
        }
        else
        {
            this.tk_Grid.Columns[7].Visible = true;
            this.tk_Grid.Columns[8].Visible = false;
        }

        if (tipo == 1)
        {
            tk_Grid.DataSource = objBLAreas.fnSelAreasDin(strEstado, "2 asc");
        }

        if (tipo == 2)
        {
            tk_Grid.DataSource = objBLAreas.fnSelAreasDin(strEstado, "2 asc");
            tk_Grid.DataBind();
        }

        objet_SubDiarios = null;
        objlg_SubDiarios = null;

    }

    private void llenaCombo()
    {
        //this.ddlEstado.Items.Insert(0, "---Todos---");
        //this.ddlEstado.Items[0].Value = Utilitaria.Cls_Enums.EstadoModulos.Todos;

        this.ddlEstado.Items.Insert(0, new RadComboBoxItem("Activo"));
        this.ddlEstado.Items[0].Value = Utilitaria.Cls_Enums.EstadoModulos.Activo;

        this.ddlEstado.Items.Insert(1, new RadComboBoxItem("Inactivo"));
        this.ddlEstado.Items[1].Value = Utilitaria.Cls_Enums.EstadoModulos.Inactivo;

    }

    public string f_NombreEstado(Int32 Estados)
    {
        return Utilitaria.Cls_Utilitaria.f_TipoEstado(Convert.ToInt32(Estados));
    }

    protected void ddlEstado_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        if (this.ddlEstado.SelectedValue.ToString() != string.Empty)
            listar(2);
        else
            listar(1);

    }

    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();
                    this.listar(1);
                }
                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();
                    this.listar(1);
                }
                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();
                    this.listar(1);
                }
                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();
                    this.listar(1);
                }
                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());
                    this.listar(1);
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
        }


        if (e.CommandName == "activar")
        {
            Cls_Utilitaria.f_cambiaEstado_SubDiarios(Convert.ToString(e.CommandArgument),
                                                            Convert.ToString(Cls_Enums.EstadoModulos.Activo),
                                                            Convert.ToInt32(Session["UsuarioID"]),
                                                            "",
                                                            0,
                                                            Cls_Enums.TablaMovimientos.SubDiarios,
                                                            "",
                                                            "");
            this.tk_Grid.Rebind();
        }

        if (e.CommandName == "desactivar")
        {
            Cls_Utilitaria.f_cambiaEstado_SubDiarios(Convert.ToString(e.CommandArgument),
                                                            Convert.ToString(Cls_Enums.EstadoModulos.Inactivo),
                                                            Convert.ToInt32(Session["UsuarioID"]),
                                                            "",
                                                            0,
                                                            Cls_Enums.TablaMovimientos.SubDiarios,
                                                            "",
                                                            "");
            this.tk_Grid.Rebind();
        }
    }


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


    }

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

    protected void tk_Grid_ItemCreated(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            HyperLink editLink = (HyperLink)e.Item.FindControl("EditLink");
            editLink.Attributes["href"] = "#";
            editLink.Attributes["onclick"] = String.Format("return ShowEditForm('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["SubDiarioID"], e.Item.ItemIndex);
        }

    }
    protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
    {
        if (e.Argument == "Rebind")
        {
            tk_Grid.MasterTableView.SortExpressions.Clear();
            tk_Grid.MasterTableView.GroupByExpressions.Clear();
            tk_Grid.Rebind();
        }
        else if (e.Argument == "RebindAndNavigate")
        {
            tk_Grid.MasterTableView.SortExpressions.Clear();
            tk_Grid.MasterTableView.GroupByExpressions.Clear();
            tk_Grid.MasterTableView.CurrentPageIndex = tk_Grid.MasterTableView.PageCount - 1;
            tk_Grid.Rebind();
        }
    }
    String CurrUrl;
    String par;
    protected void tk_Grid_ItemDataBound(object sender, GridItemEventArgs e)
    {
       if (e.Item is GridDataItem)
        {

            GridDataItem dataItem = (GridDataItem)e.Item;

            //HyperLink editLink = (HyperLink)e.Item.FindControl("EditLink");
            //HyperLink editLink = new HyperLink();
            //editLink.Attributes["href"] = "#";
            //editLink.Attributes["onclick"] = String.Format("return ShowEditForm('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["AreaID"], e.Item.ItemIndex);

            //dataItem["BEUnidadesDeNegocio_Areas.Participacion"].Controls.Add(editLink);

            par = "&ARA=" + dataItem["AreaID"].Text + "&SCR=" + Session["HotelID"];
            HyperLink linkItem = new HyperLink();
            linkItem.NavigateUrl = "#";
            linkItem.Text = dataItem["BEUnidadesDeNegocio_Areas.Participacion"].Text;
            linkItem.CssClass = "gridtext";
            linkItem.Attributes.Add("OnClick", String.Format("return ShowEditForm('{0}','{1}','{2}');", dataItem["AreaID"].Text, e.Item.ItemIndex, par));
            dataItem["BEUnidadesDeNegocio_Areas.Participacion"].Controls.Add(linkItem);


            par = "&ARA=" + dataItem["AreaID"].Text + "&SCR=" + Session["HotelID"];
            linkItem = new HyperLink();
            linkItem.NavigateUrl = "#";
            linkItem.Text = dataItem["NombreArea"].Text;
            linkItem.CssClass = "gridtext";
            linkItem.Attributes.Add("OnClick", String.Format("return ShowEditFormCuentas('{0}','{1}','{2}');", dataItem["AreaID"].Text, e.Item.ItemIndex, par));
            dataItem["NombreArea"].Controls.Add(linkItem);




            //if (Convert.ToDecimal(dataItem["BEUnidadesDeNegocio_Areas.Participacion"].Text.Trim()) == 0)
            //    dataItem["BEUnidadesDeNegocio_Areas.Participacion"].Text = "";
        }
        else if (e.Item is GridGroupFooterItem)
        {
            GridGroupFooterItem gridfooteritem = e.Item as GridGroupFooterItem;
            if (Convert.ToDecimal(gridfooteritem["BEUnidadesDeNegocio_Areas.Participacion"].Text.Trim()) == 0)
                gridfooteritem["BEUnidadesDeNegocio_Areas.Participacion"].Text = "";
        }
        else if (e.Item is GridFooterItem)
        {
            //GridFooterItem dataItem = (GridFooterItem)e.Item;
            //if (Convert.ToDecimal(dataItem["BEUnidadesDeNegocio_Areas.Participacion"].Text.Trim()) == 0)
            //    dataItem["BEUnidadesDeNegocio_Areas.Participacion"].Text = "";
        }
    }
}
