package br.com.ec.controller.managedbean;
import java.io.Serializable;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.dto.FuncionarioBancoHorasDTO;
import br.com.ec.domain.model.BancoHoras;
import br.com.ec.domain.model.Funcionario;
import br.com.ec.domain.service.bancohoras.BancoHorasService;
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;
import br.com.ec.web.util.TipoOperacao;
@Named
@Scope
("view")
public class BancoHorasBean
extends AbstractBean
<BancoHoras
> implements Serializable {
private static final long serialVersionUID = 1L
;
private List<FuncionarioBancoHorasDTO
> funcionariosBancoHoras
;
private FuncionarioBancoHorasDTO funcionarioBancoHoras
;
private BancoHorasService bancoHorasService
;
@Inject
public BancoHorasBean
(BancoHorasService bancoHorasService
) {
this.
bancoHorasService = bancoHorasService
;
}
@
Override
public void preCarregamento
() {
limparEntidade
();
consultarBancoHoras
();
}
@
Override
public void limparEntidade
() {
entidade =
new BancoHoras
();
}
@
Override
public GenericService
<BancoHoras
> getService
() {
return bancoHorasService
;
}
@
Override
public BancoHoras getEntidade
() {
return entidade
;
}
@
Override
public BancoHoras getId
() {
return getEntidade
();
}
public List<FuncionarioBancoHorasDTO
> getFuncionariosBancoHoras
() {
return funcionariosBancoHoras
;
}
public void setFuncionariosBancoHoras
(List<FuncionarioBancoHorasDTO
> funcionariosBancoHoras
) {
this.
funcionariosBancoHoras = funcionariosBancoHoras
;
}
public FuncionarioBancoHorasDTO getFuncionarioBancoHoras
() {
return funcionarioBancoHoras
;
}
public void setFuncionarioBancoHoras
(FuncionarioBancoHorasDTO funcionarioBancoHoras
) {
this.
funcionarioBancoHoras = funcionarioBancoHoras
;
}
/***************************************************************/
public void consultarBancoHoras
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
setFuncionariosBancoHoras
(bancoHorasService.
consultarBancoHorasColaboradoresAtivos());
}
});
}
public void detalharLancamentos
(final FuncionarioBancoHorasDTO funcionarioBancoHoras
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
setFuncionarioBancoHoras
(bancoHorasService.
detalharLancamentos(funcionarioBancoHoras.
getFuncionario()));
setTipoOperacao
(TipoOperacao.
DETALHAR);
}
});
}
public void prepararNovo
(Funcionario funcionario
) {
BancoHoras bancoHoras =
new BancoHoras
();
bancoHoras.
setFuncionario(funcionario
);
setEntidade
(bancoHoras
);
}
public void atualizar
() {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
bancoHorasService.
alterar(getEntidade
());
setFuncionarioBancoHoras
(bancoHorasService.
detalharLancamentos(getEntidade
().
getFuncionario()));
LancadorMensagem.
lancarSucesso("BANCO DE HORAS ATUALIZADO COM SUCESSO!");
}
});
}
public void excluirLancamento
(final BancoHoras bancoHoras
) {
new VerificadorLancamentoException
().
tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean
() {
public void execute
() {
bancoHorasService.
excluir(bancoHoras
);
setFuncionarioBancoHoras
(bancoHorasService.
detalharLancamentos(funcionarioBancoHoras.
getFuncionario()));
LancadorMensagem.
lancarSucesso("BANCO DE HORAS EXCLUĂDO COM SUCESSO!");
}
});
}
}