public Vector obterLinhas(String nome, String status) {
    Vector linhas = new Vector();
    try {
      if (status.equals("Ativo")) {
        usuariosAtivos = usuarioDao.obterUsuarios(nome, status);
        for (int i = 0; i < usuariosAtivos.size(); i++) {
          Usuario usuario = usuariosAtivos.get(i);
          linhas.addElement(this.criarLinhaUsuario(usuario));
        }
      } else {
        usuariosInativos = usuarioDao.obterUsuarios(nome, status);
        for (int i = 0; i < usuariosInativos.size(); i++) {
          Usuario usuario = usuariosInativos.get(i);
          linhas.addElement(this.criarLinhaUsuario(usuario));
        }
      }
    } catch (SQLException ex) {
      ex.printStackTrace();
      JOptionPane.showMessageDialog(
          null,
          "Erro ao acesso o banco de dados,\n" + "por favor contate o Suporte",
          "Erro",
          JOptionPane.ERROR_MESSAGE);
    }

    return linhas;
  }
  public void excluir(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    Usuario usuario = new Usuario();
    UsuarioDao usuarioDao = new UsuarioDao();

    usuario = requestForm(request);

    if (usuarioDao.excluir(usuario)) {
      RequestDispatcher rd = request.getRequestDispatcher("MensagemOk.jsp");
      rd.forward(request, response);
    } else {
      RequestDispatcher rd = request.getRequestDispatcher("MensagemErro.jsp");
      rd.forward(request, response);
    }
  }
 public Vector logar(String nome, String senha) {
   Vector linha = new Vector();
   try {
     Usuario u = usuarioDao.logar(nome, senha);
     if (u != null) {
       linha.addElement("" + u.getCodigo());
       linha.addElement("" + u.getNome());
       linha.addElement("" + u.getPermissao());
       linha.addElement("" + u.getDocumento());
       linha.addElement("" + u.getLogin());
       linha.addElement("" + u.getSenha());
       linha.addElement("" + u.getCargo().getCodigo());
       linha.addElement("" + u.getCargo().getNome());
       linha.addElement("" + u.getCargo().getStatus());
       linha.addElement("" + u.getCargo().isChefia());
       linha.addElement("" + u.getSetor().getCodigo());
       linha.addElement("" + u.getSetor().getNome());
       linha.addElement("" + u.getSetor().getDescricao());
     } else {
       return null;
     }
   } catch (SQLException ex) {
     JOptionPane.showMessageDialog(
         null,
         "Erro ao acesso o banco de dados,\n" + "por favor contate o Suporte",
         "Erro",
         JOptionPane.ERROR_MESSAGE);
   }
   return linha;
 }
  public void listar(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    UsuarioDao usuarioDao = new UsuarioDao();

    List<Usuario> usuarios = new ArrayList<Usuario>();
    usuarios = usuarioDao.listar();

    if (usuarios != null) {
      request.setAttribute("usuarios", usuarios);
      RequestDispatcher rd = request.getRequestDispatcher("UsuarioListar.jsp");
      rd.forward(request, response);
    } else {
      RequestDispatcher rd = request.getRequestDispatcher("MensagemErro.jsp");
      rd.forward(request, response);
    }
  }
  public void editar(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    Usuario usuario = new Usuario();
    UsuarioDao usuarioDao = new UsuarioDao();

    usuario = requestForm(request);
    usuario = usuarioDao.editar(usuario.getId());

    if (usuario != null) {
      request.setAttribute("usuario", usuario);
      RequestDispatcher rd = request.getRequestDispatcher("UsuarioEditar.jsp");
      rd.forward(request, response);
    } else {
      RequestDispatcher rd = request.getRequestDispatcher("MensagemErro.jsp");
      rd.forward(request, response);
    }
  }
 public void inserir(Vector linha, boolean chefia) {
   Usuario usuario = new Usuario();
   this.atualizarUsuario(usuario, linha);
   try {
     usuarioDao.inserirUsuario(usuario, chefia);
   } catch (SQLException ex) {
     JOptionPane.showMessageDialog(
         null,
         "Erro ao acesso o banco de dados,\n" + "por favor contate o Suporte",
         "Erro",
         JOptionPane.ERROR_MESSAGE);
   }
 }
 public void alterar(Vector linha, boolean tornarFuncionario, boolean chefia) {
   // Usuario usuario = obterUsuarioId(id);
   Usuario usuario = new Usuario();
   // if (usuario != null) {
   this.atualizarUsuario(usuario, linha);
   try {
     usuarioDao.alterarUsuario(usuario, tornarFuncionario, chefia);
   } catch (SQLException ex) {
     ex.printStackTrace();
     JOptionPane.showMessageDialog(
         null,
         "Erro ao acesso o banco de dados,\n" + "por favor contate o Suporte",
         "Erro",
         JOptionPane.ERROR_MESSAGE);
   }
 }
 public boolean alterarStatus(String motivo, Vector responsavel, Vector linha, String acao) {
   Usuario usuario = new Usuario();
   atualizarUsuario(usuario, linha);
   Vector r = responsavel;
   try {
     usuarioDao.alterarStatusUsuario(usuario, motivo, r, acao);
     return true;
   } catch (SQLException ex) {
     JOptionPane.showMessageDialog(
         null,
         "Erro ao acesso o banco de dados,\n" + "por favor contate o Suporte",
         "Erro",
         JOptionPane.ERROR_MESSAGE);
   }
   return false;
 }
  // METODO ENCARGADO DE CARGAR LOS DATOS AL FORMULARIO EEMPLEADOS SEGUN EL ITEM SELECCIONADO
  private void cargarDatosEmpleadoAlFormulario(String dato) {

    ResultSet cargaDatosParaFormularioEmpeados = usuarioDao.datosParaFormularioEmpleados(dato);

    try {

      while (cargaDatosParaFormularioEmpeados.next()) {

        txtNombreEmpleado.setText(
            cargaDatosParaFormularioEmpeados.getString("NOMBRE_USUARIO").trim());
        txtApellidoEmpleado.setText(cargaDatosParaFormularioEmpeados.getString("APELLIDOS").trim());
        rbEstadoActivoEmpleado.setDisable(false);
        rbEstadoInactivoEmpleado.setDisable(false);
        String cargo = cargaDatosParaFormularioEmpeados.getString("CARGO").trim();
        ckbGerente.setDisable(false);
        ckbJefeDeBodega.setDisable(false);
        if (cargo.equals("Gerente")) {
          ckbGerente.setSelected(true);
        } else {
          ckbJefeDeBodega.setSelected(true);
        }
        txtTelefonoEmpleado.setText(cargaDatosParaFormularioEmpeados.getString("TELEFONO").trim());
        txtEmailEmpleado.setText(cargaDatosParaFormularioEmpeados.getString("E_MAIL").trim());
        int estadoEmpleado = cargaDatosParaFormularioEmpeados.getInt("ESTADOID");
        rbEstadoActivoEmpleado.setDisable(false);
        rbEstadoInactivoEmpleado.setDisable(false);
        if (estadoEmpleado == 1) {
          rbEstadoActivoEmpleado.setSelected(true);
        } else {
          rbEstadoInactivoEmpleado.setSelected(true);
        }
      }
      cargaDatosParaFormularioEmpeados.close();
    } catch (SQLException ex) {
      System.out.println("Error " + ex);
    }

    txtNombreEmpleado.setEditable(true);
    txtApellidoEmpleado.setEditable(true);
    txtTelefonoEmpleado.setEditable(true);
    txtEmailEmpleado.setEditable(true);
    btnModificarEmpleado.setDisable(false);
    ckbGerente.setDisable(true);
    ckbJefeDeBodega.setDisable(true);
  }
  public void salvar() {

    /* Se Cadastrando novo usuário */
    if (usuario.getId() == null) {
      /* Se login não Disponível */
      if (!loginDisponivel()) {
        MessagesUtil.addErrorMessage("Login já está em uso!");
        return;
      }
    }

    usuarioDao.salvar(usuario);

    usuario = new Usuario();

    MessagesUtil.addInformationMessage("Salvo com sucesso!");

    // return "usuario.xhtml?faces-redirect=true";
    // return "usuario.xhtml";
    // return "";
  }
  // METODO ENCARGADO DE CARGAR LOS DATOS AL FORMULARIO SEGUN EL ITEM SELECCIONADO
  private void cargarDatosSucursalAlFormulario(String dato) {

    ResultSet cargaDatosParaFormulario = usuarioDao.datosParaFormulario(dato);

    try {

      while (cargaDatosParaFormulario.next()) {

        txtNombreJefeSuc.setText(cargaDatosParaFormulario.getString("NOMBRE_USUARIO").trim());
        txtApellidoJefeSuc.setText(cargaDatosParaFormulario.getString("APELLIDOS").trim());
        txtNombreSuc.setText(cargaDatosParaFormulario.getString("NOMBRE_SUCURSAL").trim());
        txtCiudadSucursal.setText(cargaDatosParaFormulario.getString("CIUDAD").trim());
        txtDireccionSuc.setText(cargaDatosParaFormulario.getString("DIRECCION").trim());
        txtTelefonoSuc.setText(cargaDatosParaFormulario.getString("TELEFONO").trim());
        txtEmailSuc.setText(cargaDatosParaFormulario.getString("E_MAIL").trim());
        int estadoJefeSuc = cargaDatosParaFormulario.getInt("ESTADOID");
        rbEstadoActivoSuc.setDisable(false);
        rbEstadoInactivoSuc.setDisable(false);
        if (estadoJefeSuc == 1) {
          rbEstadoActivoSuc.setSelected(true);
        } else {
          rbEstadoInactivoSuc.setSelected(true);
        }
      }
      cargaDatosParaFormulario.close();
    } catch (SQLException ex) {
      System.out.println("Error " + ex);
    }

    txtNombreJefeSuc.setEditable(true);
    txtApellidoJefeSuc.setEditable(true);
    txtNombreSuc.setEditable(true);
    txtCiudadSucursal.setEditable(true);
    txtDireccionSuc.setEditable(true);
    txtTelefonoSuc.setEditable(true);
    txtEmailSuc.setEditable(true);
    btnModificarJefeSuc.setDisable(false);
  }
  // METODO ENCARGADO DE REGISTRAR UN NUEVO USUARIO JEFE DE SUCURSAL
  @FXML
  private void guardarJefeSuc(ActionEvent event) throws SQLException {

    limpiarMensajesSuc();

    // Validacion de campos vacios
    if (validacion.validarVacios(txtNombreJefeSuc.getText())) {
      lblMensajeNombreSuc.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo letras
    if (validacion.soloLetras(txtNombreJefeSuc.getText())) {
      lblMensajeNombreSuc.setText("este campo solo recibe letras");
      return;
    }

    if (validacion.validarVacios(txtApellidoJefeSuc.getText())) {
      lblMensajeApellidoSuc.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo letras
    if (validacion.soloLetras(txtApellidoJefeSuc.getText())) {
      lblMensajeApellidoSuc.setText("este campo solo recibe letras");
      return;
    }

    if (validacion.validarVacios(txtNombreSuc.getText())) {
      lblMensajeNomSucursal.setText("campo obligatorio");
      return;
    }

    if (validacion.validarVacios(txtCiudadSucursal.getText())) {
      lblMensajeCiudadSuc.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo letras
    if (validacion.soloLetras(txtCiudadSucursal.getText())) {
      lblMensajeCiudadSuc.setText("este campo solo recibe letras");
      return;
    }

    if (validacion.validarVacios(txtDireccionSuc.getText())) {
      lblMensajeDirecSuc.setText("campo obligatorio");
      return;
    }

    if (validacion.validarVacios(txtTelefonoSuc.getText())) {
      lblMensajeTelefSuc.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo numeros
    if (validacion.soloNumeros(txtTelefonoSuc.getText())) {
      lblMensajeTelefSuc.setText("este campo solo recibe numeros");
      return;
    }

    if (validacion.validarVacios(txtEmailSuc.getText())) {
      lblMensajeEmailSuc.setText("campo obligatorio");
      return;
    }

    // Validacion de sintaxis de correo
    if (!validacion.validarCorreo(txtEmailSuc.getText())) {
      lblMensajeEmailSuc.setText("correo invalido");
      return;
    }

    // validar el radiobuton
    if (!(rbEstadoActivoSuc.isSelected() || rbEstadoInactivoSuc.isSelected())) {
      lblMensajeEstadoSuc.setText("debe seleccionar el estado");
      return;
    }

    String nombres = txtNombreJefeSuc.getText();
    String apellidos = txtApellidoJefeSuc.getText();
    String nombreSucursal = txtNombreSuc.getText();
    String ciudadSucursal = txtCiudadSucursal.getText();
    String direccionSucursal = txtDireccionSuc.getText();
    String telefono = txtTelefonoSuc.getText();
    String e_mail = txtEmailSuc.getText();

    estadoUsuario = 1;

    String clave = claveGenerada.GenerarClave();

    Usuario nuevoUsuario = new Usuario();
    nuevoUsuario.setEstado(estadoUsuario);
    nuevoUsuario.setNombres(nombres);
    nuevoUsuario.setApellidos(apellidos);
    nuevoUsuario.setCargo("Jefe de Sucursal");
    nuevoUsuario.setTelefono(telefono);
    nuevoUsuario.setE_mail(e_mail);
    nuevoUsuario.setClave(clave);

    PreparedStatement estado = usuarioDao.nuevoUsuario(nuevoUsuario);

    try {
      int n = estado.executeUpdate();
      JOptionPane.showMessageDialog(
          null, "Usuario registrado exitosamente\nClave asignada: " + clave);
      estado.close();
    } catch (SQLException e) {
      System.out.println("Error " + e);
    }

    Sucursal nuevaSucursal = new Sucursal();

    // Consulta del id del jefe ingresado
    ResultSet resultadoUltimoId = sucursalDao.ultimoId();

    // While para recorrer el ResultSet y obtener el ultimoid
    while (resultadoUltimoId.next()) {
      jefeId = resultadoUltimoId.getInt("jefeid");
    }

    nuevaSucursal.setCodigoJefe(jefeId);
    nuevaSucursal.setNombre(nombreSucursal);
    nuevaSucursal.setCiudad(ciudadSucursal);
    nuevaSucursal.setDireccion(direccionSucursal);

    PreparedStatement estado2 = sucursalDao.nuevaSucursal(nuevaSucursal);

    try {
      int n = estado2.executeUpdate();
      estado2.close();
    } catch (SQLException e) {
      System.out.println("Error " + e);
    }

    limpiarCamposSuc();
  }
  // METODO ENCARGADO DE BUSCAR UN EMPLEADO
  @FXML
  private void buscarUsuarioEmpleado(ActionEvent event) throws SQLException {

    tblMostrarUsuarioEmp.getColumns().clear();
    lblMensajeBd.setText("");
    ResultSet resultadoUsuario;

    // Si se selecciona el filtro buscarPorNombre
    if (rbBuscarEmpPorNombre.isSelected()) {

      // Validacion de campos vacios
      if (validacion.validarVacios(txtBuscarEmpPorNombre.getText())) {
        lblMensajeBd.setText("Por favor ingrese el filtro de busqueda seleccionado");
        return;
      }

      // Validacion de campos solo letras
      if (validacion.soloLetras(txtBuscarEmpPorNombre.getText())) {
        lblMensajeBd.setText("El filtro seleccionado solo recibe letras");
        return;
      }

      // Se realiza la busqueda mediante el dao
      String busquedaPorNombre = txtBuscarEmpPorNombre.getText();
      boolean existeUsuario = usuarioDao.buscarUsuarioPorNombre(busquedaPorNombre, "Bodega").next();
      resultadoUsuario = usuarioDao.buscarUsuarioPorNombre(busquedaPorNombre, "Bodega");
      // Si se encontro el usuario cargar resultado de la busqueda a la tabla
      if (existeUsuario) {
        cargarDatosTablaUsuarios(resultadoUsuario, tblMostrarUsuarioEmp);
        btnNuevoEmpleado.setDisable(true);
        btnModificarEmpleado.setDisable(false);
      } else {
        lblMensajeBd.setText(
            "Usuario no encontrado, opción nuevo usuario habilitada para el registro");
        btnNuevoEmpleado.setDisable(false);
        btnModificarEmpleado.setDisable(true);
      }
    }

    // Si se selecciona el filtro buscarPorCodigo
    if (rbBuscarEmpPorCodigo.isSelected()) {

      // Validacion de campos vacios
      if (validacion.validarVacios(txtBuscarEmpPorCodigo.getText())) {
        lblMensajeBd.setText("Por favor ingrese el filtro de busqueda seleccionado");
        return;
      }

      // Validacion de campos solo numeros
      if (validacion.soloNumeros(txtBuscarEmpPorCodigo.getText())) {
        lblMensajeBd.setText("El filtro seleccionado solo recibe numeros");
        return;
      }

      // Se realiza la busqueda mediante el dao
      String busquedaPorCodigo = txtBuscarEmpPorCodigo.getText();
      boolean existeUsuario = usuarioDao.buscarUsuarioPorCodigo(busquedaPorCodigo, "Bodega").next();
      resultadoUsuario = usuarioDao.buscarUsuarioPorCodigo(busquedaPorCodigo, "Bodega");
      // Si se encontro el usuario cargar resultado de la busqueda a la tabla
      if (existeUsuario) {
        cargarDatosTablaUsuarios(resultadoUsuario, tblMostrarUsuarioEmp);
        btnNuevoEmpleado.setDisable(true);
        btnModificarEmpleado.setDisable(false);
      } else {
        lblMensajeBd.setText(
            "Usuario no encontrado, opción nuevo usuario habilitada para el registro");
        btnNuevoEmpleado.setDisable(false);
        btnModificarEmpleado.setDisable(true);
      }
    }
  }
 public void remover() {
   usuarioDao.remover(this.usuario);
 }
 public boolean loginDisponivel() {
   return usuarioDao.loginDisponivel(usuario);
 }
 public List<Usuario> getTodos() {
   return usuarioDao.getTodos();
 }
  // METODO ENCARGADO DE MODIFICAR UN USUARIO JEFE DE SUCURSAL
  @FXML
  private void modificarJefeSuc(ActionEvent event) throws SQLException {

    limpiarMensajesSuc();

    // Validacion de campos vacios
    if (validacion.validarVacios(txtNombreJefeSuc.getText())) {
      lblMensajeNombreSuc.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo letras
    if (validacion.soloLetras(txtNombreJefeSuc.getText())) {
      lblMensajeNombreSuc.setText("este campo solo recibe letras");
      return;
    }

    if (validacion.validarVacios(txtApellidoJefeSuc.getText())) {
      lblMensajeApellidoSuc.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo letras
    if (validacion.soloLetras(txtApellidoJefeSuc.getText())) {
      lblMensajeApellidoSuc.setText("este campo solo recibe letras");
      return;
    }

    if (validacion.validarVacios(txtNombreSuc.getText())) {
      lblMensajeNomSucursal.setText("campo obligatorio");
      return;
    }

    if (validacion.validarVacios(txtCiudadSucursal.getText())) {
      lblMensajeCiudadSuc.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo letras
    if (validacion.soloLetras(txtCiudadSucursal.getText())) {
      lblMensajeCiudadSuc.setText("este campo solo recibe letras");
      return;
    }

    if (validacion.validarVacios(txtDireccionSuc.getText())) {
      lblMensajeDirecSuc.setText("campo obligatorio");
      return;
    }

    if (validacion.validarVacios(txtTelefonoSuc.getText())) {
      lblMensajeTelefSuc.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo numeros
    if (validacion.soloNumeros(txtTelefonoSuc.getText())) {
      lblMensajeTelefSuc.setText("este campo solo recibe numeros");
      return;
    }

    if (validacion.validarVacios(txtEmailSuc.getText())) {
      lblMensajeEmailSuc.setText("campo obligatorio");
      return;
    }

    // Validacion de sintaxis de correo
    if (!validacion.validarCorreo(txtEmailSuc.getText())) {
      lblMensajeEmailSuc.setText("correo invalido");
      return;
    }

    // validar el radiobuton
    if (!(rbEstadoActivoSuc.isSelected() || rbEstadoInactivoSuc.isSelected())) {
      lblMensajeEstadoSuc.setText("debe seleccionar el estado");
      return;
    }

    String nombres = txtNombreJefeSuc.getText();
    String apellidos = txtApellidoJefeSuc.getText();
    String nombreSucursal = txtNombreSuc.getText();
    String ciudadSucursal = txtCiudadSucursal.getText();
    String direccionSucursal = txtDireccionSuc.getText();
    String telefono = txtTelefonoSuc.getText();
    String e_mail = txtEmailSuc.getText();

    if (rbEstadoActivoSuc.isSelected()) {
      estadoUsuario = 1;
    }

    if (rbEstadoInactivoSuc.isSelected()) {
      estadoUsuario = 2;
    }

    Usuario modificarUsuario = new Usuario();
    modificarUsuario.setEstado(estadoUsuario);
    modificarUsuario.setNombres(nombres);
    modificarUsuario.setApellidos(apellidos);
    modificarUsuario.setTelefono(telefono);
    modificarUsuario.setE_mail(e_mail);
    modificarUsuario.setCodigoUsuario(Integer.parseInt(codigoUsuario));

    PreparedStatement estado = usuarioDao.modificarUsuario(modificarUsuario);

    try {
      int n = estado.executeUpdate();
      JOptionPane.showMessageDialog(null, "Usuario modificado exitosamente");
      estado.close();
    } catch (SQLException e) {
      System.out.println("Error " + e);
    }

    // Consulta para obtener el jefeid
    ResultSet resultadoJefeId = jefeSucursalDao.consultarJefeId(codigoUsuario);

    // While para recorrer el ResultSet y obtener el jefeid del Jefe_Sucursal
    while (resultadoJefeId.next()) {
      jefeId = resultadoJefeId.getInt("jefeid");
    }

    Sucursal modificarSucursal = new Sucursal();

    modificarSucursal.setCodigoJefe(jefeId);
    modificarSucursal.setNombre(nombreSucursal);
    modificarSucursal.setCiudad(ciudadSucursal);
    modificarSucursal.setDireccion(direccionSucursal);

    PreparedStatement estado2 = sucursalDao.modificarSucursal(modificarSucursal);

    try {
      int n = estado2.executeUpdate();
      estado2.close();
    } catch (SQLException e) {
      System.out.println("Error " + e);
    }

    limpiarCamposSuc();
  }
  // METODO ENCARGADO DE MODIFICAR EL EMPLEADO
  @FXML
  private void modificarEmpleado(ActionEvent event) {

    limpiarMensajesEmp();

    // Validacion de campos vacios
    if (validacion.validarVacios(txtNombreEmpleado.getText())) {
      lblMensajeNombreEmp.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo letras
    if (validacion.soloLetras(txtNombreEmpleado.getText())) {
      lblMensajeNombreEmp.setText("este campo solo recibe letras");
      return;
    }

    if (validacion.validarVacios(txtApellidoEmpleado.getText())) {
      lblMensajeApellidoEmp.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo letras
    if (validacion.soloLetras(txtApellidoEmpleado.getText())) {
      lblMensajeApellidoEmp.setText("este campo solo recibe letras");
      return;
    }

    if (validacion.validarVacios(txtTelefonoEmpleado.getText())) {
      lblMensajeTelefonoEmp.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo numeros
    if (validacion.soloNumeros(txtTelefonoEmpleado.getText())) {
      lblMensajeTelefonoEmp.setText("este campo solo recibe numeros");
      return;
    }

    if (validacion.validarVacios(txtEmailEmpleado.getText())) {
      lblMensajeEmailEmp.setText("campo obligatorio");
      return;
    }

    // Validacion de sintaxis de correo
    if (!validacion.validarCorreo(txtEmailEmpleado.getText())) {
      lblMensajeEmailEmp.setText("correo invalido");
      return;
    }

    // validar el radiobuton
    if (!(rbEstadoActivoEmpleado.isSelected() || rbEstadoInactivoEmpleado.isSelected())) {
      lblMensajeEstadoEmp.setText("debe seleccionar el estado");
      return;
    }

    String nombres = txtNombreEmpleado.getText();
    String apellidos = txtApellidoEmpleado.getText();
    String telefono = txtTelefonoEmpleado.getText();
    String e_mail = txtEmailEmpleado.getText();
    if (rbEstadoActivoEmpleado.isSelected()) {
      estadoUsuario = 1;
    }

    if (rbEstadoInactivoEmpleado.isSelected()) {
      estadoUsuario = 2;
    }

    Usuario nuevoEmpleado = new Usuario();
    nuevoEmpleado.setEstado(estadoUsuario);
    nuevoEmpleado.setNombres(nombres);
    nuevoEmpleado.setApellidos(apellidos);
    nuevoEmpleado.setTelefono(telefono);
    nuevoEmpleado.setE_mail(e_mail);
    nuevoEmpleado.setCodigoUsuario(Integer.parseInt(codigoEmpleado));

    PreparedStatement estado = usuarioDao.modificarEmpleado(nuevoEmpleado);

    try {
      int n = estado.executeUpdate();
      JOptionPane.showMessageDialog(null, "Empleado modificado exitosamente");
      estado.close();
    } catch (SQLException e) {
      System.out.println("Error " + e);
    }

    limpiarCamposEmp();
  }
  // METODO ENCARGADO DE REALIZAR EL REGISTRO DE UN NUEVO EMPLEADO
  @FXML
  private void guardarEmpleado(ActionEvent event) {

    limpiarMensajesEmp();

    // Validacion de campos vacios
    if (validacion.validarVacios(txtNombreEmpleado.getText())) {
      lblMensajeNombreEmp.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo letras
    if (validacion.soloLetras(txtNombreEmpleado.getText())) {
      lblMensajeNombreEmp.setText("este campo solo recibe letras");
      return;
    }

    if (validacion.validarVacios(txtApellidoEmpleado.getText())) {
      lblMensajeApellidoEmp.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo letras
    if (validacion.soloLetras(txtApellidoEmpleado.getText())) {
      lblMensajeApellidoEmp.setText("este campo solo recibe letras");
      return;
    }

    if (validacion.validarVacios(txtTelefonoEmpleado.getText())) {
      lblMensajeTelefonoEmp.setText("campo obligatorio");
      return;
    }

    // Validacion de campos solo numeros
    if (validacion.soloNumeros(txtTelefonoEmpleado.getText())) {
      lblMensajeTelefonoEmp.setText("este campo solo recibe numeros");
      return;
    }

    if (validacion.validarVacios(txtEmailEmpleado.getText())) {
      lblMensajeEmailEmp.setText("campo obligatorio");
      return;
    }

    // Validacion de sintaxis de correo
    if (!validacion.validarCorreo(txtEmailEmpleado.getText())) {
      lblMensajeEmailEmp.setText("correo invalido");
      return;
    }

    // validar el radiobuton
    if (!(rbEstadoActivoEmpleado.isSelected() || rbEstadoInactivoEmpleado.isSelected())) {
      lblMensajeEstadoEmp.setText("debe seleccionar el estado");
      return;
    }

    String nombres = txtNombreEmpleado.getText();
    String apellidos = txtApellidoEmpleado.getText();
    String telefono = txtTelefonoEmpleado.getText();
    String e_mail = txtEmailEmpleado.getText();
    if (ckbGerente.isSelected()) {
      cargoEmpleado = "Gerente";
    }
    if (ckbJefeDeBodega.isSelected()) {
      cargoEmpleado = "Jefe de Bodega";
    }
    estadoUsuario = 1;

    String clave = claveGenerada.GenerarClave();

    Usuario nuevoEmpleado = new Usuario();
    nuevoEmpleado.setEstado(estadoUsuario);
    nuevoEmpleado.setNombres(nombres);
    nuevoEmpleado.setApellidos(apellidos);
    nuevoEmpleado.setCargo(cargoEmpleado);
    nuevoEmpleado.setTelefono(telefono);
    nuevoEmpleado.setE_mail(e_mail);
    nuevoEmpleado.setClave(clave);

    PreparedStatement estado = usuarioDao.nuevoUsuario(nuevoEmpleado);

    try {
      int n = estado.executeUpdate();
      JOptionPane.showMessageDialog(
          null, "Usuario registrado exitosamente\nClave asignada: " + clave);
      estado.close();
    } catch (SQLException e) {
      System.out.println("Error " + e);
    }

    limpiarCamposEmp();
  }