Commit 2229a2940e01e05a9f8ea9140187f682ab7dbcb0

Authored by geovane.filho
1 parent 1083fbff
Exists in master

Redmine #4783 Implementando exclusão de item de entrada

cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MovimentoEstoqueService.java
@@ -11,6 +11,7 @@ import br.com.centralit.api.model.BaixaAlmoxarifado; @@ -11,6 +11,7 @@ import br.com.centralit.api.model.BaixaAlmoxarifado;
11 import br.com.centralit.api.model.Devolucao; 11 import br.com.centralit.api.model.Devolucao;
12 import br.com.centralit.api.model.DevolucaoItem; 12 import br.com.centralit.api.model.DevolucaoItem;
13 import br.com.centralit.api.model.EntradaAlmoxarifado; 13 import br.com.centralit.api.model.EntradaAlmoxarifado;
  14 +import br.com.centralit.api.model.EntradaAlmoxarifadoItem;
14 import br.com.centralit.api.model.EstruturaOrganizacional; 15 import br.com.centralit.api.model.EstruturaOrganizacional;
15 import br.com.centralit.api.model.MaterialConsumo; 16 import br.com.centralit.api.model.MaterialConsumo;
16 import br.com.centralit.api.model.MovimentoEstoque; 17 import br.com.centralit.api.model.MovimentoEstoque;
@@ -239,4 +240,18 @@ public interface MovimentoEstoqueService extends GenericService<MovimentoEstoque @@ -239,4 +240,18 @@ public interface MovimentoEstoqueService extends GenericService<MovimentoEstoque
239 */ 240 */
240 List<MovimentoEstoque> findAllByEntrada(EntradaAlmoxarifado entradaAlmoxarifado); 241 List<MovimentoEstoque> findAllByEntrada(EntradaAlmoxarifado entradaAlmoxarifado);
241 242
  243 + /**
  244 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  245 + *
  246 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  247 + *
  248 + * Método responsável por buscar todos os movimentos ocorridos de um determinado item da entrada
  249 + *
  250 + * @author geovane.filho
  251 + *
  252 + * @param entradaAlmoxarifadoItem
  253 + * @return
  254 + */
  255 + Collection<MovimentoEstoque> findAllByEntradaItem(EntradaAlmoxarifadoItem entradaAlmoxarifadoItem);
  256 +
242 } 257 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoItemServiceImpl.java
1 package br.com.centralit.api.service.impl; 1 package br.com.centralit.api.service.impl;
2 2
3 import java.math.BigDecimal; 3 import java.math.BigDecimal;
4 - 4 +import java.util.ArrayList;
5 import java.util.Calendar; 5 import java.util.Calendar;
6 import java.util.Collection; 6 import java.util.Collection;
7 import java.util.List; 7 import java.util.List;
@@ -11,13 +11,17 @@ import org.springframework.security.core.context.SecurityContextHolder; @@ -11,13 +11,17 @@ import org.springframework.security.core.context.SecurityContextHolder;
11 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
12 12
13 import br.com.centralit.api.dao.EntradaAlmoxarifadoItemDao; 13 import br.com.centralit.api.dao.EntradaAlmoxarifadoItemDao;
  14 +import br.com.centralit.api.model.ContaContabilMovimento;
14 import br.com.centralit.api.model.EntradaAlmoxarifadoItem; 15 import br.com.centralit.api.model.EntradaAlmoxarifadoItem;
15 import br.com.centralit.api.model.EstruturaOrganizacional; 16 import br.com.centralit.api.model.EstruturaOrganizacional;
16 import br.com.centralit.api.model.MaterialConsumo; 17 import br.com.centralit.api.model.MaterialConsumo;
  18 +import br.com.centralit.api.model.MovimentoEstoque;
17 import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; 19 import br.com.centralit.api.service.ConfiguracaoParametroSistemaService;
  20 +import br.com.centralit.api.service.ContaContabilMovimentoAlmoxarifadoService;
18 import br.com.centralit.api.service.EntradaAlmoxarifadoItemService; 21 import br.com.centralit.api.service.EntradaAlmoxarifadoItemService;
19 import br.com.centralit.api.service.EstruturaOrganizacionalService; 22 import br.com.centralit.api.service.EstruturaOrganizacionalService;
20 import br.com.centralit.api.service.MaterialConsumoService; 23 import br.com.centralit.api.service.MaterialConsumoService;
  24 +import br.com.centralit.api.service.MovimentoEstoqueService;
21 import br.com.centralit.framework.exception.BusinessException; 25 import br.com.centralit.framework.exception.BusinessException;
22 import br.com.centralit.framework.exception.CodigoErro; 26 import br.com.centralit.framework.exception.CodigoErro;
23 import br.com.centralit.framework.model.ConfiguracaoParametroSistema; 27 import br.com.centralit.framework.model.ConfiguracaoParametroSistema;
@@ -66,6 +70,12 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra @@ -66,6 +70,12 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra
66 70
67 @Autowired 71 @Autowired
68 private ConfiguracaoParametroSistemaService configuracaoParametroSistemaService; 72 private ConfiguracaoParametroSistemaService configuracaoParametroSistemaService;
  73 +
  74 + @Autowired
  75 + private MovimentoEstoqueService movimentoEstoqueService;
  76 +
  77 + @Autowired
  78 + private ContaContabilMovimentoAlmoxarifadoService contaContabilMovimentoAlmoxarifadoService;
69 79
70 /** 80 /**
71 * Responsável pela criação de novas instâncias desta classe. 81 * Responsável pela criação de novas instâncias desta classe.
@@ -94,6 +104,12 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra @@ -94,6 +104,12 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra
94 */ 104 */
95 @Override 105 @Override
96 public boolean remove(EntradaAlmoxarifadoItem entity) { 106 public boolean remove(EntradaAlmoxarifadoItem entity) {
  107 +
  108 + ContaContabilMovimento movimentoContabil = this.contaContabilMovimentoAlmoxarifadoService.findByEntradaItem(entity.getId());
  109 + this.contaContabilMovimentoAlmoxarifadoService.remove(movimentoContabil);
  110 +
  111 + Collection<MovimentoEstoque> movimentosEstoque = this.movimentoEstoqueService.findAllByEntradaItem(entity);
  112 + this.movimentoEstoqueService.removeList((ArrayList<MovimentoEstoque>) movimentosEstoque);
97 113
98 entity.setEntradaInativo(entity.getEntrada()); 114 entity.setEntradaInativo(entity.getEntrada());
99 115
@@ -261,7 +277,7 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra @@ -261,7 +277,7 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra
261 277
262 @Override 278 @Override
263 public List<EntradaAlmoxarifadoItem> findItensPorEntradaId(Long idEntrada) { 279 public List<EntradaAlmoxarifadoItem> findItensPorEntradaId(Long idEntrada) {
264 - return (List)this.entradaAlmoxarifadoItemDao.buscarPorAtributo("entrada.id", idEntrada); 280 + return (List) this.entradaAlmoxarifadoItemDao.buscarPorAtributo("entrada.id", idEntrada);
265 } 281 }
266 282
267 } 283 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java
@@ -639,13 +639,22 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst @@ -639,13 +639,22 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
639 public List<MovimentoEstoque> findAllByEntrada(EntradaAlmoxarifado entradaAlmoxarifado) { 639 public List<MovimentoEstoque> findAllByEntrada(EntradaAlmoxarifado entradaAlmoxarifado) {
640 640
641 List<MovimentoEstoque> movimentos = new ArrayList<MovimentoEstoque>(); 641 List<MovimentoEstoque> movimentos = new ArrayList<MovimentoEstoque>();
642 - Dominio classeReferenciaEntradaItem = this.dominioService.findByChaveAndCodigo(DominioMaterial.CLASSE_REFERENCIA, DominioMaterial.REFERENCIA_ENTRADA_ALMOXARIFADO_ITEM);  
643 642
644 for (EntradaAlmoxarifadoItem entradaItem : entradaAlmoxarifado.getEntradasItem()) { 643 for (EntradaAlmoxarifadoItem entradaItem : entradaAlmoxarifado.getEntradasItem()) {
645 - movimentos.addAll(this.findAllByClasseReferencia(classeReferenciaEntradaItem, entradaItem.getId())); 644 + movimentos.addAll(this.findAllByEntradaItem(entradaItem));
646 } 645 }
647 646
648 return movimentos; 647 return movimentos;
649 } 648 }
  649 +
  650 + /**
  651 + * {@inheritDoc}
  652 + */
  653 + @Override
  654 + public Collection<MovimentoEstoque> findAllByEntradaItem(EntradaAlmoxarifadoItem entradaAlmoxarifadoItem) {
  655 + Dominio classeReferenciaEntradaItem = this.dominioService.findByChaveAndCodigo(DominioMaterial.CLASSE_REFERENCIA, DominioMaterial.REFERENCIA_ENTRADA_ALMOXARIFADO_ITEM);
  656 +
  657 + return this.findAllByClasseReferencia(classeReferenciaEntradaItem, entradaAlmoxarifadoItem.getId());
  658 + }
650 659
651 } 660 }