Commit 4529dde8a72beb0e58d31978259fe879d8400828

Authored by erick.sato
1 parent da0498cb
Exists in master

[Redmine Atendimento #4740]Endereço estoque

cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EnderecoEstoque.java
... ... @@ -15,6 +15,7 @@ import javax.persistence.Table;
15 15  
16 16 import com.fasterxml.jackson.annotation.JsonView;
17 17  
  18 +import br.com.centralit.api.framework.json.ViewsAdmMateriais;
18 19 import br.com.centralit.framework.json.Views;
19 20 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao;
20 21  
... ... @@ -66,34 +67,34 @@ public class EnderecoEstoque extends PersistentObjectAuditOrganizacao {
66 67  
67 68 /** Atributo entrada. */
68 69 @ManyToOne(fetch = FetchType.LAZY, optional = true)
69   - @JsonView({ Views.EnderecoEstoqueView.class })
  70 + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class })
70 71 private Estoque estoque;
71 72  
72 73 @ManyToOne(fetch = FetchType.LAZY, optional = true)
73 74 private Estoque estoqueInativo;
74 75  
75 76 @Column(length = 30, nullable = false, updatable = false, unique = true)
76   - @JsonView({ Views.EnderecoEstoqueView.class })
  77 + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class })
77 78 private String codigo;
78 79  
79 80 @Column(name = "sigla", length = 30, updatable = true)
80   - @JsonView({ Views.EnderecoEstoqueView.class })
  81 + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class })
81 82 private String sigla;
82 83  
83 84 @Column(name = "descricao", length = 400, nullable = false)
84   - @JsonView({ Views.EnderecoEstoqueView.class })
  85 + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class })
85 86 private String descricao;
86 87  
87 88 @ManyToOne(fetch = FetchType.LAZY, optional = true)
88   - @JsonView({ Views.EnderecoEstoqueView.class })
  89 + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class })
89 90 private EnderecoEstoque endeEstoqSuperior;
90 91  
91 92 @Column(name = "acomodaMaterial")
92   - @JsonView({ Views.EnderecoEstoqueView.class })
  93 + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class })
93 94 private Boolean acomodaMaterial;
94 95  
95 96 @Column(name = "enderTodoMaterial")
96   - @JsonView({ Views.EnderecoEstoqueView.class })
  97 + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class })
97 98 private Boolean enderTodoMaterial;
98 99  
99 100 /** Atributo materiais. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Estoque.java
... ... @@ -68,7 +68,7 @@ public class Estoque extends PersistentObjectAuditOrganizacao {
68 68 /** Atributo almoxarifado. */
69 69 @OneToOne(fetch = FetchType.LAZY, optional = false)
70 70 @JsonView({ ViewsAdmMateriais.LocalEstoqueAutoCompleteView.class,
71   - ViewsAlmoxarifado.ConfiguracaoRessuprimentoEditView.class, Views.MaterialConsultaInfo.class, Views.EnderecoEstoqueView.class })
  71 + ViewsAlmoxarifado.ConfiguracaoRessuprimentoEditView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.EnderecoEstoqueView.class })
72 72 private EstruturaOrganizacional almoxarifado;
73 73  
74 74 /** Atributo locais. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialLocalEstoque.java
... ... @@ -13,6 +13,7 @@ import javax.persistence.Table;
13 13  
14 14 import com.fasterxml.jackson.annotation.JsonView;
15 15  
  16 +import br.com.centralit.api.framework.json.ViewsAdmMateriais;
16 17 import br.com.centralit.framework.json.Views;
17 18 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao;
18 19  
... ... @@ -64,7 +65,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao {
64 65  
65 66 /** Atributo materialEstoque. */
66 67 @OneToOne(fetch = FetchType.LAZY, optional = false)
67   - @JsonView({ Views.EnderecoEstoqueView.class })
  68 + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class })
68 69 private MaterialEstoque materialEstoque;
69 70  
70 71 /** Atributo materialEstoqueInativo. */
... ... @@ -80,7 +81,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao {
80 81 private EnderecoEstoque enderecoInativo;
81 82  
82 83 /** Atributo quantidade. */
83   - @JsonView({ Views.EnderecoEstoqueView.class })
  84 + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class })
84 85 private BigDecimal quantidade;
85 86  
86 87 /** Atributo unidadeMedidaEntrada. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java
1 1 package br.com.centralit.api.service.impl;
2 2  
3   -import java.math.BigDecimal;
4 3 import java.util.ArrayList;
5 4 import java.util.List;
6 5  
... ... @@ -12,7 +11,6 @@ import org.springframework.validation.Validator;
12 11 import br.com.centralit.api.dao.EnderecoEstoqueDao;
13 12 import br.com.centralit.api.model.EnderecoEstoque;
14 13 import br.com.centralit.api.model.Estoque;
15   -import br.com.centralit.api.model.MaterialLocalEstoque;
16 14 import br.com.centralit.api.service.ConfiguracaoParametroSistemaService;
17 15 import br.com.centralit.api.service.EnderecoEstoqueService;
18 16 import br.com.centralit.api.service.EstoqueService;
... ... @@ -81,12 +79,21 @@ public class EnderecoEstoqueServiceImpl extends GenericServiceImpl<EnderecoEstoq
81 79  
82 80 public EnderecoEstoque merge(EnderecoEstoque enderecoEstoque) {
83 81  
84   - if(enderecoEstoque.getAcomodaMaterial()){
85   - List<EnderecoEstoque> vinculosEndEstoque = this.enderecoEstoqueSuperiorVinculado(enderecoEstoque.getId());
86   - if(!UtilColecao.isVazio(vinculosEndEstoque)){
87   - throw new BusinessException("ALMOXARIFADO.VALIDACAO.NAO_PERMITIDO_ENDERECO_ESTOQUE_ACOMODA_MATERIAL", CodigoErro.REGRA_NEGOCIO.getValue());
88   - }
89   - }
  82 + List<EnderecoEstoque> vinculosEndEstoque = this.enderecoEstoqueSuperiorVinculado(enderecoEstoque.getId());
  83 + if(!UtilColecao.isVazio(vinculosEndEstoque)){
  84 + if(enderecoEstoque.getAcomodaMaterial()){
  85 + throw new BusinessException("ALMOXARIFADO.VALIDACAO.NAO_PERMITIDO_ENDERECO_ESTOQUE_ACOMODA_MATERIAL", CodigoErro.REGRA_NEGOCIO.getValue());
  86 + }
  87 +
  88 + if(enderecoEstoque.getEndeEstoqSuperior() != null){
  89 + for (EnderecoEstoque vinculo : vinculosEndEstoque) {
  90 + if(enderecoEstoque.getEndeEstoqSuperior().getId().intValue() == vinculo.getId().intValue()){
  91 + throw new BusinessException("ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_VINCULO_CICLICO", CodigoErro.REGRA_NEGOCIO.getValue());
  92 + }
  93 + }
  94 + }
  95 +
  96 + }
90 97  
91 98 this.validarEntidade(enderecoEstoque, this.validator);
92 99 super.save(enderecoEstoque);
... ...
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/EnderecoEstoqueController.java
... ... @@ -9,14 +9,14 @@ import org.springframework.web.bind.annotation.RequestMethod;
9 9 import org.springframework.web.bind.annotation.RequestParam;
10 10 import org.springframework.web.bind.annotation.ResponseBody;
11 11  
  12 +import br.com.centralit.api.framework.json.ViewsAdmMateriais;
  13 +import br.com.centralit.api.framework.json.ViewsAdmMateriais.EnderecoEstoqueView;
12 14 import br.com.centralit.api.model.EnderecoEstoque;
13 15 import br.com.centralit.api.service.DominioService;
14 16 import br.com.centralit.api.service.EnderecoEstoqueService;
15 17 import br.com.centralit.api.service.InternacionalizacaoService;
16 18 import br.com.centralit.framework.controller.GenericController;
17 19 import br.com.centralit.framework.json.ResponseBodyWrapper;
18   -import br.com.centralit.framework.json.Views;
19   -import br.com.centralit.framework.json.Views.EnderecoEstoqueView;
20 20 import br.com.centralit.framework.model.Dominio;
21 21 import br.com.centralit.framework.util.UtilColecao;
22 22 import br.com.centralit.framework.util.UtilObjeto;
... ... @@ -104,7 +104,7 @@ public class EnderecoEstoqueController extends GenericController&lt;EnderecoEstoque
104 104 @Override
105 105 public Class<EnderecoEstoqueView> getEditView() {
106 106  
107   - return Views.EnderecoEstoqueView.class;
  107 + return ViewsAdmMateriais.EnderecoEstoqueView.class;
108 108 }
109 109  
110 110 }
... ...
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
... ... @@ -327,6 +327,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
327 327 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA_MOTIVO", "Remoção endereço estoque negada, pelos motivos", dominio, modulo));
328 328 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_IS_SUPERIOR_REMOVER", "O endereço de estoque a ser removido, foi vinculado como superior a outros endereço. Caso prossiga com a operação, também será removido todos os endereços vinculados a este. Deseja continuar?", dominio, modulo));
329 329 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_TODOS_MATERIAIS", "A definição de endereço de estoque para todos os materias não poderá ser desfeita após salvar o registro. Deseja realmente adicionar este endereço para todos os materiais?", dominio, modulo));
  330 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_VINCULO_CICLICO", "Não é permitido vincular o endereço de estoque superior, pois este endereço tem como endereço superior o registro que está sendo alterado. Favor remover ou escolher outro endereço de estoque superior.", dominio, modulo));
330 331 }
331 332  
332 333 private void gerarMensagem(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) {
... ...
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueController.js
... ... @@ -114,9 +114,21 @@ citApp.controller(&#39;EnderecoEstoqueController&#39;, [&#39;$scope&#39;, &#39;EnderecoEstoqueReposi
114 114 };
115 115  
116 116 $scope.findAutoCompleteEnderecoSuperior = function(value){
117   - return EnderecoEstoqueRepository.findAutoComplete('codigo', value).then(function(result) {
118   - return result;
119   - });
  117 + var enderecoSuperiores = [];
  118 + return EnderecoEstoqueRepository.findAutoComplete('codigo', value).then(function(result) {
  119 + if(result){
  120 + if($scope.enderecoEstoque.id){
  121 + angular.forEach(result, function(superior) {
  122 + if(superior.id != $scope.enderecoEstoque.id){
  123 + enderecoSuperiores.push(superior);
  124 + }
  125 + });
  126 + }else{
  127 + enderecoSuperiores = result;
  128 + }
  129 + }
  130 + return enderecoSuperiores;
  131 + });
120 132 };
121 133  
122 134 $scope.validaEnderecoTodosMaterial = function(){
... ...
cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueEdit.html
... ... @@ -40,7 +40,7 @@
40 40  
41 41 <breadcrumb ng-workspace="workspace"></breadcrumb>
42 42  
43   - <form name="enderecoEstoqueForm">
  43 + <form name="enderecoEstoqueForm" novalidate autocomplete="off">
44 44 <p>
45 45 <small>( <span class="red">*</span> ) <translate>LABEL.CAMPOS_OBRIGATORIOS</translate></small>
46 46 </p>
... ...