Subversion Repositories Integrator Subversion

Rev

Rev 326 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.controller;

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.core.util.VerificadorUtil;
import br.com.ec.domain.dto.EnderecoDTO;
import br.com.ec.domain.dto.FuncionarioDTO;
import br.com.ec.domain.dto.PessoaPapelDTO;
import br.com.ec.domain.dto.UsuarioDTO;
import br.com.ec.domain.dto.UsuarioLojaDTO;
import br.com.ec.domain.dto.UsuarioPerfilDTO;
import br.com.ec.domain.model.Endereco;
import br.com.ec.domain.model.Funcionario;
import br.com.ec.domain.model.Papel;
import br.com.ec.domain.model.Usuario;
import br.com.ec.domain.service.EnderecoService;
import br.com.ec.domain.service.FuncionarioService;
import br.com.ec.domain.service.PapelService;
import br.com.ec.domain.service.PessoaPapelService;
import br.com.ec.domain.service.PessoaService;
import br.com.ec.domain.service.UsuarioLojaService;
import br.com.ec.domain.service.UsuarioPerfilService;
import br.com.ec.domain.service.UsuarioService;
import br.com.ec.domain.service.VendedorService;
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 FuncionarioBean extends AbstractBean<Funcionario> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private FuncionarioService funcionarioService;
        private UsuarioService usuarioService;
        private PessoaService pessoaService;
        private PapelService papelService;
        private PessoaPapelService pessoaPapelService;
        private EnderecoService enderecoService;
        private UsuarioPerfilService usuarioPerfilService;
        private UsuarioLojaService usuarioLojaService;
        private VendedorService vendedorService;
       
        private FuncionarioDTO entidadeParaConsulta;
        private List<FuncionarioDTO> funcionarios;
       
        private FuncionarioDTO entidadeDTO;
        private PessoaPapelDTO pessoaPapelDTO;
        private Endereco endereco;
        private Usuario usuario;
        private UsuarioPerfilDTO usuarioPerfilDTO;
        private UsuarioLojaDTO usuarioLojaDTO;
       
        @Inject
        public FuncionarioBean(FuncionarioService funcionarioService, UsuarioService usuarioService, PessoaService pessoaService,
                        PapelService papelService, PessoaPapelService pessoaPapelService, EnderecoService enderecoService,
                        UsuarioPerfilService usuarioPerfilService, UsuarioLojaService usuarioLojaService, VendedorService vendedorService) {
                this.funcionarioService = funcionarioService;
                this.usuarioService = usuarioService;
                this.pessoaService = pessoaService;
                this.papelService = papelService;
                this.pessoaPapelService = pessoaPapelService;
                this.enderecoService = enderecoService;
                this.usuarioPerfilService = usuarioPerfilService;
                this.usuarioLojaService = usuarioLojaService;
                this.vendedorService = vendedorService;
        }
       
        @Override
        public void preCarregamento() {
                limparEntidade();
                consultarFuncionarios();
        }

        @Override
        public void limparEntidade() {
                setEntidade(new Funcionario());
                setEntidadeParaConsulta(new FuncionarioDTO());
                setEntidadeDTO(null);
                consultarFuncionarios();
        }

        @Override
        public GenericService<Funcionario> getService() {
                return funcionarioService;
        }
       
        @Override
        public Funcionario getEntidade() {
                return entidade;
        }
       
        @Override
        public void preConsultar() {
                setTipoOperacao(TipoOperacao.CONSULTAR);
        }

        @Override
        public Funcionario getId() {
                return getEntidade();
        }
       
        /*************************************************/
       
        public FuncionarioDTO getEntidadeParaConsulta() {
                return entidadeParaConsulta;
        }
        public void setEntidadeParaConsulta(FuncionarioDTO entidadeParaConsulta) {
                this.entidadeParaConsulta = entidadeParaConsulta;
        }
       
        public List<FuncionarioDTO> getFuncionarios() {
                return funcionarios;
        }
        public void setFuncionarios(List<FuncionarioDTO> funcionarios) {
                this.funcionarios = funcionarios;
        }
       
        public FuncionarioDTO getEntidadeDTO() {
                return entidadeDTO;
        }
        public void setEntidadeDTO(FuncionarioDTO entidadeDTO) {
                this.entidadeDTO = entidadeDTO;
        }
       
        public PessoaPapelDTO getPessoaPapelDTO() {
                return pessoaPapelDTO;
        }
        public void setPessoaPapelDTO(PessoaPapelDTO pessoaPapelDTO) {
                this.pessoaPapelDTO = pessoaPapelDTO;
        }
       
        public Endereco getEndereco() {
                return endereco;
        }
        public void setEndereco(Endereco endereco) {
                this.endereco = endereco;
        }
       
        public Usuario getUsuario() {
                return usuario;
        }
        public void setUsuario(Usuario usuario) {
                this.usuario = usuario;
        }
       
        public UsuarioPerfilDTO getUsuarioPerfilDTO() {
                return usuarioPerfilDTO;
        }
        public void setUsuarioPerfilDTO(UsuarioPerfilDTO usuarioPerfilDTO) {
                this.usuarioPerfilDTO = usuarioPerfilDTO;
        }
       
        public UsuarioLojaDTO getUsuarioLojaDTO() {
                return usuarioLojaDTO;
        }
        public void setUsuarioLojaDTO(UsuarioLojaDTO usuarioLojaDTO) {
                this.usuarioLojaDTO = usuarioLojaDTO;
        }
       
        /*************************************************/
       
        public void prepararDetalhar(FuncionarioDTO funcionarioDTO) {
                super.preDetalhar(funcionarioService.consultarPorId(new Funcionario(funcionarioDTO.getSequencialFuncionario())));
        }
       
        public void prepararAlterar(FuncionarioDTO funcionarioDTO) {
                super.preAlterar(funcionarioService.consultarPorId(new Funcionario(funcionarioDTO.getSequencialFuncionario())));
        }
       
        public void consultarFuncionarios() {
                setFuncionarios(funcionarioService.consultarFuncionarios(getEntidadeParaConsulta()));
        }
       
        public void prepararAlterarCompleto(FuncionarioDTO funcionarioDTO) {
                super.preAlterar(funcionarioService.consultarPorId(new Funcionario(funcionarioDTO.getSequencialFuncionario())));
                UsuarioDTO usuarioDTO = usuarioService.consultarPorPessoa(funcionarioDTO.getSequencialPessoa());
                setEntidadeDTO(new FuncionarioDTO(getEntidade().getSequencial()));
                if (VerificadorUtil.naoEstaNulo(usuarioDTO)) {
                        getEntidadeDTO().setUsuarioDTO(usuarioDTO);
                        getEntidadeDTO().getUsuarioDTO().setPerfis(usuarioPerfilService.consultarPerfisDoUsuario(usuarioDTO.getSequencial()));
                        getEntidadeDTO().getUsuarioDTO().setLojas(usuarioLojaService.consultarLojasDoUsuario(usuarioDTO.getSequencial()));
                }
                getEntidadeDTO().setPapeisDTO(pessoaPapelService.consultarPapeisDaPessoa(getEntidade().getSequencialDaPessoa()));
                getEntidadeDTO().setEnderecosDTO(enderecoService.consultarEnderecosDaPessoa(getEntidade().getSequencialDaPessoa()));
                getEntidadeDTO().setVendedorDTO(vendedorService.consultarVendedorPorPessoa(getEntidade().getSequencialDaPessoa()));
                limparPapel();
        }
       
        public void alterarCompleto() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                pessoaService.alterar(getEntidade().getPessoa());
                                usuarioService.alterar(getEntidadeDTO().getUsuarioDTO());
                                alterar(getEntidade());
                        }
                });
        }
       
        public void limparPapel() {
                PessoaPapelDTO pessoaPapelDTO = new PessoaPapelDTO();
                pessoaPapelDTO.setSequencialPessoa(getEntidade().getPessoa().getSequencial());
                setPessoaPapelDTO(pessoaPapelDTO);
        }
       
        public void adicionarPapel() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                pessoaPapelService.adicionarPapel(getEntidade().getPessoa(), new Papel(getPessoaPapelDTO().getCodigoPapel()));
                                getEntidadeDTO().setPapeisDTO(pessoaPapelService.consultarPapeisDaPessoa(getPessoaPapelDTO().getSequencialPessoa()));
                                LancadorMensagem.lancarSucesso("PAPEL ADICIONADO COM SUCESSO");
                        }
                });
        }
       
        public void removerPapel(PessoaPapelDTO pessoaPapelDTO) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                pessoaPapelService.removerPapel(pessoaPapelDTO.getSequencialPessoa(), pessoaPapelDTO.getCodigoPapel());
                                getEntidadeDTO().setPapeisDTO(pessoaPapelService.consultarPapeisDaPessoa(pessoaPapelDTO.getSequencialPessoa()));
                                LancadorMensagem.lancarSucesso("PAPEL REMOVIDO COM SUCESSO");
                        }
                });
        }
       
        public void limparEndereco() {
                Endereco endereco = new Endereco();
                endereco.setPessoa(getEntidade().getPessoa());
                endereco.setAtivo(true);
                setEndereco(endereco);
        }
       
        public void prepararAlterarEndereco(EnderecoDTO enderecoDTO) {
                setEndereco(enderecoService.consultarPorId(new Endereco(enderecoDTO.getSequencial())));
        }
       
        public void adicionarEndereco() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                enderecoService.alterar(getEndereco());
                                getEntidadeDTO().setEnderecosDTO(enderecoService.consultarEnderecosDaPessoa(getEntidade().getSequencialDaPessoa()));
                                LancadorMensagem.lancarSucesso("ENDEREÇO SALVO COM SUCESSO");
                        }
                });
        }
       
        public void removerEndereco(EnderecoDTO enderecoDTO) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                enderecoService.removerEndereco(enderecoDTO.getSequencial());
                                getEntidadeDTO().setEnderecosDTO(enderecoService.consultarEnderecosDaPessoa(getEntidade().getSequencialDaPessoa()));
                                LancadorMensagem.lancarSucesso("ENDEREÇO REMOVIDO COM SUCESSO");
                        }
                });
        }
       
        public void limparUsuarioPerfil() {
                UsuarioPerfilDTO usuarioPerfilDTO = new UsuarioPerfilDTO();
                usuarioPerfilDTO.setSequencialUsuario(getEntidadeDTO().getUsuarioDTO().getSequencial());
                setUsuarioPerfilDTO(usuarioPerfilDTO);
        }
       
        public void adicionarUsuarioPerfil() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                usuarioPerfilService.adicionarPerfil(getUsuarioPerfilDTO().getSequencialUsuario(), getUsuarioPerfilDTO().getCodigoPerfil());
                                getEntidadeDTO().getUsuarioDTO().setPerfis(usuarioPerfilService.consultarPerfisDoUsuario(getUsuarioPerfilDTO().getSequencialUsuario()));
                                LancadorMensagem.lancarSucesso("PERFIL ADICIONADO COM SUCESSO");
                        }
                });
        }
       
        public void removerUsuarioPerfil(UsuarioPerfilDTO usuarioPerfilDTO) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                usuarioPerfilService.removerPerfil(usuarioPerfilDTO.getSequencial());
                                getEntidadeDTO().getUsuarioDTO().setPerfis(usuarioPerfilService.consultarPerfisDoUsuario(usuarioPerfilDTO.getSequencialUsuario()));
                                LancadorMensagem.lancarSucesso("PERFIL REMOVIDO COM SUCESSO");
                        }
                });
        }
       
        public void limparUsuarioLoja() {
                UsuarioLojaDTO usuarioLojaDTO = new UsuarioLojaDTO();
                usuarioLojaDTO.setSequencialUsuario(getEntidadeDTO().getUsuarioDTO().getSequencial());
                setUsuarioLojaDTO(usuarioLojaDTO);
        }
       
        public void adicionarUsuarioLoja() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                usuarioLojaService.adicionarLoja(getUsuarioLojaDTO().getSequencialUsuario(), getUsuarioLojaDTO().getSequencialLoja());
                                getEntidadeDTO().getUsuarioDTO().setLojas(usuarioLojaService.consultarLojasDoUsuario(getUsuarioLojaDTO().getSequencialUsuario()));
                                LancadorMensagem.lancarSucesso("LOJA ADICIONADA COM SUCESSO");
                        }
                });
        }
       
        public void removerUsuarioLoja(UsuarioLojaDTO usuarioLojaDTO) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                usuarioLojaService.removerLoja(usuarioLojaDTO.getSequencialUsuario(), usuarioLojaDTO.getSequencialLoja());
                                getEntidadeDTO().getUsuarioDTO().setLojas(usuarioLojaService.consultarLojasDoUsuario(usuarioLojaDTO.getSequencialUsuario()));
                                LancadorMensagem.lancarSucesso("LOJA REMOVIDA COM SUCESSO");
                        }
                });
        }
       
        public void iniciarVendedor() {
               
        }
       
}