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