Commit f15c565439c7d9053cb01a2c63d5160934f66871
1 parent
86fecd57
Exists in
master
Redmine #4922 Correção na geração das médias
Showing
6 changed files
with
12 additions
and
10 deletions
Show diff stats
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<MaterialEstoq | @@ -58,8 +58,8 @@ public class MaterialEstoqueServiceImpl extends GenericServiceImpl<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<MovimentoEst | @@ -352,7 +352,6 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl<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<MovimentoEst | @@ -369,12 +368,13 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl<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('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp | @@ -1259,7 +1259,6 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', '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(); |