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_TipoFormatoDeGGyPP : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Usuario"] == null)
        {
            Response.Redirect(Utilitaria.Cls_Enums.CerrarSesion.Salir);
        }

    }

    private void listar(int tipo)
    {
        BETipoFormatoDeGGyPP objet_TipoFormatoDeGGyPP = new BETipoFormatoDeGGyPP();
        BLTipoFormatoDeGGyPP objlg_TipoFormatoDeGGyPP = new BLTipoFormatoDeGGyPP();

        string strEstado = ""; //Utilitaria.Cls_Utilitaria.f_CadenaEstado(Convert.ToInt32(this.ddlEstado.SelectedValue));

        //if (this.ddlEstado.SelectedValue.ToString() == Utilitaria.Cls_Enums.EstadoModulos.Activo)
        //{
        //    this.tk_Grid.Columns[3].Visible = false;
        //    this.tk_Grid.Columns[4].Visible = true;
        //}
        //else
        //{
        //    this.tk_Grid.Columns[3].Visible = true;
        //    this.tk_Grid.Columns[4].Visible = false;
        //}
  
        if (tipo == 1)
        {
            Session["TipoFormatoDeGGyPP"] = objlg_TipoFormatoDeGGyPP.fnSelTipoFormatoDeGGyPPAll();
            tk_Grid.DataSource = Session["TipoFormatoDeGGyPP"];
        }

        if (tipo == 2)
        {

            Session["TipoFormatoDeGGyPP"] = objlg_TipoFormatoDeGGyPP.fnSelTipoFormatoDeGGyPPDin(strEstado, "");
            
            tk_Grid.DataSource = Session["TipoFormatoDeGGyPP"];
            tk_Grid.DataBind();
        }

        objet_TipoFormatoDeGGyPP = null;
        objlg_TipoFormatoDeGGyPP = null;

    }

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

    //protected void ddlEstado_SelectedIndexChanged(object sender, EventArgs 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 == "desactivar")
        {
            GridDataItem item = (GridDataItem)e.Item;
            BETipoFormatoDeGGyPP objet_TipoFormatoDeGGyPP = new BETipoFormatoDeGGyPP();
            BLTipoFormatoDeGGyPP objlg_TipoFormatoDeGGyPP = new BLTipoFormatoDeGGyPP();
            List<BETipoFormatoDeGGyPP> Datos;
            
            //Datos = objlg_TipoFormatoDeGGyPP.fnSelTipoFormatoDeGGyPPDin("TipoFormatoGGPPID=" + Convert.ToString(e.CommandArgument), "");
            Datos = objlg_TipoFormatoDeGGyPP.fnSelTipoFormatoDeGGyPPDin("TipoFormatoGGPPID=" + Convert.ToString(item["TipoFormatoGGPPID"].Text), "");
            
            
            ViewState["TipoFormatoGGPPID"] = Datos[0].TipoFormatoGGPPID;

            // Inicio Variables auditoras ///
            ViewState["NombreTipoFormato"] = Datos[0].NombreTipoFormato;
            ///////FIN//////////

            BEEstado objet_Estado = new BEEstado();
            BLEstado objlg_Estado = new BLEstado();

            String strTipoFormatoGGPPID = Convert.ToString(ViewState["TipoFormatoGGPPID"]);
            String strRegistro = String.Empty;
            String strActualiza = String.Empty;

            strRegistro = "<<Elimina TipoFormatoDeGGyPP>>" +
                      "\n<TipoFormatoGGPPID>=" + ViewState["TipoFormatoGGPPID"] +
                      "\n<NombreTipoFormato>=" + ViewState["NombreTipoFormato"];
        
            //objlg_TipoFormatoDeGGyPP.fnInsUpdTipoFormatoDeGGyPP(objet_TipoFormatoDeGGyPP);

            String Resul = Cls_Utilitaria.f_EliminaRegistro_TipoFormatoDeGGyPP(Convert.ToString(item["TipoFormatoGGPPID"].Text), 
                                                                Convert.ToString(Cls_Enums.EstadoModulos.Inactivo),
                                                                Convert.ToInt32(Session["UsuarioID"]),
                                                                strRegistro,
                                                                0,
                                                                Cls_Enums.TablaMovimientos.TipoFormatoDeGGyPP,
                                                                strTipoFormatoGGPPID,
                                                                strActualiza);
            if (Resul != "1")
                showMessage("Para poder eliminar el Tipo de Formato debe eliminar primero su detalle.");

        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_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            GridDataItem dataItem = e.Item as GridDataItem;
            String Fijo = (String)dataItem["Fijo"].Text;
            
            HyperLink editLink = (HyperLink)e.Item.FindControl("EditLink");
            editLink.Attributes["href"] = "#";
            ImageButton deletebutton = (ImageButton)dataItem["DeleteColumn"].Controls[0];
            
            if (Fijo == "1")
            {
                if (Convert.ToString(Session["Usuario"]).Trim().ToUpper() == "ADMIN_SHIOL")
                {
                    deletebutton.Enabled = true;
                    editLink.Enabled = true;
                    editLink.Attributes["onclick"] = String.Format("return ShowEditForm('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["TipoFormatoGGPPID"], e.Item.ItemIndex);
                }
                else
                {
                    deletebutton.Enabled = false;
                    editLink.Enabled = false;
                }
            }
            else
            {
                deletebutton.Enabled = true;
                editLink.Enabled = true;
                editLink.Attributes["onclick"] = String.Format("return ShowEditForm('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["TipoFormatoGGPPID"], e.Item.ItemIndex);
            }

            HyperLink detalleLink = (HyperLink)e.Item.FindControl("detalleLink");
            detalleLink.Attributes["href"] = "List_FormatoDeGananciasPerdidas.aspx?ID=" + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["TipoFormatoGGPPID"].ToString().Trim();
            
        }
    }

    protected void tk_Grid_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
        //if (e.Item is GridDataItem)
        //{
        //    GridDataItem dataItem = e.Item as GridDataItem;
        //    String Fijo = (String)dataItem["Fijo"].Text;
        //    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]["TipoFormatoGGPPID"], e.Item.ItemIndex);
        //    if(Fijo == "1"){
        //        if (Convert.ToString(Session["Usuario"]).Trim().ToUpper() == "ADMIN_SHIOL")
        //        {
        //            editLink.Enabled = true;
        //        }
        //        else
        //        {
        //            editLink.Enabled = false;
        //        }
        //    }
        //    else
        //    {
        //        editLink.Enabled = true;
        //    }

        //    HyperLink detalleLink = (HyperLink)e.Item.FindControl("detalleLink");
        //    detalleLink.Attributes["href"] = "List_FormatoDeGananciasPerdidas.aspx?ID=" + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["TipoFormatoGGPPID"].ToString().Trim();
        //    if (Fijo == "1")
        //    {
        //        if (Convert.ToString(Session["Usuario"]).Trim().ToUpper() == "ADMIN_SHIOL")
        //        {
        //            detalleLink.Enabled = true;
        //        }
        //        else
        //        {
        //            detalleLink.Enabled = false;
        //        }
        //    }
        //    else
        //    {
        //        detalleLink.Enabled = true;
        //    }
        //}

    }

    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();
        }
    }



   
}
