Subversion Repositories Integrator Subversion

Rev

Rev 538 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 538 Rev 543
Line 1... Line 1...
1
package br.com.ec.domain.service.impl;
1
package br.com.ec.domain.service.impl;
2
2
-
 
3
import java.util.HashSet;
3
import java.util.List;
4
import java.util.List;
4
5
5
import org.springframework.beans.factory.annotation.Autowired;
6
import org.springframework.beans.factory.annotation.Autowired;
6
import org.springframework.stereotype.Service;
7
import org.springframework.stereotype.Service;
7
8
Line 94... Line 95...
94
               
95
               
95
                if (quantidadeParaProduzir < 1) {
96
                if (quantidadeParaProduzir < 1) {
96
                        throw new NegocioException("É preciso informar a quantidade produzida");
97
                        throw new NegocioException("É preciso informar a quantidade produzida");
97
                }
98
                }
98
               
99
               
99
                // ALTERANDO ESTOQUE
-
 
100
                ProdutoLoja produtoLojaParaProduzir = produtoLojaService.consultarPorProdutoEeLoja(produtoParaProduzir.getSequencial(), lojaDTO.getSequencial());
-
 
101
                Integer estoqueAnteriorProdutoParaProduzir = produtoLojaParaProduzir.getQuantidadeEstoque();
-
 
102
               
-
 
103
                ProdutoLoja produtoLojaProduzido = produtoLojaService.consultarPorProdutoEeLoja(produtoProduzido.getSequencial(), lojaDTO.getSequencial());
-
 
104
                Integer estoqueAnteriorProdutoProduzido = produtoLojaProduzido.getQuantidadeEstoque();
-
 
105
               
-
 
106
                if (estoqueAnteriorProdutoParaProduzir - quantidadeParaProduzir < 0) {
-
 
107
                        throw new NegocioException("Não há estoque suficiente para produzir");
-
 
-
 
100
                try {
-
 
101
                        // ALTERANDO ESTOQUE
-
 
102
                        ProdutoLoja produtoLojaParaProduzir = produtoLojaService.consultarPorProdutoEeLoja(produtoParaProduzir.getSequencial(), lojaDTO.getSequencial());
-
 
103
                        if (VerificadorUtil.estaNulo(produtoLojaParaProduzir)) {
-
 
104
                                throw new NegocioException("Não há estoque suficiente para produzir");
-
 
105
                        }
-
 
106
                        Integer estoqueAnteriorProdutoParaProduzir = produtoLojaParaProduzir.getQuantidadeEstoque();
-
 
107
                       
-
 
108
                        ProdutoLoja produtoLojaProduzido = produtoLojaService.consultarPorProdutoEeLoja(produtoProduzido.getSequencial(), lojaDTO.getSequencial());
-
 
109
                        if (VerificadorUtil.estaNulo(produtoLojaProduzido)) {
-
 
110
                                produtoLojaProduzido = new ProdutoLoja();
-
 
111
                                produtoLojaProduzido.setDataContagem(DataUtils.getDataAtual());
-
 
112
                                produtoLojaProduzido.setIndicadorContagemSolicitada(false);
-
 
113
                                produtoLojaProduzido.setLocalizacao("");
-
 
114
                                produtoLojaProduzido.setLoja(produtoLojaParaProduzir.getLoja());
-
 
115
                                produtoLojaProduzido.setProduto(consultarPorId(new Produto(produtoProduzido.getSequencial())));
-
 
116
                                produtoLojaProduzido.setQuantidadeEstoque(0);
-
 
117
                                produtoLojaService.cadastrar(produtoLojaProduzido);
-
 
118
                        }
-
 
119
                        Integer estoqueAnteriorProdutoProduzido = produtoLojaProduzido.getQuantidadeEstoque();
-
 
120
                       
-
 
121
                        if (estoqueAnteriorProdutoParaProduzir - quantidadeParaProduzir < 0) {
-
 
122
                                throw new NegocioException("Não há estoque suficiente para produzir");
-
 
123
                        }
-
 
124
                       
-
 
125
                        // VINCULAR 
-
 
126
                        ProdutoRelacionado produtoRelacionado = new ProdutoRelacionado();
-
 
127
                        produtoRelacionado.setProduto(produtoLojaProduzido.getProduto());
-
 
128
                        produtoRelacionado.setProdutoRelacionado(produtoLojaParaProduzir.getProduto());
-
 
129
                        if (VerificadorUtil.estaNulo(produtoLojaProduzido.getProduto().getRelacionados())) {
-
 
130
                                produtoLojaProduzido.getProduto().setRelacionados(new HashSet<ProdutoRelacionado>());
-
 
131
                        }
-
 
132
                        produtoLojaProduzido.getProduto().getRelacionados().add(produtoRelacionado);
-
 
133
                        alterar(produtoLojaProduzido.getProduto());
-
 
134
                       
-
 
135
                        produtoLojaService.alterarEstoqueAcrescentandoQuantidadeInformada(quantidadeParaProduzir * -1, produtoParaProduzir.getSequencial(), lojaDTO.getSequencial());
-
 
136
                        produtoLojaService.alterarEstoqueAcrescentandoQuantidadeInformada(quantidadeParaProduzir, produtoProduzido.getSequencial(), lojaDTO.getSequencial());
-
 
137
                       
-
 
138
                        // CADASTRANDO AUDITORIAS
-
 
139
                        cadastrarAuditoria(usuarioDTO.getSequencial(), produtoLojaParaProduzir, TipoEstoqueAuditoria.PRODUCAO.getValor(),
-
 
140
                                        estoqueAnteriorProdutoParaProduzir, produtoLojaParaProduzir.getQuantidadeEstoque(), "",
-
 
141
                                        TipoEstoqueAuditoriaVerificacao.VERIFICADO_SEM_PENDENCIA.getValor());
-
 
142
                        cadastrarAuditoria(usuarioDTO.getSequencial(), produtoLojaProduzido, TipoEstoqueAuditoria.PRODUCAO.getValor(),
-
 
143
                                        estoqueAnteriorProdutoProduzido, produtoLojaProduzido.getQuantidadeEstoque(), "",
-
 
144
                                        TipoEstoqueAuditoriaVerificacao.VERIFICADO_SEM_PENDENCIA.getValor());
-
 
145
                } catch (NegocioException ne) {
-
 
146
                        throw new NegocioException(ne.getMessage());
108
                }
147
                }
109
               
-
 
110
                // VINCULAR 
-
 
111
                ProdutoRelacionado produtoRelacionado = new ProdutoRelacionado();
-
 
112
                produtoRelacionado.setProduto(produtoLojaProduzido.getProduto());
-
 
113
                produtoRelacionado.setProdutoRelacionado(produtoLojaParaProduzir.getProduto());
-
 
114
                produtoLojaProduzido.getProduto().getRelacionados().add(produtoRelacionado);
-
 
115
                alterar(produtoLojaProduzido.getProduto());
-
 
116
               
-
 
117
                produtoLojaService.alterarEstoqueAcrescentandoQuantidadeInformada(quantidadeParaProduzir * -1, produtoParaProduzir.getSequencial(), lojaDTO.getSequencial());
-
 
118
                produtoLojaService.alterarEstoqueAcrescentandoQuantidadeInformada(quantidadeParaProduzir, produtoProduzido.getSequencial(), lojaDTO.getSequencial());
-
 
119
               
-
 
120
                // CADASTRANDO AUDITORIAS
-
 
121
                cadastrarAuditoria(usuarioDTO.getSequencial(), produtoLojaParaProduzir, TipoEstoqueAuditoria.PRODUCAO.getValor(),
-
 
122
                                estoqueAnteriorProdutoParaProduzir, produtoLojaParaProduzir.getQuantidadeEstoque(), "",
-
 
123
                                TipoEstoqueAuditoriaVerificacao.VERIFICADO_SEM_PENDENCIA.getValor());
-
 
124
                cadastrarAuditoria(usuarioDTO.getSequencial(), produtoLojaProduzido, TipoEstoqueAuditoria.PRODUCAO.getValor(),
-
 
125
                                estoqueAnteriorProdutoProduzido, produtoLojaProduzido.getQuantidadeEstoque(), "",
-
 
126
                                TipoEstoqueAuditoriaVerificacao.VERIFICADO_SEM_PENDENCIA.getValor());
-
 
127
        }
148
        }
128
       
149
       
129
        private EstoqueAuditoria cadastrarAuditoria(Long sequencialUsuario, ProdutoLoja produtoLoja, String tipoEstoqueAuditoria, Integer quantidadeEstoqueAnterior, Integer quantidadeEstoqueNovo, /*Cliente cliente, */String observacao, String tipoVerificacao) {
150
        private EstoqueAuditoria cadastrarAuditoria(Long sequencialUsuario, ProdutoLoja produtoLoja, String tipoEstoqueAuditoria, Integer quantidadeEstoqueAnterior, Integer quantidadeEstoqueNovo, /*Cliente cliente, */String observacao, String tipoVerificacao) {
130
                return estoqueAuditoriaService.cadastrarAuditoria(sequencialUsuario, produtoLoja, quantidadeEstoqueAnterior, quantidadeEstoqueNovo, DataUtils.getDataAtual(), tipoEstoqueAuditoria, /*cliente, */observacao, tipoVerificacao);
151
                return estoqueAuditoriaService.cadastrarAuditoria(sequencialUsuario, produtoLoja, quantidadeEstoqueAnterior, quantidadeEstoqueNovo, DataUtils.getDataAtual(), tipoEstoqueAuditoria, /*cliente, */observacao, tipoVerificacao);
131
        }
152
        }