protected void btnAgrega_Click(object sender, EventArgs e)
        {
            try
            {
                if (Page.IsValid)
                {
                    if (!string.IsNullOrEmpty(txtSinonimo.Text))
                    {
                        if (Request.QueryString["Id"] == null)
                            throw new Exception("No se ha indicado identificador de la cuenta registrada");

                        int Id = int.Parse(Request.QueryString["Id"]);
                        string sinonimo = !string.IsNullOrEmpty(txtSinonimo.Text) ? txtSinonimo.Text : string.Empty;

                        var _trxClienteSinonimo = new TrxCLIENTE_SINONIMO();
                        _trxClienteSinonimo.Add(Id, sinonimo);

                        grdSinonimoCliente.DataSource = _trxClienteSinonimo.GetByFilterWithReferences(Id, "");
                        grdSinonimoCliente.DataBind();

                        txtSinonimo.Text = string.Empty;
                    }
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                panelMensaje.CssClass = "MostrarMensaje";
                lblMensaje.Text = ex.Message;
                return;
            }
        }
        protected void btnIngreso_Click(object sender, EventArgs e)
        {
            try
            {
                if (Page.IsValid)
                {
                    panelMensaje.CssClass = "OcultarMensaje";

                    if (!string.IsNullOrEmpty(txtRut.Text))
                        if (!ValidaRut(txtRut.Text))
                            throw new Exception("Rut no es valido");

                    string rut = !string.IsNullOrEmpty(txtRut.Text) ? txtRut.Text : string.Empty;
                    string fono = !string.IsNullOrEmpty(txtFono.Text) ? txtFono.Text : string.Empty;
                    string nombre = !string.IsNullOrEmpty(txtNombre.Text) ? txtNombre.Text : string.Empty;
                    string direccion = !string.IsNullOrEmpty(txtDireccion.Text) ? txtDireccion.Text : string.Empty;
                    string giro = !string.IsNullOrEmpty(txtGiro.Text) ? txtGiro.Text : string.Empty;
                    int? descuento = null;
                    if (!string.IsNullOrEmpty(txtDescuento.Text))
                    {
                        descuento = int.Parse(txtDescuento.Text);
                    }
                    int comuna = int.Parse(ddlComuna.SelectedValue);
                    int tipoPrestacion = int.Parse(ddlTipoPrestacion.SelectedValue);
                    int convenio = int.Parse(ddlConvenio.SelectedValue);
                    int tipoFactura = int.Parse(ddlTipoFactura.SelectedValue);

                    var cliente = new TrxCLIENTE();
                    var ingreso = cliente.Add(comuna, convenio, tipoPrestacion, tipoFactura, rut, nombre, descuento, direccion, fono, giro);
                    var ingreso_sinonimo = 0;

                    /*guardar datos del cliente sinonimo desde la grilla*/
                    foreach (var item in _listaClienteSinonimo)
                    {
                        var trxClienteSinonimo = new TrxCLIENTE_SINONIMO();
                        ingreso_sinonimo = trxClienteSinonimo.Add(ingreso, item.NOMBRE);
                    }

                    //se despliega mensaje de exito
                    if (ingreso > 0 && ingreso_sinonimo > 0)
                        Response.Redirect("MensajeExito.aspx?t=Ingreso Clientes&m=Se ha registrado un nuevo cliente", false);
                    else if (ingreso == 0)
                        Response.Redirect("MensajeError.aspx?t=Ingreso Clientes&m=Ha ocurrido un error al ingresar el cliente", false);
                    else if (ingreso_sinonimo == 0)
                        Response.Redirect("MensajeError.aspx?t=Ingreso Cliente_Sinonimo&m=Ha ocurrido un error al ingresar el Sinonimo del cliente", false);
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                panelMensaje.CssClass = "MostrarMensaje";
                lblMensaje.Text = ex.Message;
                return;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                panelMensaje.CssClass = "OcultarMensaje";
                if (!Page.IsPostBack && !Page.IsCallback)
                {
                    getRegion();
                    getComuna();
                    getTipoPrestacion();
                    getConvenio();
                    getTipoFactura();

                    if (Request.QueryString["Id"] == null)
                        throw new Exception("No se ha indicado identificador de la cuenta registrada");

                    int Id = int.Parse(Request.QueryString["Id"]);
                    var trxCliente = new TrxCLIENTE();
                    var objCliente = trxCliente.GetByIdWithFullReferences(Id);

                    txtRut.Text = objCliente.RUT;
                    txtFono.Text = objCliente.FONO;
                    txtNombre.Text = objCliente.NOMBRE;
                    txtDireccion.Text = objCliente.DIRECCION;
                    txtGiro.Text = objCliente.GIRO;
                    if (objCliente.DESCUENTO.HasValue)
                    {
                        txtDescuento.Text = objCliente.DESCUENTO.ToString();
                    }
                    if (objCliente.COMUNA != null)
                    {
                        if (objCliente.COMUNA.REGION != null)
                        {
                            ddlRegion.SelectedValue = objCliente.COMUNA.REGION.ID.ToString();
                            getComuna();
                        }
                        ddlComuna.SelectedValue = objCliente.COMUNA.ID.ToString();
                    }
                    if (objCliente.TIPO_PRESTACION != null)
                    {
                        ddlTipoPrestacion.SelectedValue = objCliente.TIPO_PRESTACION.ID.ToString();
                        getConvenio();
                    }
                    if (objCliente.CONVENIO != null)
                    {
                        ddlConvenio.SelectedValue = objCliente.CONVENIO.ID.ToString();
                    }
                    if (objCliente.TIPO_FACTURA != null)
                    {
                        ddlTipoFactura.SelectedValue = objCliente.TIPO_FACTURA.ID.ToString();
                    }
                    //txtRazonSocial.Text = ;
                    //txtDireccionEntrega.Text = ;
                    //txtCiudad.Text = ;

                    var _trxClienteSinonimo = new TrxCLIENTE_SINONIMO();
                    grdSinonimoCliente.DataSource = _trxClienteSinonimo.GetByFilterWithReferences(Id, "");
                    grdSinonimoCliente.DataBind();

                    txtSinonimo.Text = string.Empty;
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                panelMensaje.CssClass = "MostrarMensaje";
                lblMensaje.Text = ex.Message;
                return;
            }
        }
        protected void grdSinonimoCliente_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                if (e.CommandName == "Eliminar")
                {
                    int Id = int.Parse(Request.QueryString["Id"]);

                    int index = int.Parse(e.CommandArgument.ToString());
                    int ID_SINONIMO = int.Parse(this.grdSinonimoCliente.DataKeys[index]["ID"].ToString());
                    var _trxClienteSinonimo = new TrxCLIENTE_SINONIMO();
                    _trxClienteSinonimo.Delete(ID_SINONIMO);

                    grdSinonimoCliente.DataSource = _trxClienteSinonimo.GetByFilterWithReferences(Id, "");
                    grdSinonimoCliente.DataBind();

                    txtSinonimo.Text = string.Empty;
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                panelMensaje.CssClass = "MostrarMensaje";
                lblMensaje.Text = ex.Message;
                return;
            }
        }