Commit 97cef0d3dfce7e6236abf85b373425bfeb9cc63f

Authored by geovane.filho
1 parent f47f9294
Exists in master

Redmine #4783 Correções na contabilização da entrada de almoxarifado

cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MaterialEstoqueFIFOItemDao.java 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +package br.com.centralit.api.dao;
  2 +
  3 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
  4 +
  5 +public interface MaterialEstoqueFIFOItemDao extends CitGenericDAO {
  6 +
  7 +}
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MaterialEstoqueFIFOItemDaoHibernate.java 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +package br.com.centralit.api.dao.impl;
  2 +
  3 +import org.springframework.stereotype.Repository;
  4 +
  5 +import br.com.centralit.api.dao.MaterialEstoqueFIFOItemDao;
  6 +import br.com.centralit.api.model.MaterialEstoqueFIFOItem;
  7 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  8 +
  9 +@Repository("materialEstoqueFIFOItemDao")
  10 +public class MaterialEstoqueFIFOItemDaoHibernate extends CitGenericDAOImpl implements MaterialEstoqueFIFOItemDao {
  11 +
  12 + public MaterialEstoqueFIFOItemDaoHibernate() {
  13 + super(MaterialEstoqueFIFOItem.class);
  14 + }
  15 +
  16 +}
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoqueFIFOItem.java
... ... @@ -10,7 +10,6 @@ import javax.persistence.GeneratedValue;
10 10 import javax.persistence.GenerationType;
11 11 import javax.persistence.Id;
12 12 import javax.persistence.ManyToOne;
13   -import javax.persistence.OneToOne;
14 13 import javax.persistence.Table;
15 14  
16 15 import org.hibernate.envers.Audited;
... ... @@ -83,8 +82,16 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
83 82 /** Atributo valorTotal. */
84 83 @Column(precision = 20, scale = 4, nullable = false)
85 84 private BigDecimal valorTotal;
  85 +
  86 + @ManyToOne(fetch = FetchType.EAGER, optional = false)
  87 + private EntradaAlmoxarifadoItem entradaItem;
  88 +
  89 +
  90 + protected MaterialEstoqueFIFOItem() {
  91 + super();
  92 + }
86 93  
87   - public MaterialEstoqueFIFOItem( MaterialEstoque materialEstoque, BigDecimal quantidadeInicial, BigDecimal valorTotal ) {
  94 + public MaterialEstoqueFIFOItem( MaterialEstoque materialEstoque, BigDecimal quantidadeInicial, BigDecimal valorTotal, EntradaAlmoxarifadoItem entradaItem ) {
88 95 super();
89 96 this.material = materialEstoque.getMaterial();
90 97 this.materialEstoque = materialEstoque;
... ... @@ -93,6 +100,7 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
93 100 this.valorTotal = valorTotal;
94 101 this.valorUnitario = valorTotal.divide(quantidadeInicial, SCALE_DIVISOR_DECIMAL, RoundingMode.CEILING);
95 102 this.valorSobra = valorTotal.min(this.valorUnitario.multiply(quantidadeInicial));
  103 + this.entradaItem = entradaItem;
96 104 }
97 105  
98 106 /**
... ... @@ -291,4 +299,26 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
291 299 this.valorTotal = valorTotal;
292 300 }
293 301  
  302 +
  303 + /**
  304 + * Retorna o valor do atributo <code>entradaItem</code>
  305 + *
  306 + * @return <code>EntradaAlmoxarifadoItem</code>
  307 + */
  308 + public EntradaAlmoxarifadoItem getEntradaItem() {
  309 +
  310 + return entradaItem;
  311 + }
  312 +
  313 +
  314 + /**
  315 + * Define o valor do atributo <code>entradaItem</code>.
  316 + *
  317 + * @param entradaItem
  318 + */
  319 + public void setEntradaItem(EntradaAlmoxarifadoItem entradaItem) {
  320 +
  321 + this.entradaItem = entradaItem;
  322 + }
  323 +
294 324 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MovimentoEstoque.java
... ... @@ -69,6 +69,10 @@ public class MovimentoEstoque extends PersistentObjectAuditOrganizacao {
69 69 @ManyToOne(fetch = FetchType.LAZY, optional = true)
70 70 private MaterialEstoque materialEstoque;
71 71  
  72 + /** Atributo materialEstoqueInativo. */
  73 + @ManyToOne(fetch = FetchType.LAZY, optional = true)
  74 + private MaterialEstoque materialEstoqueInativo;
  75 +
72 76 /** Atributo materialLocalEstoque. */
73 77 @ManyToOne(fetch = FetchType.LAZY, optional = true)
74 78 private MaterialLocalEstoque materialLocalEstoque;
... ... @@ -340,6 +344,28 @@ public class MovimentoEstoque extends PersistentObjectAuditOrganizacao {
340 344 }
341 345  
342 346  
  347 +
  348 + /**
  349 + * Retorna o valor do atributo <code>materialEstoqueInativo</code>
  350 + *
  351 + * @return <code>MaterialEstoque</code>
  352 + */
  353 + public MaterialEstoque getMaterialEstoqueInativo() {
  354 +
  355 + return materialEstoqueInativo;
  356 + }
  357 +
  358 +
  359 + /**
  360 + * Define o valor do atributo <code>materialEstoqueInativo</code>.
  361 + *
  362 + * @param materialEstoqueInativo
  363 + */
  364 + public void setMaterialEstoqueInativo(MaterialEstoque materialEstoqueInativo) {
  365 +
  366 + this.materialEstoqueInativo = materialEstoqueInativo;
  367 + }
  368 +
343 369 /**
344 370 * Retorna o valor do atributo <code>dominioClasseReferencia</code>
345 371 *
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MaterialEstoqueFIFOItemService.java 0 → 100644
... ... @@ -0,0 +1,8 @@
  1 +package br.com.centralit.api.service;
  2 +
  3 +import br.com.centralit.api.model.MaterialEstoqueFIFOItem;
  4 +import br.com.centralit.framework.service.arquitetura.GenericService;
  5 +
  6 +public interface MaterialEstoqueFIFOItemService extends GenericService<MaterialEstoqueFIFOItem, Long> {
  7 +
  8 +}
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialEstoqueFIFOItemServiceImpl.java 0 → 100644
... ... @@ -0,0 +1,35 @@
  1 +package br.com.centralit.api.service.impl;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.beans.factory.annotation.Qualifier;
  5 +import org.springframework.stereotype.Service;
  6 +import org.springframework.validation.Validator;
  7 +
  8 +import br.com.centralit.api.dao.MaterialEstoqueFIFOItemDao;
  9 +import br.com.centralit.api.model.MaterialEstoqueFIFOItem;
  10 +import br.com.centralit.api.service.MaterialEstoqueFIFOItemService;
  11 +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
  12 +
  13 +@Service("materialEstoqueFIFOItemService")
  14 +public class MaterialEstoqueFIFOItemServiceImpl extends GenericServiceImpl<MaterialEstoqueFIFOItem, Long> implements MaterialEstoqueFIFOItemService {
  15 +
  16 + private MaterialEstoqueFIFOItemDao materialEstoqueFIFOItemDao;
  17 +
  18 + @Autowired
  19 + public MaterialEstoqueFIFOItemServiceImpl(MaterialEstoqueFIFOItemDao materialEstoqueFIFOItemDao, @Qualifier("materialEstoqueFIFOItemValidator") Validator validator) {
  20 + this.dao = materialEstoqueFIFOItemDao;
  21 + this.materialEstoqueFIFOItemDao = materialEstoqueFIFOItemDao;
  22 + this.validator = validator;
  23 + }
  24 +
  25 + @Override
  26 + public boolean removeById(Long id) {
  27 +
  28 + MaterialEstoqueFIFOItem fifoItem = this.find(id);
  29 + fifoItem.setMaterialEstoqueInativo(fifoItem.getMaterialEstoque());
  30 + fifoItem.setMaterialEstoque(null);
  31 +
  32 + return super.remove(fifoItem);
  33 + }
  34 +
  35 +}
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialEstoqueServiceImpl.java
... ... @@ -64,7 +64,7 @@ public class MaterialEstoqueServiceImpl extends GenericServiceImpl&lt;MaterialEstoq
64 64 materialEstoque.setValorUnitarioMedio(valorUnitarioNovo);
65 65 materialEstoque.setRestoMedio(restoMedioNovo);
66 66  
67   - MaterialEstoqueFIFOItem fifoItem = new MaterialEstoqueFIFOItem(materialEstoque, entradaAlmoxarifadoItem.getQuantidade(), entradaAlmoxarifadoItem.getValorTotal());
  67 + MaterialEstoqueFIFOItem fifoItem = new MaterialEstoqueFIFOItem(materialEstoque, entradaAlmoxarifadoItem.getQuantidade(), entradaAlmoxarifadoItem.getValorTotal(), entradaAlmoxarifadoItem);
68 68  
69 69 Collection<MaterialEstoqueFIFOItem> itensFifo = materialEstoque.getItensFifo();
70 70 if (!UtilObjeto.isReferencia(itensFifo)) {
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java
1 1 package br.com.centralit.api.service.impl;
2 2  
3 3 import java.math.BigDecimal;
  4 +import java.math.RoundingMode;
4 5 import java.util.ArrayList;
5 6 import java.util.Calendar;
6 7 import java.util.Collection;
... ... @@ -8,6 +9,7 @@ import java.util.HashMap;
8 9 import java.util.List;
9 10 import java.util.Map;
10 11  
  12 +import org.apache.commons.lang.NotImplementedException;
11 13 import org.springframework.beans.factory.annotation.Autowired;
12 14 import org.springframework.beans.factory.annotation.Qualifier;
13 15 import org.springframework.security.core.context.SecurityContextHolder;
... ... @@ -19,7 +21,6 @@ import br.com.centralit.api.model.AtendimentoRequisicaoConsumo;
19 21 import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem;
20 22 import br.com.centralit.api.model.BaixaAlmoxarifado;
21 23 import br.com.centralit.api.model.BaixaAlmoxarifadoItem;
22   -import br.com.centralit.api.model.ContaContabilMovimento;
23 24 import br.com.centralit.api.model.Devolucao;
24 25 import br.com.centralit.api.model.DevolucaoItem;
25 26 import br.com.centralit.api.model.DominioAlmoxarifado;
... ... @@ -29,6 +30,7 @@ import br.com.centralit.api.model.EntradaAlmoxarifadoItem;
29 30 import br.com.centralit.api.model.EstruturaOrganizacional;
30 31 import br.com.centralit.api.model.MaterialConsumo;
31 32 import br.com.centralit.api.model.MaterialEstoque;
  33 +import br.com.centralit.api.model.MaterialEstoqueFIFOItem;
32 34 import br.com.centralit.api.model.MaterialLocalEstoque;
33 35 import br.com.centralit.api.model.MovimentoEstoque;
34 36 import br.com.centralit.api.service.AtendimentoRequisicaoConsumoItemService;
... ... @@ -40,10 +42,13 @@ import br.com.centralit.api.service.EntradaAlmoxarifadoItemService;
40 42 import br.com.centralit.api.service.EntradaAlmoxarifadoService;
41 43 import br.com.centralit.api.service.InternacionalizacaoService;
42 44 import br.com.centralit.api.service.MaterialConsumoService;
  45 +import br.com.centralit.api.service.MaterialEstoqueFIFOItemService;
43 46 import br.com.centralit.api.service.MaterialEstoqueService;
44 47 import br.com.centralit.api.service.MaterialLocalEstoqueService;
45 48 import br.com.centralit.api.service.MovimentoEstoqueService;
46 49 import br.com.centralit.api.service.OrganizacaoService;
  50 +import br.com.centralit.framework.exception.BusinessException;
  51 +import br.com.centralit.framework.exception.CodigoErro;
47 52 import br.com.centralit.framework.model.Dominio;
48 53 import br.com.centralit.framework.model.Usuario;
49 54 import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit;
... ... @@ -78,6 +83,8 @@ import br.com.centralit.framework.util.UtilObjeto;
78 83 @Service("movimentoEstoqueService")
79 84 public class MovimentoEstoqueServiceImpl extends GenericServiceImpl<MovimentoEstoque, Long> implements MovimentoEstoqueService {
80 85  
  86 + private static int SCALE_DIVISOR_DECIMAL = 4;
  87 +
81 88 private static final String ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_ATENDIMENTO_REQUISICAO_CONSUMO_DATA_ATENDIMENTO = "atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumo.dataAtendimento";
82 89  
83 90 private static final String ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_QUANTIDADE = "atendimentoRequisicaoConsumoItem.quantidade";
... ... @@ -126,6 +133,9 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
126 133 @Autowired
127 134 private InternacionalizacaoService internacionalizacaoService;
128 135  
  136 + @Autowired
  137 + private MaterialEstoqueFIFOItemService materialEstoqueFIFOItemService;
  138 +
129 139  
130 140 /**
131 141 * Responsável pela criação de novas instâncias desta classe.
... ... @@ -166,17 +176,6 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
166 176 movimentos.add(movimentoEstoque);
167 177  
168 178 this.materialEstoqueService.entrada(entradaAlmoxarifadoItem);
169   -
170   - Dominio tipoSaldoEntrada = new Dominio();
171   - if (UtilObjeto.isReferencia(entradaAlmoxarifado.getDominioTipoEntrada())){
172   - if (entradaAlmoxarifado.getDominioTipoEntrada().getCodigo() == Dominio.TIPO_ENTRADA_ALMOXARIFADO_EXTRA_ORCAMENTARIA_CODIGO){
173   - tipoSaldoEntrada= this.dominioService.findByChaveAndCodigo(Dominio.TIPO_MOVIMENTO_CONTA_CONTABIL, Dominio.TIPO_MOVIMENTO_CONTA_CONTABIL_ENTRADA_EXTRAORCAMENTARIA_CODIGO);
174   - }else{
175   - tipoSaldoEntrada = this.dominioService.findByChaveAndCodigo(Dominio.TIPO_MOVIMENTO_CONTA_CONTABIL, Dominio.TIPO_MOVIMENTO_CONTA_CONTABIL_ENTRADA_ORCAMENTARIA_CODIGO);
176   - }
177   - }
178   -
179   - this.contaContabilMovimentoService.salvaMovimentoEntradaAlmoxarifado(entradaAlmoxarifadoItem.getMaterial().getContaContabil(), entradaAlmoxarifadoItem.getValorTotal(), entradaAlmoxarifadoItem.getId(), tipoSaldoEntrada);
180 179 }
181 180  
182 181 this.saveList(movimentos);
... ... @@ -332,40 +331,51 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
332 331 if (!UtilColecao.isVazio(listEntity)) {
333 332  
334 333 for (MovimentoEstoque movimentoEstoque : listEntity) {
335   - MaterialConsumo material = this.materialConsumoService.find(movimentoEstoque.getMaterial().getId());
336   - BigDecimal quantidade = movimentoEstoque.getQuantidade().abs();
337   -
338   - this.entradaAlmoxarifadoItemService.realizaMovimentoDevolucao(material, quantidade);
339   - //this.materialEstoqueSaldoMedioService.realizaMovimentoDevolucao(material, quantidade);
340   -
341   - Dominio classeReferencia = null;
342   - Long idClasseReferencia = null;
343 334  
344   - //TODO corrigir remoção com nova versão de dominios
345   - /*
346   - if (movimentoEstoque.getAtendimentoRequisicaoConsumoItem() != null) {
347   - classeReferencia = this.dominioService.findByChaveAndCodigo(DominioMaterial.CLASSE_REFERENCIA, DominioMaterial.REFERENCIA_ATENDIMENTO_ALMOXARIFADO_ITEM);
348   - idClasseReferencia = movimentoEstoque.getAtendimentoRequisicaoConsumoItem().getId();
349   - } else if (movimentoEstoque.getBaixaAlmoxarifadoItem() != null) {
350   - classeReferencia = this.dominioService.findByChaveAndCodigo(DominioMaterial.CLASSE_REFERENCIA, DominioMaterial.REFERENCIA_BAIXA_ALMOXARIFADO_ITEM);
351   - idClasseReferencia = movimentoEstoque.getBaixaAlmoxarifadoItem().getId();
352   - } else if (movimentoEstoque.getDevolucaoItem() != null) {
353   - classeReferencia = this.dominioService.findByChaveAndCodigo(DominioMaterial.CLASSE_REFERENCIA, DominioMaterial.REFERENCIA_DEVOLUCAO_ITEM);
354   - idClasseReferencia = movimentoEstoque.getDevolucaoItem().getId();
355   - } else if (movimentoEstoque.getEntradaAlmoxarifadoItem() != null) {
356   - classeReferencia = this.dominioService.findByChaveAndCodigo(DominioMaterial.CLASSE_REFERENCIA, DominioMaterial.REFERENCIA_ENTRADA_ALMOXARIFADO_ITEM);
357   - idClasseReferencia = movimentoEstoque.getEntradaAlmoxarifadoItem().getId();
358   - }*/
359   -
360   - ContaContabilMovimento movimento = this.contaContabilMovimentoService.findByContaAndClasseReferencia(material.getContaContabil(), classeReferencia, idClasseReferencia);
361   -
362   - if(UtilObjeto.isReferencia(movimento)){
363   -
364   - this.contaContabilMovimentoService.remove(movimento);
  335 + MaterialEstoque materialEstoque = this.materialEstoqueService.find(movimentoEstoque.getMaterialEstoque().getId());
  336 + MaterialLocalEstoque materialLocal = movimentoEstoque.getMaterialLocalEstoque();
  337 +
  338 + if (movimentoEstoque.getDominioClasseReferencia().getCodigo().equals(DominioMaterial.REFERENCIA_ENTRADA_ALMOXARIFADO_ITEM)) {
  339 +
  340 + EntradaAlmoxarifadoItem entradaItem = this.entradaAlmoxarifadoItemService.find(movimentoEstoque.getIdClasseReferencia());
  341 +
  342 + if (this.buscarMovimentosSaidaComMateriaisDaEntrada(entradaItem.getEntrada().getId()).isEmpty()) {
  343 + materialLocal.setQuantidade(materialLocal.getQuantidade().subtract(entradaItem.getQuantidade()));
  344 +
  345 + for (MaterialEstoqueFIFOItem fifoItem : materialEstoque.getItensFifo()) {
  346 + if (fifoItem.getEntradaItem().getId().equals(entradaItem.getId())) {
  347 + this.materialEstoqueFIFOItemService.remove(fifoItem);
  348 + }
  349 + }
  350 +
  351 + BigDecimal valorTotalNovo = materialEstoque.getValorTotalMedio().subtract(entradaItem.getValorTotal());
  352 + BigDecimal quantidadeTotalNova = materialEstoque.getQuantidadeTotal().subtract(entradaItem.getQuantidade());
  353 +
  354 + BigDecimal valorUnitarioNovo = valorTotalNovo.divide(quantidadeTotalNova, SCALE_DIVISOR_DECIMAL, RoundingMode.CEILING);
  355 + BigDecimal restoMedioNovo = valorTotalNovo.subtract(valorUnitarioNovo.multiply(quantidadeTotalNova));
  356 +
  357 + materialEstoque.setValorUnitarioMedio(valorUnitarioNovo);
  358 + materialEstoque.setRestoMedio(restoMedioNovo);
  359 + this.materialEstoqueService.merge(materialEstoque);
  360 + } else {
  361 + throw new BusinessException("ALMOXARIFADO.MSG.ACAO_COM_SAIDAS_POSTERIORES", CodigoErro.REGRA_NEGOCIO.getValue());
  362 + }
  363 + } else if (movimentoEstoque.getDominioClasseReferencia().getCodigo().equals(DominioMaterial.REFERENCIA_ATENDIMENTO_ALMOXARIFADO_ITEM)) {
  364 +
  365 + throw new NotImplementedException();
  366 + } else if (movimentoEstoque.getDominioClasseReferencia().getCodigo().equals(DominioMaterial.REFERENCIA_BAIXA_ALMOXARIFADO_ITEM)) {
  367 +
  368 + throw new NotImplementedException();
  369 + } else if (movimentoEstoque.getDominioClasseReferencia().getCodigo().equals(DominioMaterial.REFERENCIA_DEVOLUCAO_ITEM)) {
  370 +
  371 + throw new NotImplementedException();
365 372 }
  373 +
  374 + movimentoEstoque.setMaterialEstoqueInativo(movimentoEstoque.getMaterialEstoque());
  375 + movimentoEstoque.setMaterialEstoque(null);
  376 +
  377 + super.remove(movimentoEstoque);
366 378 }
367   -
368   - super.removeList(listEntity);
369 379 }
370 380  
371 381 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/EntradaAlmoxarifadoBasicValidator.java
... ... @@ -9,7 +9,6 @@ import br.com.centralit.api.model.EntradaAlmoxarifado;
9 9 import br.com.centralit.framework.exception.CodigoErro;
10 10 import br.com.centralit.framework.util.UtilColecao;
11 11 import br.com.centralit.framework.util.UtilDate;
12   -import br.com.centralit.framework.util.UtilObjeto;
13 12  
14 13 @Component("entradaAlmoxarifadoBasicValidator")
15 14 public class EntradaAlmoxarifadoBasicValidator implements Validator {
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/MaterialEstoqueFIFOItemValidator.java 0 → 100644
... ... @@ -0,0 +1,35 @@
  1 +package br.com.centralit.api.service.validation;
  2 +
  3 +import org.springframework.stereotype.Component;
  4 +import org.springframework.validation.Errors;
  5 +import org.springframework.validation.ValidationUtils;
  6 +import org.springframework.validation.Validator;
  7 +
  8 +import br.com.centralit.api.model.MaterialEstoqueFIFOItem;
  9 +import br.com.centralit.framework.exception.CodigoErro;
  10 +
  11 +@Component("materialEstoqueFIFOItemValidator")
  12 +public class MaterialEstoqueFIFOItemValidator implements Validator {
  13 +
  14 + @Override
  15 + public boolean supports(Class<?> clazz) {
  16 +
  17 + return MaterialEstoqueFIFOItem.class.isAssignableFrom(clazz);
  18 + }
  19 +
  20 + @Override
  21 + public void validate(Object target, Errors errors) {
  22 +
  23 + ValidationUtils.rejectIfEmpty(errors, "material", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.MATERIAL");
  24 +
  25 + ValidationUtils.rejectIfEmpty(errors, "quantidadeInicial", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.QUANTIDADE");
  26 +
  27 + ValidationUtils.rejectIfEmpty(errors, "valorUnitario", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.VALOR_UNITARIO");
  28 +
  29 + ValidationUtils.rejectIfEmpty(errors, "valorTotal", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.VALOR_TOTAL");
  30 +
  31 + }
  32 +}
  33 +
  34 +
  35 +
... ...
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
... ... @@ -365,6 +365,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
365 365 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.ENTRADA_DESCONTABILIZADA", "Entrada descontabilizada com sucesso!", dominio, modulo));
366 366 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.SELECIONE_UM_ITEM_PARA_DEFINIR_CARAC", "Selecione um item para definir suas características!", dominio, modulo));
367 367 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.MATERIAL_NAO_POSSUI_CARACTERISTICAS", "Material não possui características cadastradas.", dominio, modulo));
  368 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.ACAO_COM_SAIDAS_POSTERIORES", "Você não pode realizar esta ação pois existem as seguintes saídas com materiais desta entrada: ", dominio, modulo));
368 369 }
369 370 }
370 371  
... ...