Commit 3db9f0a419fe8dd3e40f14c4ad97d9f7dae9d463

Authored by thiago.coimbra
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.
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 }
... ...