Commit 00795e0233947891e0d27ce38da1306b7ddc2d3f

Authored by erick.sato
1 parent 03f19ad9
Exists in master

Redmine #4935 Quantidade em estoque

cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MaterialLocalEstoqueDao.java
... ... @@ -28,4 +28,6 @@ public interface MaterialLocalEstoqueDao extends CitGenericDAO {
28 28 BigDecimal buscarQuantidadeLocalEstoquePorIdMaterialIdEndereco(Long idMaterial, Long idEndereco);
29 29  
30 30 MaterialLocalEstoque buscarMaterialLocalEstoque(Long idMaterial, Long idEndereco);
  31 +
  32 + BigDecimal buscaQuantidadeAtualMaterial(Long idMaterial, Long idOrganizacao);
31 33 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MaterialLocalEstoqueDaoHibernate.java
... ... @@ -12,6 +12,7 @@ import br.com.centralit.api.model.EstruturaOrganizacional;
12 12 import br.com.centralit.api.model.MaterialLocalEstoque;
13 13 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
14 14 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  15 +import br.com.centralit.framework.util.UtilColecao;
15 16  
16 17 /**
17 18 * <p>
... ... @@ -131,4 +132,23 @@ public class MaterialLocalEstoqueDaoHibernate extends CitGenericDAOImpl implemen
131 132  
132 133 return this.searchUnique(search);
133 134 }
  135 +
  136 + @Override
  137 + public BigDecimal buscaQuantidadeAtualMaterial(Long idMaterial, Long idOrganizacao) {
  138 +
  139 + SearchSeven search = new SearchSeven();
  140 + search.addField("quantidade");
  141 + search.addFilterEqual("materialEstoque.material.id", idMaterial);
  142 + search.addFilterEqual("organizacao.id", idOrganizacao);
  143 +
  144 + List<BigDecimal> qtds = this.search(search);
  145 + BigDecimal qnt = BigDecimal.ZERO;
  146 +
  147 + if(!UtilColecao.isVazio(qtds)){
  148 + for (BigDecimal quantidade : qtds) {
  149 + qnt = qnt.add(quantidade);
  150 + }
  151 + }
  152 + return qnt;
  153 + }
134 154 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MaterialLocalEstoqueService.java
... ... @@ -28,4 +28,6 @@ public interface MaterialLocalEstoqueService extends GenericService&lt;MaterialLoca
28 28 BigDecimal buscarQuantidadeLocalEstoquePorIdMaterialIdEndereco(Long idMaterial, Long idEndereco);
29 29  
30 30 MaterialLocalEstoque buscarMaterialLocalEstoque(Long idMaterial, Long idEndereco);
  31 +
  32 + BigDecimal buscaQuantidadeAtualMaterial(Long idMaterial, Long idOrganizacao);
31 33 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java
... ... @@ -401,6 +401,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
401 401 atendimentoRequisicaoConsumoItemEndereco.setAtendimentoRequisicaoConsumoItem(atendimentoItem);
402 402 if(atendimentoRequisicaoConsumoItemEndereco.getQuantidade() == null || atendimentoRequisicaoConsumoItemEndereco.getQuantidade().compareTo(new BigDecimal("0")) == 0){
403 403 atendimentoRequisicaoConsumoItemEndereco.setQuantidade(new BigDecimal(0));
  404 + todosItensSemQuantidade = true;
404 405 }else{
405 406 todosItensSemQuantidade = false;
406 407 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialLocalEstoqueServiceImpl.java
... ... @@ -142,5 +142,10 @@ public class MaterialLocalEstoqueServiceImpl extends GenericServiceImpl&lt;Material
142 142 public MaterialLocalEstoque buscarMaterialLocalEstoque(Long idMaterial, Long idEndereco) {
143 143 return this.materailLocalEstoqueDao.buscarMaterialLocalEstoque(idMaterial, idEndereco);
144 144 }
  145 +
  146 + @Override
  147 + public BigDecimal buscaQuantidadeAtualMaterial(Long idMaterial, Long idOrganizacao) {
  148 + return this.materailLocalEstoqueDao.buscaQuantidadeAtualMaterial(idMaterial, idOrganizacao);
  149 + }
145 150  
146 151 }
... ...
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/MaterialEstoqueSaldoController.java
... ... @@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
12 12 import br.com.centralit.api.model.Material;
13 13 import br.com.centralit.api.model.MaterialEstoqueSaldo;
14 14 import br.com.centralit.api.service.MaterialEstoqueSaldoService;
  15 +import br.com.centralit.api.service.MaterialLocalEstoqueService;
15 16 import br.com.centralit.api.service.MovimentoEstoqueService;
16 17 import br.com.centralit.api.service.OrganizacaoService;
17 18 import br.com.centralit.framework.controller.GenericController;
... ... @@ -30,6 +31,9 @@ public class MaterialEstoqueSaldoController extends GenericController&lt;MaterialEs
30 31  
31 32 @Autowired
32 33 private MovimentoEstoqueService movimentoEstoqueService;
  34 +
  35 + @Autowired
  36 + private MaterialLocalEstoqueService materialLocalEstoqueService;
33 37  
34 38 @Autowired
35 39 public MaterialEstoqueSaldoController( MaterialEstoqueSaldoService materialEstoqueSaldoService ) {
... ... @@ -42,12 +46,8 @@ public class MaterialEstoqueSaldoController extends GenericController&lt;MaterialEs
42 46 @ResponseBody
43 47 public BigDecimal buscaQuantidadeAtual(@RequestParam(value = "IdMaterial") String idMaterial, @RequestParam(value = "idOrganizacao") String idOrganizacao) {
44 48  
45   - Organizacao organizacao = this.organizacaoService.find(Long.parseLong(idOrganizacao));
46   -
47   - BigDecimal quantidadeFechada = this.materialEstoqueSaldoService.buscaUltimaQuantidadeFechada(Long.parseLong(idMaterial), Long.parseLong(idOrganizacao));
48   - BigDecimal quantidadeMesAtual = this.movimentoEstoqueService.buscaQuantidadeMovimentadaMaterialPorReferencia(Long.parseLong(idMaterial), organizacao.getDataReferenciaVigente(), Long.parseLong(idOrganizacao));
  49 + return this.materialLocalEstoqueService.buscaQuantidadeAtualMaterial(Long.valueOf(idMaterial), Long.valueOf(idOrganizacao));
49 50  
50   - return quantidadeFechada.add(quantidadeMesAtual);
51 51 }
52 52  
53 53 @RequestMapping(value = "/buscaUltimoValorFechado", method = RequestMethod.GET, produces = "application/json")
... ...