Commit 3db9f0a419fe8dd3e40f14c4ad97d9f7dae9d463
1 parent
c4e8e531
Exists in
master
redmine #5007 Alterada a obtencao do atributo 'precoMedio' da entendidade 'Entra…
…daAlmoxarifadoItem' para a entidade 'MaterialEstoque'. Adicionada a verficacao se o valor do atributo 'precoMedio' e nulo, caso seja a validacao do preco medio nao e executada.
Showing
1 changed file
with
11 additions
and
15 deletions
Show diff stats
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoItemServiceImpl.java
... | ... | @@ -15,12 +15,14 @@ import br.com.centralit.api.model.ContaContabilMovimento; |
15 | 15 | import br.com.centralit.api.model.EntradaAlmoxarifadoItem; |
16 | 16 | import br.com.centralit.api.model.EstruturaOrganizacional; |
17 | 17 | import br.com.centralit.api.model.MaterialConsumo; |
18 | +import br.com.centralit.api.model.MaterialEstoque; | |
18 | 19 | import br.com.centralit.api.model.MovimentoEstoque; |
19 | 20 | import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; |
20 | 21 | import br.com.centralit.api.service.ContaContabilMovimentoAlmoxarifadoService; |
21 | 22 | import br.com.centralit.api.service.EntradaAlmoxarifadoItemService; |
22 | 23 | import br.com.centralit.api.service.EstruturaOrganizacionalService; |
23 | 24 | import br.com.centralit.api.service.MaterialConsumoService; |
25 | +import br.com.centralit.api.service.MaterialEstoqueService; | |
24 | 26 | import br.com.centralit.api.service.MovimentoEstoqueService; |
25 | 27 | import br.com.centralit.framework.exception.BusinessException; |
26 | 28 | import br.com.centralit.framework.exception.CodigoErro; |
... | ... | @@ -76,7 +78,10 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl<Entra |
76 | 78 | |
77 | 79 | @Autowired |
78 | 80 | private ContaContabilMovimentoAlmoxarifadoService contaContabilMovimentoAlmoxarifadoService; |
79 | - | |
81 | + | |
82 | + @Autowired | |
83 | + private MaterialEstoqueService materialEstoqueService; | |
84 | + | |
80 | 85 | /** |
81 | 86 | * Responsável pela criação de novas instâncias desta classe. |
82 | 87 | * |
... | ... | @@ -150,27 +155,18 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl<Entra |
150 | 155 | @Override |
151 | 156 | public Boolean validarPrecoMedio(BigDecimal valorUnitario, Long idMaterial, Long idAlmoxarifado) { |
152 | 157 | |
153 | - MaterialConsumo materialConsumo = this.materialConsumoService.find(idMaterial); | |
154 | - | |
155 | - EstruturaOrganizacional almoxarifado = null; | |
156 | - | |
157 | - if (UtilObjeto.isReferencia(idAlmoxarifado)) { | |
158 | - | |
159 | - almoxarifado = this.estruturaOrganizacionalService.find(idAlmoxarifado); | |
160 | - | |
161 | - } | |
162 | - | |
163 | - BigDecimal precoMedio = this.recuperarMediaEntradaMaterial(materialConsumo, null, null, almoxarifado); | |
164 | - | |
158 | + MaterialEstoque materialEstoque = materialEstoqueService.findByIdMaterial(idMaterial); | |
159 | + BigDecimal precoMedio = materialEstoque.getValorUnitarioMedio(); | |
160 | + | |
165 | 161 | Organizacao organizacao = ((Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getOrganizacao(); |
166 | 162 | ConfiguracaoParametroSistema parametro = configuracaoParametroSistemaService.getParametro("MARGEM_ERRO_PRECO_MEDIO", organizacao); |
167 | 163 | |
168 | 164 | Double percetagemLimite = UtilString.isNullOrEmpty(parametro.getValor()) ? 0D : Double.parseDouble(parametro.getValor()); |
169 | 165 | |
170 | - if (precoMedio != null) { | |
166 | + if (precoMedio != null && (precoMedio.compareTo(BigDecimal.ZERO) != 0)) { | |
171 | 167 | BigDecimal percentagem = valorUnitario.multiply(BigDecimal.valueOf(100D)).divide(precoMedio, 2, BigDecimal.ROUND_HALF_UP).subtract(BigDecimal.valueOf(100D)); |
172 | 168 | |
173 | - if (percentagem.doubleValue() > percetagemLimite) { | |
169 | + if (Math.abs(percentagem.doubleValue()) > percetagemLimite) { | |
174 | 170 | |
175 | 171 | throw new BusinessException("ALMOXARIFADO.MSG.VALIDACAO_PRECO_MEDIO_MATERIAL_CONSUMO", CodigoErro.REGRA_NEGOCIO.getValue(), percetagemLimite + "%"); |
176 | 172 | } | ... | ... |