Package br.com.sistelecom.bean

Source Code of br.com.sistelecom.bean.FuncionarioController

package br.com.sistelecom.bean;

import java.util.LinkedList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.component.html.HtmlCommandButton;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

import org.ajax4jsf.component.html.HtmlActionParameter;
import org.ajax4jsf.component.html.HtmlAjaxCommandButton;

import br.com.sistelecom.dao.DAO;
import br.com.sistelecom.dao.DepartamentoDAOImpl;
import br.com.sistelecom.dao.FuncionarioDAOImpl;
import br.com.sistelecom.entity.Funcionario;
import br.com.sistelecom.to.FuncionarioTO;

public class FuncionarioController implements Controller<Funcionario>{
 
  private Funcionario funcionario;
  private List<FuncionarioTO> lista;
  private List<SelectItem> listaFuncionario;
  private DAO<Funcionario> funcionarioDAO = new FuncionarioDAOImpl();
   
  public FuncionarioController() {
    this.listarTodos();
    listarFuncionarioComCargoConsultor();
  }
 
  public void novoRegistro() {
    if (validarDadosFormulario()) {
      try {
        this.getDao().salvar(this.getFuncionario());
        this.listarTodos();
        FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_INFO,"Funcionário incluído com sucesso.",""));
      } catch (Exception e) {
        FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro na inclusão do funcionário.",""));
        return;
      }
    }
  }
 
  public void listarTodos() {
   
    this.lista = new LinkedList<FuncionarioTO>();
   
    List<FuncionarioTO> listaFuncionarios = this.getDao().todosFuncionariosParaExibirEmTabela();
   
    for (FuncionarioTO funcionarioTO : listaFuncionarios) {
     
      final int idDepartamento  = funcionarioTO.getDepartamento();
     
      final String nomeDepartamento = new DepartamentoDAOImpl().obterPorId(idDepartamento).getNomeDepartamento();
     
      funcionarioTO.setNomeDepartamento(nomeDepartamento);
    }
   
    this.setLista(listaFuncionarios);
  }
 
  public void carregarRegistro(ActionEvent evento) {
    final String id = ((HtmlActionParameter)((HtmlCommandButton)evento.getSource()).getChildren().get(0)).getValue().toString();
    int idFuncionario = Integer.parseInt(id);

    final Funcionario funcionario = this.getDao().obterPorId(idFuncionario);

    if(funcionario != null){
      this.getFuncionario().setIdFuncionario(funcionario.getIdFuncionario());
      this.getFuncionario().setCpf(funcionario.getCpf());
      this.getFuncionario().setDepartamento(funcionario.getDepartamento());
      this.getFuncionario().setNome(funcionario.getNome());
      this.getFuncionario().setLogradouro(funcionario.getLogradouro());
      this.getFuncionario().setNumero(funcionario.getNumero());
      this.getFuncionario().setComplemento(funcionario.getComplemento());
      this.getFuncionario().setBairro(funcionario.getBairro());
      this.getFuncionario().setCidade(funcionario.getCidade());
      this.getFuncionario().setUf(funcionario.getUf());
      this.getFuncionario().setCep(funcionario.getCep());
      this.getFuncionario().setNasc(funcionario.getNasc());
      this.getFuncionario().setTel1(funcionario.getTel1());
      this.getFuncionario().setTel2(funcionario.getTel2());
      this.getFuncionario().setEmail(funcionario.getEmail());
      this.getFuncionario().setDoc(funcionario.getDoc());
      this.getFuncionario().setTipoDoc(funcionario.getTipoDoc());
      this.getFuncionario().setCargo(funcionario.getCargo());
      this.getFuncionario().setSupervFuncao(funcionario.getSupervFuncao());
      this.getFuncionario().setSupervNome(funcionario.getSupervNome());
      this.getFuncionario().setAdmissao(funcionario.getAdmissao());
      this.getFuncionario().setStatus(funcionario.getStatus());
      this.getFuncionario().setLogin(funcionario.getLogin());
      this.getFuncionario().setPassword(funcionario.getPassword());
    }
  }
 
  public void atualizarRegistro() {
   
    final int id = funcionario.getIdFuncionario();
   
    if (validarDadosFormulario()) {
      try {
       
        if(funcionarioDAO.obterPorId(id) != null){
         
          this.getDao().atualizar(this.getFuncionario());
          this.listarTodos();
          FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_INFO,"Funcionário atualizado com sucesso.",""));
        }
        else{
          FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Funcionário a ser atualizado não existe.",""));
        }
      } catch (Exception e) {
        FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro na atualização do funcionário.",""));
        return;
      }
    }
  }
 
  public void salvar(ActionEvent evento) {
    if(this.getFuncionario().getIdFuncionario() == 0){
      this.novoRegistro();
    }else{
      this.atualizarRegistro();
    }
    this.limpar();
  }
 
  public void excluirRegistro(ActionEvent evento) {
    final String id = ((HtmlActionParameter)((HtmlAjaxCommandButton)evento.getSource()).getChildren().get(0)).getValue().toString();
    int idFuncionario = Integer.parseInt(id);
   
    final Funcionario funcionario = this.getDao().obterPorId(idFuncionario);
   
    try {
      if(funcionario != null){
        this.getDao().excluir(funcionario);
        this.listarTodos();
        FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_INFO,"Funcionário excluído com sucesso.",""));
      }
    } catch (Exception e) {
        FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro na exclusão do funcionário.",""));
      e.printStackTrace();
    }
    this.limpar();
  }
 
  public boolean validarDadosFormulario() {
    if (this.getFuncionario().getCpf() == null || this.getFuncionario().getCpf().equals("")) {
      FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR,"Informe o CPF do funcionario.",""));
      return false;
    }
    return true;
  }
 
  public void limpar() {
    this.funcionario = new Funcionario();
  }
 
  public FuncionarioDAOImpl getDao() {
    return new FuncionarioDAOImpl();
  }
 
  /**
   * @return the funcionario
   */
  public Funcionario getFuncionario() {
    if (this.funcionario == null) {
      this.funcionario = new Funcionario();
    }
    return funcionario;
  }

  /**
   * @param funcionario the funcionario to set
   */
  public void setFuncionario(Funcionario funcionario) {
    this.funcionario = funcionario;
  }

  /**
   * @return the lista
   */
  public List<FuncionarioTO> getLista() {
    return lista;
  }

  /**
   * @param lista the lista to set
   */
  public void setLista(List<FuncionarioTO> lista) {
    this.lista = lista;
  }
 
  public List<SelectItem> getListaEstado() {
    List<Funcionario> listaDeFuncionario = funcionarioDAO.listarTodos();
   
    if(this.listaFuncionario == null){
      this.listaFuncionario = new LinkedList<SelectItem>();
      for (Funcionario funcionario : listaDeFuncionario) {
        this.listaFuncionario.add(new SelectItem(funcionario.getIdFuncionario(), funcionario.getCpf(), funcionario.getNome()));
      }
    }
    return listaFuncionario;
  }

  /**
   * @param listaDepartamento the listaDepartamento to set
   */
  public void setListaFuncionario(List<SelectItem> listaFuncionario) {
    this.listaFuncionario = listaFuncionario;
  }

  /**
   * @return the listaFuncionario
   */
  public List<SelectItem> getListaFuncionario() {
    return listaFuncionario;
  }

  private void listarFuncionarioComCargoConsultor() {
    final List<Funcionario> listaFuncionariosComCargoConsultor = this.getDao().buscarFuncionarioComCargoConsultorComercial(9);
   
    if(!listaFuncionariosComCargoConsultor.isEmpty()){
      if(this.listaFuncionario == null){
        this.listaFuncionario = new LinkedList<SelectItem>();
      }
     
      for (Funcionario funcionario : listaFuncionariosComCargoConsultor) {
        this.listaFuncionario.add(new SelectItem(funcionario.getIdFuncionario(), funcionario.getNome()));
      }
    }
  }

}
TOP

Related Classes of br.com.sistelecom.bean.FuncionarioController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.