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.consulta.ParametrosConsulta;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.Categoria;
import br.com.ec.domain.model.tipos.TipoCategoria;
import br.com.ec.domain.service.categoria.CategoriaService;
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 CategoriaBean extends AbstractBean<Categoria> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private CategoriaService categoriaService;
       
        private Categoria categoriaSelecionado;
       
        private List<Categoria> categorias;

        @Inject
        public CategoriaBean(CategoriaService categoriaService) {
                this.categoriaService = categoriaService;
        }
       
        @Override
        public void preCarregamento() {
                if (VerificadorUtil.estaNulo(parametrosConsulta)) {
                        entidade = new Categoria();
                        parametrosConsulta = new ParametrosConsulta<Categoria>();
                        parametrosConsulta.setEntidade(entidade);
                }
        }
       
        @Override
        public void limparEntidade() {
                Categoria categoria = new Categoria();
                setEntidade(categoria);
        }

        @Override
        public GenericService<Categoria> getService() {
                return categoriaService;
        }
       
        @Override
        public Categoria getEntidade() {
                return entidade;
        }

        @Override
        public Categoria getId() {
                return getEntidade();
        }
       
        public List<Categoria> getCategorias() {
                if (VerificadorUtil.estaNulo(categorias)) {
                        setCategorias(categoriaService.consultarTodos(new Categoria()));
                }
                return categorias;
        }
        public void setCategorias(List<Categoria> categorias) {
                this.categorias = categorias;
        }
       
        public TipoCategoria[] getTiposCategoria() {
                return TipoCategoria.values();
        }
       
        public Categoria getCategoriaSelecionado() {
                return categoriaSelecionado;
        }
        public void setCategoriaSelecionado(Categoria categoriaSelecionado) {
                this.categoriaSelecionado = categoriaSelecionado;
        }
       
        public void prepararConsulta() {
                setCategorias(categoriaService.consultarPassandoEntidade(getParametrosConsulta().getEntidade(), 0, categoriaService.obterQuantidadeDeRegistrosPassandoEntidade(getParametrosConsulta().getEntidade())));
        }
       
        public List<Categoria> listarCategorias() {
                return categoriaService.consultarPassandoEntidade(getParametrosConsulta().getEntidade(), 0, categoriaService.obterQuantidadeDeRegistrosPassandoEntidade(getParametrosConsulta().getEntidade()));
        }
       
        public List<Categoria> listarCategoriasPai() {
                return categoriaService.consultarCategoriasPaiAtivas(null);
        }
       
        public List<Categoria> listarCategoriasPaiReceitas() {
                return categoriaService.consultarCategoriasPaiAtivas(TipoCategoria.RECEITAS.getValor());
        }
       
        public List<Categoria> listarCategoriasPaiDespesas() {
                return categoriaService.consultarCategoriasPaiAtivas(TipoCategoria.DESPESAS.getValor());
        }
       
        public void excluirCategoria(final Categoria categoria) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                categoriaService.excluir(categoria);
                                setCategorias(categoriaService.consultarTodos(new Categoria()));
                                LancadorMensagem.lancarSucesso("Categoria excluĂ­da com sucesso");
                        }
                });
        }
       
}