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_TipoCuenta : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Usuario"] == null)
        {
            ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);
        }
        this.txtNomenclatura.Focus();
        if (!IsPostBack)
        {
            llenaCombo();
            if (ViewState["TipoCuentaID"] != null) { BuscaRegistro(); } else { 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["TipoCuentaID"] == null)
        {
            this.btnGuardar.Text = "  Crear  "; 
        }
        else
        {
            this.btnGuardar.Text = "Actualizar";
            ViewState["TipoCuentaID"] = Request.QueryString["TipoCuentaID"].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 limpiarCampos()
    {
        ViewState["TipoCuentaID"] = "";
        this.txtNombre.Text = String.Empty;
        this.txtNomenclatura.Text = String.Empty;
        this.ddlEstado2.SelectedValue = Utilitaria.Cls_Enums.EstadoModulos.Todos;

    }

    private void BuscaRegistro()
    {
        BETipoCuenta objet_TipoCuenta = new BETipoCuenta();
        BLTipoCuenta objlg_TipoCuenta = new BLTipoCuenta();
        List<BETipoCuenta> Datos;

        Datos = objlg_TipoCuenta.fnSelTipoCuentaDin("TipoCuentaID=" + Convert.ToString(ViewState["TipoCuentaID"]), "");

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

        // Inicio Variables auditoras ///
        ViewState["CodigoTipoCuenta"] = Datos[0].CodigoTipoCuenta;
        ViewState["NombreTipoCuenta"] = Datos[0].NombreTipoCuenta;
        ViewState["Estado"] = Datos[0].Estado;
        ViewState["CuentaActivo"] = Datos[0].CuentaActivo;
        ViewState["Orden"] = Datos[0].Orden;
        ///////FIN//////////

        this.txtNomenclatura.Text = Convert.ToString(ViewState["CodigoTipoCuenta"]).Trim();
        this.txtNombre.Text = Convert.ToString(ViewState["NombreTipoCuenta"]).Trim();
        this.ddlEstado2.SelectedValue = Convert.ToString(ViewState["Estado"]);
        this.chkCuentaActivo.Checked = Convert.ToBoolean(ViewState["CuentaActivo"]);
        this.txtOrden.Text = Convert.ToString(ViewState["Orden"]);

        objet_TipoCuenta = null;
        objlg_TipoCuenta = null;
        Datos = null;

    }


    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        BETipoCuenta objet_TipoCuenta = new BETipoCuenta();
        BLTipoCuenta objlg_TipoCuenta = new BLTipoCuenta();

        String strTipoCuentaID = Convert.ToString(ViewState["TipoCuentaID"]);
        String strRegistro;
        String strActualiza;

        ViewState["New_CodigoTipoCuenta"] = this.txtNomenclatura.Text;
        ViewState["New_NombreTipoCuenta"] = this.txtNombre.Text;
        ViewState["New_Estado"] = Convert.ToByte(this.ddlEstado2.SelectedValue);
        ViewState["CuentaActivo"] = Convert.ToInt16(chkCuentaActivo.Checked);
        ViewState["Orden"] = Convert.ToInt32(this.txtOrden.Text);

        objet_TipoCuenta.TipoCuentaID = strTipoCuentaID;
        objet_TipoCuenta.CodigoTipoCuenta = Convert.ToString(ViewState["New_CodigoTipoCuenta"]).Trim();
        objet_TipoCuenta.NombreTipoCuenta = Convert.ToString(ViewState["New_NombreTipoCuenta"]).Trim();
        objet_TipoCuenta.Estado = Convert.ToByte(ViewState["New_Estado"]);
        objet_TipoCuenta.Orden = Convert.ToInt32(ViewState["Orden"]);
        objet_TipoCuenta.CuentaActivo = Convert.ToInt16(ViewState["CuentaActivo"]);

        strRegistro = "<<Creo TipoCuenta>>" +
                      "\n<CodigoTipoCuenta>=" + ViewState["New_CodigoTipoCuenta"] +
                      "\n<NombreTipoCuenta>=" + ViewState["New_NombreTipoCuenta"] +
                      "\n<Estado>=" + ViewState["New_Estado"] +
                      "\n<CuentaActivo>=" + ViewState["CuentaActivo"];

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

        if (strTipoCuentaID != String.Empty)
        {
            //Update
            strRegistro = "<<Actualiza TipoCuenta>>" +
                          "\n<CodigoTipoCuenta>=" + ViewState["CodigoTipoCuenta"] +
                          "\n<NombreTipoCuenta>=" + ViewState["NombreTipoCuenta"] +
                          "\n<Estado>=" + ViewState["Estado"] +
                          "\n<CuentaActivo>=" + ViewState["CuentaActivo"];

            strActualiza = "<<Actualiza TipoCuenta>>" +
                           "\n<CodigoTipoCuenta>=" + ViewState["New_CodigoTipoCuenta"] +
                           "\n<NombreTipoCuenta>=" + ViewState["New_NombreTipoCuenta"] +
                           "\n<Estado>=" + ViewState["New_Estado"] +
                           "\n<CuentaActivo>=" + ViewState["CuentaActivo"];

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

        int registro = objlg_TipoCuenta.fnInsUpdTipoCuenta(objet_TipoCuenta);
        if (registro > 0) { showMessage("Los Datos que ingreso ya esta registrado"); return; };

        objet_TipoCuenta = null;
        objlg_TipoCuenta = null;

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

    }

}
