Estou fazendo um projeto que tem que calcular o valor total de uma diaria, criei um método e consigo pegar o valor da diária do quarto tranquilo, porém quando ele pega a data de entrada e saida a diferença é sempre zero, segue o metodo abaixo.
@Override
@Transactional
public String insert() {
this.reservasBC.insert(getBean());
quartoOcupado();
valorTotal();
return getPreviousView();
}
public void valorTotal(){
Quarto idquarto = this.getBean().getIdquarto();
Quarto quarto = quartoBC.load(idquarto.getId());
Reservas idreservas = this.getBean();
Reservas reserva = reservasBC.load(idreservas.getId());
Date dataChegada = idreservas.getDiaEntrada();
Date dataSaida = idreservas.getDiaSaida();
long diferencaMilissegundos = dataSaida.getTime() - dataChegada.getTime();
int diferencaHoras = (int) (diferencaMilissegundos/1000/60/60/24);
int quocienteDiferencaDias = diferencaHoras / 24;
idreservas.setTotal(((quarto.getTipoQuarto().getValorDiaria()) * quocienteDiferencaDias) + idreservas.getCustoAdicional());
}
Quando eu coloco reserva.getDiaEntrada() em em vez de idreservas.getDiaEntrada(); está vindo null. Abaixo como faço a chamada das datas na página
<h:outputLabel value="#{messages['reservas.label.dt_entrada']}: " for="entrada" styleClass="text-input" >
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:outputLabel>
<p:calendar id="entrada" value="#{reservasEditMB.bean.diaEntrada}"
title="#{messages['reservas.label.dt_entrada']}" pattern="dd/MM/yyyy">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</p:calendar>
<p:message for="entrada" />
<h:outputLabel value="#{messages['reservas.label.dt_saida']}: " for="saida" styleClass="text-input" >
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:outputLabel>
<p:calendar id="saida" value="#{reservasEditMB.bean.diaSaida}"
title="#{messages['reservas.label.dt_saida']}" pattern="dd/MM/yyyy">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</p:calendar>
<p:message for="saida" />