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.core.generic.GenericService;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.EstoqueAuditoria;
import br.com.ec.domain.model.Usuario;
import br.com.ec.domain.model.tipos.TipoEstoqueAuditoria;
import br.com.ec.domain.model.tipos.TipoEstoqueAuditoriaVerificacao;
import br.com.ec.domain.service.estoqueauditoria.EstoqueAuditoriaService;
import br.com.ec.domain.service.usuario.UsuarioService;
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 AuditoriaAvariaBean extends AbstractBean<EstoqueAuditoria> implements Serializable {

        private static final long serialVersionUID = 1L;

        private EstoqueAuditoria estoqueAuditoria;
        private String senhaUsuario;
        private Usuario usuarioAuditor;
        private EstoqueAuditoriaService estoqueAuditoriaService;
        private UsuarioService usuarioService;
       
        @Inject
        public AuditoriaAvariaBean(EstoqueAuditoriaService estoqueAuditoriaService, UsuarioService usuarioService) {
                this.estoqueAuditoriaService = estoqueAuditoriaService;
                this.usuarioService = usuarioService;
        }
       
        @Override
        public void preCarregamento() {
                limparEntidade();
        }
       
        @Override
        public void limparEntidade() {
                setEntidade(new EstoqueAuditoria());
                setEstoqueAuditoria(null);
        }

        @Override
        public GenericService<EstoqueAuditoria> getService() {
                return estoqueAuditoriaService;
        }
       
        @Override
        public EstoqueAuditoria getEntidade() {
                return entidade;
        }

        @Override
        public EstoqueAuditoria getId() {
                return getEntidade();
        }
       
        public EstoqueAuditoria getEstoqueAuditoria() {
                return estoqueAuditoria;
        }
        public void setEstoqueAuditoria(EstoqueAuditoria estoqueAuditoria) {
                this.estoqueAuditoria = estoqueAuditoria;
        }
       
        public String getSenhaUsuario() {
                return senhaUsuario;
        }
        public void setSenhaUsuario(String senhaUsuario) {
                this.senhaUsuario = senhaUsuario;
        }
       
        public Usuario getUsuarioAuditor() {
                return usuarioAuditor;
        }
        public void setUsuarioAuditor(Usuario usuarioAuditor) {
                this.usuarioAuditor = usuarioAuditor;
        }
       
        public TipoEstoqueAuditoria[] getTiposEstoqueAuditoria() {
                return TipoEstoqueAuditoria.values();
        }
       
        public TipoEstoqueAuditoriaVerificacao[] getTiposEstoqueAuditoriaVerificacao() {
                return TipoEstoqueAuditoriaVerificacao.values();
        }
       
        public void consultarAuditoria() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                setUsuarioAuditor(usuarioService.consultarUsuarioPorSenha(getSenhaUsuario()));
                                setEstoqueAuditoria(estoqueAuditoriaService.consultarPorId(getEntidade()));
                                if (VerificadorUtil.estaNulo(getEstoqueAuditoria())) {
                                        LancadorMensagem.lancarAlerta("AUDITORIA NÃO EXISTENTE");
                                }
                        }
                });
        }
       
        public void verificarAuditoria(final EstoqueAuditoria estoqueAuditoria) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                estoqueAuditoria.setUsuarioVerificacao(getUsuarioAuditor());
                                estoqueAuditoriaService.alterarVerificacaoAuditoria(estoqueAuditoria, TipoEstoqueAuditoriaVerificacao.VERIFICADO_SEM_PENDENCIA.getValor());
                                adicionandoParametroArgsConfirmandoAcao(true);
                                limparEntidade();
                                LancadorMensagem.lancarSucesso("AUDITORIA VERIFICADA COM SUCESSO");
                        }
                });
        }
       
        public void verificarAuditoriaComPendencia(final EstoqueAuditoria estoqueAuditoria) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                estoqueAuditoria.setUsuarioVerificacao(getUsuarioAuditor());
                                estoqueAuditoriaService.alterarVerificacaoAuditoria(estoqueAuditoria, TipoEstoqueAuditoriaVerificacao.VERIFICADO_COM_PENDENCIA.getValor());
                                adicionandoParametroArgsConfirmandoAcao(true);
                                limparEntidade();
                                LancadorMensagem.lancarSucesso("AUDITORIA VERIFICADA (COM PENDÊNCIA) COM SUCESSO");
                        }
                });
        }
       
        public void salvarAuditoria() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                estoqueAuditoria.setUsuarioVerificacao(getUsuarioAuditor());
                                estoqueAuditoriaService.alterar(getEstoqueAuditoria());
                                adicionandoParametroArgsConfirmandoAcao(true);
                                limparEntidade();
                                LancadorMensagem.lancarSucesso("AUDITORIA ALTERADA COM SUCESSO");
                        }
                });
        }
       
        public void retirarVerificacaoAuditoria(final EstoqueAuditoria estoqueAuditoria) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                estoqueAuditoriaService.alterarVerificacaoAuditoria(estoqueAuditoria, TipoEstoqueAuditoriaVerificacao.NAO_VERIFICADO.getValor());
                                adicionandoParametroArgsConfirmandoAcao(true);
                                limparEntidade();
                                LancadorMensagem.lancarSucesso("VERIFICAÇÃO DA AUDITORIA RETIRADA COM SUCESSO");
                        }
                });
        }
       
        public void excluirAuditoria(final EstoqueAuditoria estoqueAuditoria) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                estoqueAuditoriaService.excluirAuditoria(estoqueAuditoria);
                                adicionandoParametroArgsConfirmandoAcao(true);
                                limparEntidade();
                                LancadorMensagem.lancarSucesso("AUDITORIA EXCLUÍDA COM SUCESSO");
                        }
                });
        }
       
        public void detalharAuditoria(final EstoqueAuditoria estoqueAuditoria) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                setEntidade(estoqueAuditoria);
                        }
                });
        }
       
}