using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;

using Telerik.Web.UI;

using BE;
using BL;
using Utilitaria;


public partial class InstUpd_TiposDeCambio : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
         if (Session["Usuario"] == null)
        {
            ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);
        }
         this.txtCompra.Focus();
        if (!IsPostBack)
        {

            llenaCombo();
            llenaComboMoneda();
            if (ViewState["TipoDeCambioID"] != null) { BuscaRegistro(); } else { this.txtFecha.DbSelectedDate = DateTime.Now; this.ddlEstado2.SelectedValue = Utilitaria.Cls_Enums.EstadoModulos.Activo; }
        }

        //ddlTipoFormatoGGPP.Filter = (RadComboBoxFilter)Convert.ToInt32(2);
    }


    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        if (Request.QueryString["TipoDeCambioID"] == null)
        {
            this.btnGuardar.Text = "  Crear  "; 
        }
        else
        {
            this.btnGuardar.Text = "Actualizar";
            ViewState["TipoDeCambioID"] = Request.QueryString["TipoDeCambioID"].ToString().Trim();
        }
    }

    private void llenaCombo()
    {
        this.ddlEstado2.Items.Insert(0, new RadComboBoxItem("Activo"));
        this.ddlEstado2.Items[0].Value = Utilitaria.Cls_Enums.EstadoModulos.Activo;

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

    private void llenaComboMoneda()
    {
        BEMonedas objet_Monedas = new BEMonedas();
        BLMonedas objlg_Monedas = new BLMonedas();

        this.ddlMoneda.DataSource = objlg_Monedas.fnSelMonedasAll();
        this.ddlMoneda.DataTextField = "Nombre";
        this.ddlMoneda.DataValueField = "MonedaID";
        this.ddlMoneda.DataBind();

        //this.ddlMoneda.Items.Insert(0, "---Selccione---");
        //this.ddlMoneda.Items[0].Value = Utilitaria.Cls_Enums.EstadoModulos.Todos;

        objet_Monedas = null;
        objlg_Monedas = null;
    }

    private void limpiarCampos()
    {
        ViewState["TipoDeCambioID"] = "";
        this.txtFecha.DbSelectedDate = DateTime.Now;

        this.txtCompra.Text = String.Empty;
        this.txtVenta.Text = String.Empty;
        this.ddlMoneda.SelectedValue = Utilitaria.Cls_Enums.EstadoModulos.Todos;
        this.ddlEstado2.SelectedValue = Utilitaria.Cls_Enums.EstadoModulos.Todos;
    }

    private void BuscaRegistro()
    {
        BETiposDeCambio objet_TiposDeCambio = new BETiposDeCambio();
        BLTiposDeCambio objlg_TiposDeCambio = new BLTiposDeCambio();
        List<BETiposDeCambio> Datos;

        Datos = objlg_TiposDeCambio.fnSelTiposDeCambioDin("TipoDeCambioID=" + Convert.ToString(ViewState["TipoDeCambioID"]), "", "");

        ViewState["TipoDeCambioID"] = Datos[0].TipoDeCambioID;

        // Inicio Variables auditoras ///
        ViewState["TipoDeCambioID"] = Datos[0].TipoDeCambioID;
        ViewState["Fecha"] = Datos[0].Fecha;
        ViewState["Compra"] = Datos[0].Compra;
        ViewState["Venta"] = Datos[0].Venta;
        ViewState["MonedaID"] = Datos[0].MonedaID;
        ViewState["Estado"] = Datos[0].Estado;

        ///////FIN//////////

        this.txtFecha.DbSelectedDate = Convert.ToString(ViewState["Fecha"]);

        this.txtCompra.Text = Convert.ToString(ViewState["Compra"]);
        this.txtVenta.Text = Convert.ToString(ViewState["Venta"]);
        this.ddlMoneda.SelectedValue = Convert.ToString(ViewState["MonedaID"]);
        this.ddlEstado2.SelectedValue = Convert.ToString(ViewState["Estado"]);

        objet_TiposDeCambio = null;
        objlg_TiposDeCambio = null;
        Datos = null;
    }

    protected void btnGuardar_Click(object sender, EventArgs e)
    {

        BETiposDeCambio objet_TiposDeCambio = new BETiposDeCambio();
        BLTiposDeCambio objlg_TiposDeCambio = new BLTiposDeCambio();

        String strTipoDeCambioID = Convert.ToString(ViewState["TipoDeCambioID"]);
        String strRegistro;
        String strActualiza;

        ViewState["New_Fecha"] = this.txtFecha.DbSelectedDate;
        ViewState["New_Compra"] = this.txtCompra.Text;
        ViewState["New_Venta"] = this.txtVenta.Text;
        ViewState["New_MonedaID"] = this.ddlMoneda.SelectedValue;
        ViewState["New_Estado"] = this.ddlEstado2.SelectedValue;

        objet_TiposDeCambio.TipoDeCambioID = strTipoDeCambioID;
        objet_TiposDeCambio.Fecha = Convert.ToDateTime(ViewState["New_Fecha"]);
        objet_TiposDeCambio.Compra = Convert.ToDecimal(ViewState["New_Compra"]);
        objet_TiposDeCambio.Venta = Convert.ToDecimal(ViewState["New_Venta"]);
        objet_TiposDeCambio.MonedaID = Convert.ToInt32(ViewState["New_MonedaID"]);
        objet_TiposDeCambio.Estado = Convert.ToByte(ViewState["New_Estado"]);

        strRegistro = "<<Creo TiposDeCambio>>" +
                      "\n<Fecha>=" + ViewState["New_Fecha"] +
                      "\n<Compra>=" + ViewState["New_Compra"] +
                      "\n<Venta>=" + ViewState["New_Venta"] +
                      "\n<MonedaID>=" + ViewState["New_MonedaID"] +
                      "\n<Estado>=" + ViewState["New_Estado"];

        //Ingresa
        objet_TiposDeCambio.BEAuditores.UsuarioID = Convert.ToInt32(Session["UsuarioID"]);
        objet_TiposDeCambio.BEAuditores.Movimiento = strRegistro;
        objet_TiposDeCambio.BEAuditores.UsuarioIdAutorizado = 0;
        objet_TiposDeCambio.BEAuditores.IPEquipo = Cls_Enums.f_DatosPC.IPPC;
        objet_TiposDeCambio.BEAuditores.UsuarioActualEquipo = Cls_Enums.f_DatosPC.UsuarioPC;
        objet_TiposDeCambio.BEAuditores.NombreEquipo = Cls_Enums.f_DatosPC.NombrePC;
        objet_TiposDeCambio.BEAuditores.TablaMovimientoID = Cls_Enums.TablaMovimientos.TiposDeCambio;

        if (strTipoDeCambioID != String.Empty)
        {
            //Update
            strRegistro = "<<Actualiza TiposDeCambio>>" +
                          "\n<Fecha>=" + ViewState["Fecha"] +
                          "\n<Compra>=" + ViewState["Compra"] +
                          "\n<Venta>=" + ViewState["Venta"] +
                          "\n<MonedaID>=" + ViewState["MonedaID"] +
                          "\n<Estado>=" + ViewState["Estado"];

            strActualiza = "<<Actualiza TiposDeCambio>>" +
                           "\n<Fecha>=" + ViewState["New_Fecha"] +
                           "\n<Compra>=" + ViewState["New_Compra"] +
                           "\n<Venta>=" + ViewState["New_Venta"] +
                           "\n<MonedaID>=" + ViewState["New_MonedaID"] +
                           "\n<Estado>=" + ViewState["New_Estado"];

            objet_TiposDeCambio.BEAuditores.Movimiento = strRegistro;
            objet_TiposDeCambio.BEAuditores.MovimientoUltimo = strActualiza;
            ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);
        }
        else
        {
            //ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind('navigateToInserted');", true);
            ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);
        }

        try
        {
            int registro = objlg_TiposDeCambio.fnInsUpdTiposDeCambio(objet_TiposDeCambio);
            if (registro > 0) { showMessage("Los Datos que ingreso ya estan registrados"); return; };
        }
        catch (Exception ex)
        {
            showMessage(ex.Message.ToString());
        }

        objet_TiposDeCambio = null;
        objlg_TiposDeCambio = null;
        this.limpiarCampos();
    }

    protected void btnVolver_Click(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CancelEdit();", true);
        this.limpiarCampos();
    }
    protected void showMessage(string strMessage)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "alert('" + strMessage + "');", true);

    }

}
