package br.com.ec.controller.managedbean;
import java.io.Serializable;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import br.com.ec.controller.managedbean.consultademanda.PontoConsultaPorDemanda;
import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.model.Pessoa;
import br.com.ec.domain.model.Ponto;
import br.com.ec.domain.service.ponto.PontoService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.generic.AbstractBean;
import br.com.ec.web.message.LancadorMensagem;
@Named
@Scope
("view")
public class PontoConsultaBean
extends AbstractBean
<Ponto
> implements Serializable {
private static final long serialVersionUID = 1L
;
private PontoConsultaPorDemanda lazy
;
private PontoService pontoService
;
private Ponto pontoSelecionado
;
@Inject
public PontoConsultaBean
(PontoConsultaPorDemanda lazy, PontoService pontoService
) {
this.
lazy = lazy
;
this.
pontoService = pontoService
;
}
@
Override
public void preCarregamento
() {
entidade =
new Ponto
();
parametrosConsulta =
new ParametrosConsulta
<Ponto
>();
parametrosConsulta.
setEntidade(entidade
);
pontoSelecionado =
null;
prepararConsultaDemanda
();
}
@
Override
public void limparEntidade
() {
setEntidade
(new Ponto
());
setPontoSelecionado
(null);
}
@
Override
public GenericService
<Ponto
> getService
() {
return pontoService
;
}
@
Override
public Ponto getEntidade
() {
return entidade
;
}
@
Override
public Ponto getId
() {
return getEntidade
();
}
public PontoConsultaPorDemanda getLazy
() {
return lazy
;
}
public void setLazy
(PontoConsultaPorDemanda lazy
) {
this.
lazy = lazy
;
}
public void prepararConsultaDemanda
() {
lazy.
setarParametrosConsulta(getParametrosConsulta
());
}
public Ponto getPontoSelecionado
() {
return pontoSelecionado
;
}
public void setPontoSelecionado
(Ponto pontoSelecionado
) {
this.
pontoSelecionado = pontoSelecionado
;
}
public void selecionarPessoaParaConsulta
(Pessoa pessoa
) {
getParametrosConsulta
().
getEntidade().
setPessoa(pessoa
);
}
public void retirarPessoaParaConsulta
() {
getParametrosConsulta
().
getEntidade().
setPessoa(null);
}
/*****************************************************/
public void consultarPonto
(Ponto ponto
) {
setPontoSelecionado
(getService
().
consultarPorId(ponto
));
}
public void validarPonto
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
getService
().
alterar(getPontoSelecionado
());
prepararConsultaDemanda
();
LancadorMensagem.
lancarSucesso("PONTO VALIDADO COM SUCESSO");
}
});
}
}