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 e9e7027..dedcd91 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
@@ -3,9 +3,12 @@ package br.com.centralit.api.dao;
import java.util.Calendar;
import java.util.Collection;
+import com.googlecode.genericdao.search.SearchResult;
+
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.viewHelper.AtendimentoVH;
import br.com.centralit.api.viewHelper.RequisicaoVH;
import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
@@ -110,4 +113,6 @@ public interface RequisicaoConsumoDao extends CitGenericDAO {
* @return
*/
RequisicaoConsumo findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante);
+
+ SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH);
}
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 a223cfb..daee0b3 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
@@ -1,6 +1,7 @@
package br.com.centralit.api.dao.impl;
import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.HashSet;
@@ -9,6 +10,12 @@ import java.util.Set;
import org.springframework.stereotype.Repository;
+import com.googlecode.genericdao.search.Field;
+import com.googlecode.genericdao.search.Filter;
+import com.googlecode.genericdao.search.Search;
+import com.googlecode.genericdao.search.SearchResult;
+import com.googlecode.genericdao.search.Sort;
+
import br.com.centralit.api.dao.RequisicaoConsumoDao;
import br.com.centralit.api.model.AtendimentoRequisicaoConsumo;
import br.com.centralit.api.model.DominioAlmoxarifado;
@@ -16,6 +23,7 @@ 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.api.viewHelper.AtendimentoVH;
import br.com.centralit.api.viewHelper.RequisicaoVH;
import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
import br.com.centralit.framework.dao.arquitetura.SearchSeven;
@@ -23,9 +31,6 @@ import br.com.centralit.framework.util.UtilColecao;
import br.com.centralit.framework.util.UtilObjeto;
import br.com.centralit.framework.util.UtilString;
-import com.googlecode.genericdao.search.Filter;
-import com.googlecode.genericdao.search.Sort;
-
/**
*
*
@@ -281,4 +286,53 @@ public class RequisicaoConsumoDaoHibernate extends CitGenericDAOImpl implements
return this.searchUnique(searchSeven);
}
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Override
+ public SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH) {
+
+ SearchSeven searchSeven = new SearchSeven(atendimentoVH.getSearchParams());
+ searchSeven.setResultMode(Search.RESULT_SINGLE);
+
+ searchSeven.setDistinct(true);
+
+ addFilterMaterialConsumo(atendimentoVH, searchSeven);
+ addFilterUnidadeRequisitante(atendimentoVH, searchSeven);
+
+ List fields = new ArrayList();
+ List sorts = new ArrayList();
+ fields.add(new Field("id"));
+ sorts.add(new Sort("id"));
+ searchSeven.setFields(fields);
+ searchSeven.setSorts(sorts);
+ List ids = this.search(searchSeven);
+
+ SearchResult result = new SearchResult();
+ result.setTotalCount(this.count(searchSeven));
+
+ fields = new ArrayList();
+ searchSeven = new SearchSeven(atendimentoVH.getSearchParams());
+ searchSeven.setResultMode(Search.RESULT_MAP);
+ for (String field : atendimentoVH.getSearchParams().getFields()) {
+ fields.add(new Field(field));
+ }
+ searchSeven.setFields(fields);
+ searchSeven.addFilterIn("id", ids);
+ searchSeven.setFirstResult(0);
+ result.setResult(this.search(searchSeven));
+
+ return result;
+ }
+
+ private void addFilterUnidadeRequisitante(AtendimentoVH atendimentoVH, SearchSeven searchSeven) {
+ if(!UtilColecao.isVazio(atendimentoVH.getIdsUnidadesRequisitantes())){
+ searchSeven.addFilterIn("unidadeRequisitante.id", atendimentoVH.getIdsUnidadesRequisitantes());
+ }
+ }
+
+ private void addFilterMaterialConsumo(AtendimentoVH atendimentoVH, SearchSeven searchSeven) {
+ if(!UtilColecao.isVazio(atendimentoVH.getIdsMaterais())){
+ searchSeven.addFilterIn("requisicaoConsumoItens.materialConsumo.id", atendimentoVH.getIdsMaterais());
+ }
+ }
}
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 aee915c..e7f9c28 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
@@ -3,9 +3,12 @@ package br.com.centralit.api.service;
import java.util.Calendar;
import java.util.Collection;
+import com.googlecode.genericdao.search.SearchResult;
+
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.viewHelper.AtendimentoVH;
import br.com.centralit.api.viewHelper.RequisicaoVH;
import br.com.centralit.framework.service.arquitetura.GenericService;
@@ -121,4 +124,6 @@ public interface RequisicaoConsumoService extends GenericService
@@ -199,4 +204,21 @@ public class RequisicaoConsumoController extends GenericController internacionalizacaoList) {
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 7876fa5..8783e6d 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
@@ -1,7 +1,10 @@
'use strict';
-citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'AtendimentoRequisicaoConsumoRepository', '$translate', '$timeout', 'DominioRepository', 'RequisicaoConsumoRepository',
- function AtendimentoRequisicaoConsumoListController($scope, AtendimentoRequisicaoConsumoRepository, $translate, $timeout, DominioRepository, RequisicaoConsumoRepository) {
+citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'AtendimentoRequisicaoConsumoRepository', '$translate',
+ '$timeout', 'DominioRepository', 'RequisicaoConsumoRepository',
+ 'EstruturaOrganizacionalAlmoxarifadoRepository','MaterialConsumoRepository','$filter',
+ function AtendimentoRequisicaoConsumoListController($scope, AtendimentoRequisicaoConsumoRepository, $translate,
+ $timeout, DominioRepository, RequisicaoConsumoRepository, EstruturaOrganizacionalAlmoxarifadoRepository, MaterialConsumoRepository, $filter) {
$scope.$showAdvancedFilters = false;
$scope.listaSelecionados = [];
$scope.resetForm = function() {
@@ -10,6 +13,8 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten
$scope.recarregar = function() {
+ $scope.filtrarCustomizado = false;
+
// 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' } ,
@@ -175,4 +180,126 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten
};
+ $scope.findEstruturaOrganizacionalUR = function(value){
+ return EstruturaOrganizacionalAlmoxarifadoRepository.findEstruturaOrganizacionalUR(value,
+ $scope.usuarioLogado.organizacao.id).then(function(result) {
+ return $filter('idNotEqual')(result, $scope.listaUnidadesRequisitantesSelecionadas, 'id');
+ });
+ };
+
+ $scope.findMateriaisConsumoByOrganizacao = function(value){
+ return MaterialConsumoRepository.findMateriaisConsumoByOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
+ return $filter('idNotEqual')(result, $scope.listaMateriaisConsumoSelecionados, "id");
+ });
+ };
+
+ $scope.setUnidadeRequisitante = function(item){
+ $scope.listaUnidadesRequisitantesSelecionadas.push(item);
+ $timeout(function(){
+ $scope.filtroAtendimento.unidadeRequisitanteSelecao = null;
+ });
+ };
+
+ $scope.selectAllUnidadesRequisitantes = function(check){
+ angular.forEach($scope.listaUnidadesRequisitantesSelecionadas, function (item) {
+ item.$checkedChBox = $scope.filtroAtendimento.unidadeRequisitanteSelectedAll;
+ });
+ };
+
+ $scope.selectAllMaterialConsumo = function(check){
+ angular.forEach($scope.listaMateriaisConsumoSelecionados, function (item) {
+ item.$checkedChBox = $scope.filtroAtendimento.materialConsumoSelectedAll;
+ });
+ };
+
+ $scope.setMaterialConsumoItens = function(item){
+ $scope.listaMateriaisConsumoSelecionados.push(item);
+ $timeout(function(){
+ $scope.filtroAtendimento.materialConsumoItem = null;
+ });
+ };
+
+ $scope.removerUnidadeRequisitanteSelecionada = function(){
+
+ if($scope.filtroAtendimento.unidadeRequisitanteSelectedAll){
+ $scope.listaUnidadesRequisitantesSelecionadas = [];
+ $scope.filtroAtendimento.unidadeRequisitanteSelectedAll = false;
+ }else{
+ $scope.listaUnidadesRequisitantesSelecionadas.forEach(function(item, key) {
+ if (item.$checkedChBox) {
+ $scope.listaUnidadesRequisitantesSelecionadas.splice($scope.listaUnidadesRequisitantesSelecionadas.indexOf(item), 1);
+ }
+ });
+ }
+
+ };
+
+ $scope.removerMaterialConsumoSelecionado = function(){
+
+ if($scope.filtroAtendimento.materialConsumoSelectedAll){
+ $scope.listaMateriaisConsumoSelecionados = [];
+ $scope.filtroAtendimento.materialConsumoSelectedAll = false;
+ }else{
+ angular.forEach($scope.listaMateriaisConsumoSelecionados, function (value) {
+ if(value.$checkedChBox){
+ $scope.listaMateriaisConsumoSelecionados.splice($scope.listaMateriaisConsumoSelecionados.indexOf(value), 1);
+ }
+ });
+ }
+ };
+
+
+ $scope.atendimentoAvancado = function(){
+ $scope.filtroAtendimento = {unidadeRequisitanteSelectedAll : false , materialConsumoSelectedAll : false};
+ $scope.listaUnidadesRequisitantesSelecionadas = [];
+ $scope.listaMateriaisConsumoSelecionados = [];
+ $scope.$openModal('modal-busca-avancada-requisicao.html', 'md');
+ };
+
+ $scope.filtrarRequisicoes = function(){
+ $scope.setLoading(true);
+ var 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;
+ }
+
+ var idsMateriaisConsumo = [];
+
+ if($scope.listaMateriaisConsumoSelecionados && $scope.listaMateriaisConsumoSelecionados.length > 0){
+ angular.forEach($scope.listaMateriaisConsumoSelecionados, function (value) {
+ idsMateriaisConsumo.push(value.id);
+ });
+ atendimentoVH.idsMaterais = idsMateriaisConsumo;
+ }
+
+ return RequisicaoConsumoRepository.filtrarRequisicoesAtendimento(atendimentoVH).then(function(result){
+ if(result){
+
+ $scope.atendimentoRequisicaoConsumoList = result.originalElement.objects;
+
+ $scope.setTotalPages = result.originalElement.totalPages;
+ $scope.setTotalItens = result.originalElement.totalItens;
+
+ if(!$scope.filtersCopy){
+ $scope.filtersCopy = angular.copy($scope.filterCriteria.filters);
+ }
+ $scope.filtrarCustomizado = true;
+ if($scope.setTotalItens == 0){
+ $scope.showAlert('warning', $translate.instant('MSG.NENHUM_REGISTRO_ENCONTRADO'), " ", false);
+ }
+
+ } else {
+ $scope.showAlert('warning', $translate.instant('MSG.NENHUM_REGISTRO_ENCONTRADO'), " ", false);
+ }
+ $scope.$modalInstance.dismiss('cancel');
+ $scope.setLoading(false);
+ });
+
+ };
+
}]);
\ No newline at end of file
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 0cc3fae..2c3c1b0 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
@@ -22,6 +22,10 @@ citApp.factory('RequisicaoConsumoRepository', ['RestangularAlmoxarifado', 'Abstr
this.atenderRequisicoes = function(idsRequisicaoConsumo){
return restangularAlmoxarifado.all(this.route + "/atenderRequisicoes").post(idsRequisicaoConsumo).then();
};
+
+ this.filtrarRequisicoesAtendimento = function(atendimentoVH) {
+ return this.restangular.all(this.route+ "/filtrarRequisicoesAtendimento").post(atendimentoVH);
+ };
}
AbstractRepository.extend(RequisicaoConsumoRepository);
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 3cd1d87..9435fcb 100644
--- a/cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html
+++ b/cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html
@@ -40,9 +40,120 @@
+
+
+
+
+
+
+ ng-lista-itens-selecionados="listaSelecionados" ng-check-on="true"
+ set-total-pages="setTotalPages" set-total-itens="setTotalItens"
+ use-custom-filter-temp="filtrarCustomizado" ng-custom-filter="filtrarRequisicoes()">
+
+
+
--
libgit2 0.21.2