Subversion Repositories Integrator Subversion

Rev

Rev 106 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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!");
                        }
                });
        }
       
}