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 | }
|