Bom dia ae para todos.
Estou desenvolvendo uma aplicação de ponto eletronico ondi nela tenho uma area na administração de abonar faltas.
na minha aplicação JEE utilizo o Facelets, Tomahawk, JSF.
Na pagina de abonarFaltas
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
>
<body>
<ui:composition template="template.xhtml">
<ui:define name="navegacao">
Abonar Faltas
</ui:define>
<ui:define name="body">
<h:form id="formAbonar" >
<t:messages />
<t:panelGrid columns="2" >
<t:outputText value="Funcionarios" styleClass="labels" />
<t:selectOneListbox styleClass="camposAdmin" value="#{AbonarFaltas.pessoa.id}">
<f:selectItems value="#{AbonarFaltas.listaPessoas}"/>
</t:selectOneListbox>
<t:outputText value="Data:" styleClass="labels"/>
<t:panelGroup >
<t:inputDate popupCalendar="true" required="true" value="#{AbonarFaltas.dataDoPonto}" >
</t:inputDate>
</t:panelGroup>
<t:outputText value="" styleClass="camposAdmin"/>
<h:commandButton value="Buscar" styleClass="botaoAdmin" action="#{AbonarFaltas.buscarPontoPessoa}"/>
</t:panelGrid>
<t:dataTable id="tabelaDados" preserveDataModel="false" value="#{AbonarFaltas.listaPontoPessoa}" rows="10" var="ponto" align="center" rowClasses="listasRow1,listasRow2" styleClass="listas" headerClass="listasHeader" cellpadding="2" cellspacing="0">
<t:column>
<f:facet name="header">
<h:outputText value="Id"/>
</f:facet>
<t:outputText value="#{ponto.id}"/>
</t:column>
<t:column>
<f:facet name="header">
<h:outputText value="Pessoa"/>
</f:facet>
<t:outputText value="#{ponto.pessoa.nome}"/>
</t:column>
<t:column>
<f:facet name="header">
<h:outputText value="Turno"/>
</f:facet>
<t:outputText value="#{ponto.turno}"/>
</t:column>
<t:column>
<f:facet name="header">
<h:outputText value="Entrada"/>
</f:facet>
<t:outputText value="#{ponto.horaEntrada}" rendered="#{! ponto.editavel}" >
<f:convertDateTime pattern="HH:mm" locale="pt_BR" timeZone="GMT-3" />
</t:outputText>
<t:inputText value="#{ponto.horaEntrada}" styleClass="camposAdmin" size="7" rendered="#{ponto.editavel}">
<f:convertDateTime pattern="HH:mm" locale="pt_BR" timeZone="GMT-3" />
</t:inputText>
</t:column>
<t:column>
<f:facet name="header">
<h:outputText value="Saida"/>
</f:facet>
<t:outputText value="#{ponto.horaSaida}" rendered="#{! ponto.editavel}">
<f:convertDateTime pattern="HH:mm" locale="pt_BR" timeZone="GMT-3" />
</t:outputText>
<t:inputText value="#{ponto.horaSaida}" styleClass="camposAdmin" size="7" rendered="#{ponto.editavel}">
<f:convertDateTime pattern="HH:mm" locale="pt_BR" timeZone="GMT-3" />
</t:inputText>
</t:column>
<t:column>
<t:selectBooleanCheckbox value="#{ponto.editavel}" onclick="submit()" immediate="true"/>
</t:column>
<t:column >
<h:commandLink rendered="#{ponto.editavel}" value="Salvar" action="#{AbonarFaltas.salvarPonto}" immediate="true">
</h:commandLink>
</t:column>
</t:dataTable>
</h:form>
</ui:define>
</ui:composition>
</body>
</html>
utilizo um t:dataTable que é preenchida apos a escolha de uma pessoa. Em cada linha do datatable tenho um checkbox, para editar a pessoa.
O problema é qdo eu marco o checkbox é renderizado o t:inputText, nisso é inserido um novo horario e então é clicado no botao “Salvar”, esse botao está ligado ao método
public String salvarPonto(){
Ponto ponto = (Ponto) listaPontoPessoa.getRowData();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
System.out.println("hora == " + sdf.format(ponto.getHoraEntrada()));
pontoBean.salvarPonto(ponto);
init();
return null;
}
e método listaPontoPessoa.getRowData(); me retorna somente o horário antigo e não o novo horario inserido. Por isso é atualizado a mesma hora no banco.
espero que alguem me ajude.
grato[/b]