From 9da8db41bac40720ccf25b1c634ca0d5892c6040 Mon Sep 17 00:00:00 2001 From: erick.sato Date: Thu, 5 May 2016 16:59:25 -0300 Subject: [PATCH] [Redmine Atendimento #4740]Cadastro endereço estoque --- cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EnderecoEstoqueDaoHibernate.java | 2 ++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Estoque.java | 2 +- cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java | 44 +++++++++++++++++++++++++++++++++++++++++++- cit-almoxarifado-web/src/main/java/br/com/centralit/controller/EnderecoEstoqueController.java | 26 ++++++++++++++++---------- cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java | 6 +++--- cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueController.js | 10 ++++++++++ cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueEdit.html | 4 ++-- 7 files changed, 77 insertions(+), 17 deletions(-) diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EnderecoEstoqueDaoHibernate.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EnderecoEstoqueDaoHibernate.java index de00175..4cce8bc 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EnderecoEstoqueDaoHibernate.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EnderecoEstoqueDaoHibernate.java @@ -38,6 +38,8 @@ public class EnderecoEstoqueDaoHibernate extends CitGenericDAOImpl implements En searchSeven.addFilterEqual("endeEstoqSuperior.id", idEnderecoEstoque); + searchSeven.addSortAsc("codigo"); + return this.search(searchSeven); } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Estoque.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Estoque.java index 8e5fd3d..e8863ea 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Estoque.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Estoque.java @@ -71,7 +71,7 @@ public class Estoque extends PersistentObjectAuditOrganizacao { /** Atributo almoxarifado. */ @OneToOne(fetch = FetchType.LAZY, optional = false) @JsonView({ ViewsAdmMateriais.LocalEstoqueAutoCompleteView.class, - ViewsAlmoxarifado.ConfiguracaoRessuprimentoEditView.class, Views.MaterialConsultaInfo.class, Views.MaterialLocalEstoqueView.class }) + ViewsAlmoxarifado.ConfiguracaoRessuprimentoEditView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class }) private EstruturaOrganizacional almoxarifado; /** Atributo locais. */ diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java index 587f72f..bca1d6e 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java @@ -1,5 +1,6 @@ package br.com.centralit.api.service.impl; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -11,9 +12,15 @@ import org.springframework.validation.Validator; import br.com.centralit.api.dao.EnderecoEstoqueDao; import br.com.centralit.api.model.EnderecoEstoque; import br.com.centralit.api.model.Estoque; +import br.com.centralit.api.model.MaterialConsumo; +import br.com.centralit.api.model.MaterialEstoque; +import br.com.centralit.api.model.MaterialLocalEstoque; import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; import br.com.centralit.api.service.EnderecoEstoqueService; import br.com.centralit.api.service.EstoqueService; +import br.com.centralit.api.service.MaterialConsumoService; +import br.com.centralit.api.service.MaterialEstoqueService; +import br.com.centralit.api.service.MaterialLocalEstoqueService; import br.com.centralit.framework.exception.BusinessException; import br.com.centralit.framework.exception.CodigoErro; import br.com.centralit.framework.model.arquitetura.PersistentObject; @@ -31,6 +38,15 @@ public class EnderecoEstoqueServiceImpl extends GenericServiceImpl materiaisConsumo = this.materialConsumoService.findAll(); + if(!UtilColecao.isVazio(materiaisConsumo)){ + for (MaterialConsumo materialConsumo : materiaisConsumo) { + if(!this.materialLocalEstoqueService.enderecoJaVinculadoAoMaterial(materialConsumo.getId(), enderecoEstoque.getId())){ + MaterialEstoque materialEstoque = this.materialEstoqueService.findByIdMaterial(materialConsumo.getId()); + if(materialEstoque == null){ + materialEstoque = new MaterialEstoque(); + materialEstoque.setMaterial(materialConsumo); + } + MaterialLocalEstoque materialLocalEstoque = new MaterialLocalEstoque(); + materialLocalEstoque.setMaterialEstoque(materialEstoque); + materialLocalEstoque.setEndereco(enderecoEstoque); + materialLocalEstoque.setQuantidade(new BigDecimal("9999999999")); + materialLocalEstoque.setLocalPrincipal(Boolean.TRUE); + this.materialLocalEstoqueService.save(materialLocalEstoque); + } + } + } + } + } @Override public boolean removeById(Long id) { diff --git a/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/EnderecoEstoqueController.java b/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/EnderecoEstoqueController.java index cfe9d04..731e3c6 100644 --- a/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/EnderecoEstoqueController.java +++ b/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/EnderecoEstoqueController.java @@ -67,35 +67,41 @@ public class EnderecoEstoqueController extends GenericController"); EnderecoEstoque enderecoEstoque = this.enderecoEstoqueService.find(idEnderecoEstoque); if(!UtilColecao.isVazio(enderecoEstoque.getMateriais())){ - mensagemValidacao.append(this.internacionalizacaoService.getTranslate("ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR", this.getIdioma())); - mensagemValidacao.append(": "); - mensagemValidacao.append(enderecoEstoque.getDescricao()); - mensagemValidacao.append("

"); + mensagemValidacao.append("

  • "); mensagemValidacao.append(this.internacionalizacaoService.getTranslate("ALMOXARIFADO.LABEL.MATERAIS_VINCULADOS", this.getIdioma())); - mensagemValidacao.append("

    "); + mensagemValidacao.append("
  • "); + naoPermiteRemover = true; } List vinculos = this.enderecoEstoqueService.enderecoEstoqueSuperiorVinculado(idEnderecoEstoque); if(!UtilColecao.isVazio(vinculos)){ for (EnderecoEstoque enderecoEstoqueFilho : vinculos) { if(!UtilColecao.isVazio(enderecoEstoqueFilho.getMateriais())){ + mensagemValidacao.append("
  • "); mensagemValidacao.append(this.internacionalizacaoService.getTranslate("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_VINCULADO_SUPERIOR", this.getIdioma())); - mensagemValidacao.append(": "); + mensagemValidacao.append(""); mensagemValidacao.append(enderecoEstoqueFilho.getDescricao()); + mensagemValidacao.append(""); mensagemValidacao.append("

    "); mensagemValidacao.append(this.internacionalizacaoService.getTranslate("ALMOXARIFADO.LABEL.MATERAIS_VINCULADOS", this.getIdioma())); mensagemValidacao.append("

    "); + mensagemValidacao.append("
  • "); + naoPermiteRemover = true; } } } - - if(mensagemValidacao.length() > 0){ - mensagemValidacao.insert(0, this.internacionalizacaoService.getTranslate("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA_MOTIVO", this.getIdioma()) + "
    "); + mensagemValidacao.append(""); + if(naoPermiteRemover){ + mensagemValidacao.append(""); + mensagemValidacao.insert(0, "" + this.internacionalizacaoService.getTranslate("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA_MOTIVO", this.getIdioma()) + "

    "); + }else{ + mensagemValidacao = new StringBuilder(); } return new ResponseBodyWrapper(mensagemValidacao.toString(), getEditView()); diff --git a/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java b/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java index 936d7b0..ad3e8b5 100644 --- a/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java +++ b/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java @@ -298,8 +298,8 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR_DESCRICAO", "Desc. Endereço Superior", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ACOMODA_MATERIAL", "Acomoda Materiais", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_TODOS_MATERIAL", "Adicionar endereço para todos os materiais", dominio, modulo)); - internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.MATERAIS_VINCULADOS", "Existe materiais vinculados", dominio, modulo)); - internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_VINCULADO_SUPERIOR", "Endereço de Estoque vinculado ao endereço superior", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.MATERAIS_VINCULADOS", "Existe materiais vinculados a este endereço", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_VINCULADO_SUPERIOR", "Endereço de Estoque: ", dominio, modulo)); } @@ -324,7 +324,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA", "O endereço não pode ser removido, pois está vinculado a um material de consumo", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.NAO_PERMITIDO_ENDERECO_ESTOQUE_ACOMODA_MATERIAL", "Não foi permitido atualizar o registro, o endereço em questão é um endereço superior de outros endereços, logo não é possivel indicar o endereço como uma acomodação de materiais.", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.NAO_PERMITIDO_REMOVER_ENDERECO_ESTOQUE_END_SUPERIOR_VINCULO", "Remoção não permitida. O endereço de estoque a ser removido tem vínculo como endereço superior de outros endereços. Para remover este endereço, desvincule primeiramente dos demais endereços.", dominio, modulo)); - internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA_MOTIVO", "Remoção endereço estoque negada, pelos motivos", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA_MOTIVO", "Remoção endereço estoque negada", dominio, modulo)); 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)); 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)); 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)); diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueController.js index 4d75383..a7dd7a5 100644 --- a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueController.js +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueController.js @@ -131,6 +131,14 @@ citApp.controller('EnderecoEstoqueController', ['$scope', 'EnderecoEstoqueReposi }); }; + $scope.validaEnderecoAcomodaMaterial = function(){ + $timeout(function(){ + if(!$scope.enderecoEstoque.acomodaMaterial){ + $scope.enderecoEstoque.enderTodoMaterial = false; + } + }); + }; + $scope.validaEnderecoTodosMaterial = function(){ $timeout(function(){ if($scope.enderecoEstoque.enderTodoMaterial){ @@ -152,6 +160,8 @@ citApp.controller('EnderecoEstoqueController', ['$scope', 'EnderecoEstoqueReposi $scope.bloquearAcomodacaoMaterial = true; }else if($scope.enderecoEstoque.materiais && $scope.enderecoEstoque.materiais.length > 0 && $scope.enderecoEstoque.id){ $scope.bloquearAcomodacaoMaterial = true; + }else if($scope.enderecoEstoque.enderTodoMaterial){ + $scope.bloquearAcomodacaoMaterial = true; }else{ $scope.bloquearAcomodacaoMaterial = false; } diff --git a/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueEdit.html b/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueEdit.html index 5fae6e1..dd5447e 100644 --- a/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueEdit.html +++ b/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueEdit.html @@ -72,11 +72,11 @@
    - +
    -
    +
    -- libgit2 0.21.2