Commit f15c565439c7d9053cb01a2c63d5160934f66871

Authored by geovane.filho
1 parent 86fecd57
Exists in master

Redmine #4922 Correção na geração das médias

cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MovimentoEstoqueDaoHibernate.java
@@ -289,7 +289,7 @@ public class MovimentoEstoqueDaoHibernate extends CitGenericDAOImpl implements M @@ -289,7 +289,7 @@ public class MovimentoEstoqueDaoHibernate extends CitGenericDAOImpl implements M
289 SearchSeven search = new SearchSeven(); 289 SearchSeven search = new SearchSeven();
290 290
291 search.addFilterEqual("dominioClasseReferencia.id", classeReferencia.getId()); 291 search.addFilterEqual("dominioClasseReferencia.id", classeReferencia.getId());
292 - search.addFilterEqual("idClasseReferencia", null); 292 + search.addFilterEqual("idClasseReferencia", idReferencia);
293 293
294 return search(search); 294 return search(search);
295 } 295 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoque.java
1 package br.com.centralit.api.model; 1 package br.com.centralit.api.model;
2 2
3 import java.math.BigDecimal; 3 import java.math.BigDecimal;
  4 +import java.math.RoundingMode;
4 import java.util.Collection; 5 import java.util.Collection;
5 6
6 import javax.persistence.CascadeType; 7 import javax.persistence.CascadeType;
@@ -16,13 +17,13 @@ import javax.persistence.Table; @@ -16,13 +17,13 @@ import javax.persistence.Table;
16 17
17 import org.hibernate.envers.Audited; 18 import org.hibernate.envers.Audited;
18 19
19 -import com.fasterxml.jackson.annotation.JsonView;  
20 -  
21 import br.com.centralit.api.framework.json.ViewsAdmMateriais; 20 import br.com.centralit.api.framework.json.ViewsAdmMateriais;
22 import br.com.centralit.framework.json.Views; 21 import br.com.centralit.framework.json.Views;
23 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; 22 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao;
24 import br.com.centralit.framework.util.UtilObjeto; 23 import br.com.centralit.framework.util.UtilObjeto;
25 24
  25 +import com.fasterxml.jackson.annotation.JsonView;
  26 +
26 /** 27 /**
27 * 28 *
28 * <p> 29 * <p>
@@ -63,6 +64,8 @@ public class MaterialEstoque extends PersistentObjectAuditOrganizacao { @@ -63,6 +64,8 @@ public class MaterialEstoque extends PersistentObjectAuditOrganizacao {
63 64
64 /** Atributo serialVersionUID. */ 65 /** Atributo serialVersionUID. */
65 private static final long serialVersionUID = 1170228299223134768L; 66 private static final long serialVersionUID = 1170228299223134768L;
  67 +
  68 + private static int SCALE_DIVISOR_DECIMAL = 4;
66 69
67 /** Atributo id. */ 70 /** Atributo id. */
68 @Id 71 @Id
@@ -118,7 +121,7 @@ public class MaterialEstoque extends PersistentObjectAuditOrganizacao { @@ -118,7 +121,7 @@ public class MaterialEstoque extends PersistentObjectAuditOrganizacao {
118 } 121 }
119 122
120 public BigDecimal getValorTotalMedio() { 123 public BigDecimal getValorTotalMedio() {
121 - return this.getQuantidadeTotal().multiply(this.getValorUnitarioMedio()).add(this.getRestoMedio()); 124 + return this.getQuantidadeTotal().multiply(this.getValorUnitarioMedio()).setScale(SCALE_DIVISOR_DECIMAL, RoundingMode.HALF_UP).add(this.getRestoMedio());
122 } 125 }
123 126
124 /** 127 /**
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoqueFIFOItem.java
@@ -110,7 +110,7 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao { @@ -110,7 +110,7 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
110 this.quantidadeInicial = quantidadeInicial; 110 this.quantidadeInicial = quantidadeInicial;
111 this.quantidadeRestante = quantidadeInicial; 111 this.quantidadeRestante = quantidadeInicial;
112 this.valorTotal = valorTotal; 112 this.valorTotal = valorTotal;
113 - this.valorUnitario = valorTotal.divide(quantidadeInicial, SCALE_DIVISOR_DECIMAL, RoundingMode.CEILING); 113 + this.valorUnitario = valorTotal.divide(quantidadeInicial, SCALE_DIVISOR_DECIMAL, RoundingMode.HALF_UP);
114 this.valorSobra = valorTotal.subtract(this.valorUnitario.multiply(quantidadeInicial)); 114 this.valorSobra = valorTotal.subtract(this.valorUnitario.multiply(quantidadeInicial));
115 this.entradaItem = entradaItem; 115 this.entradaItem = entradaItem;
116 } 116 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialEstoqueServiceImpl.java
@@ -58,8 +58,8 @@ public class MaterialEstoqueServiceImpl extends GenericServiceImpl&lt;MaterialEstoq @@ -58,8 +58,8 @@ public class MaterialEstoqueServiceImpl extends GenericServiceImpl&lt;MaterialEstoq
58 BigDecimal valorTotalNovo = materialEstoque.getValorTotalMedio().add(entradaAlmoxarifadoItem.getValorTotal()); 58 BigDecimal valorTotalNovo = materialEstoque.getValorTotalMedio().add(entradaAlmoxarifadoItem.getValorTotal());
59 BigDecimal quantidadeTotalNova = materialEstoque.getQuantidadeTotal().add(entradaAlmoxarifadoItem.getQuantidade()); 59 BigDecimal quantidadeTotalNova = materialEstoque.getQuantidadeTotal().add(entradaAlmoxarifadoItem.getQuantidade());
60 60
61 - BigDecimal valorUnitarioNovo = valorTotalNovo.divide(quantidadeTotalNova, SCALE_DIVISOR_DECIMAL, RoundingMode.CEILING);  
62 - BigDecimal restoMedioNovo = valorTotalNovo.subtract(valorUnitarioNovo.multiply(quantidadeTotalNova)); 61 + BigDecimal valorUnitarioNovo = valorTotalNovo.divide(quantidadeTotalNova, SCALE_DIVISOR_DECIMAL, RoundingMode.HALF_UP);
  62 + BigDecimal restoMedioNovo = valorTotalNovo.subtract(valorUnitarioNovo.multiply(quantidadeTotalNova).setScale(SCALE_DIVISOR_DECIMAL, RoundingMode.HALF_UP)).setScale(SCALE_DIVISOR_DECIMAL, RoundingMode.HALF_UP);
63 63
64 materialEstoque.setValorUnitarioMedio(valorUnitarioNovo); 64 materialEstoque.setValorUnitarioMedio(valorUnitarioNovo);
65 materialEstoque.setRestoMedio(restoMedioNovo); 65 materialEstoque.setRestoMedio(restoMedioNovo);
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java
@@ -352,7 +352,6 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst @@ -352,7 +352,6 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
352 EntradaAlmoxarifadoItem entradaItem = this.entradaAlmoxarifadoItemService.find(movimentoEstoque.getIdClasseReferencia()); 352 EntradaAlmoxarifadoItem entradaItem = this.entradaAlmoxarifadoItemService.find(movimentoEstoque.getIdClasseReferencia());
353 353
354 if (this.buscarMovimentosSaidaComMateriaisDaEntrada(entradaItem.getEntrada().getId()).isEmpty()) { 354 if (this.buscarMovimentosSaidaComMateriaisDaEntrada(entradaItem.getEntrada().getId()).isEmpty()) {
355 - materialLocal.setQuantidade(materialLocal.getQuantidade().subtract(entradaItem.getQuantidade()));  
356 355
357 for (MaterialEstoqueFIFOItem fifoItem : materialEstoque.getItensFifo()) { 356 for (MaterialEstoqueFIFOItem fifoItem : materialEstoque.getItensFifo()) {
358 if (fifoItem.getEntradaItem().getId().equals(entradaItem.getId())) { 357 if (fifoItem.getEntradaItem().getId().equals(entradaItem.getId())) {
@@ -369,12 +368,13 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst @@ -369,12 +368,13 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
369 valorUnitarioNovo = BigDecimal.ZERO; 368 valorUnitarioNovo = BigDecimal.ZERO;
370 restoMedioNovo = BigDecimal.ZERO; 369 restoMedioNovo = BigDecimal.ZERO;
371 } else { 370 } else {
372 - valorUnitarioNovo = valorTotalNovo.divide(quantidadeTotalNova, SCALE_DIVISOR_DECIMAL, RoundingMode.CEILING); 371 + valorUnitarioNovo = valorTotalNovo.divide(quantidadeTotalNova, SCALE_DIVISOR_DECIMAL, RoundingMode.HALF_UP);
373 restoMedioNovo = valorTotalNovo.subtract(valorUnitarioNovo.multiply(quantidadeTotalNova)); 372 restoMedioNovo = valorTotalNovo.subtract(valorUnitarioNovo.multiply(quantidadeTotalNova));
374 } 373 }
375 374
376 materialEstoque.setValorUnitarioMedio(valorUnitarioNovo); 375 materialEstoque.setValorUnitarioMedio(valorUnitarioNovo);
377 materialEstoque.setRestoMedio(restoMedioNovo); 376 materialEstoque.setRestoMedio(restoMedioNovo);
  377 + materialLocal.setQuantidade(materialLocal.getQuantidade().subtract(entradaItem.getQuantidade()));
378 this.materialEstoqueService.merge(materialEstoque); 378 this.materialEstoqueService.merge(materialEstoque);
379 } else { 379 } else {
380 throw new BusinessException("ALMOXARIFADO.MSG.ACAO_COM_SAIDAS_POSTERIORES", CodigoErro.REGRA_NEGOCIO.getValue()); 380 throw new BusinessException("ALMOXARIFADO.MSG.ACAO_COM_SAIDAS_POSTERIORES", CodigoErro.REGRA_NEGOCIO.getValue());
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js
@@ -1259,7 +1259,6 @@ citApp.controller(&#39;EntradaAlmoxarifadoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUp @@ -1259,7 +1259,6 @@ citApp.controller(&#39;EntradaAlmoxarifadoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUp
1259 }; 1259 };
1260 1260
1261 $scope.alternaTipoNumericoUnidadeMedida = function(){ 1261 $scope.alternaTipoNumericoUnidadeMedida = function(){
1262 - $scope.entradaItem.$quantidadeEntrada = '';  
1263 $timeout(function(){ 1262 $timeout(function(){
1264 if($scope.entradaItem.unidadeMedidaEntrada && $scope.entradaItem.unidadeMedidaEntrada.tipoNumerico){ 1263 if($scope.entradaItem.unidadeMedidaEntrada && $scope.entradaItem.unidadeMedidaEntrada.tipoNumerico){
1265 $scope.defineTipoNumerico(); 1264 $scope.defineTipoNumerico();