Subversion Repositories Integrator Subversion

Rev

Rev 195 | 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.HashMap;
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.dto.ParametrosConsultaPedidoCompraDTO;
import br.com.ec.domain.dto.PedidosResumoDTO;
import br.com.ec.domain.dto.ProdutoPedidoCompraExtrairDTO;
import br.com.ec.domain.model.Fornecedor;
import br.com.ec.domain.model.FornecedorProduto;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.model.Produto;
import br.com.ec.domain.model.ProdutoPedidoCompra;
import br.com.ec.domain.model.SubtipoProduto;
import br.com.ec.domain.model.tipos.TipoStatusPedidoCompra;
import br.com.ec.domain.service.fornecedor.FornecedorService;
import br.com.ec.domain.service.fornecedorproduto.FornecedorProdutoService;
import br.com.ec.domain.service.produto.ProdutoService;
import br.com.ec.domain.service.produtodaloja.ProdutoLojaService;
import br.com.ec.domain.service.produtopedidocompra.ProdutoPedidoCompraService;
import br.com.ec.domain.service.seguranca.ContextoSeguranca;
import br.com.ec.domain.service.subtipoproduto.SubtipoProdutoService;
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 ProdutoPedidoCompraBean extends AbstractBean<ProdutoPedidoCompra> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private List<ProdutoPedidoCompra> produtoPedidoCompras;
       
        private ProdutoPedidoCompraService produtoPedidoCompraService;
        private FornecedorProdutoService fornecedorProdutoService;
        private FornecedorService fornecedorService;
        private ProdutoService produtoService;
        private ProdutoLojaService produtoLojaService;
        private SubtipoProdutoService subtipoProdutoService;
        private ContextoSeguranca contextoSeguranca;
       
        private ProdutoPedidoCompra produtoPedidoCompraSelecionado;
       
        private ProdutoPedidoCompraExtrairDTO produtoPedidoCompraExtrairDTO;
        private String pedidoEmTexto;
       
        private Loja lojaAlteracao;
        private Fornecedor fornecedorAlteracao;
        private String statusAlteracao;
       
        private List<PedidosResumoDTO> resumoPedidos;
        private List<SubtipoProduto> listaSubtipos;

        @Inject
        public ProdutoPedidoCompraBean(ProdutoPedidoCompraService produtoPedidoCompraService, FornecedorProdutoService fornecedorProdutoService,
                        FornecedorService fornecedorService, ProdutoService produtoService, ProdutoLojaService produtoLojaService, SubtipoProdutoService subtipoProdutoService,
                        ContextoSeguranca contextoSeguranca) {
                this.produtoPedidoCompraService = produtoPedidoCompraService;
                this.fornecedorProdutoService = fornecedorProdutoService;
                this.fornecedorService = fornecedorService;
                this.produtoService = produtoService;
                this.produtoLojaService = produtoLojaService;
                this.subtipoProdutoService = subtipoProdutoService;
                this.contextoSeguranca = contextoSeguranca;
        }
       
        @Override
        public void preCarregamento() {
                entidade = new ProdutoPedidoCompra();
                entidade.setProduto(new Produto());
                parametrosConsulta = new ParametrosConsultaPedidoCompraDTO();
                parametrosConsulta.setEntidade(entidade);
        }
       
        @Override
        public void limparEntidade() {
                setEntidade(new ProdutoPedidoCompra());
        }

        @Override
        public GenericService<ProdutoPedidoCompra> getService() {
                return produtoPedidoCompraService;
        }
       
        @Override
        public ProdutoPedidoCompra getEntidade() {
                return entidade;
        }

        @Override
        public ProdutoPedidoCompra getId() {
                return getEntidade();
        }
       
        public List<ProdutoPedidoCompra> getProdutoPedidoCompras() {
                return produtoPedidoCompras;
        }
        public void setProdutoPedidoCompras(List<ProdutoPedidoCompra> produtoPedidoCompras) {
                this.produtoPedidoCompras = produtoPedidoCompras;
        }
        public void prepararConsulta() {
                setProdutoPedidoCompras(produtoPedidoCompraService.consultarPassandoParametrosConsulta(parametrosConsulta, 0, produtoPedidoCompraService.obterQuantidadeDeRegistrosParametrosConsulta(parametrosConsulta), null, null, new HashMap<String, Object>()));
                atualizarResumoPedidos();
        }
        public Integer quantidadeItensPedidoParaComprar() {
                Integer quantidadeItens = 0;
                if (VerificadorUtil.naoEstaNulo(getProdutoPedidoCompras())) {
                        for (ProdutoPedidoCompra produtoPedidoCompra : getProdutoPedidoCompras()) {
                                if (VerificadorUtil.naoEstaNulo(produtoPedidoCompra.getQuantidadeParaComprar())) {
                                        quantidadeItens = quantidadeItens + produtoPedidoCompra.getQuantidadeParaComprar();
                                }
                        }
                }
                return quantidadeItens;
        }
       
        public ProdutoPedidoCompra getProdutoPedidoCompraSelecionado() {
                return produtoPedidoCompraSelecionado;
        }
        public void setProdutoPedidoCompraSelecionado(ProdutoPedidoCompra produtoPedidoCompraSelecionado) {
                this.produtoPedidoCompraSelecionado = produtoPedidoCompraSelecionado;
        }
       
        public TipoStatusPedidoCompra[] getTiposStatusPedidoCompra() {
                return TipoStatusPedidoCompra.values();
        }
       
        public ProdutoPedidoCompraExtrairDTO getProdutoPedidoCompraExtrairDTO() {
                return produtoPedidoCompraExtrairDTO;
        }
        public void setProdutoPedidoCompraExtrairDTO(ProdutoPedidoCompraExtrairDTO produtoPedidoCompraExtrairDTO) {
                this.produtoPedidoCompraExtrairDTO = produtoPedidoCompraExtrairDTO;
        }
       
        public String getPedidoEmTexto() {
                return pedidoEmTexto;
        }
        public void setPedidoEmTexto(String pedidoEmTexto) {
                this.pedidoEmTexto = pedidoEmTexto;
        }
       
        public Loja getLojaAlteracao() {
                return lojaAlteracao;
        }
        public void setLojaAlteracao(Loja lojaAlteracao) {
                this.lojaAlteracao = lojaAlteracao;
        }
       
        public Fornecedor getFornecedorAlteracao() {
                return fornecedorAlteracao;
        }
        public void setFornecedorAlteracao(Fornecedor fornecedorAlteracao) {
                this.fornecedorAlteracao = fornecedorAlteracao;
        }
       
        public String getStatusAlteracao() {
                return statusAlteracao;
        }
        public void setStatusAlteracao(String statusAlteracao) {
                this.statusAlteracao = statusAlteracao;
        }
       
        public List<PedidosResumoDTO> getResumoPedidos() {
                return resumoPedidos;
        }
        public void setResumoPedidos(List<PedidosResumoDTO> resumoPedidos) {
                this.resumoPedidos = resumoPedidos;
        }
       
        public List<SubtipoProduto> getListaSubtipos() {
                if (VerificadorUtil.estaNulo(listaSubtipos)) {
                        setListaSubtipos(subtipoProdutoService.consultarTodosAtivos());
                }
                return listaSubtipos;
        }
        public void setListaSubtipos(List<SubtipoProduto> listaSubtipos) {
                this.listaSubtipos = listaSubtipos;
        }
       
        public Double getValorTotalPedido() {
                Double valorTotal = new Double(0.0);
                if (VerificadorUtil.naoEstaNuloOuVazio(getProdutoPedidoCompras())) {
                        for (ProdutoPedidoCompra pedido : getProdutoPedidoCompras()) {
                                if (VerificadorUtil.naoEstaNulo(pedido.getProduto().getValorCompra()) &&
                                                VerificadorUtil.naoEstaNulo(pedido.getQuantidadeParaComprar())) {
                                        valorTotal = valorTotal + (pedido.getProduto().getValorCompra() * pedido.getQuantidadeParaComprar());
                                }
                        }
                }
                return valorTotal;
        }
        public Double getValorTotalOrcadoPedido() {
                Double valorTotal = new Double(0.0);
                if (VerificadorUtil.naoEstaNuloOuVazio(getProdutoPedidoCompras())) {
                        for (ProdutoPedidoCompra pedido : getProdutoPedidoCompras()) {
                                if (VerificadorUtil.naoEstaNulo(pedido.getValorOrcado()) &&
                                                VerificadorUtil.naoEstaNulo(pedido.getQuantidadeParaComprar())) {
                                        valorTotal = valorTotal + (pedido.getValorOrcado() * pedido.getQuantidadeParaComprar());
                                }
                        }
                }
                return valorTotal;
        }
       
        public void atualizarResumoPedidos() {
                List<Fornecedor> fornecedores = fornecedorService.consultarTodos(new Fornecedor());
                List<PedidosResumoDTO> resumo = new ArrayList<PedidosResumoDTO>();
                for (Fornecedor fornecedor : fornecedores) {
                        PedidosResumoDTO pedidosResumoDTO = new PedidosResumoDTO();
                        pedidosResumoDTO.setFornecedor(fornecedor);
                        resumo.add(pedidosResumoDTO);
                }
                List<ProdutoPedidoCompra> produtosPedido = produtoPedidoCompraService.consultarTodos(new ProdutoPedidoCompra());
                for (ProdutoPedidoCompra pedido : produtosPedido) {
                        for (PedidosResumoDTO pedidoResumo : resumo) {
                                if (VerificadorUtil.naoEstaNulo(pedido.getFornecedorParaComprar())) {
                                        if (pedidoResumo.getFornecedor().equals(pedido.getFornecedorParaComprar())) {
                                                if (pedido.getStatus().equals(TipoStatusPedidoCompra.PENDENTE.getValor())) {
                                                        pedidoResumo.adicionarPendencias();
                                                }
                                                if (pedido.getStatus().equals(TipoStatusPedidoCompra.VERIFICADO.getValor())) {
                                                        pedidoResumo.adicionarVerificados();
                                                }
                                                if (pedido.getStatus().equals(TipoStatusPedidoCompra.SOLICITADO.getValor())) {
                                                        pedidoResumo.adicionarSolicitados();
                                                }
                                                if (pedido.getStatus().equals(TipoStatusPedidoCompra.SEM_ESTOQUE.getValor())) {
                                                        pedidoResumo.adicionarSemEstoque();
                                                }
                                        }
                                }
                        }
                }
                List<PedidosResumoDTO> pedidos = new ArrayList<PedidosResumoDTO>();
                for (PedidosResumoDTO pedido : resumo) {
                        if (pedido.getQuantidadeTotal() > 0) {
                                pedidos.add(pedido);
                        }
                }
                setResumoPedidos(pedidos);
        }
       
        @Override
        public void cadastrar() {
                super.cadastrar();
                prepararConsulta();
        }
       
        @Override
        public void alterar() {
                super.alterar();
                prepararConsulta();
        }
       
        public void iniciarSolicitacao(Produto produto) {
                ProdutoPedidoCompra produtoPedidoCompra = new ProdutoPedidoCompra();
                produtoPedidoCompra.setProduto(produto);
                produtoPedidoCompra.setDataPedido(DataUtils.getDataAtual());
                produtoPedidoCompra.setDataUltimaAtualizacao(DataUtils.getDataAtual());
                produtoPedidoCompra.setStatus(TipoStatusPedidoCompra.VERIFICADO.getValor());
                produtoPedidoCompra.setUsuarioPedido(contextoSeguranca.obterUsuario());
                produtoPedidoCompra.setUsuarioUltimaAtualizacao(contextoSeguranca.obterUsuario());
                setProdutoPedidoCompraSelecionado(produtoPedidoCompra);
        }
       
        public void prepararOrcamento(ProdutoPedidoCompra produtoPedidoCompra) {
                setProdutoPedidoCompraSelecionado(produtoPedidoCompra);
        }
       
        public void consultarSolicitacaoCompra(Produto produto) {
                Produto produtoDetalhado = produtoService.detalharProduto(produto);
                ProdutoPedidoCompra produtoPedidoCompra = new ProdutoPedidoCompra();
                produtoPedidoCompra.setProduto(produtoDetalhado);
                setProdutoPedidoCompraSelecionado(produtoPedidoCompraService.consultarPorProduto(produtoPedidoCompra.getProduto()));
                if (VerificadorUtil.estaNulo(getProdutoPedidoCompraSelecionado())) {
                        iniciarSolicitacao(produtoDetalhado);
                        List<FornecedorProduto> fornecedores = new ArrayList<>(produtoDetalhado.getFornecedores());
                        if (fornecedores.size() == 1) {
                                getProdutoPedidoCompraSelecionado().setFornecedorParaComprar(fornecedores.get(0).getFornecedor());
                        }
                }
                getProdutoPedidoCompraSelecionado().setQuantidadeEstoque(produtoLojaService.consultarEstoqueProduto(produtoDetalhado));
                getProdutoPedidoCompraSelecionado().setProduto(produtoDetalhado);
                getProdutoPedidoCompraSelecionado().setProdutosHistorico(produtoService.consultarHistorico(produtoDetalhado, 6));
        }
       
        public void consultarSolicitacaoResumidaCompra(Produto produto) {
                Produto produtoDetalhado = produtoService.detalharProduto(produto);
                ProdutoPedidoCompra produtoPedidoCompra = new ProdutoPedidoCompra();
                produtoPedidoCompra.setProduto(produtoDetalhado);
                setProdutoPedidoCompraSelecionado(produtoPedidoCompraService.consultarPorProduto(produtoPedidoCompra.getProduto()));
                if (VerificadorUtil.estaNulo(getProdutoPedidoCompraSelecionado())) {
                        iniciarSolicitacao(produtoDetalhado);
                        getProdutoPedidoCompraSelecionado().setStatus(null);
                        getProdutoPedidoCompraSelecionado().setQuantidadeEstoque(produtoLojaService.consultarEstoqueProduto(produtoDetalhado));
                }
                getProdutoPedidoCompraSelecionado().setProduto(produtoDetalhado);
        }
       
        public void alterarSolicitacaoCompra() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                getProdutoPedidoCompraSelecionado().setUsuarioUltimaAtualizacao(contextoSeguranca.obterUsuario());
                                getProdutoPedidoCompraSelecionado().setDataUltimaAtualizacao(DataUtils.getDataAtual());
                                getService().alterar(getProdutoPedidoCompraSelecionado());
                                prepararConsulta();
                                LancadorMensagem.lancarSucesso("Solicitação de compra realizada com sucesso!");
                        }
                });
        }
       
        public void alterarSolicitacaoCompraResumida() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                getProdutoPedidoCompraSelecionado().setStatus(TipoStatusPedidoCompra.PENDENTE.getValor());
                                /*
                                if (getProdutoPedidoCompraSelecionado().getProduto().tipoProdutoEhRemedioOuOutros()) {
                                        getProdutoPedidoCompraSelecionado().setLoja(new Loja(ConstantesSEC.SEQUENCIAL_LOJA_FARMACIA_7));
                                } else {
                                        getProdutoPedidoCompraSelecionado().setLoja(new Loja(ConstantesSEC.SEQUENCIAL_ESTOQUE_9));
                                }
                                */

                                getService().alterar(getProdutoPedidoCompraSelecionado());
                                prepararConsulta();
                                LancadorMensagem.lancarSucesso("Solicitação de compra realizada com sucesso!");
                        }
                });
        }
       
        public void excluirSolicitacaoCompra(final ProdutoPedidoCompra produtoPedidoCompra) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                produtoPedidoCompraService.excluirPedido(produtoPedidoCompra.getProduto(), produtoPedidoCompra.getLoja());
                                prepararConsulta();
                                LancadorMensagem.lancarSucesso("Solicitação de compra excluída com sucesso!");
                        }
                });
        }
       
        public String obterInformacoesUltimaCompraFornecedorSelecionado(Produto produto, Fornecedor fornecedor) {
                FornecedorProduto fornecedorProduto = new FornecedorProduto();
                fornecedorProduto.setProduto(produto);
                fornecedorProduto.setFornecedor(fornecedor);
                fornecedorProduto = fornecedorProdutoService.consultarPorFornecedorEeProduto(fornecedorProduto);
                String informacoes = null;
                if (VerificadorUtil.naoEstaNulo(fornecedorProduto)) {
                        informacoes = "ID: " + fornecedorProduto.getIdentificador() + ", CUSTO: R$" + fornecedorProduto.getValorCompra();
                }
                return informacoes;
        }
       
        public String obterFornecedorMenorValorComprado(ProdutoPedidoCompra produtoPedidoCompra) {
                Produto produtoDetalhado = produtoService.detalharProduto(produtoPedidoCompra.getProduto());
                return produtoDetalhado.getFornecedorMenorValorComprado(produtoPedidoCompra.getFornecedorParaComprar());
        }
       
        public void iniciarExtrairSolicitacao() {
                setProdutoPedidoCompraExtrairDTO(new ProdutoPedidoCompraExtrairDTO());
                extrairSolicitacao();
        }
       
        public void extrairSolicitacao() {
                if (VerificadorUtil.naoEstaNulo(getProdutoPedidoCompraExtrairDTO())) {
                        StringBuilder extraido = new StringBuilder(adicionarTituloExtrair());
                        for (ProdutoPedidoCompra pedido : getProdutoPedidoCompras()) {
                                if (getProdutoPedidoCompraExtrairDTO().getColunaQuantidade()) {
                                        if (VerificadorUtil.naoEstaNulo(pedido.getQuantidadeParaComprar())) {
                                                extraido.append(String.format("%-8s", pedido.getQuantidadeParaComprar()));
                                        } else {
                                                extraido.append(String.format("%-8s", "XXX"));
                                        }
                                }
                                if (getProdutoPedidoCompraExtrairDTO().getColunaCodigoEAN()) {
                                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getProduto().getCodigoEAN())) {
                                                extraido.append(String.format("%-16s", pedido.getProduto().getCodigoEAN()));
                                        }
                                }
                                if (getProdutoPedidoCompraExtrairDTO().getColunaCodigoFornecedor()) {
                                        Produto produtoConsultado = produtoService.detalharProduto(pedido.getProduto());
                                        if (VerificadorUtil.naoEstaNuloOuVazio(pedido.getCodigoDoFornecedorParaComprar(produtoConsultado))) {
                                                extraido.append(" [" + pedido.getCodigoDoFornecedorParaComprar(produtoConsultado) + "] ");
                                        }
                                }
                                if (getProdutoPedidoCompraExtrairDTO().getColunaModelo()) {
//                                      if (!pedido.getProduto().tipoProdutoEhRemedioOuOutros()) {
                                        extraido.append(pedido.getProduto().getDescricaoDoModelo());
//                                      }
                                }
                                if (getProdutoPedidoCompraExtrairDTO().getColunaDescricao()) {
                                        if (getProdutoPedidoCompraExtrairDTO().getColunaModelo()) {
                                                extraido.append(" - ");
                                        }
                                        extraido.append(pedido.getProduto().getDescricaoCompleta());
                                }
                                if (getProdutoPedidoCompraExtrairDTO().getColunaMenorValor()) {
                                        extraido.append(" ");
                                        extraido.append(obterFornecedorMenorValorComprado(pedido));
                                }
                                if (getProdutoPedidoCompraExtrairDTO().getColunaValorVenda()) {
                                        extraido.append(" R$ " + formatarValor(pedido.getProduto().getValorVarejo()));
                                }
                                extraido.append("\n");
                        }
                        setPedidoEmTexto(extraido.toString());
                }
        }
       
        private String formatarValor(Double valor) {
                return VerificadorUtil.naoEstaNulo(valor)? String.format("%.2f", valor) : "0,00";
        }
       
        private String adicionarTituloExtrair() {
                StringBuilder titulo = new StringBuilder();
                if (getProdutoPedidoCompraExtrairDTO().getColunaQuantidade()) {
                        titulo.append("QNT");
                }
                if (getProdutoPedidoCompraExtrairDTO().getColunaCodigoEAN()) {
                        if (titulo.length() > 0) {
                                titulo.append("  |  ");
                        }
                        titulo.append("ID");
                }
                if (getProdutoPedidoCompraExtrairDTO().getColunaModelo()) {
                        if (titulo.length() > 0) {
                                titulo.append("  |  ");
                        }
                        titulo.append("MODELO");               
                }
                if (getProdutoPedidoCompraExtrairDTO().getColunaDescricao()) {
                        if (titulo.length() > 0) {
                                titulo.append("  |  ");
                        }
                        titulo.append("DESCRIÇÃO");
                }
                if (getProdutoPedidoCompraExtrairDTO().getColunaCodigoFornecedor()) {
                        if (titulo.length() > 0) {
                                titulo.append("  |  ");
                        }
                        titulo.append("[ID]");
                }
                if (getProdutoPedidoCompraExtrairDTO().getColunaMenorValor()) {
                        if (titulo.length() > 0) {
                                titulo.append("  |  ");
                        }
                        titulo.append("MENOR $");
                }
                if (getProdutoPedidoCompraExtrairDTO().getColunaValorVenda()) {
                        if (titulo.length() > 0) {
                                titulo.append("  |  ");
                        }
                        titulo.append("$ VENDA");
                }
                return titulo.append("\n").toString();
        }

        public void confirmarSolicitacaoCompra() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                for (ProdutoPedidoCompra pedido : getProdutoPedidoCompras()) {
                                        pedido.setStatus(TipoStatusPedidoCompra.SOLICITADO.getValor());
                                        produtoPedidoCompraService.alterar(pedido);
                                }
                                prepararConsulta();
                                LancadorMensagem.lancarSucesso("Solicitações de compra confirmada com sucesso!");
                        }
                });
        }
       
        public String consultarDetalhesSolicitacaoCompra(Produto produto, Loja loja) {
                StringBuilder detalhesSolicitacao = new StringBuilder();
                ProdutoPedidoCompra produtoPedidoCompra = new ProdutoPedidoCompra();
                produtoPedidoCompra.setProduto(produto);
                produtoPedidoCompra.setLoja(loja);
                produtoPedidoCompra = produtoPedidoCompraService.consultarPorProduto(produtoPedidoCompra.getProduto());
                if (VerificadorUtil.naoEstaNulo(produtoPedidoCompra)) {
                        if (VerificadorUtil.naoEstaNulo(produtoPedidoCompra.getQuantidadeParaComprar())) {
                                detalhesSolicitacao.append(produtoPedidoCompra.getQuantidadeParaComprar());
                        }
                        if (VerificadorUtil.naoEstaNulo(produtoPedidoCompra.getValorOrcado())) {
                                detalhesSolicitacao.append(" POR R$ ");
                                detalhesSolicitacao.append(produtoPedidoCompra.getValorOrcado());
                        } else {
                                detalhesSolicitacao.append(" SEM PREÇO");
                        }
                } else {
                        detalhesSolicitacao.append("NÃO");
                }
                return detalhesSolicitacao.toString();
        }
       
        public void prepararAlteracaoPedidos() {
                setLojaAlteracao(null);
                setFornecedorAlteracao(null);
                setStatusAlteracao(null);
        }
       
        public void alterarDadosPedidosConsultados() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                for (ProdutoPedidoCompra pedido : getProdutoPedidoCompras()) {
                                        if (VerificadorUtil.naoEstaNulo(getLojaAlteracao())) {
                                                pedido.setLoja(getLojaAlteracao());
                                        }
                                        if (VerificadorUtil.naoEstaNulo(getFornecedorAlteracao())) {
                                                pedido.setFornecedorParaComprar(getFornecedorAlteracao());
                                        }
                                        if (VerificadorUtil.naoEstaNulo(getStatusAlteracao())) {
                                                pedido.setStatus(getStatusAlteracao());
                                        }
                                        produtoPedidoCompraService.alterar(pedido);
                                }
                                prepararConsulta();
                                LancadorMensagem.lancarSucesso("DADOS ALTERADOS COM SUCESSO!");
                        }
                });
        }
       
        public void consultarSubtipos() {
                SubtipoProduto subtipoProduto = new SubtipoProduto();
                if (VerificadorUtil.naoEstaNuloOuVazio(getParametrosConsulta().getEntidade().getProduto().getTipo())) {
                        subtipoProduto.setTipo(getParametrosConsulta().getEntidade().getProduto().getTipo());
                }
                subtipoProduto.setAtivo(true);
                setListaSubtipos(subtipoProdutoService.consultar(subtipoProduto));
        }
       
}