Ai vai o codigo completo
ApontamentoMB
package beans;
import dao.ApontamentoDAO;
import dao.MicrosigaDAO;
import java.io.IOException;
import java.io.Serializable;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.AjaxBehaviorEvent;
import util.Parametro;
import vo.Apontamento;
import vo.Funcionario;
import vo.Intervalo;
/**
*
-
@author Romulo
*/
@ManagedBean(name = “apontamentoMB”, eager = false)
@SessionScoped
public class ApontamentoMB implements Serializable {
private String dataHoraTela;
private Apontamento selected;
private ArrayList list;
private String ordem;
private String codfunc;
private String operacao;
private String recurso;
private float quantidade;
private String motivo;
private String tempoOP;
private String ccusto;
private String funMod;
private String empresa;
private String filial;
private boolean apontamentoOK;
private boolean configOK;
private boolean funcionarioOK;
private boolean iniciando;
private Apontamento apo;
private ApontamentoDAO dao;
private String telaAtual;
private boolean initilized = false;
private Funcionario funcSelected;
private Funcionario funcCadastro;
private ArrayList listFunc;
private ArrayList listSN;
private Parametro param;
private String apontaNvezes;
private Intervalo intervalos;
private MicrosigaDAO daoMicrosiga;
public ApontamentoMB() {
if (!initilized) {
initializeApp();
initilized = true;
}
}
@PostConstruct
private void initializeApp() {
setTelaAtual(“f5”);
//Conectar com banco de dados
dao = ApontamentoDAO.getInstance();
//Carregar parametros
param = dao.loadParameters();
//Trabalhar intervalos
intervalos = new Intervalo(param);
intervalos.montarIntervalos();
daoMicrosiga = MicrosigaDAO.getInstance(param.getDriverBanco(), param.getOdbc_microsiga(), param.getUserBD(), param.getSenhaBD());
//Mostrar data
SimpleDateFormat formato = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");
setDataHoraTela(formato.format(new Date(System.currentTimeMillis())));
list = dao.loadApontamentos(dataHoraTela, true);
funcCadastro = new Funcionario();
funcSelected = new Funcionario();
apontamentoOK = false;
configOK = false;
funcionarioOK = false;
iniciando = true;
setTelaAtual("principal");
// updateScreen();
}
public void msg(String summary, String detail, int tipo) {
FacesContext fc = FacesContext.getCurrentInstance();
if (tipo == 1) {
fc.addMessage("", new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail));
} else if (tipo == 2) {
fc.addMessage("", new FacesMessage(FacesMessage.SEVERITY_WARN, summary, detail));
} else if (tipo == 3) {
fc.addMessage("", new FacesMessage(FacesMessage.SEVERITY_ERROR, summary, detail));
} else if (tipo == 4) {
fc.addMessage("", new FacesMessage(FacesMessage.SEVERITY_FATAL, summary, detail));
}
fc.renderResponse();
}
public String incluirApto() {
String tpoApto = telaAtual.startsWith("f5") ? "P" : "I";
if (!validarFunc()) {
codfunc = "";
return "/faces/index.xhtml";
}
if (getMotivo().equals("")){
if (!validarOperacao()) {
operacao = "";
return "faces/index.xhtml";
}
if (!validarRecurso()) {
recurso = "";
return "faces/index.xhtml";
}
}
if (telaAtual.startsWith("f5")) {
inserirApontamento(getCodfunc(), getOrdem(), getOperacao(), getRecurso(), tpoApto);
} else if (telaAtual.startsWith("f7")) {
inserirApontamento(codfunc, ordem, operacao, recurso, motivo, tpoApto);
}
FacesContext fc = FacesContext.getCurrentInstance();
fc.renderResponse();
return "/faces/index.xhtml";
}
public void inserirApontamento(String codFunc, String codOrdem,String codOpe, String codRec, String tpoCategoria) {
String tpoApto = (tpoCategoria.startsWith("P") ? "Produção" : "Improdutivo");
if (codOrdem.isEmpty() || codFunc.isEmpty() || operacao.isEmpty() || recurso.isEmpty()) {
msg("Apontamento " + tpoApto, "Preencher campos", 3);
return;
}
Funcionario func = dao.getFuncionario(codFunc);
if (func == null) {
msg("Apontamento " + tpoApto, "Funcionário não encontrado com o código " + codFunc, 3);
return;
}
if (!daoMicrosiga.getOP(codOrdem, param.getTbl_op(), param.getFld_op())) {
msg("Apontamento " + tpoApto, "Não foi encontrada nenhuma Ordem de produção com o código " + codOrdem + " no ERP", 3);
return;
}
Apontamento apoLocal;
if (!func.permiteApontarNVezes()) {
apoLocal = dao.getApontamento(func.getId(), false);
if (apoLocal != null) {
if (apoLocal.getTpoCategoria().startsWith("P")) {
msg("Apontamento " + tpoApto, "Apontamento já registrado com a Ordem de Produção: " + apoLocal.getCodOrdem(), 3);
} else {
msg("Apontamento " + tpoApto, "Apontamento de Hora Improdutiva aberto para Ordem de Produção: " + apoLocal.getCodOrdem() + ". Encerra-lo antes de prosseguir", 3);
}
// updateScreen();
return;
}
}
apoLocal = new Apontamento();
apoLocal.setCodOrdem(codOrdem);
apoLocal.setTpoCategoria(tpoCategoria);
apoLocal.setOperacao(codOpe);
apoLocal.setRecurso(codRec);
apoLocal.setFunId(func.getId());
apoLocal.setFunNome(func.getNome());
apoLocal.setEmp(func.getEmpresa());
apoLocal.setFil(func.getFilial());
apoLocal.setMotivo("");
apoLocal.setCcusto(func.getCcusto());
apoLocal.setMod(func.getFunMod());
String msg = dao.inserirApontamento(apoLocal);
if (msg.startsWith("Falha")) {
msg("Apontamento " + tpoApto, msg + " Codigo Ordem: " + codOrdem + " Funcionario: " + codFunc, 3);
} else {
msg("Apontamento " + tpoApto, msg, 1);
}
codfunc = "";
ordem = "";
motivo = "";
operacao = "";
recurso = "";
telaAtual = "principal";
return;
}
public void updateScreen() {
FacesContext faces = FacesContext.getCurrentInstance();
ExternalContext context = faces.getExternalContext();
try {
context.redirect("/Aponte_fitz/");
// context.dispatch("/");
// context.responseFlushBuffer();
} catch (IOException ex) {
Logger.getLogger(ApontamentoMB.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void inserirApontamento(String codFunc, String codOrdem, String operacao, String recurso, String mot, String tpoCategoria) {
String tpoApto = (tpoCategoria.startsWith("P") ? "Produção" : "Improdutivo");
if (tpoCategoria.startsWith("P")) {
if (codOrdem.isEmpty() || codFunc.isEmpty() || mot.isEmpty()) {
msg("Apontamento " + tpoApto, "Preencher campos", 3);
return;
}
} else {
if (codFunc.isEmpty() || mot.isEmpty()) {
msg("Apontamento " + tpoApto, "Preencher campos", 3);
return;
}
}
if (!daoMicrosiga.getMotivo(mot, param.getSx5tbl())) {
msg("Apontamento " + tpoApto, "Motivo inválido", 3);
return;
}
Funcionario func = dao.getFuncionario(codFunc);
if (func == null) {
msg("Apontamento " + tpoApto, "Funcionário não encontrado com o código " + codFunc, 3);
return;
}
Apontamento apoLocal;
apoLocal = dao.getApontamento(func.getId(), true);
if (apoLocal != null) {
msg("Apontamento " + tpoApto, "Apontamento já registrado com a Ordem de Produção: " + apoLocal.getCodOrdem() + " Motivo: " + apoLocal.getMotivo(), 3);
return;
}
apoLocal = dao.getApontamento(func.getId(), false);
if (apoLocal != null) {
apoLocal.setEncerramento(new Timestamp(System.currentTimeMillis()));
String tempoTotal = calcularTempo(apoLocal.getAbertura(), apoLocal.getEncerramento());
apoLocal.setTempoTotal(tempoTotal);
dao.updateApontamento(apoLocal);
msg("Apontamento " + tpoApto, "Existia apontamento de produção para a OP: " + apoLocal.getCodOrdem() + " e foi encerrado", 2);
}
apoLocal = new Apontamento();
apoLocal.setCodOrdem(codOrdem);
apoLocal.setOperacao(operacao);
apoLocal.setRecurso(recurso);
apoLocal.setTpoCategoria(tpoCategoria);
apoLocal.setFunId(func.getId());
apoLocal.setFunNome(func.getNome());
apoLocal.setMotivo(mot);
apoLocal.setEmp(func.getEmpresa());
apoLocal.setFil(func.getFilial());
apoLocal.setCcusto(func.getCcusto());
apoLocal.setMod(func.getFunMod());
String msg = dao.inserirApontamento(apoLocal);
// updateScreen();
if (msg.startsWith("Falha")) {
msg("Apontamento " + tpoApto, msg + " Codigo Ordem: " + codOrdem + " Funcionario: " + codFunc + " Motivo: " + mot, 3);
} else {
msg("Apontamento " + tpoApto, msg, 1);
}
FacesContext fc = FacesContext.getCurrentInstance();
codfunc = "";
ordem = "";
motivo = "";
telaAtual = "principal";
// fc.renderResponse();
}
public void configParams() {
Funcionario func = dao.getFuncionario(codfunc);
if (func == null) {
configOK = false;
funcionarioOK = false;
msg("Configuração do Sistema", "Você não está habilitado para configurar o sistema", 4);
return;
}
if (func.getResponsavelSetor().startsWith("S")) {
configOK = true;
if(!funcionarioOK){
msg("Configuração do Sistema", "Ajuste as configurações do sistema", 1);
funcionarioOK = true;
codfunc = "";
}
} else {
configOK = false;
funcionarioOK = false;
msg("Configuração do Sistema", "Você não está habilitado para configurar o sistema", 4);
}
}
public void defineTelaAtual(ActionEvent e) {
iniciando = false;
setTelaAtual(e.getComponent().getId().toString().toLowerCase());
setCodfunc("");
setOrdem("");
setMotivo("");
funcionarioOK = false;
configOK = false;
apontamentoOK = false;
if (getTelaAtual().startsWith("f4")) {
listFunc = dao.getFuncionarios();
}
if (getTelaAtual().startsWith("f11")) {
loadApontamentos();
}
updateScreen();
}
public void encerrarApontamentos(AjaxBehaviorEvent e) {
Funcionario func = dao.getFuncionario(codfunc);
String msg = "";
if (func == null) {
msg("Encerrar apontamentos", "Você não está habilitado para executar esta funcionalidade no sistema", 4);
return;
}
if (func.getResponsavelSetor().startsWith("S")) {
msg = dao.finalizarApontamentos(intervalos);
loadApontamentos();
msg("Encerrar apontamentos", msg, 1);
} else {
msg("Encerrar apontamentos", "Você não está habilitado para executar esta funcionalidade no sistema", 4);
return;
}
}
public void localizaApontamento() {
if (this.getTelaAtual().startsWith("f6")) {
this.localizaApontamento(codfunc, quantidade, ordem, operacao, "P");
} else if (this.getTelaAtual().startsWith("f8")) {
this.localizaApontamento(codfunc, "I");
}
}
public void localizaApontamento(String codfunc, float quantidade, String codOrdem, String codOperacao, String tpoCategoria) {
String tpoApto = tpoCategoria.startsWith("P") ? "de Produção" : "Improdutivo";
Timestamp tFinal = new Timestamp(System.currentTimeMillis());
if (codfunc.isEmpty()) {
msg("Apontamento " + tpoApto, "Preencha os campos " + codfunc, 3);
return;
}
Funcionario func = dao.getFuncionario(codfunc);
if (func == null) {
msg("Apontamento " + tpoApto, "Funcionário não encontrado com o código " + codfunc, 2);
return;
}
apo = dao.getApontamento(func.getId(), codOrdem, codOperacao, tpoCategoria);
if (apo != null) {
apo.setEncerramento(tFinal);
apo.setTempoTotal(calcularTempo(apo.getAbertura(), apo.getEncerramento()));
} else {
msg("Apontamento " + tpoApto, "Nenhum apontamento " + tpoApto + " foi aberto para o funcionário " + codfunc, 2);
return;
}
confirmaEncerramento();
this.quantidade = 0;
operacao = "";
ordem = "";
apontamentoOK = true;
}
public void localizaApontamento(String codfunc, String tpoCategoria) {
String tpoApto = tpoCategoria.startsWith("P") ? "de Produção" : "Improdutivo";
Timestamp tFinal = new Timestamp(System.currentTimeMillis());
if (codfunc.isEmpty()) {
return;
}
Funcionario func = dao.getFuncionario(codfunc);
if (func == null) {
msg("Apontamento " + tpoApto, "Funcionário não encontrado com o código " + codfunc, 2);
return;
}
apo = dao.getApontamento(func.getId(), tpoCategoria);
if (apo != null) {
apo.setEncerramento(tFinal);
apo.setTempoTotal(calcularTempo(apo.getAbertura(), apo.getEncerramento()));
} else {
msg("Apontamento " + tpoApto, "Nenhum apontamento " + tpoApto + " foi aberto para o funcionário " + codfunc, 2);
return;
}
confirmaEncerramento();
apontamentoOK = true;
}
public String confirmaEncerramento() {
if (this.getTelaAtual().startsWith("f6")) {
this.confirmaEncerramento(getCodfunc(), getQuantidade(), "P");
setCodfunc("");
} else if (this.getTelaAtual().startsWith("f8")) {
this.confirmaEncerramento(getCodfunc(), "I");
setCodfunc("");
}
return "";
}
public void cancelaEncerramento(ActionEvent e) {
if (this.getTelaAtual().startsWith("f6")) {
this.setCodfunc("");
}
}
public boolean validarOperacao(){
if (operacao.isEmpty()) {
msg("Funcionário", "Passe o código de operacao", 3);
return false;
}
if(!daoMicrosiga.getOperacao(operacao)){
msg("Funcionário", "Código de operação não existe em nosso sistema", 3);
return false;
}
return true;
}
public boolean validarRecurso(){
if (operacao.isEmpty()) {
msg("Funcionário", "Passe o código do recurso", 3);
return false;
}
if(!daoMicrosiga.getRecurso(recurso)){
msg("Funcionário", "Recurso não existe em nosso sistema", 3);
return false;
}
return true;
}
public boolean validarFunc() {
if (codfunc.isEmpty()) {
msg("Funcionário", "Passe o código de barras do seu crachá", 3);
return false;
}
funcSelected = dao.getFuncionario(codfunc);
if (funcSelected == null) {
msg("Funcionário", "Número de crachá não encontrado no sistema", 3);
return false;
}
if (dao.existeApontamentoAberto(funcSelected.getId(), getOperacao(), getOrdem())) {
msg("Apontamento produção", "Existe um Apontamento identico aberto. Fechar antes de prosseguir", 2);
return false;
}
return true;
}
public boolean validarCodigoMicrosiga(){
return dao.getCogidoMicrosiga(ordem);
}
public boolean validarCodigoMicrosiga(Funcionario funcSel){
return dao.getCogidoMicrosiga(funcSel);
}
public void atualizarTbl(ActionEvent e) {
loadApontamentos();
}
public void atualizarParams(ActionEvent e) {
String msg = dao.updateParams(param);
if (msg.startsWith("Falha")) {
msg("Atualização de parametro", msg, 4);
} else {
msg("Atualização de parametro", msg, 1);
}
setTelaAtual("principal");
configOK = false;
}
public void confirmaEncerramento(String codFunc, String tpoCategoria) {
String tpoApto = tpoCategoria.startsWith("P") ? "de Produção" : "Improdutivo";
if (codFunc.isEmpty()) {
return;
}
Funcionario func = dao.getFuncionario(codFunc);
if (func == null) {
msg("Apontamento " + tpoApto, "Funcionário não encontrado com o código " + codFunc, 3);
return;
}
apo = dao.getApontamento(func.getId(), tpoCategoria);
Timestamp t = new Timestamp(System.currentTimeMillis());
apo.setEncerramento(t);
String tempoTotal = calcularTempo(apo.getAbertura(), apo.getEncerramento());
apo.setTempoTotal(tempoTotal);
dao.updateApontamento(apo);
msg("Apontamento " + tpoApto, "Apontamento " + tpoApto + " encerrado com sucesso", 1);
apontamentoOK = false;
telaAtual = "principal";
}
public void confirmaEncerramento(String codFunc, float quantidade, String tpoCategoria) {
String tpoApto = tpoCategoria.startsWith("P") ? "de Produção" : "Improdutivo";
if (codFunc.isEmpty()) {
return;
}
Funcionario func = dao.getFuncionario(codFunc);
if (func == null) {
msg("Apontamento " + tpoApto, "Funcionário não encontrado com o código " + codFunc, 3);
return;
}
apo = dao.getApontamento(func.getId(), tpoCategoria);
Timestamp t = new Timestamp(System.currentTimeMillis());
apo.setEncerramento(t);
String tempoTotal = calcularTempo(apo.getAbertura(), apo.getEncerramento());
apo.setTempoTotal(tempoTotal);
apo.setQuantidade(quantidade);
dao.updateApontamento(apo);
msg("Apontamento " + tpoApto, "Apontamento " + tpoApto + " encerrado com sucesso", 1);
apontamentoOK = false;
telaAtual = "principal";
}
public void verificarIntervalos(Timestamp aberta, Timestamp encerra) {
}
public void cadastrarFuncionario(ActionEvent e) {
String msg = "Falha";
if(validarCodigoMicrosiga()){
msg("Adicionar funcionário", "Código Microsiga ja está cadastrado", 3);
return;
}
if (motivo.isEmpty() || codfunc.isEmpty() || ordem.isEmpty()) {
msg("Adicionar funcionário", "Preencha os campos", 3);
return;
}
funcCadastro.setAtivo("S");
funcCadastro.setCodMicrosiga(ordem);
funcCadastro.setNome(codfunc);
funcCadastro.setResponsavelSetor(motivo);
funcCadastro.setApontarNvezes(getApontaNvezes());
funcCadastro.setCcusto(ccusto);
funcCadastro.setEmpresa(param.empresa);
funcCadastro.setFilial(param.filial);
funcCadastro.setFunMod(funMod);
msg = dao.adicionarFuncionario(funcCadastro);
if (msg.startsWith("Falha")) {
msg("Adicionar funcionário", msg, 3);
} else {
msg("Adicionar funcionário", msg, 1);
}
this.codfunc = "";
this.ordem = "";
this.motivo = "";
this.empresa = "";
this.filial = "";
this.ccusto = "";
this.funMod = "";
this.param.empresa = "";
this.param.filial = "";
listFunc = dao.getFuncionarios();
}
public void atualizarFuncionario(ActionEvent e) {
if(validarCodigoMicrosiga(funcSelected)){
msg("Atualizar funcionário", "Código Microsiga ja está cadastrado", 3);
return;
}
String message = dao.atualizarFuncionario(funcSelected);
if (message.startsWith("Falha")) {
msg("Atualizar funcionario", message, 3);
} else {
msg("Atualizar funcionario", message, 1);
}
}
public String getDataHoraTela() {
SimpleDateFormat formato = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");
dataHoraTela = formato.format(new Date(System.currentTimeMillis()));
return dataHoraTela;
}
public void setDataHoraTela(String dataHoraTela) {
this.dataHoraTela = dataHoraTela;
}
public String loadApontamentos() {
list = dao.loadApontamentos(dataHoraTela, true);
return "";
}
public ArrayList<Apontamento> getList() {
// loadApontamentos();
return list;
}
public void setList(ArrayList<Apontamento> list) {
this.list = list;
}
public Apontamento getSelected() {
return selected;
}
public void setSelected(Apontamento selected) {
this.selected = selected;
}
public Apontamento getApo() {
return apo;
}
public void setApo(Apontamento apo) {
this.apo = apo;
}
public boolean isApontamentoOK() {
return apontamentoOK;
}
public void setApontamentoOK(boolean apontamentoOK) {
this.apontamentoOK = apontamentoOK;
}
public Funcionario getFuncSelected() {
return funcSelected;
}
public void setFuncSelected(Funcionario funcSelected) {
this.funcSelected = funcSelected;
}
public ArrayList<Funcionario> getListFunc() {
return listFunc;
}
public void setListFunc(ArrayList<Funcionario> listFunc) {
this.listFunc = listFunc;
}
private void loadFuncionarios() {
listFunc = dao.getFuncionarios();
}
public void loadFuncionarios(ActionEvent e) {
loadFuncionarios();
}
public Funcionario getFuncCadastro() {
return funcCadastro;
}
public void setFuncCadastro(Funcionario funcCadastro) {
this.funcCadastro = funcCadastro;
}
public ArrayList getListSN() {
listSN = new ArrayList();
listSN.add("S");
listSN.add("N");
return listSN;
}
public void setListSN(ArrayList listSN) {
this.listSN = listSN;
}
public String getTelaAtual() {
return telaAtual.toLowerCase();
}
public void setTelaAtual(String telaAtual) {
this.telaAtual = telaAtual;
}
public String getOrdem() {
return ordem;
}
public void setOrdem(String ordem) {
this.ordem = ordem;
}
public String getRecurso() {
return recurso;
}
public void setRecurso(String recurso) {
this.recurso = recurso;
}
public String getCodfunc() {
return codfunc;
}
public void setCodfunc(String codfunc) {
this.codfunc = codfunc;
}
public String getOperacao() {
return operacao;
}
public void setOperacao(String operacao) {
this.operacao = operacao;
}
public String getEmpresa() {
return empresa;
}
public void setEmpresa(String empresa) {
this.empresa = empresa;
}
public String getFilial() {
return filial;
}
public void setFilial(String filial) {
this.filial = filial;
}
public float getQuantidade() {
return quantidade;
}
public void setQuantidade(float quantidade) {
this.quantidade = quantidade;
}
public String getMotivo() {
return motivo;
}
public void setMotivo(String motivo) {
this.motivo = motivo;
}
public Parametro getParam() {
return param;
}
public void setParam(Parametro param) {
this.param = param;
}
public boolean isConfigOK() {
return configOK;
}
public void setConfigOK(boolean configOK) {
this.configOK = configOK;
}
public boolean isFuncionarioOK() {
return funcionarioOK;
}
public void setFuncionarioOK(boolean funcionarioOK) {
this.funcionarioOK = funcionarioOK;
}
public String getApontaNvezes() {
return apontaNvezes;
}
public void setApontaNvezes(String apontaNvezes) {
this.apontaNvezes = apontaNvezes;
}
public String getTempoOP() {
return tempoOP;
}
public void setTempoOP(String tempoOP) {
this.tempoOP = tempoOP;
}
private String calcularTempo(Timestamp t1, Timestamp t2) {
try {
//Verifica a hora DO CAFE - Que absurdo isso poderia estar em um SQL no Banco
SimpleDateFormat dfx = new SimpleDateFormat("kk:mm");
String abertura = dfx.format(t1);
String encerrar = dfx.format(t2);
Date dateAbertura;
Date dateEncerra;
dateAbertura = dfx.parse(abertura);
dateEncerra = dfx.parse(encerrar);
if ((dateAbertura.getTime() > intervalos.getIntervalo1I().getTime()) && (dateAbertura.getTime() < intervalos.getIntervalo1F().getTime())) {
t2.setMinutes(t2.getMinutes() - 10);
}
if ((dateAbertura.getTime() > intervalos.getIntervalo2I().getTime()) && (dateAbertura.getTime() < intervalos.getIntervalo2F().getTime())) {
//descontar 1 hora
t2.setHours(t2.getHours() - 1);
}
Timestamp tResult = new Timestamp(t2.getTime() - t1.getTime());
double tD = (double) tResult.getTime() / (24 * 60 * 60 * 1000);
double tH = tD * 24;
double tM = ((tD * 24) - (int) tH) * 60;
double tS = (tM - (int) tM) * 60;
int tH1 = (int) tH;
int tM1 = (int) tM;
int tS1 = (int) tS;
String result = "";
if (tH1 > 9) {
result = tH1 + ":";
} else {
result = "0" + tH1 + ":";
}
if (tM1 > 9) {
result = result + tM1 + ":";
} else {
result = result + "0" + tM1 + ":";
}
if (tS1 > 9) {
result = result + tS1;
} else {
result = result + "0" + tS1;
}
return result;
} catch (ParseException ex) {
System.out.println("Falha ao calcular tempo: " + ex.getMessage());
return "00:00:00";
}
}
public boolean isIniciando() {
return iniciando;
}
public void setIniciando(boolean iniciando) {
this.iniciando = iniciando;
}
public String getCcusto() {
return ccusto;
}
public void setCcusto(String ccusto) {
this.ccusto = ccusto;
}
public String getFunMod() {
return funMod;
}
public void setFunMod(String funMod) {
this.funMod = funMod;
}
}
config.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:p=“http://primefaces.prime.com.tr/ui”
xmlns:c=“http://java.sun.com/jsp/jstl/core”
xmlns:mj=“http://mojarra.dev.java.net/mojarra_ext”>
<ui:include src="./newTemplate.xhtml"/>
<h:form id="frmAponte" >
<p:growl id="msgs" life="8000" showDetail="true" showSummary="true" />
<p:panel id="pnl" widgetVar="pnl"
style="
background-color: transparent;
background-image: url(images/f2.png);
background-repeat: no-repeat;
background-position: center;
position:relative;
margin:auto;
margin-top: 0px;
width: 800px;
height: 600px;" >
<c:if test="#{not apontamentoMB.funcionarioOK}" >
<h:panelGrid rendered="#{not apontamentoMB.funcionarioOK}" style="position:relative;margin:auto;margin-top: 80px;text-align: center;">
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<h3 align="center"><p></p>Passe o código de barras do seu crachá no leitor</h3>
<p align="center">
<p:focus for="tf4_codfunc"/>
<h:inputText id="tf4_codfunc" value="#{apontamentoMB.codfunc}" size="50" disabled="#{apontamentoMB.funcionarioOK}" rendered="#{not apontamentoMB.funcionarioOK}" styleClass="input3"/>
</p>
<p align="center">
<p:commandButton immediate="false"
action="#{apontamentoMB.configParams}"
value=" OK "
update="frmAponte,msgs" rendered="#{not apontamentoMB.funcionarioOK}" />
</p>
</h:panelGrid>
</c:if>
<p:outputPanel id="tf4editaruser">
<p:panel header="Funcionários" rendered="#{apontamentoMB.funcionarioOK}" id="pnlfunc" widgetVar="pnlfunc"
style="position:relative;
margin:auto;
margin-top: -10px;
margin-left: -30px;
width: 820px;
height: 600px;">
<h:panelGrid>
<h:panelGrid columns="2">
<h:outputText value="Nome" />
<h:inputText id="funcNome" value="#{apontamentoMB.codfunc}" size="30" />
<h:outputText value="Cod. Microsiga" />
<h:inputText id="funcCodMic" value="#{apontamentoMB.ordem}" size="30"/>
<h:outputText value="Centro de Custo" />
<h:inputText id="funcCCusto" value="#{apontamentoMB.ccusto}" size="30"/>
<h:outputText value="MOD" />
<h:inputText id="funcMod" value="#{apontamentoMB.funMod}" size="30"/>
<h:outputText value="Responsavel Setor" />
<h:selectOneMenu id="funcResp" value="#{apontamentoMB.motivo}">
<f:selectItems value="#{apontamentoMB.listSN}" />
</h:selectOneMenu>
<h:outputText value="Apontar N vezes" />
<h:selectOneMenu id="funcAponta" value="#{apontamentoMB.apontaNvezes}">
<f:selectItems value="#{apontamentoMB.listSN}" />
</h:selectOneMenu>
<h:outputText value="Empresa" />
<h:inputText id="funcEmpresa" value="#{apontamentoMB.param.empresa}" size="30"/>
<h:outputText value="Filial" />
<h:inputText id="funFilial" value="#{apontamentoMB.param.filial}" size="30"/>
<p:commandButton id="cmdConfirmaCadFunc" value="Confirmar" immediate="false" actionListener="#{apontamentoMB.cadastrarFuncionario}" update="pnl,paramTblFunc,msgs"/>
<p:commandButton id="cmdFecharCadFunc" value="Fechar" action="#" update="pnl" oncomplete="voltar();"/>
</h:panelGrid>
<h:panelGrid>
<p:dataTable var="funcionario" id="paramTblFunc" widgetVar="paramTblFunc" value="#{apontamentoMB.listFunc}"
selection="#{apontamentoMB.funcSelected}" selectionMode="single" firstPageLinkLabel="Primeiro"
lastPageLinkLabel="Último" onselectComplete="editDialog.show();" rows="14" paginatorAlwaysVisible="false"
update="dadosAEditar" paginator="true" paginatorPosition="top"
height="600" width="510" dynamic="true" style="font-family: Arial;font-size: 10px;">
<p:column >
<f:facet name="header">
<h:outputText value="Id" />
</f:facet>
<h:outputText value="#{funcionario.id}" />
</p:column>
<p:column filterBy="#{funcionario.codMicrosiga}" >
<f:facet name="header">
<h:outputText value="Cod.Microsiga" />
</f:facet>
<h:outputText value="#{funcionario.codMicrosiga}" />
</p:column>
<p:column filterBy="#{funcionario.nome}" >
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{funcionario.nome}" />
</p:column>
<p:column >
<f:facet name="header">
<h:outputText value="Resp. Setor" />
</f:facet>
<h:outputText value="#{funcionario.responsavelSetor}" />
</p:column>
<p:column >
<f:facet name="header">
<h:outputText value="Ap. N vezes" />
</f:facet>
<h:outputText value="#{funcionario.apontarNvezes}" />
</p:column>
<p:column >
<f:facet name="header">
<h:outputText value="CCusto" />
</f:facet>
<h:outputText value="#{funcionario.ccusto}" />
</p:column>
<p:column >
<f:facet name="header">
<h:outputText value="MOD" />
</f:facet>
<h:outputText value="#{funcionario.funMod}" />
</p:column>
<p:column >
<f:facet name="header">
<h:outputText value="Empresa" />
</f:facet>
<h:outputText value="#{funcionario.empresa}" />
</p:column>
<p:column >
<f:facet name="header">
<h:outputText value="Filial" />
</f:facet>
<h:outputText value="#{funcionario.filial}" />
</p:column>
</p:dataTable>
<f:facet name="footer">
<p:commandButton id="paramRefreshTbl" value="Atualizar" actionListener="#{apontamentoMB.loadFuncionarios}"
update="paramTblFunc"/>
</f:facet>
</h:panelGrid>
</h:panelGrid>
</p:panel>
<p:dialog header="Editar Usuario" widgetVar="editDialog" closable="true" position="center" width="700"
showEffect="slide" hideEffect="fold" modal="true" visible="false" >
<p:outputPanel id="dadosAEditar" rendered="true">
<h:panelGrid columns="2" >
<h:outputText value="Nome" />
<h:inputText value="#{apontamentoMB.funcSelected.nome}" />
<h:outputText value="Cod. Microsiga" />
<h:inputText value="#{apontamentoMB.funcSelected.codMicrosiga}" />
<h:outputText value="Centro Custo" />
<h:inputText value="#{apontamentoMB.funcSelected.ccusto}" />
<h:outputText value="MOD" />
<h:inputText value="#{apontamentoMB.funcSelected.funMod}" />
<h:outputText value="Responsavel Setor" />
<h:selectOneMenu value="#{apontamentoMB.funcSelected.responsavelSetor}">
<f:selectItems value="#{apontamentoMB.listSN}" />
</h:selectOneMenu>
<h:outputText value="Apontar N vezes" />
<h:selectOneMenu value="#{apontamentoMB.funcSelected.apontarNvezes}">
<f:selectItems value="#{apontamentoMB.listSN}" />
</h:selectOneMenu>
<h:outputText value="Empresa" />
<h:inputText value="#{apontamentoMB.funcSelected.empresa}" />
<h:outputText value="Filial" />
<h:inputText value="#{apontamentoMB.funcSelected.filial}" />
<p:commandButton actionListener="#{apontamentoMB.atualizarFuncionario}" value="Atualizar" update="dadosAEditar,msgs" />
<p:commandButton oncomplete="editDialog.hide();" actionListener="#{apontamentoMB.loadFuncionarios}" value="Fechar" update="paramTblFunc" />
</h:panelGrid>
</p:outputPanel>
</p:dialog>
</p:outputPanel>
</p:panel>
<p:hotkey bind="F5" immediate="false" id="f5" actionListener="#{apontamentoMB.defineTelaAtual}" update="pnl" process="@form"/>
<p:hotkey bind="F6" immediate="false" id="f6" actionListener="#{apontamentoMB.defineTelaAtual}" update="pnl" process="@form"/>
<p:hotkey bind="F7" immediate="false" id="f7" actionListener="#{apontamentoMB.defineTelaAtual}" update="pnl" process="@form" />
<p:hotkey bind="F8" immediate="false" id="f8" actionListener="#{apontamentoMB.defineTelaAtual}" update="pnl" process="@form" />
<p:hotkey bind="F11" immediate="false" id="f11" actionListener="#{apontamentoMB.defineTelaAtual}" oncomplete="f11();" />
<p:hotkey bind="F12" immediate="false" id="f12" actionListener="#{apontamentoMB.defineTelaAtual}" update="pnl" process="@form" />
<p:hotkey bind="F2" immediate="false" id="f2" oncomplete="configParams();" />
<p:hotkey bind="F4" immediate="false" id="f4" oncomplete="config();" />
</h:form>
</ui:composition>
quem puder me ajudar
abraços