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 javax.inject.Inject;
import javax.inject.Named;

import org.springframework.context.annotation.Scope;

import br.com.ec.controller.managedbean.consultademanda.ProdutoConsultaPorDemanda;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.dto.ParametrosConsultaProdutoDTO;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.model.Produto;
import br.com.ec.domain.model.Usuario;
import br.com.ec.domain.service.loja.LojaService;
import br.com.ec.domain.service.produto.ProdutoService;
import br.com.ec.domain.service.seguranca.ContextoSeguranca;
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 ContagemConsultaBean extends AbstractBean<Produto> implements Serializable {

private static final long serialVersionUID = 1L;
       
        private ProdutoConsultaPorDemanda lazy;
        private ContextoSeguranca contextoSeguranca;
        private Loja lojaSelecionada;
        private Usuario usuarioParaContagem;
       
        private LojaService lojaService;
        private ProdutoService produtoService;
       
        @Inject
        public ContagemConsultaBean(ProdutoConsultaPorDemanda lazy, ContextoSeguranca contextoSeguranca, LojaService lojaService,
                        ProdutoService produtoService) {
                this.lazy = lazy;
                this.contextoSeguranca = contextoSeguranca;
                this.lojaService = lojaService;
                this.produtoService = produtoService;
        }
       
        @Override
        public void preCarregamento() {
                entidade = new Produto();
                parametrosConsulta = new ParametrosConsultaProdutoDTO();
                parametrosConsulta.setEntidade(new Produto());
                lazy.alterarParametroConsultarNaAbertura(true);
                prepararConsultaDemanda();
        }
       
        @Override
        public void limparEntidade() {}

        @Override
        public GenericService<Produto> getService() {
                return null;
        }
       
        @Override
        public Produto getEntidade() {
                return entidade;
        }

        @Override
        public Produto getId() {
                return getEntidade();
        }
       
        public ProdutoConsultaPorDemanda getLazy() {
                prepararConsultaDemanda();
                return lazy;
        }
        public void setLazy(ProdutoConsultaPorDemanda lazy) {
                this.lazy = lazy;
        }
        public void prepararConsultaDemanda() {
                ((ParametrosConsultaProdutoDTO)parametrosConsulta).setLojaSelecionadaParaContagem(getLojaSelecionada());
                ((ParametrosConsultaProdutoDTO)parametrosConsulta).setConsultarAtivo(1);
                ((ParametrosConsultaProdutoDTO)parametrosConsulta).setUsuarioParaContagem(getUsuarioParaContagem());
                lazy.setarParametrosConsulta(getParametrosConsulta());
        }
       
        public Loja getLojaSelecionada() {
                if (VerificadorUtil.estaNulo(lojaSelecionada)) {
                        if (VerificadorUtil.naoEstaNulo(getParametro("sequencialLoja"))) {
                                Loja loja = new Loja();
                                loja.setSequencial(new Long(getParametro("sequencialLoja").toString()));
                                lojaSelecionada = lojaService.consultarPorId(loja);
                        }
                }
                return lojaSelecionada;
        }
        public void setLojaSelecionada(Loja lojaSelecionada) {
                this.lojaSelecionada = lojaSelecionada;
        }
       
        public Usuario getUsuarioParaContagem() {
                return usuarioParaContagem;
        }
        public void setUsuarioParaContagem(Usuario usuarioParaContagem) {
                this.usuarioParaContagem = usuarioParaContagem;
        }
       
        public void cancelarContagem() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                produtoService.cancelarContagem((ParametrosConsultaProdutoDTO)getParametrosConsulta());
                                LancadorMensagem.lancarSucesso("CONTAGEM CANCELADA COM SUCESSO!");
                        }
                });
        }
       
        public void zerarEstoque() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                produtoService.zerarEstoque((ParametrosConsultaProdutoDTO)getParametrosConsulta(), contextoSeguranca.obterUsuario());
                                LancadorMensagem.lancarSucesso("ESTOQUE ZERADO COM SUCESSO!");
                        }
                });
        }
       
}