//Pide crear una cuenta para un encargado
    protected string cearCuenta(string cedula, string nombre, string apellido, string apellido2, string correo)
    {
        string      resultado      = "Exito";
        CultureInfo currentCulture = System.Threading.Thread.CurrentThread.CurrentCulture;
        TextInfo    currentInfo    = currentCulture.TextInfo;

        int    lg             = cedula.Length - 3;
        string ced            = cedula.Substring(lg, 3);
        string usuario        = nombre + "." + apellido + ced;
        string pass           = commonService.getContrasena(nombre, apellido, ced);
        string nombreCompleto = (currentInfo.ToTitleCase(nombre) + " " + currentInfo.ToTitleCase(apellido) + " " + currentInfo.ToTitleCase(apellido2)).Trim();

        Object[] datos = new Object[4];
        datos[0] = usuario; //this.txtUsuario.Text;
        datos[1] = pass;    //this.cntUsuario.Text;
        datos[2] = new DateTime?();
        datos[3] = cedula;

        Object[] datosPerfil = new Object[2];
        datosPerfil[0] = nombre + "." + apellido + ced;
        datosPerfil[1] = "Encargado"; // REVISAR !!!

        string r1 = controladoraCuentas.ejecutar(1, datos, null);
        string r2;

        if (r1.Equals(""))
        { // Exito
            r2 = controladoraCuentas.ejecutarAsociacion(1, datosPerfil, null);
            if (!r2.Equals(""))
            {
                resultado = "error";
            }
        }
        else
        {
            resultado = "error";
        }

        if (resultado != "error")
        {
            this.btnInvisibleEnviarCorreo.CommandArgument = correo + "," + nombreCompleto + "," + pass + "," + usuario;
        }
        return(resultado);
    }
    /*
     * Efectúa: Se encarga de insertar o modificar una cuenta. Primero guarda los datos de la cuenta y la asociación en dos arreglos y luego llama a
     * la controladora para que efectúe la acción que corresponde (insertar o modificar)
     * Requiere: N/A
     * Modifica: La tabla de cuentas y cuenta_perfil en la base de datos
     * */
    protected void btnInvisible1_Click(object sender, EventArgs e) // insertar o modificar una cuenta
    {
        string mensaje            = "-1";
        bool   banderaCerrarPopUp = false;

        Object[] datos = new Object[4]; // datos que se enviaran a la controladora para insertar la cuenta
        if (modo == 1 || modo == 2)
        {
            datos[0] = this.txtUsuario.Text;
            datos[1] = this.cntUsuario.Text;
            datos[2] = Session["FechaÚltimoIngreso"];
            if (lsTipoCuentasDrp[this.drpDownPerfiles.SelectedIndex] != 1 && lsTipoCuentasDrp[this.drpDownPerfiles.SelectedIndex] != 2)
            {
                datos[3] = "000000000"; // si es administrador no necesita cedula, se usa el default
            }
            else
            {
                datos[3] = this.drpPersona.SelectedValue; //en caso de ser becario o encargado se le asigna la cedula correspondiente
            }
        }
        if (modo == 1) // inserta cuenta
        {
            mensaje = controladoraCuentas.ejecutar(modo, datos, null);
            if (mensaje == "") // si se inserto correctamente la cuenta, se crea la asignacion con el perfil
            {
                Object [] datosAsoc = new Object[2];
                datosAsoc[0] = this.txtUsuario.Text;
                datosAsoc[1] = this.drpDownPerfiles.SelectedItem.Text;
                mensaje      = controladoraCuentas.ejecutarAsociacion(1, datosAsoc, null);
                if (mensaje == "")
                {
                    mensaje            = "Se ha insertado correctamente la cuenta";
                    banderaCerrarPopUp = true;
                }
            }
        }
        if (modo == 2)
        {
            //borro la asociacion de la cuenta vieja para poder modificar
            mensaje = controladoraCuentas.ejecutarAsociacion(3, datosOriginalesAsociacion, null);
            if (mensaje == "")
            {
                mensaje = controladoraCuentas.ejecutar(modo, datos, datosOriginales);
                if (mensaje == "")
                {
                    Object[] datosAsoc = new Object[2];
                    datosAsoc[0] = this.txtUsuario.Text;
                    datosAsoc[1] = this.drpDownPerfiles.SelectedItem.Text;
                    controladoraCuentas.ejecutarAsociacion(1, datosAsoc, null); //vuelvo a crear la nueva asociacion
                    mensaje            = "Se ha modificado correctamente la cuenta";
                    banderaCerrarPopUp = true;
                }
            }
        }
        if (mensaje != "-1")
        {
            commonService.mensajeJavascript(mensaje, "Aviso");
        }
        if (banderaCerrarPopUp)  // si no hay error cierro popUp
        {
            llenarGridCuentas(); // actualizo el grid
            commonService.cerrarPopUp("PopUp");
        }
    }