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;
using System.Threading;


public partial class List_TiposDeCambio : 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)
        {
            llenaCombo();
            
        }


    }

    private void listar(int tipo)
    {
        BETiposDeCambio objet_TiposDeCambio = new BETiposDeCambio();
        BLTiposDeCambio objlg_TiposDeCambio = new BLTiposDeCambio();
        string combo = this.ddlEstado.SelectedValue;
        if (combo == string.Empty)
        {
            combo = "0";
        }

        string strEstado = Utilitaria.Cls_Utilitaria.f_CadenaEstado(Convert.ToInt32(combo));

        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 = objlg_TiposDeCambio.fnSelTiposDeCambioDin(strEstado, "2 desc", "");
        }

        if (tipo == 2)
        {
            tk_Grid.DataSource = objlg_TiposDeCambio.fnSelTiposDeCambioDin(strEstado, "2 desc", "");
            tk_Grid.DataBind();
        }

        objet_TiposDeCambio = null;
        objlg_TiposDeCambio = 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));
    }
    public string f_NombreMoneda(Int32 intCodigo)
    {
        return Utilitaria.Cls_Utilitaria.f_MostraNombreMoneda(Convert.ToInt32(intCodigo), 3);
    }

    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_TiposDeCambio(Convert.ToString(e.CommandArgument),
                                                            Convert.ToString(Cls_Enums.EstadoModulos.Activo),
                                                            Convert.ToInt32(Session["UsuarioID"]),
                                                            "",
                                                            0,
                                                            Cls_Enums.TablaMovimientos.TiposDeCambio,
                                                            "",
                                                            "");
            this.tk_Grid.Rebind();

        }

        if (e.CommandName == "desactivar")
        {
            Cls_Utilitaria.f_cambiaEstado_TiposDeCambio(Convert.ToString(e.CommandArgument),
                                                            Convert.ToString(Cls_Enums.EstadoModulos.Inactivo),
                                                            Convert.ToInt32(Session["UsuarioID"]),
                                                            "",
                                                            0,
                                                            Cls_Enums.TablaMovimientos.TiposDeCambio,
                                                            "",
                                                            "");
        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]["TipoDeCambioID"], 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();
        }
    }
}
