package br.com.ec.controller.managedbean;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import br.com.ec.core.util.DataUtils;
import br.com.ec.domain.dto.ReservaProdutoDTO;
import br.com.ec.domain.model.Produto;
import br.com.ec.domain.model.Usuario;
import br.com.ec.domain.service.usuario.UsuarioService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
@Named
@Scope
("view")
public class InformarReservaBean
{
private String senhaUsuario
;
private ReservaProdutoDTO reservaProduto
;
private UsuarioService usuarioService
;
@Inject
public InformarReservaBean
(UsuarioService usuarioService
) {
this.
usuarioService = usuarioService
;
}
public ReservaProdutoDTO getReservaProduto
() {
return reservaProduto
;
}
public void setReservaProduto
(ReservaProdutoDTO reservaProduto
) {
this.
reservaProduto = reservaProduto
;
}
public String getSenhaUsuario
() {
return senhaUsuario
;
}
public void setSenhaUsuario
(String senhaUsuario
) {
this.
senhaUsuario = senhaUsuario
;
}
/**************************************************************************/
public void prepararReserva
(Produto produto
) {
ReservaProdutoDTO reservaProduto =
new ReservaProdutoDTO
();
reservaProduto.
setDataReserva(DataUtils.
getDataAtual());
reservaProduto.
setProduto(produto
);
setReservaProduto
(reservaProduto
);
}
public void lancarReserva
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
Usuario usuario = verificarSenhaUsuario
();
getReservaProduto
().
setUsuario(usuario
);
setSenhaUsuario
("");
}
});
}
private Usuario verificarSenhaUsuario
() {
return usuarioService.
consultarUsuarioPorSenha(getSenhaUsuario
());
}
}