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 @@
-
+
-