Commit 97cef0d3dfce7e6236abf85b373425bfeb9cc63f
1 parent
f47f9294
Exists in
master
Redmine #4783 Correções na contabilização da entrada de almoxarifado
Showing
11 changed files
with
214 additions
and
47 deletions
Show diff stats
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MaterialEstoqueFIFOItemDao.java
0 → 100644
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<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<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<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<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 | ... | ... |