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 | 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<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<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<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('EntradaAlmoxarifadoController', ['$scope', '$filter', '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(); | ... | ... |