Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.controller.managedbean;

import java.io.Serializable;
import java.util.ArrayList;
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.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.Cliente;
import br.com.ec.domain.model.Pedido;
import br.com.ec.domain.model.tipos.TipoSexo;
import br.com.ec.domain.service.cliente.ClienteService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.generic.AbstractBean;

@Named
@Scope("view")
public class ClienteBean extends AbstractBean<Cliente> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private ClienteService clienteService;
       
        private Cliente clienteSelecionado;
        private String cpfCnpjCliente;
        private String contatoCliente;
       
        private List<Pedido> pedidos;
        private Pedido pedidoSelecionado;
       
        private Boolean indicadorCpfCnpjInvalido;
       
        @Inject
        public ClienteBean(ClienteService clienteService) {
                this.clienteService = clienteService;
        }
       
        @Override
        public void preCarregamento() {
                setIndicadorCpfCnpjInvalido(false);
                entidade = new Cliente();
                entidade.setAtivo(true);
        }
       
        @Override
        public void limparEntidade() {
                setEntidade(new Cliente());
                setPedidos(new ArrayList<Pedido>());
        }

        @Override
        public GenericService<Cliente> getService() {
                return clienteService;
        }
       
        @Override
        public Cliente getEntidade() {
                return entidade;
        }

        @Override
        public Cliente getId() {
                return getEntidade();
        }
       
        @Override
        public void preDetalhar(Cliente cliente) {
                super.preDetalhar(clienteService.detalharCliente(cliente));
        }
       
        @Override
        public void preAlterar(Cliente cliente) {
                super.preAlterar(clienteService.detalharCliente(cliente));
        }
       
        public Cliente getClienteSelecionado() {
                return clienteSelecionado;
        }
        public void setClienteSelecionado(Cliente clienteSelecionado) {
                this.clienteSelecionado = clienteSelecionado;
        }
       
        public String getCpfCnpjCliente() {
                return VerificadorUtil.naoEstaNulo(cpfCnpjCliente)? cpfCnpjCliente.replace(".", "").replace("-", "").replace("/", "") : cpfCnpjCliente;
        }
        public void setCpfCnpjCliente(String cpfCnpjCliente) {
                this.cpfCnpjCliente = cpfCnpjCliente;
        }
       
        public String getContatoCliente() {
                return contatoCliente;
        }
        public void setContatoCliente(String contatoCliente) {
                this.contatoCliente = contatoCliente;
        }
       
        public List<Pedido> getPedidos() {
                return pedidos;
        }
        public void setPedidos(List<Pedido> pedidos) {
                this.pedidos = pedidos;
        }
       
        public Pedido getPedidoSelecionado() {
                return pedidoSelecionado;
        }
        public void setPedidoSelecionado(Pedido pedidoSelecionado) {
                this.pedidoSelecionado = pedidoSelecionado;
        }
       
        public Boolean getIndicadorCpfCnpjInvalido() {
                return indicadorCpfCnpjInvalido;
        }
        public void setIndicadorCpfCnpjInvalido(Boolean indicadorCpfCnpjInvalido) {
                this.indicadorCpfCnpjInvalido = indicadorCpfCnpjInvalido;
        }
       
        /***************************************************************/
       
        public List<Cliente> getConsultarTodas() {
                return clienteService.consultarTodos(new Cliente());
        }
       
        public TipoSexo[] getTiposSexo() {
                return TipoSexo.values();
        }
       
        public void verificarCpfCnpj() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                setClienteSelecionado(null);
                                setIndicadorCpfCnpjInvalido(false);
                                Cliente clienteConsulta = null;
                                if (VerificadorUtil.naoEstaNuloOuVazio(getCpfCnpjCliente())) {
                                        clienteConsulta = new Cliente();
                                        clienteConsulta.setCpfCnpj(getCpfCnpjCliente());
                                        setIndicadorCpfCnpjInvalido(!clienteConsulta.cpfCnpjEhValido());
                                }
                                clienteConsulta = clienteService.consultarClientePorCpfCnpjOuContato(getCpfCnpjCliente(), getContatoCliente());
                                if (VerificadorUtil.estaNulo(clienteConsulta)) {
                                        clienteConsulta = new Cliente();
                                        clienteConsulta.setDataCadastro(DataUtils.getDataAtual());
                                        clienteConsulta.setCpfCnpj(getCpfCnpjCliente());
                                }
                                setClienteSelecionado(clienteConsulta);
                        }
                });
        }
       
        public void limparCliente() {
                setClienteSelecionado(null);
                setCpfCnpjCliente("");
        }
       
        /*
        public void selecionarCliente(final Cliente cliente) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                cliente.setAtivo(true);
                                clienteService.alterar(cliente);
                                setClienteSelecionado(cliente);
                                setCpfCliente(null);
                                adicionandoParametroArgsConfirmandoAcao(true);
                        }
                });
        }
        */

       
}