diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoDao.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoDao.java index dedcd91..43c348d 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoDao.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoDao.java @@ -2,6 +2,7 @@ package br.com.centralit.api.dao; import java.util.Calendar; import java.util.Collection; +import java.util.List; import com.googlecode.genericdao.search.SearchResult; @@ -115,4 +116,6 @@ public interface RequisicaoConsumoDao extends CitGenericDAO { RequisicaoConsumo findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante); SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH); + + List findRequisicoesParaAtendimento(AtendimentoVH atendimentoVH); } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoItemDao.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoItemDao.java index 638e8d5..a0b97db 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoItemDao.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoItemDao.java @@ -6,6 +6,7 @@ import java.util.List; import br.com.centralit.api.model.EstruturaOrganizacional; import br.com.centralit.api.model.MaterialConsumo; import br.com.centralit.api.model.RequisicaoConsumo; +import br.com.centralit.api.model.RequisicaoConsumoItem; import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; import br.com.centralit.framework.model.Dominio; @@ -27,4 +28,6 @@ public interface RequisicaoConsumoItemDao extends CitGenericDAO { */ Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio statusFinalizado, Dominio statusParcialmenteAtendida, Dominio statusAtendida); + List findItensRequisicaoPorMaterial(Long idRequisicao, Long idMaterial); + } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoDaoHibernate.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoDaoHibernate.java index daee0b3..fb33d72 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoDaoHibernate.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoDaoHibernate.java @@ -335,4 +335,17 @@ public class RequisicaoConsumoDaoHibernate extends CitGenericDAOImpl implements searchSeven.addFilterIn("requisicaoConsumoItens.materialConsumo.id", atendimentoVH.getIdsMaterais()); } } + + @Override + public List findRequisicoesParaAtendimento(AtendimentoVH atendimentoVH) { + + SearchSeven searchSeven = new SearchSeven(); + + if (!UtilColecao.isVazio(atendimentoVH.getIdsRequisicao())) { + + searchSeven.addFilterIn("id", atendimentoVH.getIdsRequisicao()); + } + + return this.search(searchSeven); + } } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoItemDaoHibernate.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoItemDaoHibernate.java index 84a4ba8..7ba49d1 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoItemDaoHibernate.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoItemDaoHibernate.java @@ -188,5 +188,18 @@ public class RequisicaoConsumoItemDaoHibernate extends CitGenericDAOImpl impleme return UtilObjeto.isReferencia(result) ? result.longValue() : null; } + @Override + public List findItensRequisicaoPorMaterial(Long idRequisicao, Long idMaterial) { + + SearchSeven searchSeven = new SearchSeven(); + + searchSeven.addFilterEqual("requisicaoConsumo.id", idRequisicao); + + searchSeven.addFilterEqual("materialConsumo.id", idMaterial); + + return this.search(searchSeven); + + } + } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoItemService.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoItemService.java index 00a5ee0..1a3f0d9 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoItemService.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoItemService.java @@ -42,5 +42,7 @@ public interface RequisicaoConsumoItemService extends GenericService findItensRequisicaoPorMaterial(Long idRequisicao, Long idMaterial); } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoService.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoService.java index e7f9c28..0b8d1a0 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoService.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoService.java @@ -2,6 +2,7 @@ package br.com.centralit.api.service; import java.util.Calendar; import java.util.Collection; +import java.util.List; import com.googlecode.genericdao.search.SearchResult; @@ -126,4 +127,6 @@ public interface RequisicaoConsumoService extends GenericService findRequisicoesParaAtendimento(AtendimentoVH atendimentoVH); + } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoItemServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoItemServiceImpl.java index f938dfd..ac9903d 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoItemServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoItemServiceImpl.java @@ -148,4 +148,10 @@ public class RequisicaoConsumoItemServiceImpl extends GenericServiceImpl findItensRequisicaoPorMaterial(Long idRequisicao, Long idMaterial) { + return this.requisicaoConsumoItemDao.findItensRequisicaoPorMaterial(idRequisicao, idMaterial); + } + } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoServiceImpl.java index b3e8918..03e0904 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoServiceImpl.java @@ -112,7 +112,7 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl findRequisicoesParaAtendimento(AtendimentoVH atendimentoVH) { + return this.requisicaoConsumoDao.findRequisicoesParaAtendimento(atendimentoVH); + } + } diff --git a/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java b/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java index bfc56e1..6f2c13b 100644 --- a/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java +++ b/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java @@ -1,6 +1,6 @@ package br.com.centralit.controller; -import java.util.Collection; +import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.SerializationUtils; @@ -18,12 +18,15 @@ import com.googlecode.genericdao.search.SearchResult; import br.com.centralit.api.framework.json.ViewsAdmMateriais; import br.com.centralit.api.framework.json.ViewsAlmoxarifado; import br.com.centralit.api.model.RequisicaoConsumo; +import br.com.centralit.api.model.RequisicaoConsumoItem; +import br.com.centralit.api.service.RequisicaoConsumoItemService; import br.com.centralit.api.service.RequisicaoConsumoService; import br.com.centralit.api.viewHelper.AtendimentoVH; import br.com.centralit.api.viewHelper.RequisicaoVH; import br.com.centralit.framework.controller.GenericController; import br.com.centralit.framework.json.ResponseBodyWrapper; import br.com.centralit.framework.json.Views; +import br.com.centralit.framework.util.UtilColecao; import br.com.centralit.framework.view.GridVH; import br.com.centralit.framework.view.ResultResponseVH; @@ -65,6 +68,9 @@ public class RequisicaoConsumoController extends GenericController requisicoesIds) { + public ResponseBodyWrapper atenderRequisicoes (@RequestBody AtendimentoVH atendimentoVH) { + + List requisicoes = this.requisicaoConsumoService.findRequisicoesParaAtendimento(atendimentoVH); + + if(!UtilColecao.isVazio(atendimentoVH.getIdsMaterais())){ + for (RequisicaoConsumo requisicaoConsumo : requisicoes) { + List itens = new ArrayList(); + for (Long idMaterial : atendimentoVH.getIdsMaterais()) { + itens.addAll(this.requisicaoConsumoItemService.findItensRequisicaoPorMaterial(requisicaoConsumo.getId(), idMaterial)); + + } + requisicaoConsumo.setRequisicaoConsumoItens(itens); + } + } - ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.requisicaoConsumoService.findList((List) requisicoesIds), - ViewsAdmMateriais.RequisicaoConsumoEditView.class); + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(requisicoes, ViewsAdmMateriais.RequisicaoConsumoEditView.class); return responseBody; } 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 c5f7a7f..847a2ee 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 @@ -326,6 +326,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.STATUS_ATUAL", "Status atual", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.FILTRAR", "Filtrar", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.LIMPAR_BUSCA_AVANCADA", "Limpar busca avançada", dominio, modulo)); } private void gerarValidacao(Dominio dominio, Modulo modulo, List internacionalizacaoList) { @@ -408,6 +409,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.CONFIRMA_EXCLUSAO_ATENDIMENTO_REQUISICAO", "Confirma exclusão dos atendimentos selecionados?", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.NAO_PERMITIDO_ATENDER_REQUISICAO_FINALIZADA", "Atendimento não permitido pois há requisições finalizadas selecionadas para atendimento. Desmarque as requisições finalizadas e clique novamente em 'Atender'.", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.DATA_FINALIZACAO_FORA_REFERENCIA", "Exclusão não permitida. Data de finalização da requisição %s fora da referência vigente.", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.INFO_FILTRO_MATERIAL_REQUISICAO", "O atendimento será realizado para os materiais selecionados na busca avançada.", dominio, modulo)); } } diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js index d97355c..325b874 100644 --- a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js @@ -273,22 +273,24 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', }); }; - $scope.prepararAtendimentoRequisicoes = function(listaSelecionados) { + $scope.prepararAtendimentoRequisicoes = function(atendimentoVH) { $scope.edit = true; $scope.atendimentos = []; $scope.idsRequisicoesSelecionados = []; $scope.atendimentoRequisicaoConsumo.dataAtendimento = new Date(); $scope.requisicoesSelecionadas = []; - $scope.requisicoesSelecionadas = listaSelecionados; - listaSelecionados.forEach(function(requisicao){ - $scope.idsRequisicoesSelecionados.push(requisicao.id); - }); + $scope.requisicoesSelecionadas = atendimentoVH.requisicoesSelecionadas; + + delete atendimentoVH.requisicoesSelecionadas; + + $scope.idsRequisicoesSelecionados = atendimentoVH.idsRequisicao; + if ($scope.idsRequisicoesSelecionados && $scope.requisicoesSelecionadas && $scope.idsRequisicoesSelecionados.length > 0) { if (verificarSelecaoRequisicaoAtendida()) { $scope.showAlert("warning", $translate.instant('ALMOXARIFADO.MSG.REQUISICAO_JA_ATENDIDA')); } else { - iniciarAtendimentoRequisicoes(); + iniciarAtendimentoRequisicoes(atendimentoVH); } } else { $scope.showAlert("warning", $translate.instant('MSG.NENHUM_ITEM_SELECIONADO')); @@ -307,9 +309,9 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', return hasRequisicaoAtendida; } - function iniciarAtendimentoRequisicoes() { + function iniciarAtendimentoRequisicoes(atendimentoVH) { $scope.setLoadingPesquisa(true); - RequisicaoConsumoRepository.atenderRequisicoes($scope.idsRequisicoesSelecionados).then(function(result){ + RequisicaoConsumoRepository.atenderRequisicoes(atendimentoVH).then(function(result){ result.forEach(function (requisicao) { $scope.addRequisicaoConsumoAoAtendimento(requisicao.originalElement); }); diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoListController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoListController.js index 8783e6d..5776511 100644 --- a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoListController.js +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoListController.js @@ -14,7 +14,9 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten $scope.recarregar = function() { $scope.filtrarCustomizado = false; - + $scope.atendimentoVH = {}; + $scope.listaUnidadesRequisitantesSelecionadas = []; + $scope.listaMateriaisConsumoSelecionados = []; // DEFINE CABEÇALHOS DA LISTAGEM $scope.headers = [ {title : $translate.instant('ALMOXARIFADO.LABEL.NUMERO_REQUISICAO'), value : 'numeroRequisicao' } , {title : $translate.instant('ALMOXARIFADO.LABEL.STATUS_REQUISICAO'), value : 'tipoStatusRequisicao.descricao' } , @@ -40,6 +42,12 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten }; $scope.recarregar(); + + $scope.limparBuscaAvancada = function(){ + $scope.atendimentoVH = {}; + $scope.listaUnidadesRequisitantesSelecionadas = []; + $scope.listaMateriaisConsumoSelecionados = []; + }; DominioRepository.findAllDominio('tipoStatusRequisicao').then(function(result) { var listaDominio = []; @@ -103,7 +111,16 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten }); if(permiteAtender){ - angular.element('#editAtendimentoRequisicaoConsumo').scope().prepararAtendimentoRequisicoes($scope.listaSelecionados); + + var idsRequisicoesSelecionados = []; + $scope.listaSelecionados.forEach(function(requisicao){ + idsRequisicoesSelecionados.push(requisicao.id); + }); + $scope.atendimentoVH.idsRequisicao = idsRequisicoesSelecionados; + $scope.atendimentoVH.requisicoesSelecionadas = $scope.listaSelecionados; + $scope.listaSelecionados = []; + angular.element('#editAtendimentoRequisicaoConsumo').scope().prepararAtendimentoRequisicoes($scope.atendimentoVH); + $scope.recarregar(); } }; @@ -251,21 +268,25 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten $scope.atendimentoAvancado = function(){ $scope.filtroAtendimento = {unidadeRequisitanteSelectedAll : false , materialConsumoSelectedAll : false}; - $scope.listaUnidadesRequisitantesSelecionadas = []; - $scope.listaMateriaisConsumoSelecionados = []; + if(!$scope.listaUnidadesRequisitantesSelecionadas){ + $scope.listaUnidadesRequisitantesSelecionadas = []; + } + if(!$scope.listaMateriaisConsumoSelecionados){ + $scope.listaMateriaisConsumoSelecionados = []; + } $scope.$openModal('modal-busca-avancada-requisicao.html', 'md'); }; $scope.filtrarRequisicoes = function(){ $scope.setLoading(true); - var atendimentoVH = {searchParams : $scope.filterCriteria}; + $scope.atendimentoVH = {searchParams : $scope.filterCriteria}; var idsUnidadeRequisitante = []; if($scope.listaUnidadesRequisitantesSelecionadas && $scope.listaUnidadesRequisitantesSelecionadas.length > 0){ angular.forEach($scope.listaUnidadesRequisitantesSelecionadas, function (value) { idsUnidadeRequisitante.push(value.id); }); - atendimentoVH.idsUnidadesRequisitantes = idsUnidadeRequisitante; + $scope.atendimentoVH.idsUnidadesRequisitantes = idsUnidadeRequisitante; } var idsMateriaisConsumo = []; @@ -274,12 +295,12 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten angular.forEach($scope.listaMateriaisConsumoSelecionados, function (value) { idsMateriaisConsumo.push(value.id); }); - atendimentoVH.idsMaterais = idsMateriaisConsumo; + $scope.atendimentoVH.idsMaterais = idsMateriaisConsumo; } - return RequisicaoConsumoRepository.filtrarRequisicoesAtendimento(atendimentoVH).then(function(result){ + return RequisicaoConsumoRepository.filtrarRequisicoesAtendimento($scope.atendimentoVH).then(function(result){ if(result){ - + $scope.listaSelecionados = []; $scope.atendimentoRequisicaoConsumoList = result.originalElement.objects; $scope.setTotalPages = result.originalElement.totalPages; diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/RequisicaoConsumoRepository.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/RequisicaoConsumoRepository.js index 2c3c1b0..63d2b80 100644 --- a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/RequisicaoConsumoRepository.js +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/RequisicaoConsumoRepository.js @@ -19,8 +19,8 @@ citApp.factory('RequisicaoConsumoRepository', ['RestangularAlmoxarifado', 'Abstr return restangularAlmoxarifado.all(this.route + "/finalizarRequisicoes").post(requisicaoVH).then(); }; - this.atenderRequisicoes = function(idsRequisicaoConsumo){ - return restangularAlmoxarifado.all(this.route + "/atenderRequisicoes").post(idsRequisicaoConsumo).then(); + this.atenderRequisicoes = function(atendimentoVH){ + return restangularAlmoxarifado.all(this.route + "/atenderRequisicoes").post(atendimentoVH).then(); }; this.filtrarRequisicoesAtendimento = function(atendimentoVH) { diff --git a/cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html b/cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html index 9435fcb..62e0115 100644 --- a/cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html +++ b/cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html @@ -41,13 +41,20 @@ -
+
+ + ALMOXARIFADO.LABEL.FILTRAR + +
- +
-
-
+
+
- @@ -134,26 +147,27 @@ - + - ALMOXARIFADO.LABEL.MATERIAL_CONSUMO + ALMOXARIFADO.LABEL.UNIDADE_REQUISITANTE - + - + - {{materialConsumoSelecionado.codigoEDescricao}} + {{unidadeRequisitanteSelecionada.nome}} -
-
-
+
+ + + -- libgit2 0.21.2